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

at recaptime-dev/main 98 lines 2.7 kB view raw
1<?php 2 3final 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 assertValidRuleRecordFormat($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 21 protected function assertValidRuleRecordValue($value) { 22 $map = ManiphestTaskPriority::getTaskPriorityMap(); 23 if (!isset($map[$value])) { 24 throw new Exception( 25 pht( 26 'Task priority value ("%s") is not a valid task priority. '. 27 'Valid priorities are: %s.', 28 $value, 29 implode(', ', array_keys($map)))); 30 } 31 } 32 33 protected function newDropTransactions($object, $value) { 34 $value = ManiphestTaskPriority::getKeywordForTaskPriority($value); 35 return array( 36 $this->newTransaction() 37 ->setTransactionType(ManiphestTaskPriorityTransaction::TRANSACTIONTYPE) 38 ->setNewValue($value), 39 ); 40 } 41 42 protected function newDropEffects($value) { 43 $priority_name = ManiphestTaskPriority::getTaskPriorityName($value); 44 $priority_icon = ManiphestTaskPriority::getTaskPriorityIcon($value); 45 $priority_color = ManiphestTaskPriority::getTaskPriorityColor($value); 46 47 $content = pht( 48 'Change priority to %s.', 49 phutil_tag('strong', array(), $priority_name)); 50 51 return array( 52 $this->newEffect() 53 ->setIcon($priority_icon) 54 ->setColor($priority_color) 55 ->addCondition('priority', '!=', $value) 56 ->setContent($content), 57 ); 58 } 59 60 protected function getDefaultValue() { 61 return ManiphestTaskPriority::getDefaultPriority(); 62 } 63 64 protected function getPHUIXControlType() { 65 return 'select'; 66 } 67 68 protected function getPHUIXControlSpecification() { 69 $map = ManiphestTaskPriority::getTaskPriorityMap(); 70 71 return array( 72 'options' => $map, 73 'order' => array_keys($map), 74 ); 75 } 76 77 public function getRuleViewLabel() { 78 return pht('Change Priority'); 79 } 80 81 public function getRuleViewDescription($value) { 82 $priority_name = ManiphestTaskPriority::getTaskPriorityName($value); 83 84 return pht( 85 'Change task priority to %s.', 86 phutil_tag('strong', array(), $priority_name)); 87 } 88 89 public function getRuleViewIcon($value) { 90 $priority_icon = ManiphestTaskPriority::getTaskPriorityIcon($value); 91 $priority_color = ManiphestTaskPriority::getTaskPriorityColor($value); 92 93 return id(new PHUIIconView()) 94 ->setIcon($priority_icon, $priority_color); 95 } 96 97 98}