[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/src/applications/differential/view/ -> DifferentialReviewersView.php (source)

   1  <?php
   2  
   3  final class DifferentialReviewersView extends AphrontView {
   4  
   5    private $reviewers;
   6    private $handles;
   7    private $diff;
   8  
   9    public function setReviewers(array $reviewers) {
  10      assert_instances_of($reviewers, 'DifferentialReviewer');
  11      $this->reviewers = $reviewers;
  12      return $this;
  13    }
  14  
  15    public function setHandles(array $handles) {
  16      assert_instances_of($handles, 'PhabricatorObjectHandle');
  17      $this->handles = $handles;
  18      return $this;
  19    }
  20  
  21    public function setActiveDiff(DifferentialDiff $diff) {
  22      $this->diff = $diff;
  23      return $this;
  24    }
  25  
  26    public function render() {
  27      $viewer = $this->getUser();
  28  
  29      $view = new PHUIStatusListView();
  30      foreach ($this->reviewers as $reviewer) {
  31        $phid = $reviewer->getReviewerPHID();
  32        $handle = $this->handles[$phid];
  33  
  34        // If we're missing either the diff or action information for the
  35        // reviewer, render information as current.
  36        $is_current = (!$this->diff) ||
  37                      (!$reviewer->getDiffID()) ||
  38                      ($this->diff->getID() == $reviewer->getDiffID());
  39  
  40        $item = new PHUIStatusItemView();
  41  
  42        $item->setHighlighted($reviewer->hasAuthority($viewer));
  43  
  44        switch ($reviewer->getStatus()) {
  45          case DifferentialReviewerStatus::STATUS_ADDED:
  46            $item->setIcon(
  47              PHUIStatusItemView::ICON_OPEN,
  48              'bluegrey',
  49              pht('Review Requested'));
  50            break;
  51  
  52          case DifferentialReviewerStatus::STATUS_ACCEPTED:
  53            if ($is_current) {
  54              $item->setIcon(
  55                PHUIStatusItemView::ICON_ACCEPT,
  56                'green',
  57                pht('Accepted'));
  58            } else {
  59              $item->setIcon(
  60                PHUIStatusItemView::ICON_ACCEPT,
  61                'dark',
  62                pht('Accepted Prior Diff'));
  63            }
  64            break;
  65  
  66          case DifferentialReviewerStatus::STATUS_ACCEPTED_OLDER:
  67            $item->setIcon(
  68              PHUIStatusItemView::ICON_ACCEPT,
  69              'dark',
  70              pht('Accepted Prior Diff'));
  71            break;
  72  
  73          case DifferentialReviewerStatus::STATUS_REJECTED:
  74            if ($is_current) {
  75              $item->setIcon(
  76                PHUIStatusItemView::ICON_REJECT,
  77                'red',
  78                pht('Requested Changes'));
  79            } else {
  80              $item->setIcon(
  81                PHUIStatusItemView::ICON_REJECT,
  82                'dark',
  83                pht('Requested Changes to Prior Diff'));
  84            }
  85            break;
  86  
  87          case DifferentialReviewerStatus::STATUS_REJECTED_OLDER:
  88            $item->setIcon(
  89              PHUIStatusItemView::ICON_REJECT,
  90              'dark',
  91              pht('Rejected Prior Diff'));
  92            break;
  93  
  94          case DifferentialReviewerStatus::STATUS_COMMENTED:
  95            if ($is_current) {
  96              $item->setIcon(
  97                PHUIStatusItemView::ICON_INFO,
  98                'blue',
  99                pht('Commented'));
 100            } else {
 101              $item->setIcon(
 102                'info-dark',
 103                pht('Commented Previously'));
 104            }
 105            break;
 106  
 107          case DifferentialReviewerStatus::STATUS_BLOCKING:
 108            $item->setIcon(
 109              PHUIStatusItemView::ICON_MINUS,
 110              'red',
 111              pht('Blocking Review'));
 112            break;
 113  
 114          default:
 115            $item->setIcon(
 116              PHUIStatusItemView::ICON_QUESTION,
 117              'bluegrey',
 118              pht('%s?', $reviewer->getStatus()));
 119            break;
 120  
 121        }
 122  
 123        $item->setTarget($handle->renderLink());
 124        $view->addItem($item);
 125      }
 126  
 127      return $view;
 128    }
 129  
 130  }


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