Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F15431787
D16202.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
6 KB
Referenced Files
None
Subscribers
None
D16202.diff
View Options
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
Details
Attached
Mime Type
text/plain
Expires
Tue, Mar 25, 2:31 PM (3 d, 14 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7705344
Default Alt Text
D16202.diff (6 KB)
Attached To
Mode
D16202: Refine available filters and defaults for relationship selection
Attached
Detach File
Event Timeline
Log In to Comment