Path: blob/master/src/applications/herald/view/HeraldRuleListView.php
12256 views
<?php12final class HeraldRuleListView3extends AphrontView {45private $rules;67public function setRules(array $rules) {8assert_instances_of($rules, 'HeraldRule');9$this->rules = $rules;10return $this;11}1213public function render() {14return $this->newObjectList();15}1617public function newObjectList() {18$viewer = $this->getViewer();19$rules = $this->rules;2021$handles = $viewer->loadHandles(mpull($rules, 'getAuthorPHID'));2223$content_type_map = HeraldAdapter::getEnabledAdapterMap($viewer);2425$list = id(new PHUIObjectItemListView())26->setViewer($viewer);27foreach ($rules as $rule) {28$monogram = $rule->getMonogram();2930$item = id(new PHUIObjectItemView())31->setObjectName($monogram)32->setHeader($rule->getName())33->setHref($rule->getURI());3435if ($rule->isPersonalRule()) {36$item->addIcon('fa-user', pht('Personal Rule'));37$item->addByline(38pht(39'Authored by %s',40$handles[$rule->getAuthorPHID()]->renderLink()));41} else if ($rule->isObjectRule()) {42$item->addIcon('fa-briefcase', pht('Object Rule'));43} else {44$item->addIcon('fa-globe', pht('Global Rule'));45}4647if ($rule->getIsDisabled()) {48$item->setDisabled(true);49$item->addIcon('fa-lock grey', pht('Disabled'));50} else if (!$rule->hasValidAuthor()) {51$item->setDisabled(true);52$item->addIcon('fa-user grey', pht('Author Not Active'));53}5455$content_type_name = idx($content_type_map, $rule->getContentType());56$item->addAttribute(pht('Affects: %s', $content_type_name));5758$list->addItem($item);59}6061return $list;62}6364}656667