diff --git a/src/applications/metamta/query/PhabricatorMetaMTAMailSearchEngine.php b/src/applications/metamta/query/PhabricatorMetaMTAMailSearchEngine.php index 04055e756..fba68dddd 100644 --- a/src/applications/metamta/query/PhabricatorMetaMTAMailSearchEngine.php +++ b/src/applications/metamta/query/PhabricatorMetaMTAMailSearchEngine.php @@ -1,123 +1,124 @@ setLabel(pht('Actors')) ->setKey('actorPHIDs') ->setAliases(array('actor', 'actors')), id(new PhabricatorSearchUsersField()) ->setLabel(pht('Recipients')) ->setKey('recipientPHIDs') ->setAliases(array('recipient', 'recipients')), ); } protected function buildQueryFromParameters(array $map) { $query = $this->newQuery(); if ($map['actorPHIDs']) { $query->withActorPHIDs($map['actorPHIDs']); } if ($map['recipientPHIDs']) { $query->withRecipientPHIDs($map['recipientPHIDs']); } return $query; } protected function getURI($path) { return '/mail/'.$path; } protected function getBuiltinQueryNames() { $names = array( 'inbox' => pht('Inbox'), 'outbox' => pht('Outbox'), ); return $names; } public function buildSavedQueryFromBuiltin($query_key) { $viewer = $this->requireViewer(); $query = $this->newSavedQuery(); $query->setQueryKey($query_key); switch ($query_key) { case 'inbox': return $query->setParameter( 'recipientPHIDs', array($viewer->getPHID())); case 'outbox': return $query->setParameter( 'actorPHIDs', array($viewer->getPHID())); } return parent::buildSavedQueryFromBuiltin($query_key); } protected function getRequiredHandlePHIDsForResultList( array $objects, PhabricatorSavedQuery $query) { $phids = array(); foreach ($objects as $mail) { $phids[] = $mail->getExpandedRecipientPHIDs(); } return array_mergev($phids); } protected function renderResultList( array $mails, PhabricatorSavedQuery $query, array $handles) { assert_instances_of($mails, 'PhabricatorMetaMTAMail'); $viewer = $this->requireViewer(); $list = new PHUIObjectItemListView(); foreach ($mails as $mail) { if ($mail->hasSensitiveContent()) { $header = pht( 'Mail %d: < content redacted >', $mail->getID()); } else { $header = pht( 'Mail %d: %s', $mail->getID(), $mail->getSubject()); } $item = id(new PHUIObjectItemView()) ->setObject($mail) ->setHeader($header) ->setHref($this->getURI('detail/'.$mail->getID())); $list->addItem($item); } - return $list; + return id(new PhabricatorApplicationSearchResultView()) + ->setContent($list); } } diff --git a/src/applications/search/view/PhabricatorApplicationSearchResultView.php b/src/applications/search/view/PhabricatorApplicationSearchResultView.php index 93351030e..729b6833b 100644 --- a/src/applications/search/view/PhabricatorApplicationSearchResultView.php +++ b/src/applications/search/view/PhabricatorApplicationSearchResultView.php @@ -1,86 +1,87 @@ objectList = $list; return $this; } public function getObjectList() { $list = $this->objectList; if ($list) { if ($this->noDataString) { $list->setNoDataString($this->noDataString); } else { $list->setNoDataString(pht('No results found for this query.')); } } return $list; } public function setTable(AphrontTableView $table) { $this->table = $table; return $this; } public function getTable() { return $this->table; } public function setInfoView(PHUIInfoView $infoview) { $this->infoView = $infoview; return $this; } public function getInfoView() { return $this->infoView; } public function setContent($content) { $this->content = $content; + return $this; } public function getContent() { return $this->content; } public function addAction(PHUIButtonView $button) { $this->actions[] = $button; return $this; } public function getActions() { return $this->actions; } public function setCollapsed($collapsed) { $this->collapsed = $collapsed; return $this; } public function getCollapsed() { return $this->collapsed; } public function setNoDataString($nodata) { $this->noDataString = $nodata; return $this; } } diff --git a/src/infrastructure/daemon/workers/query/PhabricatorWorkerBulkJobSearchEngine.php b/src/infrastructure/daemon/workers/query/PhabricatorWorkerBulkJobSearchEngine.php index e27cd04f1..576b111fa 100644 --- a/src/infrastructure/daemon/workers/query/PhabricatorWorkerBulkJobSearchEngine.php +++ b/src/infrastructure/daemon/workers/query/PhabricatorWorkerBulkJobSearchEngine.php @@ -1,98 +1,97 @@ newQuery(); if ($map['authorPHIDs']) { $query->withAuthorPHIDs($map['authorPHIDs']); } return $query; } protected function buildCustomSearchFields() { return array( id(new PhabricatorSearchUsersField()) ->setLabel(pht('Authors')) ->setKey('authorPHIDs') ->setAliases(array('author', 'authors')), ); } protected function getURI($path) { return '/daemon/bulk/'.$path; } protected function getBuiltinQueryNames() { $names = array(); if ($this->requireViewer()->isLoggedIn()) { $names['authored'] = pht('Authored Jobs'); } $names['all'] = pht('All Jobs'); return $names; } public function buildSavedQueryFromBuiltin($query_key) { $query = $this->newSavedQuery(); $query->setQueryKey($query_key); switch ($query_key) { case 'all': return $query; case 'authored': return $query->setParameter( 'authorPHIDs', array($this->requireViewer()->getPHID())); } return parent::buildSavedQueryFromBuiltin($query_key); } protected function renderResultList( array $jobs, PhabricatorSavedQuery $query, array $handles) { assert_instances_of($jobs, 'PhabricatorWorkerBulkJob'); $viewer = $this->requireViewer(); $list = id(new PHUIObjectItemListView()) ->setUser($viewer); foreach ($jobs as $job) { $size = pht('%s Bulk Task(s)', new PhutilNumber($job->getSize())); $item = id(new PHUIObjectItemView()) ->setObjectName(pht('Bulk Job %d', $job->getID())) ->setHeader($job->getJobName()) ->addAttribute(phabricator_datetime($job->getDateCreated(), $viewer)) ->setHref($job->getManageURI()) ->addIcon($job->getStatusIcon(), $job->getStatusName()) ->addIcon('none', $size); $list->addItem($item); } - // TODO: Needs new wrapper when merging to redesign. - - return $list; + return id(new PhabricatorApplicationSearchResultView()) + ->setContent($list); } }