Changeset View
Changeset View
Standalone View
Standalone View
src/applications/packages/query/PackagesPackageSearchEngine.php
- This file was added.
| <?php | |||||
| final class PackagesPackageSearchEngine | |||||
| extends PhabricatorApplicationSearchEngine { | |||||
| public function getResultTypeDescription() { | |||||
| return pht('Packages'); | |||||
| } | |||||
| public function getApplicationClassName() { | |||||
| return 'PhabricatorPackagesApplication'; | |||||
| } | |||||
| public function buildSavedQueryFromRequest(AphrontRequest $request) { | |||||
| $saved = new PhabricatorSavedQuery(); | |||||
| $saved->setParameter( | |||||
| 'ownerPHIDs', | |||||
| $this->readUsersFromRequest($request, 'owners')); | |||||
| $saved->setParameter( | |||||
| 'statuses', | |||||
| $this->readListFromRequest($request, 'statuses')); | |||||
| return $saved; | |||||
| } | |||||
| public function buildQueryFromSavedQuery(PhabricatorSavedQuery $saved) { | |||||
| $query = id(new PackagesPackageQuery()) | |||||
| ->needProjectPHIDs(true); | |||||
| return $query; | |||||
| } | |||||
| public function buildSearchForm( | |||||
| AphrontFormView $form, | |||||
| PhabricatorSavedQuery $saved) {} | |||||
| protected function getURI($path) { | |||||
| return '/packages/'.$path; | |||||
| } | |||||
| protected function getBuiltinQueryNames() { | |||||
| $names = array(); | |||||
| $names['all'] = pht('All Packages'); | |||||
| return $names; | |||||
| } | |||||
| public function buildSavedQueryFromBuiltin($query_key) { | |||||
| $query = $this->newSavedQuery(); | |||||
| $query->setQueryKey($query_key); | |||||
| switch ($query_key) { | |||||
| case 'all': | |||||
| return $query; | |||||
| } | |||||
| return parent::buildSavedQueryFromBuiltin($query_key); | |||||
| } | |||||
| protected function getRequiredHandlePHIDsForResultList( | |||||
| array $packages, | |||||
| PhabricatorSavedQuery $query) { | |||||
| $phids = array(); | |||||
| return $phids; | |||||
| } | |||||
| protected function renderResultList( | |||||
| array $packages, | |||||
| PhabricatorSavedQuery $query, | |||||
| array $handles) { | |||||
| assert_instances_of($packages, 'PackagesPackage'); | |||||
| $viewer = $this->requireViewer(); | |||||
| $list = id(new PHUIObjectItemListView()); | |||||
| foreach ($packages as $package) { | |||||
| $item = id(new PHUIObjectItemView()) | |||||
| ->setObjectName($package->getName()) | |||||
| ->setHeader($package->getName()) | |||||
| ->setHref('/packages/package/'.$package->getID()); | |||||
| $project_handles = array_select_keys( | |||||
| $handles, | |||||
| $package->getProjectPHIDs()); | |||||
| if ($project_handles) { | |||||
| $item->addAttribute( | |||||
| id(new PHUIHandleTagListView()) | |||||
| ->setLimit(4) | |||||
| ->setSlim(true) | |||||
| ->setHandles($project_handles)); | |||||
| } | |||||
| $list->addItem($item); | |||||
| } | |||||
| $result = new PhabricatorApplicationSearchResultView(); | |||||
| $result->setObjectList($list); | |||||
| $result->setNoDataString(pht('No packages found.')); | |||||
| return $result; | |||||
| } | |||||
| } | |||||