Page MenuHomePhabricator

D18004.diff
No OneTemporary

D18004.diff

diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -3708,6 +3708,7 @@
'PhabricatorProjectWatcherListView' => 'applications/project/view/PhabricatorProjectWatcherListView.php',
'PhabricatorProjectWorkboardBackgroundColor' => 'applications/project/constants/PhabricatorProjectWorkboardBackgroundColor.php',
'PhabricatorProjectWorkboardProfileMenuItem' => 'applications/project/menuitem/PhabricatorProjectWorkboardProfileMenuItem.php',
+ 'PhabricatorProjectWorkboardTransaction' => 'applications/project/xaction/PhabricatorProjectWorkboardTransaction.php',
'PhabricatorProjectsAncestorsSearchEngineAttachment' => 'applications/project/engineextension/PhabricatorProjectsAncestorsSearchEngineAttachment.php',
'PhabricatorProjectsCurtainExtension' => 'applications/project/engineextension/PhabricatorProjectsCurtainExtension.php',
'PhabricatorProjectsEditEngineExtension' => 'applications/project/engineextension/PhabricatorProjectsEditEngineExtension.php',
@@ -9148,6 +9149,7 @@
'PhabricatorProjectWatcherListView' => 'PhabricatorProjectUserListView',
'PhabricatorProjectWorkboardBackgroundColor' => 'Phobject',
'PhabricatorProjectWorkboardProfileMenuItem' => 'PhabricatorProfileMenuItem',
+ 'PhabricatorProjectWorkboardTransaction' => 'PhabricatorProjectTransactionType',
'PhabricatorProjectsAncestorsSearchEngineAttachment' => 'PhabricatorSearchEngineAttachment',
'PhabricatorProjectsCurtainExtension' => 'PHUICurtainExtension',
'PhabricatorProjectsEditEngineExtension' => 'PhabricatorEditEngineExtension',
diff --git a/src/applications/project/controller/PhabricatorProjectBoardDisableController.php b/src/applications/project/controller/PhabricatorProjectBoardDisableController.php
--- a/src/applications/project/controller/PhabricatorProjectBoardDisableController.php
+++ b/src/applications/project/controller/PhabricatorProjectBoardDisableController.php
@@ -33,7 +33,8 @@
$xactions = array();
$xactions[] = id(new PhabricatorProjectTransaction())
- ->setTransactionType(PhabricatorProjectTransaction::TYPE_HASWORKBOARD)
+ ->setTransactionType(
+ PhabricatorProjectWorkboardTransaction::TRANSACTIONTYPE)
->setNewValue(0);
id(new PhabricatorProjectTransactionEditor())
diff --git a/src/applications/project/controller/PhabricatorProjectBoardImportController.php b/src/applications/project/controller/PhabricatorProjectBoardImportController.php
--- a/src/applications/project/controller/PhabricatorProjectBoardImportController.php
+++ b/src/applications/project/controller/PhabricatorProjectBoardImportController.php
@@ -61,8 +61,18 @@
->setProperties($import_column->getProperties())
->save();
}
+ $xactions = array();
+ $xactions[] = id(new PhabricatorProjectTransaction())
+ ->setTransactionType(
+ PhabricatorProjectWorkboardTransaction::TRANSACTIONTYPE)
+ ->setNewValue(1);
- $project->setHasWorkboard(1)->save();
+ id(new PhabricatorProjectTransactionEditor())
+ ->setActor($viewer)
+ ->setContentSourceFromRequest($request)
+ ->setContinueOnNoEffect(true)
+ ->setContinueOnMissingFields(true)
+ ->applyTransactions($project, $xactions);
$table->saveTransaction();
diff --git a/src/applications/project/controller/PhabricatorProjectBoardViewController.php b/src/applications/project/controller/PhabricatorProjectBoardViewController.php
--- a/src/applications/project/controller/PhabricatorProjectBoardViewController.php
+++ b/src/applications/project/controller/PhabricatorProjectBoardViewController.php
@@ -966,7 +966,18 @@
->setProjectPHID($project->getPHID())
->save();
- $project->setHasWorkboard(1)->save();
+ $xactions = array();
+ $xactions[] = id(new PhabricatorProjectTransaction())
+ ->setTransactionType(
+ PhabricatorProjectWorkboardTransaction::TRANSACTIONTYPE)
+ ->setNewValue(1);
+
+ id(new PhabricatorProjectTransactionEditor())
+ ->setActor($viewer)
+ ->setContentSourceFromRequest($request)
+ ->setContinueOnNoEffect(true)
+ ->setContinueOnMissingFields(true)
+ ->applyTransactions($project, $xactions);
return id(new AphrontRedirectResponse())
->setURI($board_uri);
@@ -1050,7 +1061,8 @@
$xactions = array();
$xactions[] = id(new PhabricatorProjectTransaction())
- ->setTransactionType(PhabricatorProjectTransaction::TYPE_HASWORKBOARD)
+ ->setTransactionType(
+ PhabricatorProjectWorkboardTransaction::TRANSACTIONTYPE)
->setNewValue(1);
id(new PhabricatorProjectTransactionEditor())
diff --git a/src/applications/project/editor/PhabricatorProjectTransactionEditor.php b/src/applications/project/editor/PhabricatorProjectTransactionEditor.php
--- a/src/applications/project/editor/PhabricatorProjectTransactionEditor.php
+++ b/src/applications/project/editor/PhabricatorProjectTransactionEditor.php
@@ -30,7 +30,6 @@
$types[] = PhabricatorTransactions::TYPE_EDIT_POLICY;
$types[] = PhabricatorTransactions::TYPE_JOIN_POLICY;
- $types[] = PhabricatorProjectTransaction::TYPE_HASWORKBOARD;
$types[] = PhabricatorProjectTransaction::TYPE_DEFAULT_SORT;
$types[] = PhabricatorProjectTransaction::TYPE_DEFAULT_FILTER;
$types[] = PhabricatorProjectTransaction::TYPE_BACKGROUND;
@@ -43,8 +42,6 @@
PhabricatorApplicationTransaction $xaction) {
switch ($xaction->getTransactionType()) {
- case PhabricatorProjectTransaction::TYPE_HASWORKBOARD:
- return (int)$object->getHasWorkboard();
case PhabricatorProjectTransaction::TYPE_DEFAULT_SORT:
return $object->getDefaultWorkboardSort();
case PhabricatorProjectTransaction::TYPE_DEFAULT_FILTER:
@@ -64,8 +61,6 @@
case PhabricatorProjectTransaction::TYPE_DEFAULT_SORT:
case PhabricatorProjectTransaction::TYPE_DEFAULT_FILTER:
return $xaction->getNewValue();
- case PhabricatorProjectTransaction::TYPE_HASWORKBOARD:
- return (int)$xaction->getNewValue();
case PhabricatorProjectTransaction::TYPE_BACKGROUND:
$value = $xaction->getNewValue();
if (!strlen($value)) {
@@ -82,9 +77,6 @@
PhabricatorApplicationTransaction $xaction) {
switch ($xaction->getTransactionType()) {
- case PhabricatorProjectTransaction::TYPE_HASWORKBOARD:
- $object->setHasWorkboard($xaction->getNewValue());
- return;
case PhabricatorProjectTransaction::TYPE_DEFAULT_SORT:
$object->setDefaultWorkboardSort($xaction->getNewValue());
return;
@@ -107,7 +99,6 @@
$new = $xaction->getNewValue();
switch ($xaction->getTransactionType()) {
- case PhabricatorProjectTransaction::TYPE_HASWORKBOARD:
case PhabricatorProjectTransaction::TYPE_DEFAULT_SORT:
case PhabricatorProjectTransaction::TYPE_DEFAULT_FILTER:
case PhabricatorProjectTransaction::TYPE_BACKGROUND:
diff --git a/src/applications/project/storage/PhabricatorProjectTransaction.php b/src/applications/project/storage/PhabricatorProjectTransaction.php
--- a/src/applications/project/storage/PhabricatorProjectTransaction.php
+++ b/src/applications/project/storage/PhabricatorProjectTransaction.php
@@ -3,7 +3,6 @@
final class PhabricatorProjectTransaction
extends PhabricatorModularTransaction {
- const TYPE_HASWORKBOARD = 'project:hasworkboard';
const TYPE_DEFAULT_SORT = 'project:sort';
const TYPE_DEFAULT_FILTER = 'project:filter';
const TYPE_BACKGROUND = 'project:background';
@@ -61,7 +60,6 @@
public function shouldHideForFeed() {
switch ($this->getTransactionType()) {
- case self::TYPE_HASWORKBOARD:
case self::TYPE_DEFAULT_SORT:
case self::TYPE_DEFAULT_FILTER:
case self::TYPE_BACKGROUND:
@@ -73,7 +71,7 @@
public function shouldHideForMail(array $xactions) {
switch ($this->getTransactionType()) {
- case self::TYPE_HASWORKBOARD:
+ case PhabricatorProjectWorkboardTransaction::TRANSACTIONTYPE:
case self::TYPE_DEFAULT_SORT:
case self::TYPE_DEFAULT_FILTER:
case self::TYPE_BACKGROUND:
@@ -142,17 +140,6 @@
}
break;
- case self::TYPE_HASWORKBOARD:
- if ($new) {
- return pht(
- '%s enabled the workboard for this project.',
- $author_handle);
- } else {
- return pht(
- '%s disabled the workboard for this project.',
- $author_handle);
- }
-
case self::TYPE_DEFAULT_SORT:
return pht(
'%s changed the default sort order for the project workboard.',
diff --git a/src/applications/project/xaction/PhabricatorProjectWorkboardTransaction.php b/src/applications/project/xaction/PhabricatorProjectWorkboardTransaction.php
new file mode 100644
--- /dev/null
+++ b/src/applications/project/xaction/PhabricatorProjectWorkboardTransaction.php
@@ -0,0 +1,38 @@
+<?php
+
+final class PhabricatorProjectWorkboardTransaction
+ extends PhabricatorProjectTransactionType {
+
+ const TRANSACTIONTYPE = 'project:hasworkboard';
+
+ public function generateOldValue($object) {
+ return (int)$object->getHasWorkboard();
+ }
+
+ public function generateNewValue($object, $value) {
+ return (int)$value;
+ }
+
+ public function applyInternalEffects($object, $value) {
+ $object->setHasWorkboard($value);
+ }
+
+ public function getTitle() {
+ $new = $this->getNewValue();
+
+ if ($new) {
+ return pht(
+ '%s enabled the workboard for this project.',
+ $this->renderAuthor());
+ } else {
+ return pht(
+ '%s disabled the workboard for this project.',
+ $this->renderAuthor());
+ }
+ }
+
+ public function shouldHide() {
+ return true;
+ }
+
+}

File Metadata

Mime Type
text/plain
Expires
Thu, Mar 20, 8:59 AM (1 w, 17 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7393659
Default Alt Text
D18004.diff (9 KB)

Event Timeline