diff options
Diffstat (limited to 'app/assets/javascripts/projects/settings/utils.js')
-rw-r--r-- | app/assets/javascripts/projects/settings/utils.js | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/app/assets/javascripts/projects/settings/utils.js b/app/assets/javascripts/projects/settings/utils.js index ea4574119c0..9c19657bb39 100644 --- a/app/assets/javascripts/projects/settings/utils.js +++ b/app/assets/javascripts/projects/settings/utils.js @@ -1,3 +1,24 @@ +import { joinPaths } from '~/lib/utils/url_utility'; + +export const generateRefDestinationPath = (selectedRef) => { + const namespace = '-/settings/ci_cd'; + const { pathname } = window.location; + + if (!selectedRef || !pathname.includes(namespace)) { + return window.location.href; + } + + const [projectRootPath] = pathname.split(namespace); + + const destinationPath = joinPaths(projectRootPath, namespace); + + const newURL = new URL(window.location); + newURL.pathname = destinationPath; + newURL.searchParams.set('ref', selectedRef); + + return newURL.href; +}; + export const getAccessLevels = (accessLevels = {}) => { const total = accessLevels.edges?.length; const accessLevelTypes = { total, users: [], groups: [], roles: [] }; |