newTransaction() ->setTransactionType(ManiphestTaskStatusTransaction::TRANSACTIONTYPE) ->setNewValue($value), ); } protected function newDropEffects($value) { $status_name = ManiphestTaskStatus::getTaskStatusName($value); $status_icon = ManiphestTaskStatus::getStatusIcon($value); $status_color = ManiphestTaskStatus::getStatusColor($value); $content = pht( 'Change status to %s.', phutil_tag('strong', array(), $status_name)); return array( $this->newEffect() ->setIcon($status_icon) ->setColor($status_color) ->addCondition('status', '!=', $value) ->setContent($content), ); } protected function getDefaultValue() { return ManiphestTaskStatus::getDefaultClosedStatus(); } protected function getPHUIXControlType() { return 'select'; } protected function getPHUIXControlSpecification() { $map = ManiphestTaskStatus::getTaskStatusMap(); return array( 'options' => $map, 'order' => array_keys($map), ); } public function getRuleViewLabel() { return pht('Change Status'); } public function getRuleViewDescription($value) { $status_name = ManiphestTaskStatus::getTaskStatusName($value); return pht( 'Change task status to %s.', phutil_tag('strong', array(), $status_name)); } public function getRuleViewIcon($value) { $status_icon = ManiphestTaskStatus::getStatusIcon($value); $status_color = ManiphestTaskStatus::getStatusColor($value); return id(new PHUIIconView()) ->setIcon($status_icon, $status_color); } }