Page MenuHomePhabricator

D16202.id.diff
No OneTemporary

D16202.id.diff

diff --git a/src/applications/maniphest/relationship/ManiphestTaskCloseAsDuplicateRelationship.php b/src/applications/maniphest/relationship/ManiphestTaskCloseAsDuplicateRelationship.php
--- a/src/applications/maniphest/relationship/ManiphestTaskCloseAsDuplicateRelationship.php
+++ b/src/applications/maniphest/relationship/ManiphestTaskCloseAsDuplicateRelationship.php
@@ -38,7 +38,8 @@
}
protected function newRelationshipSource() {
- return new ManiphestTaskRelationshipSource();
+ return id(new ManiphestTaskRelationshipSource())
+ ->setSelectedFilter('open');
}
public function getRequiredRelationshipCapabilities() {
diff --git a/src/applications/maniphest/relationship/ManiphestTaskHasParentRelationship.php b/src/applications/maniphest/relationship/ManiphestTaskHasParentRelationship.php
--- a/src/applications/maniphest/relationship/ManiphestTaskHasParentRelationship.php
+++ b/src/applications/maniphest/relationship/ManiphestTaskHasParentRelationship.php
@@ -38,7 +38,8 @@
}
protected function newRelationshipSource() {
- return new ManiphestTaskRelationshipSource();
+ return id(new ManiphestTaskRelationshipSource())
+ ->setSelectedFilter('open');
}
}
diff --git a/src/applications/maniphest/relationship/ManiphestTaskHasSubtaskRelationship.php b/src/applications/maniphest/relationship/ManiphestTaskHasSubtaskRelationship.php
--- a/src/applications/maniphest/relationship/ManiphestTaskHasSubtaskRelationship.php
+++ b/src/applications/maniphest/relationship/ManiphestTaskHasSubtaskRelationship.php
@@ -38,7 +38,8 @@
}
protected function newRelationshipSource() {
- return new ManiphestTaskRelationshipSource();
+ return id(new ManiphestTaskRelationshipSource())
+ ->setSelectedFilter('open');
}
}
diff --git a/src/applications/maniphest/relationship/ManiphestTaskMergeInRelationship.php b/src/applications/maniphest/relationship/ManiphestTaskMergeInRelationship.php
--- a/src/applications/maniphest/relationship/ManiphestTaskMergeInRelationship.php
+++ b/src/applications/maniphest/relationship/ManiphestTaskMergeInRelationship.php
@@ -38,7 +38,8 @@
}
protected function newRelationshipSource() {
- return new ManiphestTaskRelationshipSource();
+ return id(new ManiphestTaskRelationshipSource())
+ ->setSelectedFilter('open');
}
public function getRequiredRelationshipCapabilities() {
diff --git a/src/applications/search/controller/PhabricatorSearchRelationshipController.php b/src/applications/search/controller/PhabricatorSearchRelationshipController.php
--- a/src/applications/search/controller/PhabricatorSearchRelationshipController.php
+++ b/src/applications/search/controller/PhabricatorSearchRelationshipController.php
@@ -150,14 +150,6 @@
$handles = iterator_to_array($handles);
$handles = array_select_keys($handles, $dst_phids);
- // TODO: These are hard-coded for now.
- $filters = array(
- 'assigned' => pht('Assigned to Me'),
- 'created' => pht('Created By Me'),
- 'open' => pht('All Open Objects'),
- 'all' => pht('All Objects'),
- );
-
$dialog_title = $relationship->getDialogTitleText();
$dialog_header = $relationship->getDialogHeaderText();
$dialog_button = $relationship->getDialogButtonText();
@@ -165,12 +157,17 @@
$source_uri = $relationship->getSourceURI($object);
+ $source = $relationship->newSource();
+
+ $filters = $source->getFilters();
+ $selected_filter = $source->getSelectedFilter();
+
return id(new PhabricatorObjectSelectorDialog())
->setUser($viewer)
->setInitialPHIDs($initial_phids)
->setHandles($handles)
->setFilters($filters)
- ->setSelectedFilter('created')
+ ->setSelectedFilter($selected_filter)
->setExcluded($src_phid)
->setCancelURI($done_uri)
->setSearchURI($source_uri)
diff --git a/src/applications/search/relationship/DiffusionCommitRelationshipSource.php b/src/applications/search/relationship/DiffusionCommitRelationshipSource.php
--- a/src/applications/search/relationship/DiffusionCommitRelationshipSource.php
+++ b/src/applications/search/relationship/DiffusionCommitRelationshipSource.php
@@ -17,4 +17,10 @@
);
}
+ public function getFilters() {
+ $filters = parent::getFilters();
+ unset($filters['assigned']);
+ return $filters;
+ }
+
}
diff --git a/src/applications/search/relationship/PhabricatorObjectRelationshipSource.php b/src/applications/search/relationship/PhabricatorObjectRelationshipSource.php
--- a/src/applications/search/relationship/PhabricatorObjectRelationshipSource.php
+++ b/src/applications/search/relationship/PhabricatorObjectRelationshipSource.php
@@ -3,6 +3,7 @@
abstract class PhabricatorObjectRelationshipSource extends Phobject {
private $viewer;
+ private $selectedFilter;
final public function setViewer(PhabricatorUser $viewer) {
$this->viewer = $viewer;
@@ -16,4 +17,32 @@
abstract public function isEnabledForObject($object);
abstract public function getResultPHIDTypes();
+ protected function getDefaultFilter() {
+ return 'created';
+ }
+
+ final public function setSelectedFilter($selected_filter) {
+ $this->selectedFilter = $selected_filter;
+ return $this;
+ }
+
+ final public function getSelectedFilter() {
+ if ($this->selectedFilter === null) {
+ return $this->getDefaultFilter();
+ }
+
+ return $this->selectedFilter;
+ }
+
+ public function getFilters() {
+ // TODO: These are hard-coded for now, and all of this will probably be
+ // rewritten when we move to ApplicationSearch.
+ return array(
+ 'assigned' => pht('Assigned to Me'),
+ 'created' => pht('Created By Me'),
+ 'open' => pht('All Open Objects'),
+ 'all' => pht('All Objects'),
+ );
+ }
+
}
diff --git a/src/applications/search/relationship/PholioMockRelationshipSource.php b/src/applications/search/relationship/PholioMockRelationshipSource.php
--- a/src/applications/search/relationship/PholioMockRelationshipSource.php
+++ b/src/applications/search/relationship/PholioMockRelationshipSource.php
@@ -17,4 +17,10 @@
);
}
+ public function getFilters() {
+ $filters = parent::getFilters();
+ unset($filters['assigned']);
+ return $filters;
+ }
+
}
diff --git a/src/applications/search/storage/document/PhabricatorSearchDocument.php b/src/applications/search/storage/document/PhabricatorSearchDocument.php
--- a/src/applications/search/storage/document/PhabricatorSearchDocument.php
+++ b/src/applications/search/storage/document/PhabricatorSearchDocument.php
@@ -26,6 +26,9 @@
'documentCreated' => array(
'columns' => array('documentCreated'),
),
+ 'key_type' => array(
+ 'columns' => array('documentType', 'documentCreated'),
+ ),
),
) + parent::getConfiguration();
}

File Metadata

Mime Type
text/plain
Expires
Tue, May 21, 11:50 AM (1 w, 5 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6292062
Default Alt Text
D16202.id.diff (6 KB)

Event Timeline