diff options
Diffstat (limited to 'app/assets/javascripts/pages/projects/new/index.js')
-rw-r--r-- | app/assets/javascripts/pages/projects/new/index.js | 40 |
1 files changed, 32 insertions, 8 deletions
diff --git a/app/assets/javascripts/pages/projects/new/index.js b/app/assets/javascripts/pages/projects/new/index.js index f469c56e808..ed816e3be95 100644 --- a/app/assets/javascripts/pages/projects/new/index.js +++ b/app/assets/javascripts/pages/projects/new/index.js @@ -1,13 +1,15 @@ import Vue from 'vue'; +import VueApollo from 'vue-apollo'; +import createDefaultClient from '~/lib/graphql'; import { parseBoolean } from '~/lib/utils/common_utils'; import initProjectVisibilitySelector from '../../../project_visibility'; import initProjectNew from '../../../projects/project_new'; import NewProjectCreationApp from './components/app.vue'; +import NewProjectUrlSelect from './components/new_project_url_select.vue'; -initProjectVisibilitySelector(); -initProjectNew.bindEvents(); +function initNewProjectCreation() { + const el = document.querySelector('.js-new-project-creation'); -function initNewProjectCreation(el) { const { pushToCreateProjectCommand, workingWithProjectsHelpPath, @@ -29,9 +31,6 @@ function initNewProjectCreation(el) { return new Vue({ el, - components: { - NewProjectCreationApp, - }, provide, render(h) { return h(NewProjectCreationApp, { props }); @@ -39,6 +38,31 @@ function initNewProjectCreation(el) { }); } -const el = document.querySelector('.js-new-project-creation'); +function initNewProjectUrlSelect() { + const el = document.querySelector('.js-vue-new-project-url-select'); + + if (!el) { + return undefined; + } -initNewProjectCreation(el); + Vue.use(VueApollo); + + return new Vue({ + el, + apolloProvider: new VueApollo({ + defaultClient: createDefaultClient({}, { assumeImmutableResults: true }), + }), + provide: { + namespaceFullPath: el.dataset.namespaceFullPath, + namespaceId: el.dataset.namespaceId, + rootUrl: el.dataset.rootUrl, + trackLabel: el.dataset.trackLabel, + }, + render: (createElement) => createElement(NewProjectUrlSelect), + }); +} + +initProjectVisibilitySelector(); +initProjectNew.bindEvents(); +initNewProjectCreation(); +initNewProjectUrlSelect(); |