diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-12-17 14:59:07 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-12-17 14:59:07 +0300 |
commit | 8b573c94895dc0ac0e1d9d59cf3e8745e8b539ca (patch) | |
tree | 544930fb309b30317ae9797a9683768705d664c4 /app/assets/javascripts/import_entities/import_projects/index.js | |
parent | 4b1de649d0168371549608993deac953eb692019 (diff) |
Add latest changes from gitlab-org/gitlab@13-7-stable-eev13.7.0-rc42
Diffstat (limited to 'app/assets/javascripts/import_entities/import_projects/index.js')
-rw-r--r-- | app/assets/javascripts/import_entities/import_projects/index.js | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/app/assets/javascripts/import_entities/import_projects/index.js b/app/assets/javascripts/import_entities/import_projects/index.js new file mode 100644 index 00000000000..7373b628f2b --- /dev/null +++ b/app/assets/javascripts/import_entities/import_projects/index.js @@ -0,0 +1,60 @@ +import Vue from 'vue'; +import Translate from '~/vue_shared/translate'; +import { parseBoolean } from '~/lib/utils/common_utils'; +import ImportProjectsTable from './components/import_projects_table.vue'; +import createStore from './store'; + +Vue.use(Translate); + +export function initStoreFromElement(element) { + const { + ciCdOnly, + canSelectNamespace, + provider, + + reposPath, + jobsPath, + importPath, + namespacesPath, + paginatable, + } = element.dataset; + + return createStore({ + initialState: { + defaultTargetNamespace: gon.current_username, + ciCdOnly: parseBoolean(ciCdOnly), + canSelectNamespace: parseBoolean(canSelectNamespace), + provider, + }, + endpoints: { + reposPath, + jobsPath, + importPath, + namespacesPath, + }, + hasPagination: parseBoolean(paginatable), + }); +} + +export function initPropsFromElement(element) { + return { + providerTitle: element.dataset.providerTitle, + filterable: parseBoolean(element.dataset.filterable), + paginatable: parseBoolean(element.dataset.paginatable), + }; +} + +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 }); + }, + }); +} |