diff options
Diffstat (limited to 'app/assets/javascripts/registry/explorer/index.js')
-rw-r--r-- | app/assets/javascripts/registry/explorer/index.js | 37 |
1 files changed, 30 insertions, 7 deletions
diff --git a/app/assets/javascripts/registry/explorer/index.js b/app/assets/javascripts/registry/explorer/index.js index 2bba3ee4ff9..d887b6a1b15 100644 --- a/app/assets/javascripts/registry/explorer/index.js +++ b/app/assets/javascripts/registry/explorer/index.js @@ -1,10 +1,11 @@ import Vue from 'vue'; import { GlToast } from '@gitlab/ui'; import Translate from '~/vue_shared/translate'; +import { parseBoolean } from '~/lib/utils/common_utils'; import RegistryExplorer from './pages/index.vue'; import RegistryBreadcrumb from './components/registry_breadcrumb.vue'; -import { createStore } from './stores'; import createRouter from './router'; +import { apolloProvider } from './graphql/index'; Vue.use(Translate); Vue.use(GlToast); @@ -16,20 +17,42 @@ export default () => { return null; } - const { endpoint } = el.dataset; + const { endpoint, expirationPolicy, isGroupPage, isAdmin, ...config } = el.dataset; - const store = createStore(); - const router = createRouter(endpoint); - store.dispatch('setInitialState', el.dataset); + // This is a mini state to help the breadcrumb have the correct name in the details page + const breadCrumbState = Vue.observable({ + name: '', + updateName(value) { + this.name = value; + }, + }); + + const router = createRouter(endpoint, breadCrumbState); const attachMainComponent = () => new Vue({ el, - store, router, + apolloProvider, components: { RegistryExplorer, }, + provide() { + return { + breadCrumbState, + config: { + ...config, + expirationPolicy: expirationPolicy ? JSON.parse(expirationPolicy) : undefined, + isGroupPage: parseBoolean(isGroupPage), + isAdmin: parseBoolean(isAdmin), + }, + /* eslint-disable @gitlab/require-i18n-strings */ + dockerBuildCommand: `docker build -t ${config.repositoryUrl} .`, + dockerPushCommand: `docker push ${config.repositoryUrl}`, + dockerLoginCommand: `docker login ${config.registryHostUrlWithPort}`, + /* eslint-enable @gitlab/require-i18n-strings */ + }; + }, render(createElement) { return createElement('registry-explorer'); }, @@ -40,8 +63,8 @@ export default () => { const crumbs = [...document.querySelectorAll('.js-breadcrumbs-list li')]; return new Vue({ el: breadCrumbEl, - store, router, + apolloProvider, components: { RegistryBreadcrumb, }, |