Path: blob/master/src/applications/harbormaster/xaction/plan/HarbormasterBuildPlanStatusTransaction.php
12264 views
<?php12final class HarbormasterBuildPlanStatusTransaction3extends HarbormasterBuildPlanTransactionType {45const TRANSACTIONTYPE = 'harbormaster:status';67public function generateOldValue($object) {8return $object->getPlanStatus();9}1011public function applyInternalEffects($object, $value) {12$object->setPlanStatus($value);13}1415public function getTitle() {16$new = $this->getNewValue();17if ($new === HarbormasterBuildPlan::STATUS_DISABLED) {18return pht(19'%s disabled this build plan.',20$this->renderAuthor());21} else {22return pht(23'%s enabled this build plan.',24$this->renderAuthor());25}26}2728public function validateTransactions($object, array $xactions) {29$errors = array();3031$options = array(32HarbormasterBuildPlan::STATUS_DISABLED,33HarbormasterBuildPlan::STATUS_ACTIVE,34);35$options = array_fuse($options);3637foreach ($xactions as $xaction) {38$new = $xaction->getNewValue();3940if (!isset($options[$new])) {41$errors[] = $this->newInvalidError(42pht(43'Status "%s" is not a valid build plan status. Valid '.44'statuses are: %s.',45$new,46implode(', ', $options)));47continue;48}4950}5152return $errors;53}5455public function getTransactionTypeForConduit($xaction) {56return 'status';57}5859public function getFieldValuesForConduit($xaction, $data) {60return array(61'old' => $xaction->getOldValue(),62'new' => $xaction->getNewValue(),63);64}6566}676869