Path: blob/master/src/applications/maniphest/herald/ManiphestTaskStatusHeraldAction.php
12256 views
<?php12final class ManiphestTaskStatusHeraldAction3extends HeraldAction {45const ACTIONCONST = 'maniphest.status';6const DO_STATUS = 'do.status';78public function supportsObject($object) {9return ($object instanceof ManiphestTask);10}1112public function getActionGroupKey() {13return HeraldApplicationActionGroup::ACTIONGROUPKEY;14}1516public function getHeraldActionName() {17return pht('Change status to');18}1920public function supportsRuleType($rule_type) {21return ($rule_type != HeraldRuleTypeConfig::RULE_TYPE_PERSONAL);22}2324public function applyEffect($object, HeraldEffect $effect) {25$status = head($effect->getTarget());2627if (!$status) {28$this->logEffect(self::DO_STANDARD_EMPTY);29return;30}3132$adapter = $this->getAdapter();33$object = $adapter->getObject();34$current = $object->getStatus();3536if ($current == $status) {37$this->logEffect(self::DO_STANDARD_NO_EFFECT, $status);38return;39}4041$xaction = $adapter->newTransaction()42->setTransactionType(ManiphestTaskStatusTransaction::TRANSACTIONTYPE)43->setNewValue($status);4445$adapter->queueTransaction($xaction);46$this->logEffect(self::DO_STATUS, $status);47}4849public function getHeraldActionStandardType() {50return self::STANDARD_PHID_LIST;51}5253public function renderActionDescription($value) {54$status = head($value);55$name = ManiphestTaskStatus::getTaskStatusName($status);56return pht('Change status to: %s.', $name);57}5859protected function getDatasource() {60return id(new ManiphestTaskStatusDatasource())61->setLimit(1);62}6364protected function getDatasourceValueMap() {65return ManiphestTaskStatus::getTaskStatusMap();66}6768protected function getActionEffectMap() {69return array(70self::DO_STATUS => array(71'icon' => 'fa-pencil',72'color' => 'green',73'name' => pht('Changed Task Status'),74),75);76}7778protected function renderActionEffectDescription($type, $data) {79switch ($type) {80case self::DO_STATUS:81return pht(82'Changed task status to "%s".',83ManiphestTaskStatus::getTaskStatusName($data));84}85}8687}888990