Path: blob/master/src/applications/almanac/constants/AlmanacDeviceStatus.php
12256 views
<?php12final class AlmanacDeviceStatus3extends Phobject {45const ACTIVE = 'active';6const DISABLED = 'disabled';78private $value;910public static function newStatusFromValue($value) {11$status = new self();12$status->value = $value;13return $status;14}1516public function getValue() {17return $this->value;18}1920public function getName() {21$name = $this->getDeviceStatusProperty('name');2223if ($name === null) {24$name = pht('Unknown Almanac Device Status ("%s")', $this->getValue());25}2627return $name;28}2930public function getIconIcon() {31return $this->getDeviceStatusProperty('icon.icon');32}3334public function getIconColor() {35return $this->getDeviceStatusProperty('icon.color');36}3738public function isDisabled() {39return ($this->getValue() === self::DISABLED);40}4142public function hasStatusTag() {43return ($this->getStatusTagIcon() !== null);44}4546public function getStatusTagIcon() {47return $this->getDeviceStatusProperty('status-tag.icon');48}4950public function getStatusTagColor() {51return $this->getDeviceStatusProperty('status-tag.color');52}5354public static function getStatusMap() {55$result = array();5657foreach (self::newDeviceStatusMap() as $status_value => $ignored) {58$result[$status_value] = self::newStatusFromValue($status_value);59}6061return $result;62}6364public static function getActiveStatusList() {65$results = array();66foreach (self::newDeviceStatusMap() as $status_value => $status) {67if (empty($status['disabled'])) {68$results[] = $status_value;69}70}71return $results;72}7374public static function getDisabledStatusList() {75$results = array();76foreach (self::newDeviceStatusMap() as $status_value => $status) {77if (!empty($status['disabled'])) {78$results[] = $status_value;79}80}81return $results;82}8384private function getDeviceStatusProperty($key, $default = null) {85$map = self::newDeviceStatusMap();86$properties = idx($map, $this->getValue(), array());87return idx($properties, $key, $default);88}8990private static function newDeviceStatusMap() {91return array(92self::ACTIVE => array(93'name' => pht('Active'),94'icon.icon' => 'fa-server',95'icon.color' => 'green',96),97self::DISABLED => array(98'name' => pht('Disabled'),99'icon.icon' => 'fa-times',100'icon.color' => 'grey',101'status-tag.icon' => 'fa-times',102'status-tag.color' => 'indigo',103'disabled' => true,104),105);106}107108109}110111112