@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Migrate Project workboard background color to modular transactions

Summary: Removes now-unused method as well. Fixes T12673.

Test Plan: UI fiddling.

Reviewers: #blessed_reviewers, epriestley

Reviewed By: #blessed_reviewers, epriestley

Subscribers: epriestley

Maniphest Tasks: T12673

Differential Revision: https://secure.phabricator.com/D18014

+31 -77
+2
src/__phutil_library_map__.php
··· 3716 3716 'PhabricatorProjectWatchController' => 'applications/project/controller/PhabricatorProjectWatchController.php', 3717 3717 'PhabricatorProjectWatcherListView' => 'applications/project/view/PhabricatorProjectWatcherListView.php', 3718 3718 'PhabricatorProjectWorkboardBackgroundColor' => 'applications/project/constants/PhabricatorProjectWorkboardBackgroundColor.php', 3719 + 'PhabricatorProjectWorkboardBackgroundTransaction' => 'applications/project/xaction/PhabricatorProjectWorkboardBackgroundTransaction.php', 3719 3720 'PhabricatorProjectWorkboardProfileMenuItem' => 'applications/project/menuitem/PhabricatorProjectWorkboardProfileMenuItem.php', 3720 3721 'PhabricatorProjectWorkboardTransaction' => 'applications/project/xaction/PhabricatorProjectWorkboardTransaction.php', 3721 3722 'PhabricatorProjectsAncestorsSearchEngineAttachment' => 'applications/project/engineextension/PhabricatorProjectsAncestorsSearchEngineAttachment.php', ··· 9166 9167 'PhabricatorProjectWatchController' => 'PhabricatorProjectController', 9167 9168 'PhabricatorProjectWatcherListView' => 'PhabricatorProjectUserListView', 9168 9169 'PhabricatorProjectWorkboardBackgroundColor' => 'Phobject', 9170 + 'PhabricatorProjectWorkboardBackgroundTransaction' => 'PhabricatorProjectTransactionType', 9169 9171 'PhabricatorProjectWorkboardProfileMenuItem' => 'PhabricatorProfileMenuItem', 9170 9172 'PhabricatorProjectWorkboardTransaction' => 'PhabricatorProjectTransactionType', 9171 9173 'PhabricatorProjectsAncestorsSearchEngineAttachment' => 'PhabricatorSearchEngineAttachment',
+2 -1
src/applications/project/controller/PhabricatorProjectBoardBackgroundController.php
··· 37 37 $xactions = array(); 38 38 39 39 $xactions[] = id(new PhabricatorProjectTransaction()) 40 - ->setTransactionType(PhabricatorProjectTransaction::TYPE_BACKGROUND) 40 + ->setTransactionType( 41 + PhabricatorProjectWorkboardBackgroundTransaction::TRANSACTIONTYPE) 41 42 ->setNewValue($background_key); 42 43 43 44 id(new PhabricatorProjectTransactionEditor())
-58
src/applications/project/editor/PhabricatorProjectTransactionEditor.php
··· 30 30 $types[] = PhabricatorTransactions::TYPE_EDIT_POLICY; 31 31 $types[] = PhabricatorTransactions::TYPE_JOIN_POLICY; 32 32 33 - $types[] = PhabricatorProjectTransaction::TYPE_BACKGROUND; 34 - 35 33 return $types; 36 - } 37 - 38 - protected function getCustomTransactionOldValue( 39 - PhabricatorLiskDAO $object, 40 - PhabricatorApplicationTransaction $xaction) { 41 - 42 - switch ($xaction->getTransactionType()) { 43 - case PhabricatorProjectTransaction::TYPE_BACKGROUND: 44 - return $object->getWorkboardBackgroundColor(); 45 - } 46 - 47 - return parent::getCustomTransactionOldValue($object, $xaction); 48 - } 49 - 50 - protected function getCustomTransactionNewValue( 51 - PhabricatorLiskDAO $object, 52 - PhabricatorApplicationTransaction $xaction) { 53 - 54 - switch ($xaction->getTransactionType()) { 55 - case PhabricatorProjectTransaction::TYPE_BACKGROUND: 56 - $value = $xaction->getNewValue(); 57 - if (!strlen($value)) { 58 - return null; 59 - } 60 - return $value; 61 - } 62 - 63 - return parent::getCustomTransactionNewValue($object, $xaction); 64 - } 65 - 66 - protected function applyCustomInternalTransaction( 67 - PhabricatorLiskDAO $object, 68 - PhabricatorApplicationTransaction $xaction) { 69 - 70 - switch ($xaction->getTransactionType()) { 71 - case PhabricatorProjectTransaction::TYPE_BACKGROUND: 72 - $object->setWorkboardBackgroundColor($xaction->getNewValue()); 73 - return; 74 - } 75 - 76 - return parent::applyCustomInternalTransaction($object, $xaction); 77 - } 78 - 79 - protected function applyCustomExternalTransaction( 80 - PhabricatorLiskDAO $object, 81 - PhabricatorApplicationTransaction $xaction) { 82 - 83 - $old = $xaction->getOldValue(); 84 - $new = $xaction->getNewValue(); 85 - 86 - switch ($xaction->getTransactionType()) { 87 - case PhabricatorProjectTransaction::TYPE_BACKGROUND: 88 - return; 89 - } 90 - 91 - return parent::applyCustomExternalTransaction($object, $xaction); 92 34 } 93 35 94 36 protected function validateAllTransactions(
+1 -18
src/applications/project/storage/PhabricatorProjectTransaction.php
··· 3 3 final class PhabricatorProjectTransaction 4 4 extends PhabricatorModularTransaction { 5 5 6 - const TYPE_BACKGROUND = 'project:background'; 7 - 8 6 // NOTE: This is deprecated, members are just a normal edge now. 9 7 const TYPE_MEMBERS = 'project:members'; 10 8 ··· 56 54 return parent::shouldHide(); 57 55 } 58 56 59 - public function shouldHideForFeed() { 60 - switch ($this->getTransactionType()) { 61 - case self::TYPE_BACKGROUND: 62 - return true; 63 - } 64 - 65 - return parent::shouldHideForFeed(); 66 - } 67 - 68 - 69 57 public function shouldHideForMail(array $xactions) { 70 58 switch ($this->getTransactionType()) { 71 59 case PhabricatorProjectWorkboardTransaction::TRANSACTIONTYPE: 72 60 case PhabricatorProjectSortTransaction::TRANSACTIONTYPE: 73 61 case PhabricatorProjectFilterTransaction::TRANSACTIONTYPE: 74 - case self::TYPE_BACKGROUND: 62 + case PhabricatorProjectWorkboardBackgroundTransaction::TRANSACTIONTYPE: 75 63 return true; 76 64 } 77 65 ··· 136 124 } 137 125 } 138 126 break; 139 - 140 - case self::TYPE_BACKGROUND: 141 - return pht( 142 - '%s changed the background color of the project workboard.', 143 - $author_handle); 144 127 } 145 128 146 129 return parent::getTitle();
+26
src/applications/project/xaction/PhabricatorProjectWorkboardBackgroundTransaction.php
··· 1 + <?php 2 + 3 + final class PhabricatorProjectWorkboardBackgroundTransaction 4 + extends PhabricatorProjectTransactionType { 5 + 6 + const TRANSACTIONTYPE = 'project:background'; 7 + 8 + public function generateOldValue($object) { 9 + return $object->getWorkboardBackgroundColor(); 10 + } 11 + 12 + public function applyInternalEffects($object, $value) { 13 + $object->setWorkboardBackgroundColor($value); 14 + } 15 + 16 + public function getTitle() { 17 + return pht( 18 + '%s changed the background color of the project workboard.', 19 + $this->renderAuthor()); 20 + } 21 + 22 + public function shouldHide() { 23 + return true; 24 + } 25 + 26 + }