1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-02 03:32:42 +01:00

(stable) Don't offer personal saved queries in global "Search Scope" settings dropdown

Summary: Fixes T13405. We currently offer non-global custom saved queries here, but this doesn't make sense as a global default setting.

Test Plan: Saved a global search query, edited global search settings, no longer saw the non-global query as an option.

Maniphest Tasks: T13405

Differential Revision: https://secure.phabricator.com/D20793
This commit is contained in:
epriestley 2019-09-09 12:15:00 -07:00
parent 984e253d41
commit f87ec6a5df
2 changed files with 16 additions and 4 deletions

View file

@ -25,7 +25,8 @@ final class PhabricatorSearchScopeSetting
protected function getSelectOptions() {
$scopes = PhabricatorMainMenuSearchView::getGlobalSearchScopeItems(
$this->getViewer(),
new PhabricatorSettingsApplication());
new PhabricatorSettingsApplication(),
$only_global = true);
$scope_map = array();
foreach ($scopes as $scope) {

View file

@ -118,7 +118,8 @@ final class PhabricatorMainMenuSearchView extends AphrontView {
public static function getGlobalSearchScopeItems(
PhabricatorUser $viewer,
PhabricatorApplication $application = null) {
PhabricatorApplication $application = null,
$global_only = false) {
$items = array();
$items[] = array(
@ -154,14 +155,24 @@ final class PhabricatorMainMenuSearchView extends AphrontView {
$engine = id(new PhabricatorSearchApplicationSearchEngine())
->setViewer($viewer);
$engine_queries = $engine->loadEnabledNamedQueries();
$query_map = mpull($engine_queries, 'getQueryName', 'getQueryKey');
foreach ($query_map as $query_key => $query_name) {
foreach ($engine_queries as $query) {
$query_key = $query->getQueryKey();
if ($query_key == 'all') {
// Skip the builtin "All" query since it's redundant with the default
// setting.
continue;
}
// In the global "Settings" panel, we don't want to offer personal
// queries the viewer may have saved.
if ($global_only) {
if (!$query->isGlobal()) {
continue;
}
}
$query_name = $query->getQueryName();
$items[] = array(
'icon' => 'fa-certificate',
'name' => $query_name,