Changeset View
Changeset View
Standalone View
Standalone View
src/applications/herald/query/HeraldRuleSearchEngine.php
Show First 20 Lines • Show All 49 Lines • ▼ Show 20 Lines | return array( | ||||
pht('Show Only Inactive Rules')), | pht('Show Only Inactive Rules')), | ||||
id(new PhabricatorSearchThreeStateField()) | id(new PhabricatorSearchThreeStateField()) | ||||
->setLabel(pht('Disabled Rules')) | ->setLabel(pht('Disabled Rules')) | ||||
->setKey('disabled') | ->setKey('disabled') | ||||
->setOptions( | ->setOptions( | ||||
pht('(Show All)'), | pht('(Show All)'), | ||||
pht('Show Only Disabled Rules'), | pht('Show Only Disabled Rules'), | ||||
pht('Show Only Enabled Rules')), | pht('Show Only Enabled Rules')), | ||||
id(new PhabricatorPHIDsSearchField()) | |||||
->setLabel(pht('Affected Objects')) | |||||
->setKey('affectedPHIDs') | |||||
->setAliases(array('affectedPHID')), | |||||
); | ); | ||||
} | } | ||||
protected function buildQueryFromParameters(array $map) { | protected function buildQueryFromParameters(array $map) { | ||||
$query = $this->newQuery(); | $query = $this->newQuery(); | ||||
if ($map['authorPHIDs']) { | if ($map['authorPHIDs']) { | ||||
$query->withAuthorPHIDs($map['authorPHIDs']); | $query->withAuthorPHIDs($map['authorPHIDs']); | ||||
Show All 10 Lines | protected function buildQueryFromParameters(array $map) { | ||||
if ($map['disabled'] !== null) { | if ($map['disabled'] !== null) { | ||||
$query->withDisabled($map['disabled']); | $query->withDisabled($map['disabled']); | ||||
} | } | ||||
if ($map['active'] !== null) { | if ($map['active'] !== null) { | ||||
$query->withActive($map['active']); | $query->withActive($map['active']); | ||||
} | } | ||||
if ($map['affectedPHIDs']) { | |||||
$query->withAffectedObjectPHIDs($map['affectedPHIDs']); | |||||
} | |||||
return $query; | return $query; | ||||
} | } | ||||
protected function getURI($path) { | protected function getURI($path) { | ||||
return '/herald/'.$path; | return '/herald/'.$path; | ||||
} | } | ||||
protected function getBuiltinQueryNames() { | protected function getBuiltinQueryNames() { | ||||
Show All 30 Lines | public function buildSavedQueryFromBuiltin($query_key) { | ||||
return parent::buildSavedQueryFromBuiltin($query_key); | return parent::buildSavedQueryFromBuiltin($query_key); | ||||
} | } | ||||
protected function renderResultList( | protected function renderResultList( | ||||
array $rules, | array $rules, | ||||
PhabricatorSavedQuery $query, | PhabricatorSavedQuery $query, | ||||
array $handles) { | array $handles) { | ||||
assert_instances_of($rules, 'HeraldRule'); | assert_instances_of($rules, 'HeraldRule'); | ||||
$viewer = $this->requireViewer(); | $viewer = $this->requireViewer(); | ||||
$handles = $viewer->loadHandles(mpull($rules, 'getAuthorPHID')); | |||||
$content_type_map = HeraldAdapter::getEnabledAdapterMap($viewer); | $list = id(new HeraldRuleListView()) | ||||
->setViewer($viewer) | |||||
$list = id(new PHUIObjectItemListView()) | ->setRules($rules) | ||||
->setUser($viewer); | ->newObjectList(); | ||||
foreach ($rules as $rule) { | |||||
$monogram = $rule->getMonogram(); | |||||
$item = id(new PHUIObjectItemView()) | |||||
->setObjectName($monogram) | |||||
->setHeader($rule->getName()) | |||||
->setHref("/{$monogram}"); | |||||
if ($rule->isPersonalRule()) { | |||||
$item->addIcon('fa-user', pht('Personal Rule')); | |||||
$item->addByline( | |||||
pht( | |||||
'Authored by %s', | |||||
$handles[$rule->getAuthorPHID()]->renderLink())); | |||||
} else if ($rule->isObjectRule()) { | |||||
$item->addIcon('fa-briefcase', pht('Object Rule')); | |||||
} else { | |||||
$item->addIcon('fa-globe', pht('Global Rule')); | |||||
} | |||||
if ($rule->getIsDisabled()) { | |||||
$item->setDisabled(true); | |||||
$item->addIcon('fa-lock grey', pht('Disabled')); | |||||
} else if (!$rule->hasValidAuthor()) { | |||||
$item->setDisabled(true); | |||||
$item->addIcon('fa-user grey', pht('Author Not Active')); | |||||
} | |||||
$content_type_name = idx($content_type_map, $rule->getContentType()); | |||||
$item->addAttribute(pht('Affects: %s', $content_type_name)); | |||||
$list->addItem($item); | |||||
} | |||||
$result = new PhabricatorApplicationSearchResultView(); | $result = new PhabricatorApplicationSearchResultView(); | ||||
$result->setObjectList($list); | $result->setObjectList($list); | ||||
$result->setNoDataString(pht('No rules found.')); | $result->setNoDataString(pht('No rules found.')); | ||||
return $result; | return $result; | ||||
} | } | ||||
protected function getNewUserBody() { | protected function getNewUserBody() { | ||||
$create_button = id(new PHUIButtonView()) | $create_button = id(new PHUIButtonView()) | ||||
->setTag('a') | ->setTag('a') | ||||
->setText(pht('Create Herald Rule')) | ->setText(pht('Create Herald Rule')) | ||||
->setHref('/herald/create/') | ->setHref('/herald/create/') | ||||
->setColor(PHUIButtonView::GREEN); | ->setColor(PHUIButtonView::GREEN); | ||||
Show All 15 Lines |