Path: blob/master/src/applications/calendar/query/PhabricatorCalendarExportSearchEngine.php
12256 views
<?php12final class PhabricatorCalendarExportSearchEngine3extends PhabricatorApplicationSearchEngine {45public function getResultTypeDescription() {6return pht('Calendar Exports');7}89public function getApplicationClassName() {10return 'PhabricatorCalendarApplication';11}1213public function canUseInPanelContext() {14return false;15}1617public function newQuery() {18$viewer = $this->requireViewer();1920return id(new PhabricatorCalendarExportQuery())21->withAuthorPHIDs(array($viewer->getPHID()));22}2324protected function buildCustomSearchFields() {25return array();26}2728protected function buildQueryFromParameters(array $map) {29$query = $this->newQuery();3031return $query;32}3334protected function getURI($path) {35return '/calendar/export/'.$path;36}3738protected function getBuiltinQueryNames() {39$names = array(40'all' => pht('All Exports'),41);4243return $names;44}4546public function buildSavedQueryFromBuiltin($query_key) {47$query = $this->newSavedQuery();48$query->setQueryKey($query_key);4950switch ($query_key) {51case 'all':52return $query;53}5455return parent::buildSavedQueryFromBuiltin($query_key);56}5758protected function renderResultList(59array $exports,60PhabricatorSavedQuery $query,61array $handles) {6263assert_instances_of($exports, 'PhabricatorCalendarExport');64$viewer = $this->requireViewer();6566$list = new PHUIObjectItemListView();67foreach ($exports as $export) {68$item = id(new PHUIObjectItemView())69->setViewer($viewer)70->setObjectName(pht('Export %d', $export->getID()))71->setHeader($export->getName())72->setHref($export->getURI());7374if ($export->getIsDisabled()) {75$item->setDisabled(true);76}7778$mode = $export->getPolicyMode();79$policy_icon = PhabricatorCalendarExport::getPolicyModeIcon($mode);80$policy_name = PhabricatorCalendarExport::getPolicyModeName($mode);81$policy_color = PhabricatorCalendarExport::getPolicyModeColor($mode);8283$item->addIcon(84"{$policy_icon} {$policy_color}",85$policy_name);8687$list->addItem($item);88}8990$result = new PhabricatorApplicationSearchResultView();91$result->setObjectList($list);92$result->setNoDataString(pht('No exports found.'));9394return $result;95}9697protected function getNewUserBody() {98$doc_name = 'Calendar User Guide: Exporting Events';99$doc_href = PhabricatorEnv::getDoclink($doc_name);100101$create_button = id(new PHUIButtonView())102->setTag('a')103->setIcon('fa-book white')104->setText($doc_name)105->setHref($doc_href)106->setColor(PHUIButtonView::GREEN);107108$icon = $this->getApplication()->getIcon();109$app_name = $this->getApplication()->getName();110$view = id(new PHUIBigInfoView())111->setIcon('fa-download')112->setTitle(pht('No Exports Configured'))113->setDescription(114pht(115'You have not set up any events for export from Calendar yet. '.116'See the documentation for instructions on how to get started.'))117->addAction($create_button);118119return $view;120}121122}123124125