diff options
Diffstat (limited to 'app/assets/javascripts/filtered_search')
8 files changed, 33 insertions, 12 deletions
diff --git a/app/assets/javascripts/filtered_search/add_extra_tokens_for_merge_requests.js b/app/assets/javascripts/filtered_search/add_extra_tokens_for_merge_requests.js index 38a5bdd4a71..d00e6e59cf5 100644 --- a/app/assets/javascripts/filtered_search/add_extra_tokens_for_merge_requests.js +++ b/app/assets/javascripts/filtered_search/add_extra_tokens_for_merge_requests.js @@ -75,6 +75,13 @@ export default (IssuableTokenKeys, disableTargetBranchFilter = false) => { icon: 'approval', tag: '@approved-by', }, + tokenAlternative: { + formattedKey: __('Approved-By'), + key: 'approved-by', + type: 'string', + param: 'usernames', + symbol: '@', + }, condition: [ { url: 'approved_by_usernames[]=None', @@ -105,7 +112,11 @@ export default (IssuableTokenKeys, disableTargetBranchFilter = false) => { const tokenPosition = 3; IssuableTokenKeys.tokenKeys.splice(tokenPosition, 0, ...[approvedBy.token]); - IssuableTokenKeys.tokenKeysWithAlternative.splice(tokenPosition, 0, ...[approvedBy.token]); + IssuableTokenKeys.tokenKeysWithAlternative.splice( + tokenPosition, + 0, + ...[approvedBy.token, approvedBy.tokenAlternative], + ); IssuableTokenKeys.conditions.push(...approvedBy.condition); const environmentToken = { diff --git a/app/assets/javascripts/filtered_search/available_dropdown_mappings.js b/app/assets/javascripts/filtered_search/available_dropdown_mappings.js index 626a5669067..e0281b8f443 100644 --- a/app/assets/javascripts/filtered_search/available_dropdown_mappings.js +++ b/app/assets/javascripts/filtered_search/available_dropdown_mappings.js @@ -1,3 +1,4 @@ +import { sortMilestonesByDueDate } from '~/milestones/milestone_utils'; import { mergeUrlParams } from '../lib/utils/url_utility'; import DropdownAjaxFilter from './dropdown_ajax_filter'; import DropdownEmoji from './dropdown_emoji'; @@ -87,6 +88,7 @@ export default class AvailableDropdownMappings { extraArguments: { endpoint: this.getMilestoneEndpoint(), symbol: '%', + preprocessing: (milestones) => milestones.sort(sortMilestonesByDueDate), }, element: this.container.querySelector('#js-dropdown-milestone'), }, diff --git a/app/assets/javascripts/filtered_search/dropdown_ajax_filter.js b/app/assets/javascripts/filtered_search/dropdown_ajax_filter.js index 35c79891458..545719ee681 100644 --- a/app/assets/javascripts/filtered_search/dropdown_ajax_filter.js +++ b/app/assets/javascripts/filtered_search/dropdown_ajax_filter.js @@ -1,6 +1,6 @@ +import createFlash from '~/flash'; import { __ } from '~/locale'; import AjaxFilter from '../droplab/plugins/ajax_filter'; -import createFlash from '../flash'; import DropdownUtils from './dropdown_utils'; import FilteredSearchDropdown from './filtered_search_dropdown'; import FilteredSearchTokenizer from './filtered_search_tokenizer'; diff --git a/app/assets/javascripts/filtered_search/dropdown_emoji.js b/app/assets/javascripts/filtered_search/dropdown_emoji.js index 91af3a6b812..a7648a3c463 100644 --- a/app/assets/javascripts/filtered_search/dropdown_emoji.js +++ b/app/assets/javascripts/filtered_search/dropdown_emoji.js @@ -1,7 +1,7 @@ +import createFlash from '~/flash'; import { __ } from '~/locale'; import Ajax from '../droplab/plugins/ajax'; import Filter from '../droplab/plugins/filter'; -import createFlash from '../flash'; import DropdownUtils from './dropdown_utils'; import FilteredSearchDropdown from './filtered_search_dropdown'; diff --git a/app/assets/javascripts/filtered_search/dropdown_non_user.js b/app/assets/javascripts/filtered_search/dropdown_non_user.js index 93051b00756..f78644a3893 100644 --- a/app/assets/javascripts/filtered_search/dropdown_non_user.js +++ b/app/assets/javascripts/filtered_search/dropdown_non_user.js @@ -1,7 +1,7 @@ +import createFlash from '~/flash'; import { __ } from '~/locale'; import Ajax from '../droplab/plugins/ajax'; import Filter from '../droplab/plugins/filter'; -import createFlash from '../flash'; import DropdownUtils from './dropdown_utils'; import FilteredSearchDropdown from './filtered_search_dropdown'; diff --git a/app/assets/javascripts/filtered_search/filtered_search_manager.js b/app/assets/javascripts/filtered_search/filtered_search_manager.js index 707205a6502..5ba69f052c9 100644 --- a/app/assets/javascripts/filtered_search/filtered_search_manager.js +++ b/app/assets/javascripts/filtered_search/filtered_search_manager.js @@ -1,7 +1,7 @@ import { last } from 'lodash'; import recentSearchesStorageKeys from 'ee_else_ce/filtered_search/recent_searches_storage_keys'; import IssuableFilteredSearchTokenKeys from '~/filtered_search/issuable_filtered_search_token_keys'; -import { getParameterByName, getUrlParamsArray } from '~/lib/utils/common_utils'; +import createFlash from '~/flash'; import { ENTER_KEY_CODE, BACKSPACE_KEY_CODE, @@ -10,9 +10,8 @@ import { DOWN_KEY_CODE, } from '~/lib/utils/keycodes'; import { __ } from '~/locale'; -import createFlash from '../flash'; import { addClassIfElementExists } from '../lib/utils/dom_utils'; -import { visitUrl } from '../lib/utils/url_utility'; +import { visitUrl, getUrlParamsArray, getParameterByName } from '../lib/utils/url_utility'; import FilteredSearchContainer from './container'; import DropdownUtils from './dropdown_utils'; import eventHub from './event_hub'; diff --git a/app/assets/javascripts/filtered_search/filtered_search_visual_tokens.js b/app/assets/javascripts/filtered_search/filtered_search_visual_tokens.js index eec4db41b0a..7143cb50ea6 100644 --- a/app/assets/javascripts/filtered_search/filtered_search_visual_tokens.js +++ b/app/assets/javascripts/filtered_search/filtered_search_visual_tokens.js @@ -1,4 +1,5 @@ -import { objectToQueryString, spriteIcon } from '~/lib/utils/common_utils'; +import { spriteIcon } from '~/lib/utils/common_utils'; +import { objectToQuery } from '~/lib/utils/url_utility'; import FilteredSearchContainer from './container'; import VisualTokenValue from './visual_token_value'; @@ -327,7 +328,7 @@ export default class FilteredSearchVisualTokens { return endpoint; } - const queryString = objectToQueryString(JSON.parse(endpointQueryParams)); + const queryString = objectToQuery(JSON.parse(endpointQueryParams)); return `${endpoint}?${queryString}`; } diff --git a/app/assets/javascripts/filtered_search/visual_token_value.js b/app/assets/javascripts/filtered_search/visual_token_value.js index 7f4445ad4c7..707add10009 100644 --- a/app/assets/javascripts/filtered_search/visual_token_value.js +++ b/app/assets/javascripts/filtered_search/visual_token_value.js @@ -4,7 +4,7 @@ import * as Emoji from '~/emoji'; import FilteredSearchContainer from '~/filtered_search/container'; import DropdownUtils from '~/filtered_search/dropdown_utils'; import FilteredSearchVisualTokens from '~/filtered_search/filtered_search_visual_tokens'; -import { deprecatedCreateFlash as Flash } from '~/flash'; +import createFlash from '~/flash'; import AjaxCache from '~/lib/utils/ajax_cache'; import UsersCache from '~/lib/utils/users_cache'; import { __ } from '~/locale'; @@ -83,7 +83,11 @@ export default class VisualTokenValue { matchingLabel.text_color, ); }) - .catch(() => new Flash(__('An error occurred while fetching label colors.'))); + .catch(() => + createFlash({ + message: __('An error occurred while fetching label colors.'), + }), + ); } updateEpicLabel(tokenValueContainer) { @@ -105,7 +109,11 @@ export default class VisualTokenValue { VisualTokenValue.replaceEpicTitle(tokenValueContainer, matchingEpic.title, matchingEpic.id); }) - .catch(() => new Flash(__('An error occurred while adding formatted title for epic'))); + .catch(() => + createFlash({ + message: __('An error occurred while adding formatted title for epic'), + }), + ); } static replaceEpicTitle(tokenValueContainer, epicTitle, epicId) { |