aboutsummaryrefslogtreecommitdiff
path: root/resources/assets/javascripts/bootstrap
diff options
context:
space:
mode:
authorMarcus Eibrink-Lunzenauer <lunzenauer@elan-ev.de>2025-05-13 08:19:25 +0200
committerMarcus Eibrink-Lunzenauer <marcus@elan-ev.de>2026-01-07 14:14:20 +0100
commit0a20239f787a10dc102a4827d8fffc00f25899e4 (patch)
treec242d527dcbe5b637d66880f83d5d0b177fd7844 /resources/assets/javascripts/bootstrap
parent4f00fb8d9fea5ceead39a8145ac10d859ebdd287 (diff)
feat(cw): migrate courseware to VueApp::createfeature/vue-app-create-for-cw
These files are migrated: - courseware-activities-app.js - courseware-admin-app.js - courseware-content-bookmark-app.js - courseware-index-app.js - courseware-shelf-app.js - courseware-tasks-app.js
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),
);
}),
);