Remove all "FileHasObject" edge reads and writes
[phabricator.git] / src / applications / auth / query / PhabricatorAuthInviteSearchEngine.php
blobe439dd9fb88af00f3b17ec634c4ee04e6abe701a
1 <?php
3 final class PhabricatorAuthInviteSearchEngine
4 extends PhabricatorApplicationSearchEngine {
6 public function getResultTypeDescription() {
7 return pht('Auth Email Invites');
10 public function getApplicationClassName() {
11 return 'PhabricatorAuthApplication';
14 public function canUseInPanelContext() {
15 return false;
18 public function buildSavedQueryFromRequest(AphrontRequest $request) {
19 $saved = new PhabricatorSavedQuery();
21 return $saved;
24 public function buildQueryFromSavedQuery(PhabricatorSavedQuery $saved) {
25 $query = id(new PhabricatorAuthInviteQuery());
27 return $query;
30 public function buildSearchForm(
31 AphrontFormView $form,
32 PhabricatorSavedQuery $saved) {}
34 protected function getURI($path) {
35 return '/people/invite/'.$path;
38 protected function getBuiltinQueryNames() {
39 $names = array(
40 'all' => pht('All'),
43 return $names;
46 public function buildSavedQueryFromBuiltin($query_key) {
47 $query = $this->newSavedQuery();
48 $query->setQueryKey($query_key);
50 switch ($query_key) {
51 case 'all':
52 return $query;
55 return parent::buildSavedQueryFromBuiltin($query_key);
58 protected function getRequiredHandlePHIDsForResultList(
59 array $invites,
60 PhabricatorSavedQuery $query) {
62 $phids = array();
63 foreach ($invites as $invite) {
64 $phids[$invite->getAuthorPHID()] = true;
65 if ($invite->getAcceptedByPHID()) {
66 $phids[$invite->getAcceptedByPHID()] = true;
70 return array_keys($phids);
73 protected function renderResultList(
74 array $invites,
75 PhabricatorSavedQuery $query,
76 array $handles) {
77 assert_instances_of($invites, 'PhabricatorAuthInvite');
79 $viewer = $this->requireViewer();
81 $rows = array();
82 foreach ($invites as $invite) {
83 $rows[] = array(
84 $invite->getEmailAddress(),
85 $handles[$invite->getAuthorPHID()]->renderLink(),
86 ($invite->getAcceptedByPHID()
87 ? $handles[$invite->getAcceptedByPHID()]->renderLink()
88 : null),
89 phabricator_datetime($invite->getDateCreated(), $viewer),
93 $table = id(new AphrontTableView($rows))
94 ->setHeaders(
95 array(
96 pht('Email Address'),
97 pht('Sent By'),
98 pht('Accepted By'),
99 pht('Invited'),
101 ->setColumnClasses(
102 array(
105 'wide',
106 'right',
109 $result = new PhabricatorApplicationSearchResultView();
110 $result->setTable($table);
112 return $result;