@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.

Add workboard trigger rule for changing task priority

Summary: This is a copy/paste/find-and-replace-all of the status rule added by D20288.

Test Plan: Made some triggers, moved some tasks, edited some triggers. Grepped for the word "status" in the new file.

Reviewers: epriestley

Reviewed By: epriestley

Subscribers: Korvin

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

+96
+2
src/__phutil_library_map__.php
··· 4180 4180 'PhabricatorProjectTriggerEditor' => 'applications/project/editor/PhabricatorProjectTriggerEditor.php', 4181 4181 'PhabricatorProjectTriggerInvalidRule' => 'applications/project/trigger/PhabricatorProjectTriggerInvalidRule.php', 4182 4182 'PhabricatorProjectTriggerListController' => 'applications/project/controller/trigger/PhabricatorProjectTriggerListController.php', 4183 + 'PhabricatorProjectTriggerManiphestPriorityRule' => 'applications/project/trigger/PhabricatorProjectTriggerManiphestPriorityRule.php', 4183 4184 'PhabricatorProjectTriggerManiphestStatusRule' => 'applications/project/trigger/PhabricatorProjectTriggerManiphestStatusRule.php', 4184 4185 'PhabricatorProjectTriggerNameTransaction' => 'applications/project/xaction/trigger/PhabricatorProjectTriggerNameTransaction.php', 4185 4186 'PhabricatorProjectTriggerPHIDType' => 'applications/project/phid/PhabricatorProjectTriggerPHIDType.php', ··· 10318 10319 'PhabricatorProjectTriggerEditor' => 'PhabricatorApplicationTransactionEditor', 10319 10320 'PhabricatorProjectTriggerInvalidRule' => 'PhabricatorProjectTriggerRule', 10320 10321 'PhabricatorProjectTriggerListController' => 'PhabricatorProjectTriggerController', 10322 + 'PhabricatorProjectTriggerManiphestPriorityRule' => 'PhabricatorProjectTriggerRule', 10321 10323 'PhabricatorProjectTriggerManiphestStatusRule' => 'PhabricatorProjectTriggerRule', 10322 10324 'PhabricatorProjectTriggerNameTransaction' => 'PhabricatorProjectTriggerTransactionType', 10323 10325 'PhabricatorProjectTriggerPHIDType' => 'PhabricatorPHIDType',
+94
src/applications/project/trigger/PhabricatorProjectTriggerManiphestPriorityRule.php
··· 1 + <?php 2 + 3 + final class PhabricatorProjectTriggerManiphestPriorityRule 4 + extends PhabricatorProjectTriggerRule { 5 + 6 + const TRIGGERTYPE = 'task.priority'; 7 + 8 + public function getSelectControlName() { 9 + return pht('Change priority to'); 10 + } 11 + 12 + protected function assertValidRuleValue($value) { 13 + if (!is_string($value)) { 14 + throw new Exception( 15 + pht( 16 + 'Priority rule value should be a string, but is not (value is "%s").', 17 + phutil_describe_type($value))); 18 + } 19 + 20 + $map = ManiphestTaskPriority::getTaskPriorityMap(); 21 + if (!isset($map[$value])) { 22 + throw new Exception( 23 + pht( 24 + 'Rule value ("%s") is not a valid task priority.', 25 + $value)); 26 + } 27 + } 28 + 29 + protected function newDropTransactions($object, $value) { 30 + $value = ManiphestTaskPriority::getKeywordForTaskPriority($value); 31 + return array( 32 + $this->newTransaction() 33 + ->setTransactionType(ManiphestTaskPriorityTransaction::TRANSACTIONTYPE) 34 + ->setNewValue($value), 35 + ); 36 + } 37 + 38 + protected function newDropEffects($value) { 39 + $priority_name = ManiphestTaskPriority::getTaskPriorityName($value); 40 + $priority_icon = ManiphestTaskPriority::getTaskPriorityIcon($value); 41 + $priority_color = ManiphestTaskPriority::getTaskPriorityColor($value); 42 + 43 + $content = pht( 44 + 'Change priority to %s.', 45 + phutil_tag('strong', array(), $priority_name)); 46 + 47 + return array( 48 + $this->newEffect() 49 + ->setIcon($priority_icon) 50 + ->setColor($priority_color) 51 + ->addCondition('priority', '!=', $value) 52 + ->setContent($content), 53 + ); 54 + } 55 + 56 + protected function getDefaultValue() { 57 + return head_key(ManiphestTaskPriority::getTaskPriorityMap()); 58 + } 59 + 60 + protected function getPHUIXControlType() { 61 + return 'select'; 62 + } 63 + 64 + protected function getPHUIXControlSpecification() { 65 + $map = ManiphestTaskPriority::getTaskPriorityMap(); 66 + 67 + return array( 68 + 'options' => $map, 69 + 'order' => array_keys($map), 70 + ); 71 + } 72 + 73 + public function getRuleViewLabel() { 74 + return pht('Change Priority'); 75 + } 76 + 77 + public function getRuleViewDescription($value) { 78 + $priority_name = ManiphestTaskPriority::getTaskPriorityName($value); 79 + 80 + return pht( 81 + 'Change task priority to %s.', 82 + phutil_tag('strong', array(), $priority_name)); 83 + } 84 + 85 + public function getRuleViewIcon($value) { 86 + $priority_icon = ManiphestTaskPriority::getTaskPriorityIcon($value); 87 + $priority_color = ManiphestTaskPriority::getTaskPriorityColor($value); 88 + 89 + return id(new PHUIIconView()) 90 + ->setIcon($priority_icon, $priority_color); 91 + } 92 + 93 + 94 + }