Path: blob/master/src/applications/maniphest/herald/ManiphestTaskPriorityHeraldAction.php
12256 views
<?php12final class ManiphestTaskPriorityHeraldAction3extends HeraldAction {45const ACTIONCONST = 'maniphest.priority';6const DO_PRIORITY = 'do.priority';78public function supportsObject($object) {9return ($object instanceof ManiphestTask);10}1112public function getActionGroupKey() {13return HeraldApplicationActionGroup::ACTIONGROUPKEY;14}1516public function getHeraldActionName() {17return pht('Change priority to');18}1920public function supportsRuleType($rule_type) {21return ($rule_type != HeraldRuleTypeConfig::RULE_TYPE_PERSONAL);22}2324public function applyEffect($object, HeraldEffect $effect) {25$priority = head($effect->getTarget());2627if (!$priority) {28$this->logEffect(self::DO_STANDARD_EMPTY);29return;30}3132$adapter = $this->getAdapter();33$object = $adapter->getObject();34$current = $object->getPriority();3536if ($current == $priority) {37$this->logEffect(self::DO_STANDARD_NO_EFFECT, $priority);38return;39}4041$keyword_map = ManiphestTaskPriority::getTaskPriorityKeywordsMap();42$keyword = head(idx($keyword_map, $priority));4344$xaction = $adapter->newTransaction()45->setTransactionType(ManiphestTaskPriorityTransaction::TRANSACTIONTYPE)46->setNewValue($keyword);4748$adapter->queueTransaction($xaction);49$this->logEffect(self::DO_PRIORITY, $keyword);50}5152public function getHeraldActionStandardType() {53return self::STANDARD_PHID_LIST;54}5556public function renderActionDescription($value) {57$priority = head($value);58$name = ManiphestTaskPriority::getTaskPriorityName($priority);59return pht('Change priority to: %s.', $name);60}6162protected function getDatasource() {63return id(new ManiphestTaskPriorityDatasource())64->setLimit(1);65}6667protected function getDatasourceValueMap() {68return ManiphestTaskPriority::getTaskPriorityMap();69}7071protected function getActionEffectMap() {72return array(73self::DO_PRIORITY => array(74'icon' => 'fa-pencil',75'color' => 'green',76'name' => pht('Changed Task Priority'),77),78);79}8081protected function renderActionEffectDescription($type, $data) {82switch ($type) {83case self::DO_PRIORITY:84return pht(85'Changed task priority to "%s".',86ManiphestTaskPriority::getTaskPriorityName($data));87}88}8990}919293