[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/src/applications/differential/constants/ -> DifferentialRevisionStatus.php (source)

   1  <?php
   2  
   3  /**
   4   * NOTE: you probably want {@class:ArcanistDifferentialRevisionStatus}.
   5   * This class just contains a mapping for color within the Differential
   6   * application.
   7   */
   8  
   9  final class DifferentialRevisionStatus {
  10  
  11    const COLOR_STATUS_DEFAULT = 'status';
  12    const COLOR_STATUS_DARK = 'status-dark';
  13    const COLOR_STATUS_GREEN = 'status-green';
  14    const COLOR_STATUS_RED = 'status-red';
  15  
  16    public static function getRevisionStatusColor($status) {
  17      $default = self::COLOR_STATUS_DEFAULT;
  18  
  19      $map = array(
  20        ArcanistDifferentialRevisionStatus::NEEDS_REVIEW   =>
  21          self::COLOR_STATUS_DEFAULT,
  22        ArcanistDifferentialRevisionStatus::NEEDS_REVISION =>
  23          self::COLOR_STATUS_RED,
  24        ArcanistDifferentialRevisionStatus::CHANGES_PLANNED =>
  25          self::COLOR_STATUS_RED,
  26        ArcanistDifferentialRevisionStatus::ACCEPTED       =>
  27          self::COLOR_STATUS_GREEN,
  28        ArcanistDifferentialRevisionStatus::CLOSED         =>
  29          self::COLOR_STATUS_DARK,
  30        ArcanistDifferentialRevisionStatus::ABANDONED      =>
  31          self::COLOR_STATUS_DARK,
  32        ArcanistDifferentialRevisionStatus::IN_PREPARATION =>
  33          self::COLOR_STATUS_DARK,
  34      );
  35      return idx($map, $status, $default);
  36    }
  37  
  38    public static function getRevisionStatusIcon($status) {
  39      $default = 'fa-square-o bluegrey';
  40  
  41      $map = array(
  42        ArcanistDifferentialRevisionStatus::NEEDS_REVIEW   =>
  43          'fa-square-o bluegrey',
  44        ArcanistDifferentialRevisionStatus::NEEDS_REVISION =>
  45          'fa-square-o red',
  46        ArcanistDifferentialRevisionStatus::CHANGES_PLANNED =>
  47          'fa-square-o red',
  48        ArcanistDifferentialRevisionStatus::ACCEPTED       =>
  49          'fa-square-o green',
  50        ArcanistDifferentialRevisionStatus::CLOSED         =>
  51          'fa-check-square-o',
  52        ArcanistDifferentialRevisionStatus::ABANDONED      =>
  53          'fa-check-square-o',
  54        ArcanistDifferentialRevisionStatus::IN_PREPARATION =>
  55          'fa-question-circle blue',
  56      );
  57      return idx($map, $status, $default);
  58    }
  59  
  60    public static function renderFullDescription($status) {
  61      $color = self::getRevisionStatusColor($status);
  62      $status_name =
  63        ArcanistDifferentialRevisionStatus::getNameForRevisionStatus($status);
  64  
  65      $img = id(new PHUIIconView())
  66        ->setIconFont(self::getRevisionStatusIcon($status));
  67  
  68      $tag = phutil_tag(
  69        'span',
  70        array(
  71          'class' => 'phui-header-'.$color.' plr',
  72        ),
  73        array(
  74          $img,
  75          $status_name,
  76        ));
  77  
  78      return $tag;
  79    }
  80  
  81    public static function getClosedStatuses() {
  82      $statuses = array(
  83        ArcanistDifferentialRevisionStatus::CLOSED,
  84        ArcanistDifferentialRevisionStatus::ABANDONED,
  85      );
  86  
  87      if (PhabricatorEnv::getEnvConfig('differential.close-on-accept')) {
  88        $statuses[] = ArcanistDifferentialRevisionStatus::ACCEPTED;
  89      }
  90  
  91      return $statuses;
  92    }
  93  
  94    public static function getOpenStatuses() {
  95      return array_diff(self::getAllStatuses(), self::getClosedStatuses());
  96    }
  97  
  98    public static function getAllStatuses() {
  99      return array(
 100        ArcanistDifferentialRevisionStatus::NEEDS_REVIEW,
 101        ArcanistDifferentialRevisionStatus::NEEDS_REVISION,
 102        ArcanistDifferentialRevisionStatus::CHANGES_PLANNED,
 103        ArcanistDifferentialRevisionStatus::ACCEPTED,
 104        ArcanistDifferentialRevisionStatus::CLOSED,
 105        ArcanistDifferentialRevisionStatus::ABANDONED,
 106        ArcanistDifferentialRevisionStatus::IN_PREPARATION,
 107      );
 108    }
 109  
 110    public static function isClosedStatus($status) {
 111      return in_array($status, self::getClosedStatuses());
 112    }
 113  
 114  }


Generated: Sun Nov 30 09:20:46 2014 Cross-referenced by PHPXref 0.7.1