diff options
Diffstat (limited to 'app/assets/javascripts/issues/filtered_search_service_desk.js')
-rw-r--r-- | app/assets/javascripts/issues/filtered_search_service_desk.js | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/app/assets/javascripts/issues/filtered_search_service_desk.js b/app/assets/javascripts/issues/filtered_search_service_desk.js new file mode 100644 index 00000000000..bec207aa439 --- /dev/null +++ b/app/assets/javascripts/issues/filtered_search_service_desk.js @@ -0,0 +1,31 @@ +/* eslint-disable class-methods-use-this */ +import FilteredSearchManager from 'ee_else_ce/filtered_search/filtered_search_manager'; +import IssuableFilteredSearchTokenKeys from 'ee_else_ce/filtered_search/issuable_filtered_search_token_keys'; + +const AUTHOR_PARAM_KEY = 'author_username'; + +export default class FilteredSearchServiceDesk extends FilteredSearchManager { + constructor(supportBotData) { + super({ + page: 'service_desk', + filteredSearchTokenKeys: IssuableFilteredSearchTokenKeys, + useDefaultState: true, + }); + + this.supportBotData = supportBotData; + } + + canEdit(tokenName) { + return tokenName !== 'author'; + } + + modifyUrlParams(paramsArray) { + const supportBotParamPair = `${AUTHOR_PARAM_KEY}=${this.supportBotData.username}`; + const onlyValidParams = paramsArray.filter((param) => param.indexOf(AUTHOR_PARAM_KEY) === -1); + + // unshift ensures author param is always first token element + onlyValidParams.unshift(supportBotParamPair); + + return onlyValidParams; + } +} |