diff options
Diffstat (limited to 'app/assets/javascripts/runner/runner_search_utils.js')
-rw-r--r-- | app/assets/javascripts/runner/runner_search_utils.js | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/app/assets/javascripts/runner/runner_search_utils.js b/app/assets/javascripts/runner/runner_search_utils.js index b88023720e8..c80a73948b8 100644 --- a/app/assets/javascripts/runner/runner_search_utils.js +++ b/app/assets/javascripts/runner/runner_search_utils.js @@ -16,6 +16,7 @@ import { PARAM_KEY_BEFORE, DEFAULT_SORT, RUNNER_PAGE_SIZE, + STATUS_NEVER_CONTACTED, } from './constants'; /** @@ -79,6 +80,33 @@ const getPaginationFromParams = (params) => { }; }; +// Outdated URL parameters +const STATUS_NOT_CONNECTED = 'NOT_CONNECTED'; + +/** + * Returns an updated URL for old (or deprecated) admin runner URLs. + * + * Use for redirecting users to currently used URLs. + * + * @param {String?} URL + * @returns Updated URL if outdated, `null` otherwise + */ +export const updateOutdatedUrl = (url = window.location.href) => { + const urlObj = new URL(url); + const query = urlObj.search; + + const params = queryToObject(query, { gatherArrays: true }); + + const runnerType = params[PARAM_KEY_STATUS]?.[0] || null; + if (runnerType === STATUS_NOT_CONNECTED) { + const updatedParams = { + [PARAM_KEY_STATUS]: [STATUS_NEVER_CONTACTED], + }; + return setUrlParams(updatedParams, url, false, true, true); + } + return null; +}; + /** * Takes a URL query and transforms it into a "search" object * @param {String?} query |