public function buildSearchForm(AphrontFormView $form, PhabricatorSavedQuery $saved_query) { $phids = $saved_query->getParameter('authorPHIDs', array()); $author_handles = id(new PhabricatorHandleQuery())->setViewer($this->requireViewer())->withPHIDs($phids)->execute(); $status = $saved_query->getParameter('status'); $names = implode(', ', $saved_query->getParameter('names', array())); $like = $saved_query->getParameter('nameLike'); $color = $saved_query->getParameter('flagColor', '-1'); $form->appendChild(id(new AphrontFormSelectControl())->setName('status')->setLabel(pht('Status'))->setOptions(PhabricatorMacroQuery::getStatusOptions())->setValue($status))->appendChild(id(new AphrontFormTokenizerControl())->setDatasource(new PhabricatorPeopleDatasource())->setName('authors')->setLabel(pht('Authors'))->setValue($author_handles))->appendChild(id(new AphrontFormTextControl())->setName('nameLike')->setLabel(pht('Name Contains'))->setValue($like))->appendChild(id(new AphrontFormTextControl())->setName('names')->setLabel(pht('Exact Names'))->setValue($names))->appendChild(id(new AphrontFormSelectControl())->setName('flagColor')->setLabel(pht('Marked with Flag'))->setOptions(PhabricatorMacroQuery::getFlagColorsOptions())->setValue($color)); $this->buildDateRange($form, $saved_query, 'createdStart', pht('Created After'), 'createdEnd', pht('Created Before')); }
protected function buildCustomSearchFields() { return array(id(new PhabricatorSearchSelectField())->setLabel(pht('Status'))->setKey('status')->setOptions(PhabricatorMacroQuery::getStatusOptions()), id(new PhabricatorUsersSearchField())->setLabel(pht('Authors'))->setKey('authorPHIDs')->setAliases(array('author', 'authors')), id(new PhabricatorSearchTextField())->setLabel(pht('Name Contains'))->setKey('nameLike'), id(new PhabricatorSearchStringListField())->setLabel(pht('Exact Names'))->setKey('names'), id(new PhabricatorSearchSelectField())->setLabel(pht('Marked with Flag'))->setKey('flagColor')->setDefault('-1')->setOptions(PhabricatorMacroQuery::getFlagColorsOptions()), id(new PhabricatorSearchDateField())->setLabel(pht('Created After'))->setKey('createdStart'), id(new PhabricatorSearchDateField())->setLabel(pht('Created Before'))->setKey('createdEnd')); }