Differential D14704 Diff 35573 src/applications/search/engine/PhabricatorApplicationSearchEngine.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/search/engine/PhabricatorApplicationSearchEngine.php
| Show All 18 Lines | abstract class PhabricatorApplicationSearchEngine extends Phobject { | ||||
| private $application; | private $application; | ||||
| private $viewer; | private $viewer; | ||||
| private $errors = array(); | private $errors = array(); | ||||
| private $customFields = false; | private $customFields = false; | ||||
| private $request; | private $request; | ||||
| private $context; | private $context; | ||||
| private $controller; | private $controller; | ||||
| private $namedQueries; | private $namedQueries; | ||||
| private $navigationItems = array(); | |||||
| const CONTEXT_LIST = 'list'; | const CONTEXT_LIST = 'list'; | ||||
| const CONTEXT_PANEL = 'panel'; | const CONTEXT_PANEL = 'panel'; | ||||
| public function setController(PhabricatorController $controller) { | public function setController(PhabricatorController $controller) { | ||||
| $this->controller = $controller; | $this->controller = $controller; | ||||
| return $this; | return $this; | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 46 Lines • ▼ Show 20 Lines | public function setContext($context) { | ||||
| $this->context = $context; | $this->context = $context; | ||||
| return $this; | return $this; | ||||
| } | } | ||||
| public function isPanelContext() { | public function isPanelContext() { | ||||
| return ($this->context == self::CONTEXT_PANEL); | return ($this->context == self::CONTEXT_PANEL); | ||||
| } | } | ||||
| public function setNavigationItems(array $navigation_items) { | |||||
| assert_instances_of($navigation_items, 'PHUIListItemView'); | |||||
| $this->navigationItems = $navigation_items; | |||||
| return $this; | |||||
| } | |||||
| public function getNavigationItems() { | |||||
| return $this->navigationItems; | |||||
| } | |||||
| public function canUseInPanelContext() { | public function canUseInPanelContext() { | ||||
| return true; | return true; | ||||
| } | } | ||||
| public function saveQuery(PhabricatorSavedQuery $query) { | public function saveQuery(PhabricatorSavedQuery $query) { | ||||
| $query->setEngineClassName(get_class($this)); | $query->setEngineClassName(get_class($this)); | ||||
| $unguarded = AphrontWriteGuard::beginScopedUnguardedWrites(); | $unguarded = AphrontWriteGuard::beginScopedUnguardedWrites(); | ||||
| ▲ Show 20 Lines • Show All 374 Lines • ▼ Show 20 Lines | if ($viewer->isLoggedIn()) { | ||||
| $manage_uri = $this->getQueryManagementURI(); | $manage_uri = $this->getQueryManagementURI(); | ||||
| $menu->newLink(pht('Edit Queries...'), $manage_uri, 'query/edit'); | $menu->newLink(pht('Edit Queries...'), $manage_uri, 'query/edit'); | ||||
| } | } | ||||
| $menu->newLabel(pht('Search')); | $menu->newLabel(pht('Search')); | ||||
| $advanced_uri = $this->getQueryResultsPageURI('advanced'); | $advanced_uri = $this->getQueryResultsPageURI('advanced'); | ||||
| $menu->newLink(pht('Advanced Search'), $advanced_uri, 'query/advanced'); | $menu->newLink(pht('Advanced Search'), $advanced_uri, 'query/advanced'); | ||||
| foreach ($this->navigationItems as $extra_item) { | |||||
| $menu->addMenuItem($extra_item); | |||||
| } | |||||
| return $this; | return $this; | ||||
| } | } | ||||
| public function loadAllNamedQueries() { | public function loadAllNamedQueries() { | ||||
| $viewer = $this->requireViewer(); | $viewer = $this->requireViewer(); | ||||
| $builtin = $this->getBuiltinQueries($viewer); | $builtin = $this->getBuiltinQueries($viewer); | ||||
| if ($this->namedQueries === null) { | if ($this->namedQueries === null) { | ||||
| ▲ Show 20 Lines • Show All 672 Lines • Show Last 20 Lines | |||||