@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 color to modular transactions

Test Plan: Unit tests + changing project colors.

Reviewers: #blessed_reviewers, epriestley

Reviewed By: #blessed_reviewers, epriestley

Subscribers: epriestley

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

+44 -29
+2
src/__phutil_library_map__.php
··· 3584 3584 'PhabricatorProjectBoardReorderController' => 'applications/project/controller/PhabricatorProjectBoardReorderController.php', 3585 3585 'PhabricatorProjectBoardViewController' => 'applications/project/controller/PhabricatorProjectBoardViewController.php', 3586 3586 'PhabricatorProjectCardView' => 'applications/project/view/PhabricatorProjectCardView.php', 3587 + 'PhabricatorProjectColorTransaction' => 'applications/project/xaction/PhabricatorProjectColorTransaction.php', 3587 3588 'PhabricatorProjectColorsConfigOptionType' => 'applications/project/config/PhabricatorProjectColorsConfigOptionType.php', 3588 3589 'PhabricatorProjectColumn' => 'applications/project/storage/PhabricatorProjectColumn.php', 3589 3590 'PhabricatorProjectColumnDetailController' => 'applications/project/controller/PhabricatorProjectColumnDetailController.php', ··· 8987 8988 'PhabricatorProjectBoardReorderController' => 'PhabricatorProjectBoardController', 8988 8989 'PhabricatorProjectBoardViewController' => 'PhabricatorProjectBoardController', 8989 8990 'PhabricatorProjectCardView' => 'AphrontTagView', 8991 + 'PhabricatorProjectColorTransaction' => 'PhabricatorProjectTransactionType', 8990 8992 'PhabricatorProjectColorsConfigOptionType' => 'PhabricatorConfigJSONOptionType', 8991 8993 'PhabricatorProjectColumn' => array( 8992 8994 'PhabricatorProjectDAO',
+4 -2
src/applications/project/conduit/ProjectCreateConduitAPIMethod.php
··· 52 52 53 53 if ($request->getValue('icon')) { 54 54 $xactions[] = id(new PhabricatorProjectTransaction()) 55 - ->setTransactionType(PhabricatorProjectIconTransaction::TRANSACTIONTYPE) 55 + ->setTransactionType( 56 + PhabricatorProjectIconTransaction::TRANSACTIONTYPE) 56 57 ->setNewValue($request->getValue('icon')); 57 58 } 58 59 59 60 if ($request->getValue('color')) { 60 61 $xactions[] = id(new PhabricatorProjectTransaction()) 61 - ->setTransactionType(PhabricatorProjectTransaction::TYPE_COLOR) 62 + ->setTransactionType( 63 + PhabricatorProjectColorTransaction::TRANSACTIONTYPE) 62 64 ->setNewValue($request->getValue('color')); 63 65 } 64 66
+1 -9
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_COLOR; 34 33 $types[] = PhabricatorProjectTransaction::TYPE_LOCKED; 35 34 $types[] = PhabricatorProjectTransaction::TYPE_PARENT; 36 35 $types[] = PhabricatorProjectTransaction::TYPE_MILESTONE; ··· 47 46 PhabricatorApplicationTransaction $xaction) { 48 47 49 48 switch ($xaction->getTransactionType()) { 50 - case PhabricatorProjectTransaction::TYPE_COLOR: 51 - return $object->getColor(); 52 49 case PhabricatorProjectTransaction::TYPE_LOCKED: 53 50 return (int)$object->getIsMembershipLocked(); 54 51 case PhabricatorProjectTransaction::TYPE_HASWORKBOARD: ··· 72 69 PhabricatorApplicationTransaction $xaction) { 73 70 74 71 switch ($xaction->getTransactionType()) { 75 - case PhabricatorProjectTransaction::TYPE_COLOR: 76 72 case PhabricatorProjectTransaction::TYPE_LOCKED: 77 73 case PhabricatorProjectTransaction::TYPE_PARENT: 78 74 case PhabricatorProjectTransaction::TYPE_MILESTONE: ··· 97 93 PhabricatorApplicationTransaction $xaction) { 98 94 99 95 switch ($xaction->getTransactionType()) { 100 - case PhabricatorProjectTransaction::TYPE_COLOR: 101 - $object->setColor($xaction->getNewValue()); 102 - return; 103 96 case PhabricatorProjectTransaction::TYPE_LOCKED: 104 97 $object->setIsMembershipLocked($xaction->getNewValue()); 105 98 return; ··· 136 129 $new = $xaction->getNewValue(); 137 130 138 131 switch ($xaction->getTransactionType()) { 139 - case PhabricatorProjectTransaction::TYPE_COLOR: 140 132 case PhabricatorProjectTransaction::TYPE_LOCKED: 141 133 case PhabricatorProjectTransaction::TYPE_PARENT: 142 134 case PhabricatorProjectTransaction::TYPE_MILESTONE: ··· 322 314 case PhabricatorProjectStatusTransaction::TRANSACTIONTYPE: 323 315 case PhabricatorProjectImageTransaction::TRANSACTIONTYPE: 324 316 case PhabricatorProjectIconTransaction::TRANSACTIONTYPE: 325 - case PhabricatorProjectTransaction::TYPE_COLOR: 317 + case PhabricatorProjectColorTransaction::TRANSACTIONTYPE: 326 318 PhabricatorPolicyFilter::requireCapability( 327 319 $this->requireActor(), 328 320 $object,
+3 -2
src/applications/project/engine/PhabricatorProjectEditEngine.php
··· 113 113 PhabricatorTransactions::TYPE_EDIT_POLICY, 114 114 PhabricatorTransactions::TYPE_JOIN_POLICY, 115 115 PhabricatorProjectIconTransaction::TRANSACTIONTYPE, 116 - PhabricatorProjectTransaction::TYPE_COLOR, 116 + PhabricatorProjectColorTransaction::TRANSACTIONTYPE, 117 117 ); 118 118 $unavailable = array_fuse($unavailable); 119 119 ··· 253 253 id(new PhabricatorSelectEditField()) 254 254 ->setKey('color') 255 255 ->setLabel(pht('Color')) 256 - ->setTransactionType(PhabricatorProjectTransaction::TYPE_COLOR) 256 + ->setTransactionType( 257 + PhabricatorProjectColorTransaction::TRANSACTIONTYPE) 257 258 ->setOptions(PhabricatorProjectIconSet::getColorMap()) 258 259 ->setDescription(pht('Project tag color.')) 259 260 ->setConduitDescription(pht('Change the project tag color.'))
+1 -16
src/applications/project/storage/PhabricatorProjectTransaction.php
··· 3 3 final class PhabricatorProjectTransaction 4 4 extends PhabricatorModularTransaction { 5 5 6 - const TYPE_COLOR = 'project:color'; 7 6 const TYPE_LOCKED = 'project:locked'; 8 7 const TYPE_PARENT = 'project:parent'; 9 8 const TYPE_MILESTONE = 'project:milestone'; ··· 116 115 '%s created this project.', 117 116 $this->renderHandleLink($author_phid)); 118 117 119 - case self::TYPE_COLOR: 120 - return pht( 121 - "%s set this project's color to %s.", 122 - $author_handle, 123 - PHUITagView::getShadeName($new)); 124 - break; 125 - 126 118 case self::TYPE_LOCKED: 127 119 if ($new) { 128 120 return pht( ··· 214 206 $new = $this->getNewValue(); 215 207 216 208 switch ($this->getTransactionType()) { 217 - case self::TYPE_COLOR: 218 - return pht( 219 - '%s set the color for %s to %s.', 220 - $author_handle, 221 - $object_handle, 222 - PHUITagView::getShadeName($new)); 223 - 224 209 case self::TYPE_LOCKED: 225 210 if ($new) { 226 211 return pht( ··· 245 230 case PhabricatorProjectSlugsTransaction::TRANSACTIONTYPE: 246 231 case PhabricatorProjectImageTransaction::TRANSACTIONTYPE: 247 232 case PhabricatorProjectIconTransaction::TRANSACTIONTYPE: 248 - case self::TYPE_COLOR: 233 + case PhabricatorProjectColorTransaction::TRANSACTIONTYPE: 249 234 $tags[] = self::MAILTAG_METADATA; 250 235 break; 251 236 case PhabricatorTransactions::TYPE_EDGE:
+33
src/applications/project/xaction/PhabricatorProjectColorTransaction.php
··· 1 + <?php 2 + 3 + final class PhabricatorProjectColorTransaction 4 + extends PhabricatorProjectTransactionType { 5 + 6 + const TRANSACTIONTYPE = 'project:color'; 7 + 8 + public function generateOldValue($object) { 9 + return $object->getColor(); 10 + } 11 + 12 + public function applyInternalEffects($object, $value) { 13 + $object->setColor($value); 14 + } 15 + 16 + public function getTitle() { 17 + $new = $this->getNewValue(); 18 + return pht( 19 + "%s set this project's color to %s.", 20 + $this->renderAuthor(), 21 + $this->renderValue(PHUITagView::getShadeName($new))); 22 + } 23 + 24 + public function getTitleForFeed() { 25 + $new = $this->getNewValue(); 26 + return pht( 27 + '%s set the color for %s to %s.', 28 + $this->renderAuthor(), 29 + $this->renderObject(), 30 + $this->renderValue(PHUITagView::getShadeName($new))); 31 + } 32 + 33 + }