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:
committed by
epriestley
parent
a1664d4c64
commit
1b4f03b5a8
@@ -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);
|
||||
|
||||
@@ -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) {
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user