~ubuntu-branches/ubuntu/vivid/phabricator/vivid-proposed

« back to all changes in this revision

Viewing changes to phabricator/src/applications/passphrase/query/PassphraseCredentialSearchEngine.php

  • Committer: Package Import Robot
  • Author(s): Richard Sellam
  • Date: 2014-10-23 20:49:26 UTC
  • Revision ID: package-import@ubuntu.com-20141023204926-ar20vnfjqwxysrce
Tags: upstream-0~git20141023
ImportĀ upstreamĀ versionĀ 0~git20141023

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?php
 
2
 
 
3
final class PassphraseCredentialSearchEngine
 
4
  extends PhabricatorApplicationSearchEngine {
 
5
 
 
6
  public function getResultTypeDescription() {
 
7
    return pht('Passphrase Credentials');
 
8
  }
 
9
 
 
10
  public function getApplicationClassName() {
 
11
    return 'PhabricatorPassphraseApplication';
 
12
  }
 
13
 
 
14
  public function buildSavedQueryFromRequest(AphrontRequest $request) {
 
15
    $saved = new PhabricatorSavedQuery();
 
16
 
 
17
    $saved->setParameter(
 
18
      'isDestroyed',
 
19
      $this->readBoolFromRequest($request, 'isDestroyed'));
 
20
 
 
21
    return $saved;
 
22
  }
 
23
 
 
24
  public function buildQueryFromSavedQuery(PhabricatorSavedQuery $saved) {
 
25
    $query = id(new PassphraseCredentialQuery());
 
26
 
 
27
    $destroyed = $saved->getParameter('isDestroyed');
 
28
    if ($destroyed !== null) {
 
29
      $query->withIsDestroyed($destroyed);
 
30
    }
 
31
 
 
32
    return $query;
 
33
  }
 
34
 
 
35
  public function buildSearchForm(
 
36
    AphrontFormView $form,
 
37
    PhabricatorSavedQuery $saved_query) {
 
38
 
 
39
    $form->appendChild(
 
40
      id(new AphrontFormSelectControl())
 
41
        ->setName('isDestroyed')
 
42
        ->setLabel(pht('Status'))
 
43
        ->setValue($this->getBoolFromQuery($saved_query, 'isDestroyed'))
 
44
        ->setOptions(
 
45
          array(
 
46
            '' => pht('Show All Credentials'),
 
47
            'false' => pht('Show Only Active Credentials'),
 
48
            'true' => pht('Show Only Destroyed Credentials'),
 
49
          )));
 
50
  }
 
51
 
 
52
  protected function getURI($path) {
 
53
    return '/passphrase/'.$path;
 
54
  }
 
55
 
 
56
  public function getBuiltinQueryNames() {
 
57
    return array(
 
58
      'active' => pht('Active Credentials'),
 
59
      'all' => pht('All Credentials'),
 
60
    );
 
61
  }
 
62
 
 
63
  public function buildSavedQueryFromBuiltin($query_key) {
 
64
    $query = $this->newSavedQuery();
 
65
    $query->setQueryKey($query_key);
 
66
 
 
67
    switch ($query_key) {
 
68
      case 'all':
 
69
        return $query;
 
70
      case 'active':
 
71
        return $query->setParameter('isDestroyed', false);
 
72
    }
 
73
 
 
74
    return parent::buildSavedQueryFromBuiltin($query_key);
 
75
  }
 
76
 
 
77
  protected function renderResultList(
 
78
    array $credentials,
 
79
    PhabricatorSavedQuery $query,
 
80
    array $handles) {
 
81
    assert_instances_of($credentials, 'PassphraseCredential');
 
82
 
 
83
    $viewer = $this->requireViewer();
 
84
 
 
85
    $list = new PHUIObjectItemListView();
 
86
    $list->setUser($viewer);
 
87
    foreach ($credentials as $credential) {
 
88
 
 
89
      $item = id(new PHUIObjectItemView())
 
90
        ->setObjectName('K'.$credential->getID())
 
91
        ->setHeader($credential->getName())
 
92
        ->setHref('/K'.$credential->getID())
 
93
        ->setObject($credential);
 
94
 
 
95
      $item->addAttribute(
 
96
        pht('Login: %s', $credential->getUsername()));
 
97
 
 
98
      if ($credential->getIsDestroyed()) {
 
99
        $item->addIcon('fa-ban', pht('Destroyed'));
 
100
        $item->setDisabled(true);
 
101
      }
 
102
 
 
103
      $type = PassphraseCredentialType::getTypeByConstant(
 
104
        $credential->getCredentialType());
 
105
      if ($type) {
 
106
        $item->addIcon('fa-wrench', $type->getCredentialTypeName());
 
107
      }
 
108
 
 
109
      $list->addItem($item);
 
110
    }
 
111
 
 
112
    return $list;
 
113
  }
 
114
 
 
115
}