Merge branch 'master' into feature-60873/GesamtnoteneingabeCis4

This commit is contained in:
Harald Bamberger
2026-04-20 11:13:14 +02:00
211 changed files with 18987 additions and 4789 deletions
@@ -237,4 +237,6 @@ const bismeldestichtagApp = Vue.createApp({
}
});
FhcApps.makeExtendable(bismeldestichtagApp);
bismeldestichtagApp.use(PluginsPhrasen).mount('#main');
+3
View File
@@ -142,6 +142,9 @@ const app = Vue.createApp({
}
}
});
FhcApps.makeExtendable(app);
app.use(primevue.config.default, {
zIndex: {
overlay: 9000,
+2
View File
@@ -87,6 +87,8 @@ const app = Vue.createApp({
}
});
FhcApps.makeExtendable(app);
setScrollbarWidth();
app.use(PluginsPhrasen);
@@ -34,4 +34,7 @@ const app = Vue.createApp({
});
},
});
FhcApps.makeExtendable(app);
app.use(PluginsPhrasen).mount("#content");
+60 -9
View File
@@ -1,16 +1,67 @@
import {CoreNavigationCmpt} from '../../components/navigation/Navigation.js';
import { CoreNavigationCmpt } from '../../components/navigation/Navigation.js';
import DashboardAdmin from '../../components/Dashboard/Admin.js';
import PluginsPhrasen from '../../plugins/Phrasen.js';
import ApiRenderers from '../../api/factory/renderers.js';
const app = Vue.createApp({
name: 'AdminApp',
data: () => ({
appSideMenuEntries: {}
}),
components: {
CoreNavigationCmpt,
DashboardAdmin
}
name: 'DashboardAdminApp',
data: () => ({
appSideMenuEntries: {},
renderers: null
}),
components: {
CoreNavigationCmpt,
DashboardAdmin
},
provide() {
return {
// TODO(chris): move those two into the components that need it
renderers: Vue.computed(() => this.renderers),
timezone: FHC_JS_DATA_STORAGE_OBJECT.timezone
};
},
created() {
this.$api
.call(ApiRenderers.loadRenderers())
.then(res => {
for (let rendertype of Object.keys(res.data)) {
let modalTitle = null;
let modalContent = null;
let calendarEvent = null;
if (res.data[rendertype].modalTitle)
modalTitle = Vue.markRaw(Vue.defineAsyncComponent(() => import(res.data[rendertype].modalTitle)));
if (res.data[rendertype].modalContent)
modalContent = Vue.markRaw(Vue.defineAsyncComponent(() => import(res.data[rendertype].modalContent)));
if (res.data[rendertype].calendarEvent)
calendarEvent = Vue.markRaw(Vue.defineAsyncComponent(() => import(res.data[rendertype].calendarEvent)));
if (res.data[rendertype].calendarEventStyles) {
var head = document.head;
if (!head.querySelector(`link[href="${res.data[rendertype].calendarEventStyles}"]`)) {
var link = document.createElement("link");
link.type = "text/css";
link.rel = "stylesheet";
link.href = res.data[rendertype].calendarEventStyles;
head.appendChild(link);
}
}
if (this.renderers === null) {
this.renderers = {};
}
if (!this.renderers[rendertype]) {
this.renderers[rendertype] = {}
}
this.renderers[rendertype].modalTitle = modalTitle;
this.renderers[rendertype].modalContent = modalContent;
this.renderers[rendertype].calendarEvent = calendarEvent;
}
})
.catch(this.$fhcAlert.handleSystemErrors);
}
});
app.use(PluginsPhrasen);
app.directive('tooltip', primevue.tooltip);
app.mount('#main');
+4
View File
@@ -341,6 +341,10 @@ const app = Vue.createApp({
// kind of a bandaid for bad css on some pages to avoid horizontal scroll
setScrollbarWidth();
app.config.globalProperties.$capitalize = capitalize;
FhcApps.router.makeExtendable(router);
FhcApps.makeExtendable(app);
app.use(router);
app.use(primevue.config.default, {
zIndex: {
+17
View File
@@ -0,0 +1,17 @@
import {CoreNavigationCmpt} from '../../components/navigation/Navigation.js';
import CoreDashboard from '../../components/Dashboard/Dashboard.js';
import PluginsPhrasen from '../../plugins/Phrasen.js';
const app = Vue.createApp({
name: 'DashboardPreviewApp',
data: () => ({
appSideMenuEntries: {}
}),
components: {
CoreNavigationCmpt,
CoreDashboard
}
});
app.use(PluginsPhrasen);
app.directive('tooltip', primevue.tooltip);
app.mount('#main');
+4
View File
@@ -89,8 +89,12 @@ const router = VueRouter.createRouter({
]
});
FhcApps.router.makeExtendable(router);
const app = Vue.createApp();
FhcApps.makeExtendable(app);
app
.use(router)
.use(primevue.config.default, {
+2
View File
@@ -42,5 +42,7 @@ const logsViewerApp = Vue.createApp({
}
});
FhcApps.makeExtendable(logsViewerApp);
logsViewerApp.use(PluginsPhrasen).mount('#main');
+4
View File
@@ -206,10 +206,14 @@ router.afterEach((to, from, failure) => {
document.title = title;
});
FhcApps.router.makeExtendable(router);
const app = Vue.createApp({
name: 'StudentenverwaltungApp'
});
FhcApps.makeExtendable(app);
app
.use(router)
.use(primevue.config.default, {
+25
View File
@@ -0,0 +1,25 @@
import Vertragsverwaltung from "../components/Vertraege/Vertragsverwaltung.js";
import Phrasen from "../plugins/Phrasen.js";
const ciPath = FHC_JS_DATA_STORAGE_OBJECT.app_root.replace(/(https:|)(^|\/\/)(.*?\/)/g, '') + FHC_JS_DATA_STORAGE_OBJECT.ci_router;
const router = VueRouter.createRouter({
history: VueRouter.createWebHistory(),
routes: [
{ path: `/${ciPath}/vertragsverwaltung`, component: Vertragsverwaltung },
]
});
const app = Vue.createApp({
name: 'VertragsverwaltungApp'
});
app
.use(router)
.use(primevue.config.default, {
zIndex: {
overlay: 1100
}
})
.use(Phrasen)
.mount('#main');
+3
View File
@@ -20,6 +20,9 @@ const app = Vue.createApp({
};
}
});
FhcApps.makeExtendable(app);
app
.use(PluginsPhrasen)
.mount('#wrapper');
+3
View File
@@ -7,6 +7,9 @@ const app = Vue.createApp({
StudierendenantragLeitung
}
});
FhcApps.makeExtendable(app);
app
.use(PluginsPhrasen)
.use(primevue.config.default,{zIndex: {overlay: 9999}})
@@ -12,6 +12,9 @@ const app = Vue.createApp({
}
}
});
FhcApps.makeExtendable(app);
app
.use(PluginsPhrasen)
.mount('#wrapper');
+3
View File
@@ -7,6 +7,9 @@ const app = Vue.createApp({
LvPopup
}
});
FhcApps.makeExtendable(app);
app
.use(PluginsPhrasen)
.mount('#wrapper');
@@ -28,6 +28,8 @@ const lvTemplatesApp = Vue.createApp({
}
});
FhcApps.makeExtendable(lvTemplatesApp);
lvTemplatesApp
.use(primevue.config.default,{zIndex: {overlay: 9999}})
.use(PluginsPhrasen)