Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F15401404
D20787.id49564.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
5 KB
Referenced Files
None
Subscribers
None
D20787.id49564.diff
View Options
diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -4655,6 +4655,7 @@
'PhabricatorSearchScopeSetting' => 'applications/settings/setting/PhabricatorSearchScopeSetting.php',
'PhabricatorSearchSelectField' => 'applications/search/field/PhabricatorSearchSelectField.php',
'PhabricatorSearchService' => 'infrastructure/cluster/search/PhabricatorSearchService.php',
+ 'PhabricatorSearchSettingsPanel' => 'applications/settings/panel/PhabricatorSearchSettingsPanel.php',
'PhabricatorSearchStringListField' => 'applications/search/field/PhabricatorSearchStringListField.php',
'PhabricatorSearchSubscribersField' => 'applications/search/field/PhabricatorSearchSubscribersField.php',
'PhabricatorSearchTextField' => 'applications/search/field/PhabricatorSearchTextField.php',
@@ -11248,9 +11249,10 @@
'PhabricatorSearchResultBucketGroup' => 'Phobject',
'PhabricatorSearchResultView' => 'AphrontView',
'PhabricatorSearchSchemaSpec' => 'PhabricatorConfigSchemaSpec',
- 'PhabricatorSearchScopeSetting' => 'PhabricatorInternalSetting',
+ 'PhabricatorSearchScopeSetting' => 'PhabricatorSelectSetting',
'PhabricatorSearchSelectField' => 'PhabricatorSearchField',
'PhabricatorSearchService' => 'Phobject',
+ 'PhabricatorSearchSettingsPanel' => 'PhabricatorEditEngineSettingsPanel',
'PhabricatorSearchStringListField' => 'PhabricatorSearchField',
'PhabricatorSearchSubscribersField' => 'PhabricatorSearchTokenizerField',
'PhabricatorSearchTextField' => 'PhabricatorSearchField',
diff --git a/src/applications/settings/panel/PhabricatorSearchSettingsPanel.php b/src/applications/settings/panel/PhabricatorSearchSettingsPanel.php
new file mode 100644
--- /dev/null
+++ b/src/applications/settings/panel/PhabricatorSearchSettingsPanel.php
@@ -0,0 +1,28 @@
+<?php
+
+final class PhabricatorSearchSettingsPanel
+ extends PhabricatorEditEngineSettingsPanel {
+
+ const PANELKEY = 'search';
+
+ public function getPanelName() {
+ return pht('Search');
+ }
+
+ public function getPanelMenuIcon() {
+ return 'fa-search';
+ }
+
+ public function getPanelGroupKey() {
+ return PhabricatorSettingsApplicationsPanelGroup::PANELGROUPKEY;
+ }
+
+ public function isTemplatePanel() {
+ return true;
+ }
+
+ public function isUserPanel() {
+ return false;
+ }
+
+}
diff --git a/src/applications/settings/setting/PhabricatorSearchScopeSetting.php b/src/applications/settings/setting/PhabricatorSearchScopeSetting.php
--- a/src/applications/settings/setting/PhabricatorSearchScopeSetting.php
+++ b/src/applications/settings/setting/PhabricatorSearchScopeSetting.php
@@ -1,7 +1,7 @@
<?php
final class PhabricatorSearchScopeSetting
- extends PhabricatorInternalSetting {
+ extends PhabricatorSelectSetting {
const SETTINGKEY = 'search-scope';
@@ -9,8 +9,33 @@
return pht('Search Scope');
}
+ public function getSettingPanelKey() {
+ return PhabricatorSearchSettingsPanel::PANELKEY;
+ }
+
public function getSettingDefaultValue() {
return 'all';
}
+ protected function getControlInstructions() {
+ return pht(
+ 'Choose the default behavior of the global search in the main menu.');
+ }
+
+ protected function getSelectOptions() {
+ $scopes = PhabricatorMainMenuSearchView::getGlobalSearchScopeItems(
+ $this->getViewer(),
+ new PhabricatorSettingsApplication());
+
+ $scope_map = array();
+ foreach ($scopes as $scope) {
+ if (!isset($scope['value'])) {
+ continue;
+ }
+ $scope_map[$scope['value']] = $scope['name'];
+ }
+
+ return $scope_map;
+ }
+
}
diff --git a/src/view/page/menu/PhabricatorMainMenuSearchView.php b/src/view/page/menu/PhabricatorMainMenuSearchView.php
--- a/src/view/page/menu/PhabricatorMainMenuSearchView.php
+++ b/src/view/page/menu/PhabricatorMainMenuSearchView.php
@@ -116,8 +116,9 @@
return $form;
}
- private function buildModeSelector($selector_id, $application_id) {
- $viewer = $this->getViewer();
+ public static function getGlobalSearchScopeItems(
+ PhabricatorUser $viewer,
+ PhabricatorApplication $application) {
$items = array();
$items[] = array(
@@ -132,7 +133,6 @@
$application_value = null;
$application_icon = self::DEFAULT_APPLICATION_ICON;
- $application = $this->getApplication();
if ($application) {
$application_value = get_class($application);
if ($application->getApplicationSearchDocumentTypes()) {
@@ -185,6 +185,14 @@
'href' => PhabricatorEnv::getDoclink('Search User Guide'),
);
+ return $items;
+ }
+
+ private function buildModeSelector($selector_id, $application_id) {
+ $viewer = $this->getViewer();
+
+ $items = self::getGlobalSearchScopeItems($viewer, $this->getApplication());
+
$scope_key = PhabricatorSearchScopeSetting::SETTINGKEY;
$current_value = $viewer->getUserSetting($scope_key);
@@ -196,6 +204,13 @@
}
}
+ $application = $this->getApplication();
+
+ $application_value = null;
+ if ($application) {
+ $application_value = get_class($application);
+ }
+
$selector = id(new PHUIButtonView())
->setID($selector_id)
->addClass('phabricator-main-menu-search-dropdown')
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Mar 18, 5:29 PM (1 w, 2 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7228180
Default Alt Text
D20787.id49564.diff (5 KB)
Attached To
Mode
D20787: Add a global setting for controlling the default main menu search scope
Attached
Detach File
Event Timeline
Log In to Comment