1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2025-02-25 21:19:21 +01:00
phorge-phorge/src/applications/herald/view/HeraldRuleListView.php
Chad Little c5e7222f9e Modernize Herald
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
2013-05-20 08:24:07 -07:00

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;
}
}