Path: blob/master/src/applications/passphrase/query/PassphraseCredentialSearchEngine.php
12256 views
<?php12final class PassphraseCredentialSearchEngine3extends PhabricatorApplicationSearchEngine {45public function getResultTypeDescription() {6return pht('Passphrase Credentials');7}89public function getApplicationClassName() {10return 'PhabricatorPassphraseApplication';11}1213public function newQuery() {14return new PassphraseCredentialQuery();15}1617protected function buildCustomSearchFields() {18return array(19id(new PhabricatorSearchThreeStateField())20->setLabel(pht('Status'))21->setKey('isDestroyed')22->setOptions(23pht('Show All'),24pht('Show Only Destroyed Credentials'),25pht('Show Only Active Credentials')),26id(new PhabricatorSearchTextField())27->setLabel(pht('Name Contains'))28->setKey('name'),29);30}3132protected function buildQueryFromParameters(array $map) {33$query = $this->newQuery();3435if ($map['isDestroyed'] !== null) {36$query->withIsDestroyed($map['isDestroyed']);37}3839if (strlen($map['name'])) {40$query->withNameContains($map['name']);41}4243return $query;44}4546protected function getURI($path) {47return '/passphrase/'.$path;48}4950protected function getBuiltinQueryNames() {51return array(52'active' => pht('Active Credentials'),53'all' => pht('All Credentials'),54);55}5657public function buildSavedQueryFromBuiltin($query_key) {58$query = $this->newSavedQuery();59$query->setQueryKey($query_key);6061switch ($query_key) {62case 'all':63return $query;64case 'active':65return $query->setParameter('isDestroyed', false);66}6768return parent::buildSavedQueryFromBuiltin($query_key);69}7071protected function renderResultList(72array $credentials,73PhabricatorSavedQuery $query,74array $handles) {75assert_instances_of($credentials, 'PassphraseCredential');7677$viewer = $this->requireViewer();7879$list = new PHUIObjectItemListView();80$list->setUser($viewer);81foreach ($credentials as $credential) {8283$item = id(new PHUIObjectItemView())84->setObjectName('K'.$credential->getID())85->setHeader($credential->getName())86->setHref('/K'.$credential->getID())87->setObject($credential);8889$item->addAttribute(90pht('Login: %s', $credential->getUsername()));9192if ($credential->getIsDestroyed()) {93$item->addIcon('fa-ban', pht('Destroyed'));94$item->setDisabled(true);95}9697$type = PassphraseCredentialType::getTypeByConstant(98$credential->getCredentialType());99if ($type) {100$item->addIcon('fa-wrench', $type->getCredentialTypeName());101}102103$list->addItem($item);104}105106$result = new PhabricatorApplicationSearchResultView();107$result->setObjectList($list);108$result->setNoDataString(pht('No credentials found.'));109110return $result;111}112113protected function getNewUserBody() {114$create_button = id(new PHUIButtonView())115->setTag('a')116->setText(pht('Create a Credential'))117->setHref('/passphrase/create/')118->setColor(PHUIButtonView::GREEN);119120$icon = $this->getApplication()->getIcon();121$app_name = $this->getApplication()->getName();122$view = id(new PHUIBigInfoView())123->setIcon($icon)124->setTitle(pht('Welcome to %s', $app_name))125->setDescription(126pht('Credential management and general storage of shared secrets.'))127->addAction($create_button);128129return $view;130}131132}133134135