diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-08-19 12:08:42 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-08-19 12:08:42 +0300 |
commit | b76ae638462ab0f673e5915986070518dd3f9ad3 (patch) | |
tree | bdab0533383b52873be0ec0eb4d3c66598ff8b91 /app/assets/javascripts/jira_connect/subscriptions/index.js | |
parent | 434373eabe7b4be9593d18a585fb763f1e5f1a6f (diff) |
Add latest changes from gitlab-org/gitlab@14-2-stable-eev14.2.0-rc42
Diffstat (limited to 'app/assets/javascripts/jira_connect/subscriptions/index.js')
-rw-r--r-- | app/assets/javascripts/jira_connect/subscriptions/index.js | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/app/assets/javascripts/jira_connect/subscriptions/index.js b/app/assets/javascripts/jira_connect/subscriptions/index.js new file mode 100644 index 00000000000..f1262be0174 --- /dev/null +++ b/app/assets/javascripts/jira_connect/subscriptions/index.js @@ -0,0 +1,52 @@ +import '../../webpack'; + +import setConfigs from '@gitlab/ui/dist/config'; +import Vue from 'vue'; +import GlFeatureFlagsPlugin from '~/vue_shared/gl_feature_flags_plugin'; +import Translate from '~/vue_shared/translate'; + +import JiraConnectApp from './components/app.vue'; +import createStore from './store'; +import { getLocation, sizeToParent } from './utils'; + +const store = createStore(); + +const updateSignInLinks = async () => { + const location = await getLocation(); + Array.from(document.querySelectorAll('.js-jira-connect-sign-in')).forEach((el) => { + const updatedLink = `${el.getAttribute('href')}?return_to=${location}`; + el.setAttribute('href', updatedLink); + }); +}; + +export async function initJiraConnect() { + await updateSignInLinks(); + + const el = document.querySelector('.js-jira-connect-app'); + if (!el) { + return null; + } + + setConfigs(); + Vue.use(Translate); + Vue.use(GlFeatureFlagsPlugin); + + const { groupsPath, subscriptions, subscriptionsPath, usersPath } = el.dataset; + sizeToParent(); + + return new Vue({ + el, + store, + provide: { + groupsPath, + subscriptions: JSON.parse(subscriptions), + subscriptionsPath, + usersPath, + }, + render(createElement) { + return createElement(JiraConnectApp); + }, + }); +} + +document.addEventListener('DOMContentLoaded', initJiraConnect); |