diff options
Diffstat (limited to 'app/assets/javascripts/import_projects/index.js')
-rw-r--r-- | app/assets/javascripts/import_projects/index.js | 52 |
1 files changed, 27 insertions, 25 deletions
diff --git a/app/assets/javascripts/import_projects/index.js b/app/assets/javascripts/import_projects/index.js index b069dcb7766..68ba04aa9dd 100644 --- a/app/assets/javascripts/import_projects/index.js +++ b/app/assets/javascripts/import_projects/index.js @@ -1,5 +1,4 @@ import Vue from 'vue'; -import { mapActions } from 'vuex'; import Translate from '../vue_shared/translate'; import ImportProjectsTable from './components/import_projects_table.vue'; import { parseBoolean } from '../lib/utils/common_utils'; @@ -7,42 +6,45 @@ import createStore from './store'; Vue.use(Translate); -export default function mountImportProjectsTable(mountElement) { - if (!mountElement) return undefined; - +export function initStoreFromElement(element) { const { reposPath, provider, - providerTitle, canSelectNamespace, jobsPath, importPath, ciCdOnly, - } = mountElement.dataset; + } = element.dataset; - const store = createStore(); - return new Vue({ - el: mountElement, - store, + return createStore({ + reposPath, + provider, + jobsPath, + importPath, + defaultTargetNamespace: gon.current_username, + ciCdOnly: parseBoolean(ciCdOnly), + canSelectNamespace: parseBoolean(canSelectNamespace), + }); +} - created() { - this.setInitialData({ - reposPath, - provider, - jobsPath, - importPath, - defaultTargetNamespace: gon.current_username, - ciCdOnly: parseBoolean(ciCdOnly), - canSelectNamespace: parseBoolean(canSelectNamespace), - }); - }, +export function initPropsFromElement(element) { + return { + providerTitle: element.dataset.providerTitle, + filterable: parseBoolean(element.dataset.filterable), + }; +} - methods: { - ...mapActions(['setInitialData', 'setFilter']), - }, +export default function mountImportProjectsTable(mountElement) { + if (!mountElement) return undefined; + + const store = initStoreFromElement(mountElement); + const props = initPropsFromElement(mountElement); + return new Vue({ + el: mountElement, + store, render(createElement) { - return createElement(ImportProjectsTable, { props: { providerTitle } }); + return createElement(ImportProjectsTable, { props }); }, }); } |