mirror of
https://we.phorge.it/source/phorge.git
synced 2025-02-25 21:19:21 +01:00
Summary: Convert to responsive layout, pht, etc. Test Plan: Test Herald on desktop and mobile. Reviewers: epriestley, btrahan Reviewed By: epriestley CC: aran, Korvin Differential Revision: https://secure.phabricator.com/D5976
83 lines
2 KiB
PHP
83 lines
2 KiB
PHP
<?php
|
|
|
|
final class HeraldRuleListView extends AphrontView {
|
|
|
|
private $rules;
|
|
private $handles;
|
|
|
|
private $showAuthor;
|
|
private $showRuleType;
|
|
|
|
public function setRules(array $rules) {
|
|
assert_instances_of($rules, 'HeraldRule');
|
|
$this->rules = $rules;
|
|
return $this;
|
|
}
|
|
|
|
public function setHandles(array $handles) {
|
|
assert_instances_of($handles, 'PhabricatorObjectHandle');
|
|
$this->handles = $handles;
|
|
return $this;
|
|
}
|
|
|
|
public function setShowAuthor($show_author) {
|
|
$this->showAuthor = $show_author;
|
|
return $this;
|
|
}
|
|
|
|
public function setShowRuleType($show_rule_type) {
|
|
$this->showRuleType = $show_rule_type;
|
|
return $this;
|
|
}
|
|
|
|
public function render() {
|
|
|
|
$type_map = HeraldRuleTypeConfig::getRuleTypeMap();
|
|
|
|
$list = new PhabricatorObjectItemListView();
|
|
$list->setFlush(true);
|
|
$list->setCards(true);
|
|
foreach ($this->rules as $rule) {
|
|
|
|
if ($rule->getRuleType() == HeraldRuleTypeConfig::RULE_TYPE_GLOBAL) {
|
|
$author = pht('Global Rule');
|
|
} else {
|
|
$author = $this->handles[$rule->getAuthorPHID()]->renderLink();
|
|
$author = pht('Editor: %s', $author);
|
|
}
|
|
|
|
$edit_log = phutil_tag(
|
|
'a',
|
|
array(
|
|
'href' => '/herald/history/'.$rule->getID().'/',
|
|
),
|
|
pht('View Edit Log'));
|
|
|
|
$delete = javelin_tag(
|
|
'a',
|
|
array(
|
|
'href' => '/herald/delete/'.$rule->getID().'/',
|
|
'sigil' => 'workflow',
|
|
),
|
|
pht('Delete'));
|
|
|
|
$item = id(new PhabricatorObjectItemView())
|
|
->setObjectName($type_map[$rule->getRuleType()])
|
|
->setHeader($rule->getName())
|
|
->setHref('/herald/rule/'.$rule->getID().'/')
|
|
->addAttribute($edit_log)
|
|
->addIcon('none', $author)
|
|
->addAction(
|
|
id(new PhabricatorMenuItemView())
|
|
->setHref('/herald/delete/'.$rule->getID().'/')
|
|
->setIcon('delete')
|
|
->setWorkflow(true));
|
|
|
|
$list->addItem($item);
|
|
}
|
|
|
|
$list->setNoDataString(pht("No matching rules."));
|
|
|
|
return $list;
|
|
}
|
|
}
|