diff options
Diffstat (limited to 'resources/assets/javascripts/bootstrap')
| -rw-r--r-- | resources/assets/javascripts/bootstrap/courseware.js | 72 | ||||
| -rw-r--r-- | resources/assets/javascripts/bootstrap/vue.js | 11 |
2 files changed, 6 insertions, 77 deletions
diff --git a/resources/assets/javascripts/bootstrap/courseware.js b/resources/assets/javascripts/bootstrap/courseware.js index 72503e0..a0d76c9 100644 --- a/resources/assets/javascripts/bootstrap/courseware.js +++ b/resources/assets/javascripts/bootstrap/courseware.js @@ -1,76 +1,4 @@ STUDIP.domReady(() => { - if (document.getElementById('courseware-shelf-app')) { - Promise.all([ - STUDIP.loadChunk('courseware'), - import( - /* webpackChunkName: "courseware-shelf-app" */ - '@/vue/courseware-shelf-app.js' - ), - ]).then(([{ createApp, store }, { default: mountApp }]) => { - return mountApp(STUDIP, createApp, store, '#courseware-shelf-app'); - }); - } - - if (document.getElementById('courseware-index-app')) { - Promise.all([ - STUDIP.loadChunk('courseware'), - import( - /* webpackChunkName: "courseware-index-app" */ - '@/vue/courseware-index-app.js' - ), - ]).then(([{ createApp, store }, { default: mountApp }]) => { - return mountApp(STUDIP, createApp, store, '#courseware-index-app'); - }); - } - - if (document.getElementById('courseware-activities-app')) { - Promise.all([ - STUDIP.loadChunk('courseware'), - import( - /* webpackChunkName: "courseware-activities-app" */ - '@/vue/courseware-activities-app.js' - ), - ]).then(([{ createApp, store }, { default: mountApp }]) => { - return mountApp(STUDIP, createApp, store, '#courseware-activities-app'); - }); - } - - if (document.getElementById('courseware-tasks-app')) { - Promise.all([ - STUDIP.loadChunk('courseware'), - import( - /* webpackChunkName: "courseware-tasks-app" */ - '@/vue/courseware-tasks-app.js' - ), - ]).then(([{ createApp, store }, { default: mountApp }]) => { - return mountApp(STUDIP, createApp, store, '#courseware-tasks-app'); - }); - } - - if (document.getElementById('courseware-content-bookmark-app')) { - Promise.all([ - STUDIP.loadChunk('courseware'), - import( - /* webpackChunkName: "courseware-content-bookmark-app" */ - '@/vue/courseware-content-bookmark-app.js' - ), - ]).then(([{ createApp, store }, { default: mountApp }]) => { - return mountApp(STUDIP, createApp, store, '#courseware-content-bookmark-app'); - }); - } - - if (document.getElementById('courseware-admin-app')) { - Promise.all([ - STUDIP.loadChunk('courseware'), - import( - /* webpackChunkName: "courseware-content-bookmark-app" */ - '@/vue/courseware-admin-app.js' - ), - ]).then(([{ createApp, store }, { default: mountApp }]) => { - return mountApp(STUDIP, createApp, store, '#courseware-admin-app'); - }); - } - if (document.getElementById('courseware-public-app')) { Promise.all([ STUDIP.loadChunk('courseware'), diff --git a/resources/assets/javascripts/bootstrap/vue.js b/resources/assets/javascripts/bootstrap/vue.js index 19270ff..cf8878d 100644 --- a/resources/assets/javascripts/bootstrap/vue.js +++ b/resources/assets/javascripts/bootstrap/vue.js @@ -13,7 +13,7 @@ async function mountVueApp(node) { return; } - const { createApp, h, store } = await STUDIP.Vue.load(); + const { createApp, h, httpClient, store } = await STUDIP.Vue.load(); const [appComponent, plugins] = await loadAppDependencies(config, store); const app = createApp({ @@ -30,7 +30,7 @@ async function mountVueApp(node) { ...createLifecycleHooks(), }); - plugins.forEach((plugin) => app.use(plugin, { store })); + plugins.forEach((plugin) => app.use(plugin, { httpClient, store })); app.mount(node); @@ -62,7 +62,7 @@ function parseVueAppConfig(node) { async function loadAppDependencies(config, store) { const promises = [ import(`@/vue/apps/${config.appPath}.vue`), - initializePlugins(config), + Promise.all(initializePlugins(config)), ...initializeVuexStores(config, store), ...initializePiniaStores(config), ]; @@ -113,8 +113,9 @@ function initializeVuexStores(config, store) { if (!store.hasModule(index)) { store.registerModule(index, storeConfig); } - Object.entries(config.vuexStoreData[index]).forEach(([type, payload]) => - store.commit(`${index}/${type}`, payload), + + Object.entries(config.vuexStoreData[index] ?? []).forEach(([type, payload]) => + store.commit(storeConfig.namespaced ? `${index}/${type}` : type, payload), ); }), ); |
