[ Index ] |
PHP Cross Reference of Phabricator |
[Summary view] [Print] [Text view]
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 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Sun Nov 30 09:20:46 2014 | Cross-referenced by PHPXref 0.7.1 |