Page MenuHomePhabricator

D18786.diff
No OneTemporary

D18786.diff

diff --git a/src/applications/legalpad/query/LegalpadDocumentSearchEngine.php b/src/applications/legalpad/query/LegalpadDocumentSearchEngine.php
--- a/src/applications/legalpad/query/LegalpadDocumentSearchEngine.php
+++ b/src/applications/legalpad/query/LegalpadDocumentSearchEngine.php
@@ -11,105 +11,66 @@
return 'PhabricatorLegalpadApplication';
}
- public function buildSavedQueryFromRequest(AphrontRequest $request) {
- $saved = new PhabricatorSavedQuery();
- $saved->setParameter(
- 'creatorPHIDs',
- $this->readUsersFromRequest($request, 'creators'));
-
- $saved->setParameter(
- 'contributorPHIDs',
- $this->readUsersFromRequest($request, 'contributors'));
-
- $saved->setParameter(
- 'withViewerSignature',
- $request->getBool('withViewerSignature'));
-
- $saved->setParameter('createdStart', $request->getStr('createdStart'));
- $saved->setParameter('createdEnd', $request->getStr('createdEnd'));
+ public function newQuery() {
+ return id(new LegalpadDocumentQuery())
+ ->needViewerSignatures(true);
+ }
- return $saved;
+ protected function buildCustomSearchFields() {
+ return array(
+ id(new PhabricatorUsersSearchField())
+ ->setLabel(pht('Signed By'))
+ ->setKey('signerPHIDs')
+ ->setAliases(array('signer', 'signers', 'signerPHID'))
+ ->setDescription(
+ pht('Search for documents signed by given users.')),
+ id(new PhabricatorUsersSearchField())
+ ->setLabel(pht('Creators'))
+ ->setKey('creatorPHIDs')
+ ->setAliases(array('creator', 'creators', 'creatorPHID'))
+ ->setDescription(
+ pht('Search for documents with given creators.')),
+ id(new PhabricatorUsersSearchField())
+ ->setLabel(pht('Contributors'))
+ ->setKey('contributorPHIDs')
+ ->setAliases(array('contributor', 'contributors', 'contributorPHID'))
+ ->setDescription(
+ pht('Search for documents with given contributors.')),
+ id(new PhabricatorSearchDateField())
+ ->setLabel(pht('Created After'))
+ ->setKey('createdStart'),
+ id(new PhabricatorSearchDateField())
+ ->setLabel(pht('Created Before'))
+ ->setKey('createdEnd'),
+ );
}
- public function buildQueryFromSavedQuery(PhabricatorSavedQuery $saved) {
- $query = id(new LegalpadDocumentQuery())
- ->needViewerSignatures(true);
+ protected function buildQueryFromParameters(array $map) {
+ $query = $this->newQuery();
- $creator_phids = $saved->getParameter('creatorPHIDs', array());
- if ($creator_phids) {
- $query->withCreatorPHIDs($creator_phids);
+ if ($map['signerPHIDs']) {
+ $query->withSignerPHIDs($map['signerPHIDs']);
}
- $contributor_phids = $saved->getParameter('contributorPHIDs', array());
- if ($contributor_phids) {
- $query->withContributorPHIDs($contributor_phids);
+ if ($map['contributorPHIDs']) {
+ $query->withContributorPHIDs($map['creatorPHIDs']);
}
- if ($saved->getParameter('withViewerSignature')) {
- $viewer_phid = $this->requireViewer()->getPHID();
- if ($viewer_phid) {
- $query->withSignerPHIDs(array($viewer_phid));
- }
+ if ($map['creatorPHIDs']) {
+ $query->withCreatorPHIDs($map['creatorPHIDs']);
}
- $start = $this->parseDateTime($saved->getParameter('createdStart'));
- $end = $this->parseDateTime($saved->getParameter('createdEnd'));
-
- if ($start) {
- $query->withDateCreatedAfter($start);
+ if ($map['createdStart']) {
+ $query->withDateCreatedAfter($map['createdStart']);
}
- if ($end) {
- $query->withDateCreatedBefore($end);
+ if ($map['createdEnd']) {
+ $query->withDateCreatedAfter($map['createdStart']);
}
return $query;
}
- public function buildSearchForm(
- AphrontFormView $form,
- PhabricatorSavedQuery $saved_query) {
-
- $creator_phids = $saved_query->getParameter('creatorPHIDs', array());
- $contributor_phids = $saved_query->getParameter(
- 'contributorPHIDs', array());
-
- $viewer_signature = $saved_query->getParameter('withViewerSignature');
- if (!$this->requireViewer()->getPHID()) {
- $viewer_signature = false;
- }
-
- $form
- ->appendChild(
- id(new AphrontFormCheckboxControl())
- ->addCheckbox(
- 'withViewerSignature',
- 1,
- pht('Show only documents I have signed.'),
- $viewer_signature)
- ->setDisabled(!$this->requireViewer()->getPHID()))
- ->appendControl(
- id(new AphrontFormTokenizerControl())
- ->setDatasource(new PhabricatorPeopleDatasource())
- ->setName('creators')
- ->setLabel(pht('Creators'))
- ->setValue($creator_phids))
- ->appendControl(
- id(new AphrontFormTokenizerControl())
- ->setDatasource(new PhabricatorPeopleDatasource())
- ->setName('contributors')
- ->setLabel(pht('Contributors'))
- ->setValue($contributor_phids));
-
- $this->buildDateRange(
- $form,
- $saved_query,
- 'createdStart',
- pht('Created After'),
- 'createdEnd',
- pht('Created Before'));
- }
-
protected function getURI($path) {
return '/legalpad/'.$path;
}
@@ -130,10 +91,11 @@
$query = $this->newSavedQuery();
$query->setQueryKey($query_key);
+ $viewer = $this->requireViewer();
+
switch ($query_key) {
case 'signed':
- return $query
- ->setParameter('withViewerSignature', true);
+ return $query->setParameter('signerPHIDs', array($viewer->getPHID()));
case 'all':
return $query;
}
@@ -141,12 +103,6 @@
return parent::buildSavedQueryFromBuiltin($query_key);
}
- protected function getRequiredHandlePHIDsForResultList(
- array $documents,
- PhabricatorSavedQuery $query) {
- return array();
- }
-
protected function renderResultList(
array $documents,
PhabricatorSavedQuery $query,

File Metadata

Mime Type
text/plain
Expires
Thu, Mar 20, 10:11 AM (1 d, 13 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7369146
Default Alt Text
D18786.diff (5 KB)

Event Timeline