aboutsummaryrefslogtreecommitdiff
path: root/resources/assets/javascripts/bootstrap
diff options
context:
space:
mode:
Diffstat (limited to 'resources/assets/javascripts/bootstrap')
-rw-r--r--resources/assets/javascripts/bootstrap/courseware.js72
-rw-r--r--resources/assets/javascripts/bootstrap/vue.js11
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),
);
}),
);