Move paste search to generic search.

Summary: Begin implementing generic application search and refactoring paste search.

Test Plan: See if the paste search still works.

Reviewers: epriestley

Reviewed By: epriestley

CC: aran, Korvin

Differential Revision: https://secure.phabricator.com/D5621
This commit is contained in:
Bryan Cuccioli
2013-04-14 06:53:20 -07:00
committed by epriestley
parent a1664d4c64
commit 1b4f03b5a8
5 changed files with 121 additions and 5 deletions

View File

@@ -16,16 +16,14 @@ final class PhabricatorPasteListController extends PhabricatorPasteController {
$request = $this->getRequest();
$user = $request->getUser();
$query = id(new PhabricatorPasteQuery())
->setViewer($user)
->needContent(true);
$saved_query = new PhabricatorSavedQuery();
$nav = $this->buildSideNavView($this->filter);
$filter = $nav->getSelectedFilter();
switch ($filter) {
case 'my':
$query->withAuthorPHIDs(array($user->getPHID()));
$saved_query->setParameter('authorPHIDs', array($user->getPHID()));
$title = pht('My Pastes');
$nodata = pht("You haven't created any Pastes yet.");
break;
@@ -37,7 +35,11 @@ final class PhabricatorPasteListController extends PhabricatorPasteController {
$pager = new AphrontCursorPagerView();
$pager->readFromRequest($request);
$pastes = $query->executeWithCursorPager($pager);
$engine = new PhabricatorPasteSearchEngine();
$query = $engine->buildQueryFromSavedQuery($saved_query);
$pastes = $query->setViewer($request->getUser())
->needContent(true)
->executeWithCursorPager($pager);
$list = $this->buildPasteList($pastes);
$list->setPager($pager);

View File

@@ -0,0 +1,48 @@
<?php
/**
* Provides search functionality for the paste application.
*
* @group search
*/
final class PhabricatorPasteSearchEngine
extends PhabricatorApplicationSearchEngine {
/**
* Create a saved query object from the request.
*
* @param AphrontRequest The search request.
* @return The saved query that is built.
*/
public function buildSavedQueryFromRequest(AphrontRequest $request) {
$query = new PhabricatorSavedQuery();
return $query;
}
/**
* Executes the saved query.
*
* @param PhabricatorSavedQuery
* @return The result of the query.
*/
public function buildQueryFromSavedQuery(PhabricatorSavedQuery $saved) {
$query = id(new PhabricatorPasteQuery())
->withIDs($saved->getParameter('ids', array()))
->withPHIDs($saved->getParameter('phids', array()))
->withAuthorPHIDs($saved->getParameter('authorPHIDs', array()))
->withParentPHIDs($saved->getParameter('parentPHIDs', array()));
return $query;
}
/**
* Builds the search form using the request.
*
* @param PhabricatorSavedQuery The query to populate the form with.
* @return void
*/
public function buildSearchForm(PhabricatorSavedQuery $saved_query) {
}
}