Path: blob/master/src/applications/drydock/constants/DrydockLeaseStatus.php
12256 views
<?php12final class DrydockLeaseStatus3extends PhabricatorObjectStatus {45const STATUS_PENDING = 'pending';6const STATUS_ACQUIRED = 'acquired';7const STATUS_ACTIVE = 'active';8const STATUS_RELEASED = 'released';9const STATUS_BROKEN = 'broken';10const STATUS_DESTROYED = 'destroyed';1112public static function newStatusObject($key) {13return new self($key, id(new self())->getStatusSpecification($key));14}1516public static function getStatusMap() {17$map = id(new self())->getStatusSpecifications();18return ipull($map, 'name', 'key');19}2021public static function getNameForStatus($status) {22$map = id(new self())->getStatusSpecification($status);23return $map['name'];24}2526public static function getAllStatuses() {27return array_keys(id(new self())->getStatusSpecifications());28}2930public function isActivating() {31return $this->getStatusProperty('isActivating');32}3334public function isActive() {35return ($this->getKey() === self::STATUS_ACTIVE);36}3738public function canRelease() {39return $this->getStatusProperty('isReleasable');40}4142public function canReceiveCommands() {43return $this->getStatusProperty('isCommandable');44}4546protected function newStatusSpecifications() {47return array(48array(49'key' => self::STATUS_PENDING,50'name' => pht('Pending'),51'icon' => 'fa-clock-o',52'color' => 'blue',53'isReleasable' => true,54'isCommandable' => true,55'isActivating' => true,56),57array(58'key' => self::STATUS_ACQUIRED,59'name' => pht('Acquired'),60'icon' => 'fa-refresh',61'color' => 'blue',62'isReleasable' => true,63'isCommandable' => true,64'isActivating' => true,65),66array(67'key' => self::STATUS_ACTIVE,68'name' => pht('Active'),69'icon' => 'fa-check',70'color' => 'green',71'isReleasable' => true,72'isCommandable' => true,73'isActivating' => false,74),75array(76'key' => self::STATUS_RELEASED,77'name' => pht('Released'),78'icon' => 'fa-circle-o',79'color' => 'blue',80'isReleasable' => false,81'isCommandable' => false,82'isActivating' => false,83),84array(85'key' => self::STATUS_BROKEN,86'name' => pht('Broken'),87'icon' => 'fa-times',88'color' => 'indigo',89'isReleasable' => true,90'isCommandable' => true,91'isActivating' => false,92),93array(94'key' => self::STATUS_DESTROYED,95'name' => pht('Destroyed'),96'icon' => 'fa-times',97'color' => 'grey',98'isReleasable' => false,99'isCommandable' => false,100'isActivating' => false,101),102);103}104105protected function newUnknownStatusSpecification($status) {106return array(107'isReleasable' => false,108'isCommandable' => false,109'isActivating' => false,110);111}112113}114115116