Path: blob/master/src/applications/almanac/xaction/AlmanacDeviceStatusTransaction.php
12256 views
<?php12final class AlmanacDeviceStatusTransaction3extends AlmanacDeviceTransactionType {45const TRANSACTIONTYPE = 'almanac:device:status';67public function generateOldValue($object) {8return $object->getStatus();9}1011public function applyInternalEffects($object, $value) {12$object->setStatus($value);13}1415public function getTitle() {16$old_value = $this->getOldValue();17$new_value = $this->getNewValue();1819$old_status = AlmanacDeviceStatus::newStatusFromValue($old_value);20$new_status = AlmanacDeviceStatus::newStatusFromValue($new_value);2122$old_name = $old_status->getName();23$new_name = $new_status->getName();2425return pht(26'%s changed the status of this device from %s to %s.',27$this->renderAuthor(),28$this->renderValue($old_name),29$this->renderValue($new_name));30}3132public function validateTransactions($object, array $xactions) {33$errors = array();3435$status_map = AlmanacDeviceStatus::getStatusMap();3637$old_value = $this->generateOldValue($object);38foreach ($xactions as $xaction) {39$new_value = $xaction->getNewValue();4041if ($new_value === $old_value) {42continue;43}4445if (!isset($status_map[$new_value])) {46$errors[] = $this->newInvalidError(47pht(48'Almanac device status "%s" is unrecognized. Valid status '.49'values are: %s.',50$new_value,51implode(', ', array_keys($status_map))),52$xaction);53continue;54}55}5657return $errors;58}5960}616263