diff --git a/public/js/api/factory/addons.js b/public/js/api/factory/addons.js
new file mode 100644
index 000000000..23fd19e39
--- /dev/null
+++ b/public/js/api/factory/addons.js
@@ -0,0 +1,25 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ getLvMenu(lvid, studiensemester_kurzbz) {
+ return {
+ method: 'get',
+ url: `/api/frontend/v1/LvMenu/getLvMenu/${lvid}/${studiensemester_kurzbz}`
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/factory/authinfo.js b/public/js/api/factory/authinfo.js
new file mode 100644
index 000000000..5cf88604f
--- /dev/null
+++ b/public/js/api/factory/authinfo.js
@@ -0,0 +1,25 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ getAuthUID() {
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/AuthInfo/getAuthUID'
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/factory/betriebsmittel.js b/public/js/api/factory/betriebsmittel.js
new file mode 100644
index 000000000..bc007a20e
--- /dev/null
+++ b/public/js/api/factory/betriebsmittel.js
@@ -0,0 +1,22 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+import person from "./betriebsmittel/person.js";
+
+export default {
+ person
+};
diff --git a/public/js/api/factory/betriebsmittel/person.js b/public/js/api/factory/betriebsmittel/person.js
new file mode 100644
index 000000000..912a5df31
--- /dev/null
+++ b/public/js/api/factory/betriebsmittel/person.js
@@ -0,0 +1,63 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ getAllBetriebsmittel(type, id) {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/betriebsmittel/betriebsmittelP/getAllBetriebsmittel/' + type + '/' + id
+ };
+ },
+ addNewBetriebsmittel(person_id, params) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/betriebsmittel/betriebsmittelP/addNewBetriebsmittel/' + person_id,
+ params
+ };
+ },
+ loadBetriebsmittel(betriebsmittelperson_id) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/betriebsmittel/betriebsmittelP/loadBetriebsmittel/' + betriebsmittelperson_id
+ };
+ },
+ updateBetriebsmittel(betriebsmittelperson_id, params) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/betriebsmittel/betriebsmittelP/updateBetriebsmittel/' + betriebsmittelperson_id,
+ params
+ };
+ },
+ deleteBetriebsmittel(betriebsmittelperson_id) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/betriebsmittel/betriebsmittelP/deleteBetriebsmittel/' + betriebsmittelperson_id
+ };
+ },
+ getTypenBetriebsmittel() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/betriebsmittel/betriebsmittelP/getTypenBetriebsmittel/'
+ };
+ },
+ loadInventarliste(query) {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/betriebsmittel/betriebsmittelP/loadInventarliste/' + query
+ };
+ }
+};
diff --git a/public/js/api/factory/checkperson.js b/public/js/api/factory/checkperson.js
new file mode 100644
index 000000000..dc5546cf5
--- /dev/null
+++ b/public/js/api/factory/checkperson.js
@@ -0,0 +1,37 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ updatePersonUnrulyStatus(person_id, unruly) {
+ const params = { person_id, unruly }
+ const url = '/api/frontend/v1/checkperson/CheckPerson/updatePersonUnrulyStatus';
+ return {
+ method: 'post',
+ url,
+ params
+ };
+ },
+ filterPerson(params, base = '') {
+ // TODO(chris): seems to be called from nowhere?
+ const url = base + '/api/frontend/v1/checkperson/CheckPerson/filterPerson';
+ return {
+ method: 'post',
+ url,
+ params
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/factory/cis/dashboard.js b/public/js/api/factory/cis/dashboard.js
new file mode 100644
index 000000000..cb1ec16bb
--- /dev/null
+++ b/public/js/api/factory/cis/dashboard.js
@@ -0,0 +1,25 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ getViewData() {
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/Cis4FhcApi/getViewData'
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/factory/cis/menu.js b/public/js/api/factory/cis/menu.js
new file mode 100644
index 000000000..829c5ff04
--- /dev/null
+++ b/public/js/api/factory/cis/menu.js
@@ -0,0 +1,25 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ getMenu() {
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/CisMenu/getMenu'
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/factory/cms.js b/public/js/api/factory/cms.js
new file mode 100644
index 000000000..59ad4af5a
--- /dev/null
+++ b/public/js/api/factory/cms.js
@@ -0,0 +1,64 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ content(content_id, version=null, sprache=null, sichtbar=null) {
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/Cms/content',
+ params: {
+ content_id,
+ ...(version ? { version } : {}),
+ ...(sprache ? { sprache } : {}),
+ ...(sichtbar ? { sichtbar } : {})
+ }
+ };
+ },
+ //api function used for the news View that renders the html
+ getNews(page = 1, page_size = 10, sprache) {
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/Cms/getNews',
+ params: {
+ page,
+ page_size,
+ sprache
+ },
+ };
+ },
+ //api function used for the widget component
+ news(limit) {
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/Cms/news',
+ params: { limit }
+ };
+ },
+ getNewsRowCount() {
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/Cms/getNewsRowCount'
+ };
+ },
+ getNewsExtra() {
+ // TODO(chris): seems to be called from nowhere?
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/Cms/getStudiengangInfoForNews'
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/factory/filter.js b/public/js/api/factory/filter.js
new file mode 100644
index 000000000..5207fe1cf
--- /dev/null
+++ b/public/js/api/factory/filter.js
@@ -0,0 +1,95 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ saveCustomFilter(wsParams) {
+ return {
+ method: 'post',
+ url: '/api/frontend/v1/filter/saveCustomFilter',
+ params: {
+ filterUniqueId: wsParams.filterUniqueId,
+ filterType: wsParams.filterType,
+ customFilterName: wsParams.customFilterName
+ }
+ };
+ },
+ removeCustomFilter(wsParams) {
+ return {
+ method: 'post',
+ url: '/api/frontend/v1/filter/removeCustomFilter',
+ params: {
+ filterUniqueId: wsParams.filterUniqueId,
+ filterType: wsParams.filterType,
+ filterId: wsParams.filterId
+ }
+ };
+ },
+ applyFilterFields(wsParams) {
+ return {
+ method: 'post',
+ url: '/api/frontend/v1/filter/applyFilterFields',
+ params: {
+ filterUniqueId: wsParams.filterUniqueId,
+ filterType: wsParams.filterType,
+ filterFields: wsParams.filterFields
+ }
+ };
+ },
+ addFilterField(wsParams) {
+ return {
+ method: 'post',
+ url: '/api/frontend/v1/filter/addFilterField',
+ params: {
+ filterUniqueId: wsParams.filterUniqueId,
+ filterType: wsParams.filterType,
+ filterField: wsParams.filterField
+ }
+ };
+ },
+ removeFilterField(wsParams) {
+ return {
+ method: 'post',
+ url: '/api/frontend/v1/filter/removeFilterField',
+ params: {
+ filterUniqueId: wsParams.filterUniqueId,
+ filterType: wsParams.filterType,
+ filterField: wsParams.filterField
+ }
+ };
+ },
+ getFilterById(wsParams) {
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/filter/getFilter',
+ params: {
+ filterUniqueId: wsParams.filterUniqueId,
+ filterType: wsParams.filterType,
+ filterId: wsParams.filterId
+ }
+ };
+ },
+ getFilter(wsParams) {
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/filter/getFilter',
+ params: {
+ filterUniqueId: wsParams.filterUniqueId,
+ filterType: wsParams.filterType
+ }
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/factory/lehre.js b/public/js/api/factory/lehre.js
new file mode 100644
index 000000000..84c8e8662
--- /dev/null
+++ b/public/js/api/factory/lehre.js
@@ -0,0 +1,39 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ getStudentenMail(lehreinheit_id) {
+ // TODO(chris): seems to be called from nowhere?
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/Lehre/lvStudentenMail',
+ params: { lehreinheit_id }
+ };
+ },
+ getLvInfo(studiensemester_kurzbz, lehrveranstaltung_id) {
+ return {
+ method: 'get',
+ url: `/api/frontend/v1/Lehre/LV/${studiensemester_kurzbz}/${lehrveranstaltung_id}`
+ };
+ },
+ getStudentPruefungen(lehrveranstaltung_id) {
+ return {
+ method: 'get',
+ url: `/api/frontend/v1/Lehre/Pruefungen/${lehrveranstaltung_id}`
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/factory/navigation.js b/public/js/api/factory/navigation.js
new file mode 100644
index 000000000..896801dd7
--- /dev/null
+++ b/public/js/api/factory/navigation.js
@@ -0,0 +1,33 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ getHeader(navigation_page) {
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/navigation/header',
+ params: { navigation_page }
+ };
+ },
+ getMenu(navigation_page) {
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/navigation/menu',
+ params: { navigation_page }
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/factory/notiz.js b/public/js/api/factory/notiz.js
new file mode 100644
index 000000000..074d4b6a5
--- /dev/null
+++ b/public/js/api/factory/notiz.js
@@ -0,0 +1,22 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+import person from "./notiz/person.js";
+
+export default {
+ person
+};
diff --git a/public/js/api/factory/notiz/person.js b/public/js/api/factory/notiz/person.js
new file mode 100644
index 000000000..33b572d1a
--- /dev/null
+++ b/public/js/api/factory/notiz/person.js
@@ -0,0 +1,87 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ getNotizen(id, type) {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/notiz/notizPerson/getNotizen/' + id + '/' + type
+ };
+ },
+ getUid() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/notiz/notizPerson/getUid/'
+ };
+ },
+ addNewNotiz(id, params) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/notiz/notizPerson/addNewNotiz/' + id,
+ params
+ };
+ },
+ loadNotiz(notiz_id) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/notiz/notizPerson/loadNotiz/',
+ params: {
+ notiz_id
+ }
+ };
+ },
+ loadDokumente(notiz_id) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/notiz/notizPerson/loadDokumente/',
+ params: {
+ notiz_id
+ }
+ };
+ },
+ deleteNotiz(notiz_id, type_id, id) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/notiz/notizPerson/deleteNotiz/',
+ params: {
+ notiz_id,
+ type_id,
+ id
+ }
+ };
+ },
+ updateNotiz(notiz_id, params) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/notiz/notizPerson/updateNotiz/' + notiz_id,
+ params
+ };
+ },
+ getMitarbeiter(event) {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/notiz/notizPerson/getMitarbeiter/' + event
+ };
+ },
+ isBerechtigt(id, type_id) {
+ // TODO(chris): seems to be called from nowhere?
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/notiz/notizPerson/isBerechtigt/'
+ };
+ }
+};
diff --git a/public/js/api/factory/ort.js b/public/js/api/factory/ort.js
new file mode 100644
index 000000000..90488df1b
--- /dev/null
+++ b/public/js/api/factory/ort.js
@@ -0,0 +1,26 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ getContentID(ort_kurbz) {
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/Ort/ContentID',
+ params: { ort_kurzbz: ort_kurbz }
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/factory/phrasen.js b/public/js/api/factory/phrasen.js
new file mode 100644
index 000000000..a87e4f4be
--- /dev/null
+++ b/public/js/api/factory/phrasen.js
@@ -0,0 +1,45 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ loadCategory(category) {
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/phrasen/loadModule/' + category
+ };
+ },
+ setLanguage(categories,language) {
+ const params = {categories, language}
+ return {
+ method: 'post',
+ url: '/api/frontend/v1/phrasen/setLanguage',
+ params
+ };
+ },
+ getLanguage() {
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/phrasen/getLanguage'
+ };
+ },
+ getActiveDbLanguages() {
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/phrasen/getAllLanguages'
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/factory/profil.js b/public/js/api/factory/profil.js
new file mode 100644
index 000000000..5da1f202d
--- /dev/null
+++ b/public/js/api/factory/profil.js
@@ -0,0 +1,73 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ getView(uid) {
+ return {
+ method: 'get',
+ url: `/api/frontend/v1/Profil/getView/${uid}`
+ };
+ },
+ fotoSperre(value) {
+ return {
+ method: 'get',
+ url: `/api/frontend/v1/Profil/fotoSperre/${value}`
+ };
+
+ },
+ isStudent(uid) {
+ // TODO(chris): seems to be called from nowhere?
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/Profil/isStudent',
+ params: { uid }
+ };
+ },
+ isMitarbeiter(uid) {
+ return {
+ method: 'get',
+ url: `/api/frontend/v1/Profil/isMitarbeiter/${uid}`
+ };
+ },
+ getZustellAdresse() {
+ // TODO(chris): seems to be called from nowhere?
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/Profil/getZustellAdresse'
+ };
+ },
+ getZustellKontakt() {
+ // TODO(chris): seems to be called from nowhere?
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/Profil/getZustellKontakt'
+ };
+ },
+ getGemeinden(nation, zip) {
+ return {
+ method: 'get',
+ url: `/api/frontend/v1/Profil/getGemeinden/${nation}/${zip}`
+ };
+
+ },
+ getAllNationen() {
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/Profil/getAllNationen'
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/factory/profilUpdate.js b/public/js/api/factory/profilUpdate.js
new file mode 100644
index 000000000..42e87ae0e
--- /dev/null
+++ b/public/js/api/factory/profilUpdate.js
@@ -0,0 +1,110 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ //! API calls for profil update requests
+ getStatus() {
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/ProfilUpdate/getStatus'
+ };
+ },
+ getTopic() {
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/ProfilUpdate/getTopic'
+ };
+ },
+ acceptProfilRequest({profil_update_id, uid, status_message, topic, requested_change}) {
+ return {
+ method: 'post',
+ url: '/api/frontend/v1/ProfilUpdate/acceptProfilRequest',
+ params: {
+ profil_update_id,
+ uid,
+ status_message,
+ topic,
+ requested_change
+ }
+ };
+ },
+ denyProfilRequest({profil_update_id, uid, topic, status_message}) {
+ return {
+ method: 'post',
+ url: '/api/frontend/v1/ProfilUpdate/denyProfilRequest',
+ params: {
+ profil_update_id,
+ uid,
+ topic,
+ status_message
+ }
+ };
+ },
+ insertFile(dms, replace = null) {
+ return {
+ method: 'post',
+ url: `/api/frontend/v1/ProfilUpdate/insertFile/${replace}`,
+ params: dms
+ };
+ },
+ getProfilRequestFiles(requestID) {
+ return {
+ method: 'get',
+ url: `/api/frontend/v1/ProfilUpdate/getProfilRequestFiles/${requestID}`
+ };
+ },
+ selectProfilRequest(uid = null, id = null) {
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/ProfilUpdate/selectProfilRequest',
+ params: {
+ ...(uid ? { uid } : {}),
+ ...(id ? { id } : {})
+ }
+ };
+ },
+ insertProfilRequest(topic, payload, fileID = null) {
+ return {
+ method: 'post',
+ url: '/api/frontend/v1/ProfilUpdate/insertProfilRequest',
+ params: {
+ topic,
+ payload,
+ ...(fileID ? { fileID } : {})
+ }
+ };
+ },
+ updateProfilRequest(topic, payload, ID, fileID = null) {
+ return {
+ method: 'post',
+ url: '/api/frontend/v1/ProfilUpdate/updateProfilRequest',
+ params: {
+ topic,
+ payload,
+ ID,
+ ...(fileID ? { fileID } : {})
+ }
+ };
+ },
+ deleteProfilRequest(requestID) {
+ return {
+ method: 'post',
+ url: '/api/frontend/v1/ProfilUpdate/deleteProfilRequest',
+ params: { requestID }
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/factory/searchbar.js b/public/js/api/factory/searchbar.js
new file mode 100644
index 000000000..a7bd73b88
--- /dev/null
+++ b/public/js/api/factory/searchbar.js
@@ -0,0 +1,26 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ search(params) {
+ return {
+ method: 'post',
+ url: '/api/frontend/v1/searchbar/search',
+ params
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/factory/studiengang.js b/public/js/api/factory/studiengang.js
new file mode 100644
index 000000000..6d5ae15aa
--- /dev/null
+++ b/public/js/api/factory/studiengang.js
@@ -0,0 +1,32 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ studiengangInformation() {
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/Studgang/getStudiengangInfo'
+ };
+ },
+ getStudiengangByKz(studiengang_kz) {
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/organisation/StudiengangEP/getStudiengangByKz',
+ params: { studiengang_kz }
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/factory/studstatus.js b/public/js/api/factory/studstatus.js
new file mode 100644
index 000000000..459594f8d
--- /dev/null
+++ b/public/js/api/factory/studstatus.js
@@ -0,0 +1,28 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+import abmeldung from "./studstatus/abmeldung.js";
+import unterbrechung from "./studstatus/unterbrechung.js";
+import wiederholung from "./studstatus/wiederholung.js";
+import leitung from "./studstatus/leitung.js";
+
+export default {
+ abmeldung,
+ unterbrechung,
+ wiederholung,
+ leitung
+};
\ No newline at end of file
diff --git a/public/js/api/factory/studstatus/abmeldung.js b/public/js/api/factory/studstatus/abmeldung.js
new file mode 100644
index 000000000..81fe5fda7
--- /dev/null
+++ b/public/js/api/factory/studstatus/abmeldung.js
@@ -0,0 +1,45 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ getDetails(antrag_id, prestudent_id) {
+ const url = '/api/frontend/v1/studstatus/abmeldung/'
+ + (antrag_id !== undefined ? 'getDetailsForAntrag/' + antrag_id : 'getDetailsForNewAntrag/' + prestudent_id);
+ return {
+ method: 'get',
+ url
+ };
+ },
+ create(studiensemester, prestudent_id, grund) {
+ return {
+ method: 'post',
+ url: '/api/frontend/v1/studstatus/abmeldung/createAntrag',
+ params: {
+ studiensemester,
+ prestudent_id,
+ grund
+ }
+ };
+ },
+ cancel(antrag_id) {
+ return {
+ method: 'post',
+ url: '/api/frontend/v1/studstatus/abmeldung/cancelAntrag',
+ params: { antrag_id }
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/factory/studstatus/leitung.js b/public/js/api/factory/studstatus/leitung.js
new file mode 100644
index 000000000..cc6b87d25
--- /dev/null
+++ b/public/js/api/factory/studstatus/leitung.js
@@ -0,0 +1,100 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ getStgs() {
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/studstatus/leitung/getActiveStgs'
+ };
+ },
+ getAntraege(url, config, params) {
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/studstatus/leitung/getAntraege/' + url
+ };
+ },
+ getHistory(antrag_id) {
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/studstatus/leitung/getHistory/' + antrag_id
+ };
+ },
+ getPrestudents(query, signal) {
+ return {
+ method: 'post',
+ url: '/api/frontend/v1/studstatus/leitung/getPrestudents',
+ params: { query }
+ };
+ },
+ approve(antrag) {
+ return {
+ method: 'post',
+ url: '/api/frontend/v1/studstatus/leitung/approveAntrag',
+ params: antrag
+ };
+ },
+ reject(antrag) {
+ return {
+ method: 'post',
+ url: '/api/frontend/v1/studstatus/leitung/rejectAntrag',
+ params: antrag
+ };
+ },
+ reopen(antrag) {
+ return {
+ method: 'post',
+ url: '/api/frontend/v1/studstatus/leitung/reopenAntrag',
+ params: antrag
+ };
+ },
+ pause(antrag) {
+ return {
+ method: 'post',
+ url: '/api/frontend/v1/studstatus/leitung/pauseAntrag',
+ params: antrag
+ };
+ },
+ unpause(antrag) {
+ return {
+ method: 'post',
+ url: '/api/frontend/v1/studstatus/leitung/unpauseAntrag',
+ params: antrag
+ };
+ },
+ object(antrag) {
+ return {
+ method: 'post',
+ url: '/api/frontend/v1/studstatus/leitung/objectAntrag',
+ params: antrag
+ };
+ },
+ approveObjection(antrag) {
+ return {
+ method: 'post',
+ url: '/api/frontend/v1/studstatus/leitung/approveObjection',
+ params: antrag
+ };
+ },
+ denyObjection(antrag) {
+ return {
+ method: 'post',
+ url: '/api/frontend/v1/studstatus/leitung/denyObjection',
+ params: antrag
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/factory/studstatus/unterbrechung.js b/public/js/api/factory/studstatus/unterbrechung.js
new file mode 100644
index 000000000..bf772bf42
--- /dev/null
+++ b/public/js/api/factory/studstatus/unterbrechung.js
@@ -0,0 +1,49 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ getDetails(antrag_id, prestudent_id) {
+ const url = '/api/frontend/v1/studstatus/unterbrechung/'
+ + (antrag_id !== undefined ? 'getDetailsForAntrag/' + antrag_id : 'getDetailsForNewAntrag/' + prestudent_id);
+ return {
+ method: 'get',
+ url
+ };
+ },
+ create(studiensemester, prestudent_id, grund, datum_wiedereinstieg, attachment) {
+ return {
+ method: 'post',
+ url: '/api/frontend/v1/studstatus/unterbrechung/createAntrag',
+ params: {
+ studiensemester,
+ prestudent_id,
+ grund,
+ datum_wiedereinstieg,
+ attachment
+ }
+ };
+ },
+ cancel(antrag_id) {
+ return {
+ method: 'post',
+ url: '/api/frontend/v1/studstatus/unterbrechung/cancelAntrag',
+ params: {
+ antrag_id
+ }
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/factory/studstatus/wiederholung.js b/public/js/api/factory/studstatus/wiederholung.js
new file mode 100644
index 000000000..3591bb6ed
--- /dev/null
+++ b/public/js/api/factory/studstatus/wiederholung.js
@@ -0,0 +1,63 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ getDetails(prestudent_id) {
+ const url = '/api/frontend/v1/studstatus/wiederholung/getDetailsForNewAntrag/' + prestudent_id;
+ return {
+ method: 'get',
+ url
+ };
+ },
+ getLvs(antrag_id) {
+ const url = '/api/frontend/v1/studstatus/wiederholung/getLvs/' + antrag_id;
+ return {
+ method: 'get',
+ url
+ };
+ },
+ create(prestudent_id, studiensemester) {
+ return {
+ method: 'post',
+ url: '/api/frontend/v1/studstatus/wiederholung/createAntrag',
+ params: {
+ prestudent_id,
+ studiensemester
+ }
+ };
+ },
+ cancel(prestudent_id, studiensemester) {
+ return {
+ method: 'post',
+ url: '/api/frontend/v1/studstatus/wiederholung/cancelAntrag',
+ params: {
+ prestudent_id,
+ studiensemester
+ }
+ };
+ },
+ saveLvs(forbiddenLvs, mandatoryLvs) {
+ return {
+ method: 'post',
+ url: '/api/frontend/v1/studstatus/wiederholung/saveLvs',
+ params: {
+ forbiddenLvs,
+ mandatoryLvs
+ }
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/factory/stundenplan.js b/public/js/api/factory/stundenplan.js
new file mode 100644
index 000000000..3cfa3c641
--- /dev/null
+++ b/public/js/api/factory/stundenplan.js
@@ -0,0 +1,66 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ getRoomInfo(ort_kurzbz, start_date, end_date) {
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/Stundenplan/getRoomplan',
+ params: { ort_kurzbz, start_date, end_date }
+ };
+ },
+ getStundenplan(start_date, end_date, lv_id) {
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/Stundenplan/getStundenplan',
+ params: { start_date, end_date, lv_id }
+ };
+ },
+ getStunden() {
+ // TODO(chris): seems to be called from nowhere?
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/Stundenplan/Stunden'
+ };
+ },
+ getOrtReservierungen(ort_kurzbz, start_date, end_date) {
+ return {
+ method: 'get',
+ url: `/api/frontend/v1/Stundenplan/Reservierungen/${ort_kurzbz}`,
+ params: { start_date, end_date }
+ };
+ },
+ getStundenplanReservierungen(start_date, end_date) {
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/Stundenplan/Reservierungen',
+ params: { start_date, end_date }
+ };
+ },
+ getLehreinheitStudiensemester(lehreinheit_id) {
+ return {
+ method: 'get',
+ url: `/api/frontend/v1/Stundenplan/getLehreinheitStudiensemester/${lehreinheit_id}`
+ };
+ },
+ studiensemesterDateInterval(date) {
+ return {
+ method: 'get',
+ url: `/api/frontend/v1/Stundenplan/studiensemesterDateInterval/${date}`
+ };
+ },
+};
\ No newline at end of file
diff --git a/public/js/api/factory/stv.js b/public/js/api/factory/stv.js
new file mode 100644
index 000000000..7ea387263
--- /dev/null
+++ b/public/js/api/factory/stv.js
@@ -0,0 +1,48 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+import app from './stv/app.js';
+import lists from './stv/lists.js';
+import verband from './stv/verband.js';
+import students from './stv/students.js';
+import filter from './stv/filter.js';
+import konto from './stv/konto.js';
+import kontakt from './stv/kontakt.js';
+import prestudent from './stv/prestudent.js';
+import status from './stv/status.js';
+import details from './stv/details.js';
+import exam from './stv/exam.js';
+import abschlusspruefung from './stv/abschlusspruefung.js';
+import grades from './stv/grades.js';
+import mobility from './stv/mobility.js';
+
+export default {
+ app,
+ lists,
+ verband,
+ students,
+ filter,
+ konto,
+ kontakt,
+ prestudent,
+ status,
+ details,
+ exam,
+ abschlusspruefung,
+ grades,
+ mobility
+};
\ No newline at end of file
diff --git a/public/js/api/factory/stv/abschlusspruefung.js b/public/js/api/factory/stv/abschlusspruefung.js
new file mode 100644
index 000000000..37e442b19
--- /dev/null
+++ b/public/js/api/factory/stv/abschlusspruefung.js
@@ -0,0 +1,111 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ getAbschlusspruefung(uid) {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/abschlusspruefung/getAbschlusspruefung/' + uid
+ };
+ },
+ addNewAbschlusspruefung(params) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/abschlusspruefung/insertAbschlusspruefung/',
+ params
+ };
+ },
+ loadAbschlusspruefung(id) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/abschlusspruefung/loadAbschlusspruefung/',
+ params: { id }
+ };
+ },
+ updateAbschlusspruefung(params) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/abschlusspruefung/updateAbschlusspruefung/',
+ params
+ };
+ },
+ deleteAbschlusspruefung(id) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/abschlusspruefung/deleteAbschlusspruefung/',
+ params: { id }
+ };
+ },
+ getTypenAbschlusspruefung() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/abschlusspruefung/getTypenAbschlusspruefung/'
+ };
+ },
+ getTypenAntritte() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/abschlusspruefung/getTypenAntritte/'
+ };
+ },
+ getBeurteilungen() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/abschlusspruefung/getBeurteilungen/'
+ };
+ },
+ getAkadGrade(studiengang_kz) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/abschlusspruefung/getAkadGrade/',
+ params: { studiengang_kz }
+ };
+ },
+ getTypStudiengang(studiengang_kz) {
+ // TODO(chris): seems to be called from nowhere?
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/abschlusspruefung/getTypStudiengang/',
+ params: { studiengang_kz }
+ };
+ },
+ getMitarbeiter(searchString) {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/abschlusspruefung/getMitarbeiter/' + searchString
+ };
+ },
+ getPruefer(searchString) {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/abschlusspruefung/getPruefer/' + searchString
+ };
+ },
+ getNoten() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/abschlusspruefung/getNoten/'
+ };
+ },
+ checkForExistingExams(uids) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/abschlusspruefung/checkForExistingExams/',
+ params: { uid }
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/factory/stv/app.js b/public/js/api/factory/stv/app.js
new file mode 100644
index 000000000..6fcf46700
--- /dev/null
+++ b/public/js/api/factory/stv/app.js
@@ -0,0 +1,31 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ configStudent() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/config/student'
+ };
+ },
+ configStudents() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/config/students'
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/factory/stv/details.js b/public/js/api/factory/stv/details.js
new file mode 100644
index 000000000..282b0003e
--- /dev/null
+++ b/public/js/api/factory/stv/details.js
@@ -0,0 +1,32 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ get(prestudent_id) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/student/get/' + prestudent_id
+ };
+ },
+ save(prestudent_id, params) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/student/save/' + prestudent_id,
+ params
+ };
+ },
+};
\ No newline at end of file
diff --git a/public/js/api/factory/stv/exam.js b/public/js/api/factory/stv/exam.js
new file mode 100644
index 000000000..0a03cf8f5
--- /dev/null
+++ b/public/js/api/factory/stv/exam.js
@@ -0,0 +1,101 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ getPruefungen(uid) {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/pruefung/getPruefungen/' + uid
+ };
+ },
+ loadPruefung(pruefung_id) {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/pruefung/loadPruefung/' + pruefung_id
+ };
+ },
+ getTypenPruefungen() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/pruefung/getTypenPruefungen'
+ };
+ },
+ getAllLehreinheiten(params) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/pruefung/getAllLehreinheiten/',
+ params
+ };
+ },
+ getLvsByStudent(uid) {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/pruefung/getLvsByStudent/' + uid
+ };
+ },
+ getLvsandLesByStudent(uid, semester) {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/pruefung/getLvsandLesByStudent/' + uid + '/' + semester
+ };
+ },
+ getLvsAndMas(uid) {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/pruefung/getLvsAndMas/' + uid
+ };
+ },
+ getMitarbeiterLv(id) {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/pruefung/getMitarbeiterLv/' + id
+ };
+ },
+ getNoten() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/pruefung/getNoten'
+ };
+ },
+ checkZeugnisnoteLv(params) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/pruefung/checkZeugnisnoteLv/',
+ params
+ };
+ },
+ addPruefung(params) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/pruefung/insertPruefung/',
+ params
+ };
+ },
+ updatePruefung(id, params) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/pruefung/updatePruefung/' + id,
+ params
+ };
+ },
+ deletePruefung(id) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/pruefung/deletePruefung/' + id
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/factory/stv/filter.js b/public/js/api/factory/stv/filter.js
new file mode 100644
index 000000000..b81121702
--- /dev/null
+++ b/public/js/api/factory/stv/filter.js
@@ -0,0 +1,32 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ getStg() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/filter/getStg'
+ };
+ },
+ setStg(studiengang_kz) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/filter/setStg',
+ params: { studiengang_kz }
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/factory/stv/grades.js b/public/js/api/factory/stv/grades.js
new file mode 100644
index 000000000..ea0d025eb
--- /dev/null
+++ b/public/js/api/factory/stv/grades.js
@@ -0,0 +1,96 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ list() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/grades/list'
+ };
+ },
+ getCertificate(prestudent_id, all) {
+ all = all ? '/all' : '';
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/grades/getCertificate/' + prestudent_id + all
+ };
+ },
+ getTeacherProposal(prestudent_id, all) {
+ all = all ? '/all' : '';
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/grades/getTeacherProposal/' + prestudent_id + all
+ };
+ },
+ getRepeaterGrades(prestudent_id, all) {
+ all = all ? '/all' : '';
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/grades/getRepeaterGrades/' + prestudent_id + all
+ };
+ },
+ updateCertificate({lehrveranstaltung_id, student_uid, studiensemester_kurzbz, note, lehrveranstaltung_bezeichnung}) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/grades/updateCertificate',
+ params: {
+ lehrveranstaltung_id,
+ student_uid,
+ studiensemester_kurzbz,
+ note
+ }
+ };
+ },
+ deleteCertificate({lehrveranstaltung_id, student_uid, studiensemester_kurzbz, lehrveranstaltung_bezeichnung}) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/grades/deleteCertificate',
+ params: {
+ lehrveranstaltung_id,
+ student_uid,
+ studiensemester_kurzbz
+ }
+ };
+ },
+ copyTeacherProposalToCertificate({lehrveranstaltung_id, student_uid, studiensemester_kurzbz, lehrveranstaltung_bezeichnung}) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/grades/copyTeacherProposalToCertificate',
+ params: {
+ lehrveranstaltung_id,
+ student_uid,
+ studiensemester_kurzbz
+ }
+ };
+ },
+ copyRepeaterGradeToCertificate({studierendenantrag_lehrveranstaltung_id, lv_bezeichnung}) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/grades/copyRepeaterGradeToCertificate',
+ params: {
+ studierendenantrag_lehrveranstaltung_id
+ }
+ };
+ },
+ getGradeFromPoints(points, lehrveranstaltung_id) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/grades/getGradeFromPoints',
+ params: { points, lehrveranstaltung_id }
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/factory/stv/kontakt.js b/public/js/api/factory/stv/kontakt.js
new file mode 100644
index 000000000..ef77f6d6b
--- /dev/null
+++ b/public/js/api/factory/stv/kontakt.js
@@ -0,0 +1,28 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+import address from './kontakt/address.js';
+import bankaccount from './kontakt/bankaccount.js';
+import contact from './kontakt/contact.js';
+import company from './kontakt/company.js';
+
+export default {
+ address,
+ bankaccount,
+ contact,
+ company
+};
\ No newline at end of file
diff --git a/public/js/api/factory/stv/kontakt/address.js b/public/js/api/factory/stv/kontakt/address.js
new file mode 100644
index 000000000..78027835f
--- /dev/null
+++ b/public/js/api/factory/stv/kontakt/address.js
@@ -0,0 +1,71 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ get(uid) {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/kontakt/getAdressen/' + uid
+ };
+ },
+ add(uid, params) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/kontakt/addNewAddress/' + uid,
+ params
+ };
+ },
+ load(address_id){
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/kontakt/loadAddress/',
+ params: { address_id }
+ };
+ },
+ update(address_id, params) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/kontakt/updateAddress/' + address_id,
+ params
+ };
+ },
+ delete(address_id) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/kontakt/deleteAddress/',
+ params: { address_id }
+ };
+ },
+ getTypes() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/kontakt/getAdressentypen/'
+ };
+ },
+ getPlaces(plz) {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/address/getPlaces/' + plz
+ };
+ },
+ getNations() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/address/getNations/'
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/factory/stv/kontakt/bankaccount.js b/public/js/api/factory/stv/kontakt/bankaccount.js
new file mode 100644
index 000000000..7af230878
--- /dev/null
+++ b/public/js/api/factory/stv/kontakt/bankaccount.js
@@ -0,0 +1,53 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ get(uid) {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/kontakt/getBankverbindung/' + uid
+ };
+ },
+ add(uid, params) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/kontakt/addNewBankverbindung/' + uid,
+ params
+ };
+ },
+ load(bankverbindung_id) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/kontakt/loadBankverbindung/',
+ params: { bankverbindung_id }
+ };
+ },
+ update(bankverbindung_id, params) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/kontakt/updateBankverbindung/' + bankverbindung_id,
+ params
+ };
+ },
+ delete(bankverbindung_id) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/kontakt/deleteBankverbindung/',
+ params: { bankverbindung_id }
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/factory/stv/kontakt/company.js b/public/js/api/factory/stv/kontakt/company.js
new file mode 100644
index 000000000..e97a3de1e
--- /dev/null
+++ b/public/js/api/factory/stv/kontakt/company.js
@@ -0,0 +1,25 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ get(searchString) {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/kontakt/getFirmen/' + searchString
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/factory/stv/kontakt/contact.js b/public/js/api/factory/stv/kontakt/contact.js
new file mode 100644
index 000000000..7193a65c9
--- /dev/null
+++ b/public/js/api/factory/stv/kontakt/contact.js
@@ -0,0 +1,65 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ get(uid) {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/kontakt/getKontakte/' + uid
+ };
+ },
+ add(uid, params) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/kontakt/addNewContact/' + uid,
+ params
+ };
+ },
+ load(kontakt_id) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/kontakt/loadContact/',
+ params: { kontakt_id }
+ };
+ },
+ update(kontakt_id, params) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/kontakt/updateContact/' + kontakt_id,
+ params
+ };
+ },
+ delete(kontakt_id) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/kontakt/deleteContact/',
+ params: { kontakt_id }
+ };
+ },
+ getTypes() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/kontakt/getKontakttypen/'
+ };
+ },
+ getStandorteByFirma(searchString) {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/kontakt/getStandorteByFirma/' + searchString
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/factory/stv/konto.js b/public/js/api/factory/stv/konto.js
new file mode 100644
index 000000000..6c17d460d
--- /dev/null
+++ b/public/js/api/factory/stv/konto.js
@@ -0,0 +1,74 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ get(person_id, only_open, studiengang_kz) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/konto/get',
+ params: {
+ person_id,
+ only_open,
+ studiengang_kz
+ }
+ };
+ },
+ checkDoubles(params) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/konto/checkDoubles',
+ params,
+ config: {
+ confirmErrorHandler: error => true
+ }
+ };
+ },
+ insert(params) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/konto/insert',
+ params
+ };
+ },
+ counter(params) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/konto/counter',
+ params
+ };
+ },
+ edit(params) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/konto/update',
+ params
+ };
+ },
+ delete(buchungsnr) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/konto/delete',
+ params: { buchungsnr }
+ };
+ },
+ getBuchungstypen() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/konto/getBuchungstypen'
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/factory/stv/lists.js b/public/js/api/factory/stv/lists.js
new file mode 100644
index 000000000..4e7904d00
--- /dev/null
+++ b/public/js/api/factory/stv/lists.js
@@ -0,0 +1,55 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ getSprachen() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/lists/getSprachen'
+ };
+ },
+ getGeschlechter() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/lists/getGeschlechter'
+ };
+ },
+ getAusbildungen() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/lists/getAusbildungen'
+ };
+ },
+ getStgs() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/lists/getStgs'
+ };
+ },
+ getOrgforms() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/lists/getOrgforms'
+ };
+ },
+ getStudiensemester() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/lists/getStudiensemester'
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/factory/stv/mobility.js b/public/js/api/factory/stv/mobility.js
new file mode 100644
index 000000000..262dbcf55
--- /dev/null
+++ b/public/js/api/factory/stv/mobility.js
@@ -0,0 +1,128 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ getMobilitaeten(uid) {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/mobility/getMobilitaeten/' + uid
+ };
+ },
+ getProgramsMobility() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/mobility/getProgramsMobility/'
+ };
+ },
+ addNewMobility(params) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/mobility/insertMobility/',
+ params
+ };
+ },
+ loadMobility(bisio_id) {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/mobility/loadMobility/' + bisio_id
+ };
+ },
+ updateMobility(params) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/mobility/updateMobility/',
+ params
+ };
+ },
+ deleteMobility(bisio_id) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/mobility/deleteMobility/' + bisio_id
+ };
+ },
+ getLVList(studiengang_kz) {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/mobility/getLVList/' + studiengang_kz
+ };
+ },
+ getAllLehreinheiten(params) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/mobility/getAllLehreinheiten/',
+ params
+ };
+ },
+ getLvsandLesByStudent(uid) {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/mobility/getLvsandLesByStudent/' + uid
+ };
+ },
+ getPurposes(bisio_id) {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/mobility/getPurposes/' + bisio_id
+ };
+ },
+ getSupports(bisio_id) {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/mobility/getSupports/' + bisio_id
+ };
+ },
+ getListPurposes() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/mobility/getListPurposes/'
+ };
+ },
+ getListSupports() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/mobility/getListSupports/'
+ };
+ },
+ deleteMobilityPurpose(params) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/mobility/deleteMobilityPurpose/' + params.bisio_id,
+ params
+ };
+ },
+ addMobilityPurpose(params) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/mobility/addMobilityPurpose/' + params.bisio_id,
+ params
+ };
+ },
+ deleteMobilitySupport(params) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/mobility/deleteMobilitySupport/' + params.bisio_id,
+ params
+ };
+ },
+ addMobilitySupport(params) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/mobility/addMobilitySupport/' + params.bisio_id,
+ params
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/factory/stv/prestudent.js b/public/js/api/factory/stv/prestudent.js
new file mode 100644
index 000000000..a49dd1d7a
--- /dev/null
+++ b/public/js/api/factory/stv/prestudent.js
@@ -0,0 +1,150 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ //------------- Prestudent.js------------------------------------------------------
+ get(prestudent_id) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/prestudent/get/' + prestudent_id
+ };
+ },
+ updatePrestudent(prestudent_id, params) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/prestudent/updatePrestudent/' + prestudent_id,
+ params
+ };
+ },
+ getBezeichnungZGV() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/prestudent/getBezeichnungZGV/'
+ };
+ },
+ getBezeichnungMZgv() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/prestudent/getBezeichnungMZgv/'
+ };
+ },
+ getBezeichnungDZgv() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/prestudent/getBezeichnungDZgv/'
+ };
+ },
+ getStgs() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/lists/getStgs/'
+ };
+ },
+ getAusbildung() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/prestudent/getAusbildung/'
+ };
+ },
+ getAufmerksamdurch() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/prestudent/getAufmerksamdurch/'
+ };
+ },
+ getBerufstaetigkeit() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/prestudent/getBerufstaetigkeit/'
+ };
+ },
+ getTypenStg() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/prestudent/getTypenStg/'
+ };
+ },
+ getBisstandort() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/prestudent/getBisstandort/'
+ };
+ },
+ //------------- MultiStatus.js------------------------------------------------------
+ getHistoryPrestudent(prestudent_id) {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/status/getHistoryPrestudent/' + prestudent_id
+ };
+ },
+ getMaxSem(studiengang_kzs) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/status/getMaxSemester/',
+ params: { studiengang_kzs }
+ };
+ },
+ advanceStatus({prestudent_id, status_kurzbz, studiensemester_kurzbz, ausbildungssemester}) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/status/advanceStatus/'
+ + prestudent_id + '/'
+ + status_kurzbz + '/'
+ + studiensemester_kurzbz + '/'
+ + ausbildungssemester
+ };
+ },
+ confirmStatus({prestudent_id, status_kurzbz, studiensemester_kurzbz, ausbildungssemester}) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/status/confirmStatus/'
+ + prestudent_id + '/'
+ + status_kurzbz + '/'
+ + studiensemester_kurzbz + '/'
+ + ausbildungssemester
+ };
+ },
+ isLastStatus(id) {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/status/isLastStatus/' + id
+ };
+ },
+ deleteStatus({prestudent_id, status_kurzbz, studiensemester_kurzbz, ausbildungssemester}) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/status/deleteStatus/'
+ + prestudent_id + '/'
+ + status_kurzbz + '/'
+ + studiensemester_kurzbz + '/'
+ + ausbildungssemester
+ };
+ },
+ getLastBismeldestichtag() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/status/getLastBismeldestichtag/'
+ };
+ },
+ //------------- History.js------------------------------------------------------
+ getHistoryPrestudents(person_id) {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/prestudent/getHistoryPrestudents/' + person_id
+ };
+ },
+};
\ No newline at end of file
diff --git a/public/js/api/factory/stv/status.js b/public/js/api/factory/stv/status.js
new file mode 100644
index 000000000..11e7f4fde
--- /dev/null
+++ b/public/js/api/factory/stv/status.js
@@ -0,0 +1,98 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ //------------- Modal.js------------------------------------------------------
+ insertStatus(id, params) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/status/insertStatus/' + id,
+ params
+ };
+ },
+ loadStatus({prestudent_id, status_kurzbz, studiensemester_kurzbz, ausbildungssemester}) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/status/loadStatus/'
+ + prestudent_id + '/'
+ + status_kurzbz + '/'
+ + studiensemester_kurzbz + '/'
+ + ausbildungssemester
+ };
+ },
+ updateStatus({
+ prestudent_id,
+ status_kurzbz,
+ studiensemester_kurzbz,
+ ausbildungssemester
+ }, params) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/status/updateStatus/'
+ + prestudent_id + '/'
+ + status_kurzbz + '/'
+ + studiensemester_kurzbz + '/'
+ + ausbildungssemester,
+ params
+ };
+ },
+ getStudienplaene(prestudent_id) {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/prestudent/getStudienplaene/' + prestudent_id
+ };
+ },
+ getStudiengang(prestudent_id) {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/prestudent/getStudiengang/' + prestudent_id
+ };
+ },
+ getStatusgruende() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/status/getStatusgruende/'
+ };
+ },
+ getStati() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/lists/getStati/'
+ };
+ },
+ //------------- Dropdown.js------------------------------------------------------
+ addStudent(id, params) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/status/addStudent/' + id,
+ params
+ };
+ },
+ changeStatus(id, params) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/status/changeStatus/' + id,
+ params
+ };
+ },
+ getStatusarray() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/status/getStatusarray/'
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/factory/stv/students.js b/public/js/api/factory/stv/students.js
new file mode 100644
index 000000000..582ba04e8
--- /dev/null
+++ b/public/js/api/factory/stv/students.js
@@ -0,0 +1,50 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ uid(uid) {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/students/uid/' + uid
+ };
+ },
+ prestudent(prestudent_id) {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/students/prestudent/' + prestudent_id
+ };
+ },
+ person(person_id) {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/students/person/' + person_id
+ };
+ },
+ verband(relative_path) {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/students/' + relative_path
+ };
+ },
+ check(params) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/student/check',
+ params
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/factory/stv/verband.js b/public/js/api/factory/stv/verband.js
new file mode 100644
index 000000000..114931e4c
--- /dev/null
+++ b/public/js/api/factory/stv/verband.js
@@ -0,0 +1,43 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ get(path) {
+ let url = 'api/frontend/v1/stv/verband';
+ if (path)
+ url += '/' + path;
+ return {
+ method: 'get',
+ url
+ };
+ },
+ favorites: {
+ get() {
+ return {
+ method: 'get',
+ url: 'api/frontend/v1/stv/favorites'
+ };
+ },
+ set(favorites) {
+ return {
+ method: 'post',
+ url: 'api/frontend/v1/stv/favorites/set',
+ params: { favorites }
+ };
+ }
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/factory/widget/ampeln.js b/public/js/api/factory/widget/ampeln.js
new file mode 100644
index 000000000..b634766a8
--- /dev/null
+++ b/public/js/api/factory/widget/ampeln.js
@@ -0,0 +1,37 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ open() {
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/Ampeln/open'
+ };
+ },
+ all() {
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/Ampeln/all'
+ };
+ },
+ confirm(ampel_id) {
+ return {
+ method: 'get',
+ url: `/api/frontend/v1/Ampeln/confirm/${ampel_id}`
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/factory/widget/bookmark.js b/public/js/api/factory/widget/bookmark.js
new file mode 100644
index 000000000..9768e25ac
--- /dev/null
+++ b/public/js/api/factory/widget/bookmark.js
@@ -0,0 +1,45 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ getBookmarks() {
+ return {
+ method: 'get',
+ url: '/api/frontend/v1/Bookmark/getBookmarks'
+ };
+ },
+ delete(bookmark_id) {
+ return {
+ method: 'get',
+ url: `/api/frontend/v1/Bookmark/delete/${bookmark_id}`
+ };
+ },
+ update({ bookmark_id, url, title, tag=null }) {
+ return {
+ method: 'post',
+ url: `/api/frontend/v1/Bookmark/update/${bookmark_id}`,
+ params: { url, title }
+ };
+ },
+ insert({ url, title, tag }) {
+ return {
+ method: 'post',
+ url: `/api/frontend/v1/Bookmark/insert`,
+ params: { url, title, tag }
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/api/udf.js b/public/js/api/udf.js
new file mode 100644
index 000000000..77d1e92cb
--- /dev/null
+++ b/public/js/api/udf.js
@@ -0,0 +1,26 @@
+/**
+ * Copyright (C) 2025 fhcomplete.org
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+export default {
+ load({ ciModel, pk }) {
+ return {
+ method: 'post',
+ url: '/api/frontend/v1/udf/load/' + ciModel,
+ params: pk
+ };
+ }
+};
\ No newline at end of file
diff --git a/public/js/apps/Bismeldestichtag/Bismeldestichtag.js b/public/js/apps/Bismeldestichtag/Bismeldestichtag.js
index 877805b8f..d6e5a4a27 100644
--- a/public/js/apps/Bismeldestichtag/Bismeldestichtag.js
+++ b/public/js/apps/Bismeldestichtag/Bismeldestichtag.js
@@ -23,7 +23,7 @@ import {CoreRESTClient} from '../../RESTClient.js';
import {CoreFetchCmpt} from '../../components/Fetch.js';
import {BismeldestichtagAPIs} from './API.js';
-import Phrasen from '../../plugin/Phrasen.js';
+import PluginsPhrasen from '../../plugins/Phrasen.js';
const bismeldestichtagApp = Vue.createApp({
data: function() {
@@ -237,4 +237,4 @@ const bismeldestichtagApp = Vue.createApp({
}
});
-bismeldestichtagApp.use(Phrasen).mount('#main');
+bismeldestichtagApp.use(PluginsPhrasen).mount('#main');
diff --git a/public/js/apps/Cis.js b/public/js/apps/Cis.js
index 482c2774a..b62592ebd 100644
--- a/public/js/apps/Cis.js
+++ b/public/js/apps/Cis.js
@@ -1,9 +1,7 @@
import FhcSearchbar from "../components/searchbar/searchbar.js";
import CisMenu from "../components/Cis/Menu.js";
-import FhcApi from '../plugin/FhcApi.js';
-import Phrasen from '../plugin/Phrasen.js';
-import fhcapifactory from "./api/fhcapifactory.js";
-Vue.$fhcapi = fhcapifactory;
+import PluginsPhrasen from '../plugins/Phrasen.js';
+import ApiSearchbar from '../api/factory/searchbar.js';
const app = Vue.createApp({
name: 'CisApp',
@@ -113,16 +111,15 @@ const app = Vue.createApp({
},
methods: {
searchfunction: function(searchsettings) {
- return Vue.$fhcapi.search.search(searchsettings);
+ return this.$api.call(ApiSearchbar.search(searchsettings));
}
}
});
-app.use(FhcApi);
app.use(primevue.config.default, {
zIndex: {
overlay: 9000,
tooltip: 8000
}
})
-app.use(Phrasen);
+app.use(PluginsPhrasen);
app.mount('#cis-header');
diff --git a/public/js/apps/Cis/Documents.js b/public/js/apps/Cis/Documents.js
index bcb01b6e8..de03769b4 100644
--- a/public/js/apps/Cis/Documents.js
+++ b/public/js/apps/Cis/Documents.js
@@ -1,4 +1,4 @@
-import Phrasen from '../../plugin/Phrasen.js';
+import PluginsPhrasen from '../../plugins/Phrasen.js';
import {setScrollbarWidth} from "../../helpers/CssVarCalcHelpers.js";
const app = Vue.createApp({
@@ -89,5 +89,5 @@ const app = Vue.createApp({
setScrollbarWidth();
-app.use(Phrasen);
+app.use(PluginsPhrasen);
app.mount('#content');
diff --git a/public/js/apps/Cis/ProfilUpdateRequests.js b/public/js/apps/Cis/ProfilUpdateRequests.js
index 05ce939e4..fc874cf0a 100644
--- a/public/js/apps/Cis/ProfilUpdateRequests.js
+++ b/public/js/apps/Cis/ProfilUpdateRequests.js
@@ -1,6 +1,7 @@
import ProfilUpdateView from "../../components/Cis/ProfilUpdate/ProfilUpdateView.js";
-import Phrasen from "../../plugin/Phrasen.js";
+import PluginsPhrasen from "../../plugins/Phrasen.js";
+import ApiProfilUpdate from '../../api/factory/ProfilUpdate.js';
// TODO: sobald in verwendung den vue router pfad zu ProfilUpdateView definieren und diese app in component auslagern
const app = Vue.createApp({
@@ -23,7 +24,8 @@ const app = Vue.createApp({
},
methods: {},
created() {
- this.$fhcApi.factory.profilUpdate.getStatus()
+ this.$api
+ .call(ApiProfilUpdate.getStatus())
.then((response) => {
this.profilUpdateStates = response.data;
})
@@ -32,4 +34,4 @@ const app = Vue.createApp({
});
},
});
-app.use(Phrasen).mount("#content");
\ No newline at end of file
+app.use(PluginsPhrasen).mount("#content");
\ No newline at end of file
diff --git a/public/js/apps/Dashboard/Admin.js b/public/js/apps/Dashboard/Admin.js
index 0470f82a7..4a5fcee2f 100644
--- a/public/js/apps/Dashboard/Admin.js
+++ b/public/js/apps/Dashboard/Admin.js
@@ -1,7 +1,6 @@
import {CoreNavigationCmpt} from '../../components/navigation/Navigation.js';
import DashboardAdmin from '../../components/Dashboard/Admin.js';
-import FhcApi from '../../plugin/FhcApi.js';
-import Phrasen from '../../plugin/Phrasen.js';
+import PluginsPhrasen from '../../plugins/Phrasen.js';
const app = Vue.createApp({
name: 'AdminApp',
@@ -13,6 +12,5 @@ const app = Vue.createApp({
DashboardAdmin
}
});
-app.use(FhcApi);
-app.use(Phrasen);
+app.use(PluginsPhrasen);
app.mount('#main');
\ No newline at end of file
diff --git a/public/js/apps/Dashboard/Fhc.js b/public/js/apps/Dashboard/Fhc.js
index ea8d512df..3b6bb5683 100644
--- a/public/js/apps/Dashboard/Fhc.js
+++ b/public/js/apps/Dashboard/Fhc.js
@@ -1,6 +1,5 @@
import FhcDashboard from '../../components/Dashboard/Dashboard.js';
-import FhcApi from '../../plugin/FhcApi.js';
-import Phrasen from '../../plugin/Phrasen.js';
+import PluginsPhrasen from '../../plugins/Phrasen.js';
import contrast from '../../directives/contrast.js';
import {setScrollbarWidth} from "../../helpers/CssVarCalcHelpers.js";
import Stundenplan, {DEFAULT_MODE_STUNDENPLAN} from "../../components/Cis/Stundenplan/Stundenplan.js";
@@ -259,13 +258,12 @@ const app = Vue.createApp({
// kind of a bandaid for bad css on some pages to avoid horizontal scroll
setScrollbarWidth();
app.use(router);
-app.use(FhcApi);
app.use(primevue.config.default, {
zIndex: {
overlay: 9000,
tooltip: 8000
}
})
-app.use(Phrasen);
+app.use(PluginsPhrasen);
app.directive('contrast', contrast);
app.mount('#fhccontent');
\ No newline at end of file
diff --git a/public/js/apps/LogsViewer/LogsViewer.js b/public/js/apps/LogsViewer/LogsViewer.js
index 8aefa1d67..eeb4b38a7 100644
--- a/public/js/apps/LogsViewer/LogsViewer.js
+++ b/public/js/apps/LogsViewer/LogsViewer.js
@@ -21,7 +21,7 @@ import {LogsViewerTabulatorEventHandlers} from './TabulatorSetup.js';
import {CoreFilterCmpt} from '../../components/filter/Filter.js';
import {CoreNavigationCmpt} from '../../components/navigation/Navigation.js';
-import Phrasen from '../../plugin/Phrasen.js';
+import PluginsPhrasen from '../../plugins/Phrasen.js';
const logsViewerApp = Vue.createApp({
data: function() {
@@ -42,5 +42,5 @@ const logsViewerApp = Vue.createApp({
}
});
-logsViewerApp.use(Phrasen).mount('#main');
+logsViewerApp.use(PluginsPhrasen).mount('#main');
diff --git a/public/js/apps/Studentenverwaltung.js b/public/js/apps/Studentenverwaltung.js
index fbbee8e1d..a22f1f187 100644
--- a/public/js/apps/Studentenverwaltung.js
+++ b/public/js/apps/Studentenverwaltung.js
@@ -18,7 +18,7 @@
import FhcStudentenverwaltung from "../components/Stv/Studentenverwaltung.js";
import fhcapifactory from "./api/fhcapifactory.js";
-import Phrasen from "../plugin/Phrasen.js";
+import PluginsPhrasen from "../plugins/Phrasen.js";
const ciPath = FHC_JS_DATA_STORAGE_OBJECT.app_root.replace(/(https:|)(^|\/\/)(.*?\/)/g, '') + FHC_JS_DATA_STORAGE_OBJECT.ci_router;
@@ -43,5 +43,5 @@ app
overlay: 1100
}
})
- .use(Phrasen)
+ .use(PluginsPhrasen)
.mount('#main');
diff --git a/public/js/apps/lehre/Antrag.js b/public/js/apps/lehre/Antrag.js
index bb7de3485..97b4bda97 100644
--- a/public/js/apps/lehre/Antrag.js
+++ b/public/js/apps/lehre/Antrag.js
@@ -1,7 +1,7 @@
import StudierendenantragAntrag from "../../components/Studierendenantrag/Antrag.js";
import StudierendenantragStatus from "../../components/Studierendenantrag/Status.js";
import StudierendenantragInfoblock from "../../components/Studierendenantrag/Infoblock.js";
-import Phrasen from '../../plugin/Phrasen.js';
+import PluginsPhrasen from '../../plugins/Phrasen.js';
const app = Vue.createApp({
name: 'AntragApp',
@@ -21,5 +21,5 @@ const app = Vue.createApp({
}
});
app
- .use(Phrasen)
+ .use(PluginsPhrasen)
.mount('#wrapper');
\ No newline at end of file
diff --git a/public/js/apps/lehre/Antrag/Leitung.js b/public/js/apps/lehre/Antrag/Leitung.js
index 22c3fa3f5..8fd8b117e 100644
--- a/public/js/apps/lehre/Antrag/Leitung.js
+++ b/public/js/apps/lehre/Antrag/Leitung.js
@@ -1,5 +1,5 @@
import StudierendenantragLeitung from '../../../components/Studierendenantrag/Leitung.js';
-import Phrasen from '../../../plugin/Phrasen.js';
+import PluginsPhrasen from '../../../plugins/Phrasen.js';
const app = Vue.createApp({
name: 'LeitungApp',
@@ -8,6 +8,6 @@ const app = Vue.createApp({
}
});
app
- .use(Phrasen)
+ .use(PluginsPhrasen)
.use(primevue.config.default,{zIndex: {overlay: 9999}})
.mount('#wrapper');
\ No newline at end of file
diff --git a/public/js/apps/lehre/Antrag/Lvzuweisung.js b/public/js/apps/lehre/Antrag/Lvzuweisung.js
index ecad05fa5..7504e7dcf 100644
--- a/public/js/apps/lehre/Antrag/Lvzuweisung.js
+++ b/public/js/apps/lehre/Antrag/Lvzuweisung.js
@@ -1,5 +1,5 @@
import LvZuweisung from '../../../components/Studierendenantrag/Lvzuweisung.js';
-import Phrasen from '../../../plugin/Phrasen.js';
+import PluginsPhrasen from '../../../plugins/Phrasen.js';
const app = Vue.createApp({
name: 'LvzuweisungApp',
@@ -13,5 +13,5 @@ const app = Vue.createApp({
}
});
app
- .use(Phrasen)
+ .use(PluginsPhrasen)
.mount('#wrapper');
\ No newline at end of file
diff --git a/public/js/apps/lehre/Antrag/Student.js b/public/js/apps/lehre/Antrag/Student.js
index 1848daea4..46150c541 100644
--- a/public/js/apps/lehre/Antrag/Student.js
+++ b/public/js/apps/lehre/Antrag/Student.js
@@ -1,5 +1,5 @@
import LvPopup from '../../../components/Studierendenantrag/Leitung/LvPopup.js';
-import Phrasen from '../../../plugin/Phrasen.js';
+import PluginsPhrasen from '../../../plugins/Phrasen.js';
const app = Vue.createApp({
name: 'StudentApp',
@@ -8,5 +8,5 @@ const app = Vue.createApp({
}
});
app
- .use(Phrasen)
+ .use(PluginsPhrasen)
.mount('#wrapper');
\ No newline at end of file
diff --git a/public/js/apps/lehre/lvplanung/LvTemplates.js b/public/js/apps/lehre/lvplanung/LvTemplates.js
index 5bb8694a0..655d611ce 100644
--- a/public/js/apps/lehre/lvplanung/LvTemplates.js
+++ b/public/js/apps/lehre/lvplanung/LvTemplates.js
@@ -17,9 +17,7 @@
import LvTemplateUebersicht from '../../../lehre/lvplanung/LvTemplateUebersicht.js';
import {CoreNavigationCmpt} from '../../../components/navigation/Navigation.js';
-import FhcAlert from '../../../plugin/FhcAlert.js';
-import FhcApi from "../../../plugin/FhcApi.js";
-import Phrasen from "../../../plugin/Phrasen.js";
+import PluginsPhrasen from "../../../plugins/Phrasen.js";
const lvTemplatesApp = Vue.createApp({
@@ -32,7 +30,5 @@ const lvTemplatesApp = Vue.createApp({
lvTemplatesApp
.use(primevue.config.default,{zIndex: {overlay: 9999}})
- .use(FhcAlert)
- .use(FhcApi)
- .use(Phrasen)
+ .use(PluginsPhrasen)
.mount('#main')
\ No newline at end of file
diff --git a/public/js/components/Betriebsmittel/Betriebsmittel.js b/public/js/components/Betriebsmittel/Betriebsmittel.js
index d1c07db33..39681ffb4 100644
--- a/public/js/components/Betriebsmittel/Betriebsmittel.js
+++ b/public/js/components/Betriebsmittel/Betriebsmittel.js
@@ -35,13 +35,9 @@ export default {
return {
tabulatorOptions: {
ajaxURL: 'dummy',
- ajaxRequestFunc: this.endpoint.getAllBetriebsmittel,
- ajaxParams: () => {
- return {
- type: this.typeId,
- id: this.id
- };
- },
+ ajaxRequestFunc: () => this.$api.call(
+ this.endpoint.getAllBetriebsmittel(this.typeId, this.id)
+ ),
ajaxResponse: (url, params, response) => response.data,
columns: [
{title: "Nummer", field: "nummer", width: 150},
@@ -221,7 +217,9 @@ export default {
.then(result => result
? betriebsmittelperson_id
: Promise.reject({handled: true}))
- .then(this.endpoint.deleteBetriebsmittel)
+ .then(betriebsmittelperson_id => this.$api.call(
+ this.endpoint.deleteBetriebsmittel(betriebsmittelperson_id))
+ )
.then(result => {
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successDelete'));
window.scrollTo(0, 0);
@@ -234,8 +232,8 @@ export default {
this.formData.uid = this.uid;
if (this.formData.betriebsmitteltyp == 'Inventar')
this.formData.betriebsmittel_id = this.formData.inventarData?.betriebsmittel_id;
- return this.endpoint
- .addNewBetriebsmittel(this.$refs.betriebsmittelData, this.id, this.formData)
+ return this.$refs.betriebsmittelData
+ .call(this.endpoint.addNewBetriebsmittel(this.id, this.formData))
.then(response => {
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
this.$refs.betriebsmittelModal.hide();
@@ -248,8 +246,11 @@ export default {
updateBetriebsmittel(betriebsmittelperson_id) {
if (this.formData.betriebsmitteltyp == 'Inventar')
this.formData.betriebsmittel_id = this.formData.inventarData?.betriebsmittel_id;
- return this.endpoint
- .updateBetriebsmittel(this.$refs.betriebsmittelData, betriebsmittelperson_id, this.formData)
+ return this.$refs.betriebsmittelData
+ .call(this.endpoint.updateBetriebsmittel(
+ betriebsmittelperson_id,
+ this.formData
+ ))
.then(response => {
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
this.$refs.betriebsmittelModal.hide();
@@ -262,8 +263,8 @@ export default {
loadBetriebsmittel(betriebsmittelperson_id) {
this.resetModal();
this.statusNew = false;
- return this.endpoint
- .loadBetriebsmittel(betriebsmittelperson_id)
+ return this.$api
+ .call(this.endpoint.loadBetriebsmittel(betriebsmittelperson_id))
.then(result => {
this.formData = result.data;
})
@@ -271,8 +272,8 @@ export default {
},
searchInventar(event) {
const encodedQuery = encodeURIComponent(event.query);
- return this.endpoint
- .loadInventarliste(encodedQuery)
+ return this.$api
+ .call(this.endpoint.loadInventarliste(encodedQuery))
.then(result => {
this.filteredInventar = result.data;
});
@@ -294,8 +295,8 @@ export default {
}
},
created() {
- return this.endpoint
- .getTypenBetriebsmittel()
+ return this.$api
+ .call(this.endpoint.getTypenBetriebsmittel())
.then(result => {
this.listBetriebsmitteltyp = result.data;
})
diff --git a/public/js/components/Calendar/Day/Page.js b/public/js/components/Calendar/Day/Page.js
index a57fb97af..f8d05f7de 100644
--- a/public/js/components/Calendar/Day/Page.js
+++ b/public/js/components/Calendar/Day/Page.js
@@ -1,6 +1,9 @@
import CalendarDate from '../../../composables/CalendarDate.js';
import LvModal from "../../../components/Cis/Mylv/LvModal.js";
+import ApiStundenplan from '../../../api/factory/stundenplan.js';
+import ApiAddons from '../../../api/factory/addons.js';
+
function ggt(m, n) {
return n == 0 ? m : ggt(n, m % n);
}
@@ -245,17 +248,20 @@ export default {
},
fetchLvMenu(event) {
if (event && event.type == 'lehreinheit') {
- this.$fhcApi.factory.stundenplan.getLehreinheitStudiensemester(event.lehreinheit_id[0]).then(
- res => res.data
- ).then(
- studiensemester_kurzbz => {
- this.$fhcApi.factory.addons.getLvMenu(event.lehrveranstaltung_id, studiensemester_kurzbz).then(res => {
- if (res.data) {
- this.lvMenu = res.data;
- }
- });
- }
- )
+ this.$api
+ .call(ApiStundenplan.getLehreinheitStudiensemester(event.lehreinheit_id[0]))
+ .then(res => res.data)
+ .then(studiensemester_kurzbz => this.$api.call(
+ ApiAddons.getLvMenu(
+ event.lehreinheit_id,
+ studiensemester_kurzbz
+ )
+ ))
+ .then(res => {
+ if (res.data) {
+ this.lvMenu = res.data;
+ }
+ });
}
},
hourGridIdentifier(hour) {
diff --git a/public/js/components/Cis/Cms/Content.js b/public/js/components/Cis/Cms/Content.js
index d657322ba..f99d299f6 100644
--- a/public/js/components/Cis/Cms/Content.js
+++ b/public/js/components/Cis/Cms/Content.js
@@ -2,6 +2,8 @@ import raum_contentmittitel from './Content_types/Raum_contentmittitel.js'
import general from './Content_types/General.js'
import BsConfirm from "../../Bootstrap/Confirm.js";
+import ApiCms from '../../../api/factory/cms.js';
+
export default {
name: "ContentComponent",
props: {
@@ -30,33 +32,35 @@ export default {
},
methods: {
fetchContent(){
- return this.$fhcApi.factory.cms.content(this.content_id_internal, this.version, this.sprache, this.sichtbar).then(res => {
- this.content = res.data.content;
- this.content_type = res.data.type;
-
- document.querySelectorAll("#cms [data-confirm]").forEach((el) => {
- el.addEventListener("click", (evt) => {
- evt.preventDefault();
- BsConfirm.popup(el.dataset.confirm)
- .then(() => {
- Axios.get(el.href)
- .then((res) => {
- // TODO(chris): check for success then show message and/or reload
- location = location;
- })
- .catch((err) => console.error("ERROR:", err));
- })
- .catch(() => {
- });
+ return this.$api
+ .call(ApiCms.content(this.content_id_internal, this.version, this.sprache, this.sichtbar))
+ .then(res => {
+ this.content = res.data.content;
+ this.content_type = res.data.type;
+
+ document.querySelectorAll("#cms [data-confirm]").forEach((el) => {
+ el.addEventListener("click", (evt) => {
+ evt.preventDefault();
+ BsConfirm.popup(el.dataset.confirm)
+ .then(() => {
+ Axios.get(el.href)
+ .then((res) => {
+ // TODO(chris): check for success then show message and/or reload
+ location = location;
+ })
+ .catch((err) => console.error("ERROR:", err));
+ })
+ .catch(() => {
+ });
+ });
+ });
+ document.querySelectorAll("#cms [data-href]").forEach((el) => {
+ el.href = el.dataset.href.replace(
+ /^ROOT\//,
+ FHC_JS_DATA_STORAGE_OBJECT.app_root
+ );
});
});
- document.querySelectorAll("#cms [data-href]").forEach((el) => {
- el.href = el.dataset.href.replace(
- /^ROOT\//,
- FHC_JS_DATA_STORAGE_OBJECT.app_root
- );
- });
- });
}
},
watch:{
diff --git a/public/js/components/Cis/Cms/ContentModal.js b/public/js/components/Cis/Cms/ContentModal.js
index b7533305f..40cd32fb9 100644
--- a/public/js/components/Cis/Cms/ContentModal.js
+++ b/public/js/components/Cis/Cms/ContentModal.js
@@ -1,6 +1,7 @@
import BsModal from "../../Bootstrap/Modal.js";
import RaumContent from "./Content_types/Raum_contentmittitel.js";
+import ApiCms from '../../../api/factory/cms.js';
export default {
@@ -34,12 +35,13 @@ export default {
// this method is always called when the modal is shown
modalShown: function(){
- if(this.content_id){
- this.$fhcApi.factory.cms.content(this.content_id).then(res =>{
- this.content = res.data.content;
- this.type = res.data.type;
-
- })
+ if (this.content_id) {
+ this.$api
+ .call(ApiCms.content(this.content_id))
+ .then(res => {
+ this.content = res.data.content;
+ this.type = res.data.type;
+ });
}
},
},
diff --git a/public/js/components/Cis/Cms/News.js b/public/js/components/Cis/Cms/News.js
index 1567cbef4..d9c00bc67 100644
--- a/public/js/components/Cis/Cms/News.js
+++ b/public/js/components/Cis/Cms/News.js
@@ -2,6 +2,8 @@ import Pagination from "../../Pagination/Pagination.js";
import StudiengangInformation from "./StudiengangInformation/StudiengangInformation.js";
import BsConfirm from "../../Bootstrap/Confirm.js";
+import ApiCms from '../../../api/factory/cms.js';
+
export default {
name: "NewsComponent",
components: {
@@ -27,53 +29,55 @@ export default {
},
},
methods: {
- fetchNews: function(){
- return this.$fhcApi.factory.cms.getNews(this.page, this.page_size, this.sprache)
- .then(res => res.data)
- .then(result => {
- this.content = result;
+ fetchNews() {
+ return this.$api
+ .call(ApiCms.getNews(this.page, this.page_size, this.sprache))
+ .then(res => res.data)
+ .then(result => {
+ this.content = result;
- document.querySelectorAll("#cms [data-confirm]").forEach((el) => {
- el.addEventListener("click", (evt) => {
- evt.preventDefault();
- BsConfirm.popup(el.dataset.confirm)
- .then(() => {
- Axios.get(el.href)
- .then((res) => {
- // TODO(chris): check for success then show message and/or reload
- location = location;
+ document.querySelectorAll("#cms [data-confirm]").forEach((el) => {
+ el.addEventListener("click", (evt) => {
+ evt.preventDefault();
+ BsConfirm.popup(el.dataset.confirm)
+ .then(() => {
+ Axios.get(el.href)
+ .then((res) => {
+ // TODO(chris): check for success then show message and/or reload
+ location = location;
+ })
+ .catch((err) => console.error("ERROR:", err));
})
- .catch((err) => console.error("ERROR:", err));
- })
- .catch(() => {
+ .catch(() => {
+ });
});
+ });
+ document.querySelectorAll("#cms [data-href]").forEach((el) => {
+ el.href = el.dataset.href.replace(
+ /^ROOT\//,
+ FHC_JS_DATA_STORAGE_OBJECT.app_root
+ );
+ });
});
- });
- document.querySelectorAll("#cms [data-href]").forEach((el) => {
- el.href = el.dataset.href.replace(
- /^ROOT\//,
- FHC_JS_DATA_STORAGE_OBJECT.app_root
- );
- });
- });
- },
- loadNewPageContent: function (data) {
- this.$fhcApi.factory.cms.getNews(data.page, data.rows)
- .then(res => res.data)
- .then(result => {
- this.content = result;
- });
-
- },
+ },
+ loadNewPageContent(data) {
+ this.$api
+ .call(ApiCms.getNews(data.page, data.rows))
+ .then(res => res.data)
+ .then(result => {
+ this.content = result;
+ });
+ }
},
created() {
this.fetchNews();
- this.$fhcApi.factory.cms.getNewsRowCount()
- .then(res => res.data)
- .then(result => {
- this.maxPageCount = result;
- });
+ this.$api
+ .call(ApiCms.getNewsRowCount())
+ .then(res => res.data)
+ .then(result => {
+ this.maxPageCount = result;
+ });
},
template: /*html*/ `
News
diff --git a/public/js/components/Cis/Cms/StudiengangInformation/StudiengangInformation.js b/public/js/components/Cis/Cms/StudiengangInformation/StudiengangInformation.js
index f12c58e2e..01ac2cd83 100644
--- a/public/js/components/Cis/Cms/StudiengangInformation/StudiengangInformation.js
+++ b/public/js/components/Cis/Cms/StudiengangInformation/StudiengangInformation.js
@@ -1,6 +1,8 @@
import StudiengangPerson from "./StudiengangPerson.js";
import StudiengangVertretung from "./StudiengangVertretung.js";
+import ApiStudiengang from '../../../../api/factory/studiengang.js';
+
export default {
data(){
return{
@@ -108,13 +110,12 @@ computed:{
return `https://moodle.technikum-wien.at/course/view.php?idnumber=dl` + this.studiengang.studiengang_kz;
},
},
-mounted(){
- this.$fhcApi.factory.studiengang.studiengangInformation()
- .then(res => res.data)
- .then(studiengangInformationen => {
- Object.assign(this, studiengangInformationen);
- });
-
-},
-
+ mounted() {
+ this.$api
+ .call(ApiStudiengang.studiengangInformation())
+ .then(res => res.data)
+ .then(studiengangInformationen => {
+ Object.assign(this, studiengangInformationen);
+ });
+ }
};
\ No newline at end of file
diff --git a/public/js/components/Cis/Menu.js b/public/js/components/Cis/Menu.js
index ebab00109..cada49636 100644
--- a/public/js/components/Cis/Menu.js
+++ b/public/js/components/Cis/Menu.js
@@ -1,6 +1,8 @@
import CisMenuEntry from "./Menu/Entry.js";
import FhcSearchbar from "../searchbar/searchbar.js";
-import CisSprachen from "./Sprachen.js"
+import CisSprachen from "./Sprachen.js";
+
+import ApiCisMenu from '../../api/factory/cis/menu.js';
export default {
components: {
@@ -50,12 +52,13 @@ export default {
}
},
methods: {
- fetchMenu: function(){
- return this.$fhcApi.factory.menu.getMenu()
- .then(res => res.data)
- .then(menu => {
- this.entries = menu;
- })
+ fetchMenu() {
+ return this.$api
+ .call(ApiCisMenu.getMenu())
+ .then(res => res.data)
+ .then(menu => {
+ this.entries = menu;
+ });
},
checkSettingsVisibility: function (event) {
// hides the settings collapsible if the user clicks somewhere else
diff --git a/public/js/components/Cis/Mylv/LvModal.js b/public/js/components/Cis/Mylv/LvModal.js
index 9c42e312f..6c85e4157 100644
--- a/public/js/components/Cis/Mylv/LvModal.js
+++ b/public/js/components/Cis/Mylv/LvModal.js
@@ -3,6 +3,9 @@ import Alert from "../../Bootstrap/Alert.js";
import LvMenu from "./LvMenu.js"
import LvInfo from "./LvInfo.js"
+import ApiStundenplan from '../../../api/factory/stundenplan.js';
+import ApiAddons from '../../../api/factory/addons.js';
+
export default {
components: {
BsModal,
@@ -47,17 +50,20 @@ export default {
if(!this.showMenu) return;
if (this.event.type == 'lehreinheit') {
- this.$fhcApi.factory.stundenplan.getLehreinheitStudiensemester(this.event.lehreinheit_id[0]).then(
- res=>res.data
- ).then(
- studiensemester_kurzbz =>{
- this.$fhcApi.factory.addons.getLvMenu(this.event.lehrveranstaltung_id, studiensemester_kurzbz).then(res => {
- if (res.data) {
- this.menu = res.data;
- }
- });
- }
- )
+ this.$api
+ .call(ApiStundenplan.getLehreinheitStudiensemester(this.event.lehreinheit_id[0]))
+ .then(res => res.data)
+ .then(studiensemester_kurzbz => this.$api.call(
+ ApiAddons.getLvMenu(
+ this.event.lehrveranstaltung_id,
+ studiensemester_kurzbz
+ )
+ ))
+ .then(res => {
+ if (res.data) {
+ this.menu = res.data;
+ }
+ });
}
},
},
diff --git a/public/js/components/Cis/Mylv/LvUebersicht.js b/public/js/components/Cis/Mylv/LvUebersicht.js
index 13972af5e..fddf97d38 100644
--- a/public/js/components/Cis/Mylv/LvUebersicht.js
+++ b/public/js/components/Cis/Mylv/LvUebersicht.js
@@ -1,5 +1,8 @@
import BsModal from "../../Bootstrap/Modal.js";
import LvMenu from "./LvMenu.js";
+
+import ApiAddons from '../../../api/factory/addons.js';
+
export default {
props:{
@@ -34,13 +37,15 @@ export default {
this.isMenuSelected = false;
},
showModal: function(){
- if(!this.preselectedMenu){
- this.$fhcApi.factory.addons.getLvMenu(this.event.lehrveranstaltung_id, this.event.studiensemester_kurzbz).then(res =>{
- if(res.data){
- this.menu = res.data;
- }
- });
- }else{
+ if (!this.preselectedMenu) {
+ this.$api
+ .call(ApiAddons.getLvMenu(this.event.lehrveranstaltung_id, this.event.studiensemester_kurzbz))
+ .then(res => {
+ if (res.data) {
+ this.menu = res.data;
+ }
+ });
+ } else {
this.isMenuSelected = true;
}
},
diff --git a/public/js/components/Cis/Mylv/RoomInformation.js b/public/js/components/Cis/Mylv/RoomInformation.js
index 8a7354305..3a1e1146c 100644
--- a/public/js/components/Cis/Mylv/RoomInformation.js
+++ b/public/js/components/Cis/Mylv/RoomInformation.js
@@ -3,6 +3,8 @@ import CalendarDate from "../../../composables/CalendarDate.js";
import LvModal from "../../../components/Cis/Mylv/LvModal.js";
import LvInfo from "../../../components/Cis/Mylv/LvInfo.js"
+import ApiStudenplan from '../../../api/factory/stundenplan.js';
+
export const DEFAULT_MODE_RAUMINFO = 'Week'
const RoomInformation = {
@@ -163,8 +165,8 @@ const RoomInformation = {
// bundles the room_events and the reservierungen together into the this.events array
Promise.allSettled([
- this.$fhcApi.factory.stundenplan.getRoomInfo(this.propsViewData.ort_kurzbz, this.monthFirstDay, this.monthLastDay),
- this.$fhcApi.factory.stundenplan.getOrtReservierungen(this.propsViewData.ort_kurzbz, this.monthFirstDay, this.monthLastDay)
+ this.$api.call(ApiStudenplan.getRoomInfo(this.propsViewData.ort_kurzbz, this.monthFirstDay, this.monthLastDay)),
+ this.$api.call(ApiStudenplan.getOrtReservierungen(this.propsViewData.ort_kurzbz, this.monthFirstDay, this.monthLastDay))
]).then((result) => {
let promise_events = [];
result.forEach((promise_result) => {
diff --git a/public/js/components/Cis/Mylv/Semester/Studiengang/Lv.js b/public/js/components/Cis/Mylv/Semester/Studiengang/Lv.js
index ea19652c6..e699900ff 100644
--- a/public/js/components/Cis/Mylv/Semester/Studiengang/Lv.js
+++ b/public/js/components/Cis/Mylv/Semester/Studiengang/Lv.js
@@ -3,6 +3,9 @@ import LvInfo from "./Lv/Info.js";
import Phrasen from "../../../../../mixins/Phrasen.js";
import LvUebersicht from "../../LvUebersicht.js";
+import ApiLehre from '../../../../../api/factory/lehre.js';
+import ApiAddons from '../../../../../api/factory/addons.js';
+
// TODO(chris): L10n
export default {
@@ -75,8 +78,9 @@ export default {
},
methods: {
- fetchMenu(lehrveranstaltung_id = this.lehrveranstaltung_id, studien_semester = this.studien_semester){
- return this.$fhcApi.factory.addons.getLvMenu(lehrveranstaltung_id, studien_semester)
+ fetchMenu(lehrveranstaltung_id = this.lehrveranstaltung_id, studien_semester = this.studien_semester) {
+ return this.$api
+ .call(ApiAddons.getLvMenu(lehrveranstaltung_id, studien_semester))
.then(res => {
this.menu = res.data;
})
@@ -139,13 +143,13 @@ export default {
this.fetchMenu(this.lehrveranstaltung_id, newValue);
}
},
- created(){
- this.$fhcApi.factory.lehre.getStudentPruefungen(this.lehrveranstaltung_id)
- .then(res => res.data)
- .then(pruefungen =>{
- this.pruefungenData = pruefungen;
- });
-
+ created() {
+ this.$api
+ .call(ApiLehre.getStudentPruefungen(this.lehrveranstaltung_id))
+ .then(res => res.data)
+ .then(pruefungen => {
+ this.pruefungenData = pruefungen;
+ });
},
mounted() {
this.fetchMenu(this.lehrveranstaltung_id, this.studien_semester);
diff --git a/public/js/components/Cis/Mylv/Semester/Studiengang/Lv/Info.js b/public/js/components/Cis/Mylv/Semester/Studiengang/Lv/Info.js
index 2c0f7f044..28afbd1ce 100644
--- a/public/js/components/Cis/Mylv/Semester/Studiengang/Lv/Info.js
+++ b/public/js/components/Cis/Mylv/Semester/Studiengang/Lv/Info.js
@@ -1,4 +1,4 @@
-
+import ApiLehre from '../../../../../../api/factory/lehre.js';
const infos = {};
@@ -57,7 +57,7 @@ export default {
}
},
created() {
- this.$fhcApi.factory.lehre.getLvInfo(this.studien_semester, this.lehrveranstaltung_id)
+ this.$api.call(ApiLehre.getLvInfo(this.studien_semester, this.lehrveranstaltung_id))
.then(
res => res.data
).then(data =>{
diff --git a/public/js/components/Cis/Profil/MitarbeiterProfil.js b/public/js/components/Cis/Profil/MitarbeiterProfil.js
index a31594755..07a6339e4 100644
--- a/public/js/components/Cis/Profil/MitarbeiterProfil.js
+++ b/public/js/components/Cis/Profil/MitarbeiterProfil.js
@@ -10,6 +10,8 @@ import ProfilEmails from "./ProfilComponents/ProfilEmails.js";
import RoleInformation from "./ProfilComponents/RoleInformation.js";
import ProfilInformation from "./ProfilComponents/ProfilInformation.js";
+import ApiProfilUpdate from '../../../api/factory/profilUpdate.js';
+
export default {
components: {
CoreFilterCmpt,
@@ -162,7 +164,8 @@ export default {
hideEditProfilModal: function () {
//? checks the editModal component property result, if the user made a successful request or not
if (this.$refs.editModal.result) {
- this.$fhcApi.factory.profilUpdate.selectProfilRequest()
+ this.$api
+ .call(ApiProfilUpdate.selectProfilRequest())
.then((request) => {
if (!request.error && request) {
this.data.profilUpdates = request.data;
@@ -195,13 +198,15 @@ export default {
},
fetchProfilUpdates: function () {
- this.$fhcApi.factory.profilUpdate.selectProfilRequest().then((res) => {
- if (!res.error && res) {
- this.data.profilUpdates = res.data?.length
- ? res.data.sort(this.sortProfilUpdates)
- : null;
- }
- });
+ this.$api
+ .call(ApiProfilUpdate.selectProfilRequest())
+ .then((res) => {
+ if (!res.error && res) {
+ this.data.profilUpdates = res.data?.length
+ ? res.data.sort(this.sortProfilUpdates)
+ : null;
+ }
+ });
},
setTableColumnTitles() { // reevaluates computed phrasen
if(this.$refs.betriebsmittelTable) this.$refs.betriebsmittelTable.tabulator.setColumns(this.betriebsmittel_table_options.columns)
diff --git a/public/js/components/Cis/Profil/Profil.js b/public/js/components/Cis/Profil/Profil.js
index 73dd8b132..edb55e6b3 100644
--- a/public/js/components/Cis/Profil/Profil.js
+++ b/public/js/components/Cis/Profil/Profil.js
@@ -4,6 +4,9 @@ import ViewStudentProfil from "./StudentViewProfil.js";
import ViewMitarbeiterProfil from "./MitarbeiterViewProfil.js";
import Loading from "../../Loader.js";
+import ApiProfil from '../../../api/factory/profil.js';
+import ApiProfilUpdate from '../../../api/factory/profilUpdate.js';
+
Vue.$collapseFormatter = function (data) {
//data - an array of objects containing the column title and value for each cell
var container = document.createElement("div");
@@ -132,7 +135,8 @@ export const Profil = {
methods: {
async load() {
// fetch profilUpdateStates to provide them to children components
- await this.$fhcApi.factory.profilUpdate.getStatus()
+ await this.$api
+ .call(ApiProfilUpdate.getStatus())
.then((response) => {
this.profilUpdateStates = response.data;
})
@@ -140,7 +144,8 @@ export const Profil = {
console.error(error);
});
- this.$fhcApi.factory.profilUpdate.getTopic()
+ this.$api
+ .call(ApiProfilUpdate.getTopic())
.then((response) => {
this.profilUpdateTopic = response.data;
})
@@ -150,14 +155,16 @@ export const Profil = {
let uid = this.uid ?? location.pathname.split("/").pop();
- this.$fhcApi.factory.profil.getView(uid).then((res) => {
- if (!res.data) {
- this.notFoundUID = uid;
- } else {
- this.view = res.data?.view;
- this.data = res.data?.data;
- }
- });
+ this.$api
+ .call(ApiProfil.getView(uid))
+ .then((res) => {
+ if (!res.data) {
+ this.notFoundUID = uid;
+ } else {
+ this.view = res.data?.view;
+ this.data = res.data?.data;
+ }
+ });
},
zustellAdressenCount() {
if (!this.data || !this.data.adressen) {
diff --git a/public/js/components/Cis/Profil/ProfilComponents/FetchProfilUpdates.js b/public/js/components/Cis/Profil/ProfilComponents/FetchProfilUpdates.js
index 4c7411cdf..d5e85b944 100644
--- a/public/js/components/Cis/Profil/ProfilComponents/FetchProfilUpdates.js
+++ b/public/js/components/Cis/Profil/ProfilComponents/FetchProfilUpdates.js
@@ -1,4 +1,8 @@
import EditProfil from "../ProfilModal/EditProfil.js";
+
+import ApiProfil from '../../../../api/factory/profil.js';
+import ApiProfilUpdate from '../../../../api/factory/profilUpdate.js';
+
//? EditProfil is the modal used to edit the profil updates
export default {
components: {EditProfil},
@@ -52,11 +56,13 @@ export default {
};
const filesFromDatabase =
- await this.$fhcApi.factory.profilUpdate.getProfilRequestFiles(
- updateRequest.profil_update_id
- ).then((res) => {
- return res.data;
- });
+ await this.$api
+ .call(ApiProfilUpdate.getProfilRequestFiles(
+ updateRequest.profil_update_id
+ ))
+ .then((res) => {
+ return res.data;
+ });
files = filesFromDatabase;
if (files) {
@@ -77,7 +83,7 @@ export default {
if (view === "EditAdresse") {
- const isMitarbeiter = await this.$fhcApi.factory.profil.isMitarbeiter(updateRequest.uid).then((res) => res.data);
+ const isMitarbeiter = await this.$api.call(ApiProfil.isMitarbeiter(updateRequest.uid)).then((res) => res.data);
if (isMitarbeiter) {
content["isMitarbeiter"] = isMitarbeiter;
@@ -106,16 +112,16 @@ export default {
},
deleteRequest: function (item) {
- this.$fhcApi.factory.profilUpdate.deleteProfilRequest(item.profil_update_id).then(
- (res) => {
+ this.$api
+ .call(ApiProfil.deleteProfilRequest(item.profil_update_id))
+ .then((res) => {
if (res.data.error) {
//? open alert
console.error("error happened", res.data);
} else {
this.$emit("fetchUpdates");
}
- }
- );
+ });
},
getView: function (topic, status) {
diff --git a/public/js/components/Cis/Profil/ProfilComponents/ProfilInformation.js b/public/js/components/Cis/Profil/ProfilComponents/ProfilInformation.js
index e42229576..e39b4d57d 100644
--- a/public/js/components/Cis/Profil/ProfilComponents/ProfilInformation.js
+++ b/public/js/components/Cis/Profil/ProfilComponents/ProfilInformation.js
@@ -1,3 +1,5 @@
+import ApiProfil from '../../../../api/factory/profil.js';
+
export default {
props: {
title: {
@@ -24,10 +26,12 @@ export default {
if (!this.data) {
return;
}
- this.$fhcApi.factory.profil.fotoSperre(!this.FotoSperre).then(res => {
- this.FotoSperre = res.data.foto_sperre;
- })
- },
+ this.$api
+ .call(ApiProfil.fotoSperre(!this.FotoSperre))
+ .then(res => {
+ this.FotoSperre = res.data.foto_sperre;
+ });
+ }
},
computed: {
get_image_base64_src: function () {
diff --git a/public/js/components/Cis/Profil/ProfilModal/EditProfil.js b/public/js/components/Cis/Profil/ProfilModal/EditProfil.js
index cbfde34be..26ab7ff1d 100644
--- a/public/js/components/Cis/Profil/ProfilModal/EditProfil.js
+++ b/public/js/components/Cis/Profil/ProfilModal/EditProfil.js
@@ -3,6 +3,8 @@ import Alert from "../../../Bootstrap/Alert.js";
import EditProfilSelect from "./EditProfilSelect.js";
import Loader from "../../../Loader.js";
+import ApiProfilUpdate from '../../../../api/factory/profilUpdate.js';
+
export default {
components: {
BsModal,
@@ -96,12 +98,13 @@ export default {
//? if an updateID is present, updateProfilRequest is called, else insertProfilRequest is called
this.editData.updateID ?
- this.$fhcApi.factory.profilUpdate.updateProfilRequest(
- this.topic,
- this.profilUpdate,
- this.editData.updateID,
- this.fileID ? this.fileID[0] : null
- )
+ this.$api
+ .call(ApiProfilUpdate.updateProfilRequest(
+ this.topic,
+ this.profilUpdate,
+ this.editData.updateID,
+ this.fileID ? this.fileID[0] : null
+ ))
.then((res) => {
handleApiResponse(res);
})
@@ -112,11 +115,12 @@ export default {
this.hide();
})
:
- this.$fhcApi.factory.profilUpdate.insertProfilRequest(
- this.topic,
- this.profilUpdate,
- this.fileID ? this.fileID[0] : null
- )
+ this.$api
+ .call(ApiProfilUpdate.insertProfilRequest(
+ this.topic,
+ this.profilUpdate,
+ this.fileID ? this.fileID[0] : null
+ ))
.then((res) => {
handleApiResponse(res);
})
@@ -136,16 +140,20 @@ export default {
const result = this.editData.updateID
? //? updating old attachment by replacing
//* second parameter of api request insertFile checks if the file has to be replaced or not
- await this.$fhcApi.factory.profilUpdate.insertFile(
- formData,
- this.editData.updateID
- ).then((res) => {
- return res.data?.map((file) => file.dms_id);
- })
+ await this.$api
+ .call(ApiProfilUpdate.insertFile(
+ formData,
+ this.editData.updateID
+ ))
+ .then((res) => {
+ return res.data?.map((file) => file.dms_id);
+ })
: //? fresh insert of new attachment
- await this.$fhcApi.factory.profilUpdate.insertFile(formData).then((res) => {
- return res.data?.map((file) => file.dms_id);
- });
+ await this.$api
+ .call(ApiProfilUpdate.insertFile(formData))
+ .then((res) => {
+ return res.data?.map((file) => file.dms_id);
+ });
return result;
} else {
//? attachment hasn't been replaced
diff --git a/public/js/components/Cis/Profil/ProfilModal/EditProfilComponents/EditAdresse.js b/public/js/components/Cis/Profil/ProfilModal/EditProfilComponents/EditAdresse.js
index 2aca5c4ce..8f174dabc 100644
--- a/public/js/components/Cis/Profil/ProfilModal/EditProfilComponents/EditAdresse.js
+++ b/public/js/components/Cis/Profil/ProfilModal/EditProfilComponents/EditAdresse.js
@@ -1,3 +1,5 @@
+import ApiProfil from '../../../../../api/factory/profil.js';
+
export default {
components: {
AutoComplete: primevue.autocomplete,
@@ -52,8 +54,8 @@ export default {
this.data.plz > 999 &&
this.data.plz < 32000
) {
- this.$fhcApi.factory.profil
- .getGemeinden(this.data.nation, this.data.plz)
+ this.$api
+ .call(ApiProfil.getGemeinden(this.data.nation, this.data.plz))
.then((res) => {
if (res.data.length) {
this.gemeinden = [
@@ -120,10 +122,12 @@ export default {
created() {
// get all available nationen
- this.$fhcApi.factory.profil.getAllNationen().then((res)=>{
- this.nationenList = res.data;
- this.getGemeinde();
- })
+ this.$api
+ .call(ApiProfil.getAllNationen())
+ .then(res => {
+ this.nationenList = res.data;
+ this.getGemeinde();
+ });
this.originalValue = JSON.stringify(this.data);
this.zustellAdressenCount = this.getZustelladressenCount();
diff --git a/public/js/components/Cis/Profil/ProfilModal/EditProfilComponents/Status.js b/public/js/components/Cis/Profil/ProfilModal/EditProfilComponents/Status.js
index 437bb1fb5..a0492a2da 100644
--- a/public/js/components/Cis/Profil/ProfilModal/EditProfilComponents/Status.js
+++ b/public/js/components/Cis/Profil/ProfilModal/EditProfilComponents/Status.js
@@ -1,6 +1,8 @@
import Adresse from "../../ProfilComponents/Adresse.js";
import Kontakt from "../../ProfilComponents/Kontakt.js";
+import ApiProfilUpdate from '../../../../../api/factory/profilUpdate.js';
+
export default {
components: {
Adresse,
@@ -65,11 +67,11 @@ export default {
topic: { type: String },
},
created() {
- this.$fhcApi.factory.profilUpdate.getProfilRequestFiles(this.updateID).then(
- (res) => {
+ this.$api
+ .call(ApiProfilUpdate.getProfilRequestFiles(this.updateID))
+ .then((res) => {
this.files = res.data;
- }
- );
+ });
},
template: /*html*/ `
diff --git a/public/js/components/Cis/Profil/StudentProfil.js b/public/js/components/Cis/Profil/StudentProfil.js
index 364feecd2..635033fda 100644
--- a/public/js/components/Cis/Profil/StudentProfil.js
+++ b/public/js/components/Cis/Profil/StudentProfil.js
@@ -10,6 +10,8 @@ import ProfilInformation from "./ProfilComponents/ProfilInformation.js";
import FetchProfilUpdates from "./ProfilComponents/FetchProfilUpdates.js";
import EditProfil from "./ProfilModal/EditProfil.js";
+import ApiProfilUpdate from '../../../api/factory/profilUpdate.js';
+
export default {
components: {
CoreFilterCmpt,
@@ -114,19 +116,22 @@ export default {
);
},
fetchProfilUpdates: function () {
- this.$fhcApi.factory.profilUpdate.selectProfilRequest().then((res) => {
- if (!res.error && res) {
- this.data.profilUpdates = res.data?.length
- ? res.data.sort(this.sortProfilUpdates)
- : null;
- }
- });
+ this.$api
+ .call(ApiProfilUpdate.selectProfilRequest())
+ .then((res) => {
+ if (!res.error && res) {
+ this.data.profilUpdates = res.data?.length
+ ? res.data.sort(this.sortProfilUpdates)
+ : null;
+ }
+ });
},
hideEditProfilModal: function () {
//? checks the editModal component property result, if the user made a successful request or not
if (this.$refs.editModal.result) {
- this.$fhcApi.factory.profilUpdate.selectProfilRequest()
+ this.$api
+ .call(ApiProfilUpdate.selectProfilRequest())
.then((request) => {
if (!request.error && res) {
this.data.profilUpdates = request.data;
diff --git a/public/js/components/Cis/ProfilUpdate/AcceptDenyUpdate.js b/public/js/components/Cis/ProfilUpdate/AcceptDenyUpdate.js
index f3746af63..d9495f073 100644
--- a/public/js/components/Cis/ProfilUpdate/AcceptDenyUpdate.js
+++ b/public/js/components/Cis/ProfilUpdate/AcceptDenyUpdate.js
@@ -3,6 +3,8 @@ import Alert from "../../Bootstrap/Alert.js";
import Kontakt from "../Profil/ProfilComponents/Kontakt.js";
import Adresse from "../Profil/ProfilComponents/Adresse.js";
+import ApiProfilUpdate from '../../../api/factory/profilUpdate.js';
+
export default {
components: {
BsModal,
@@ -62,11 +64,12 @@ export default {
handleRequest: function (type) {
this.loading = true;
this.setLoading(true);
- this.$fhcApi.factory.profilUpdate[
- type.toLowerCase() == "accept"
- ? "acceptProfilRequest"
- : "denyProfilRequest"
- ](this.data)
+ this.$api
+ .call(ApiProfilUpdate[
+ type.toLowerCase() == "accept"
+ ? "acceptProfilRequest"
+ : "denyProfilRequest"
+ ](this.data))
.then((res) => {
this.result = true;
})
@@ -93,11 +96,13 @@ export default {
created() {
// only fetching the profilUpdate Attachemnts if the profilUpdate actually has attachments
if (this.value.attachment_id) {
- this.$fhcApi.factory.profilUpdate.getProfilRequestFiles(
- this.data.profil_update_id
- ).then((res) => {
- this.files = res.data;
- });
+ this.$api
+ .call(ApiProfilUpdate.getProfilRequestFiles(
+ this.data.profil_update_id
+ ))
+ .then((res) => {
+ this.files = res.data;
+ });
}
},
mounted() {
diff --git a/public/js/components/Cis/ProfilUpdate/ProfilUpdateView.js b/public/js/components/Cis/ProfilUpdate/ProfilUpdateView.js
index c30f1ab89..0f9d64541 100644
--- a/public/js/components/Cis/ProfilUpdate/ProfilUpdateView.js
+++ b/public/js/components/Cis/ProfilUpdate/ProfilUpdateView.js
@@ -3,6 +3,8 @@ import AcceptDenyUpdate from "./AcceptDenyUpdate.js";
import Alert from "../../../components/Bootstrap/Alert.js";
import Loading from "../../../components/Loader.js";
+import ApiProfilUpdate from '../../../api/factory/profilUpdate.js';
+
const sortProfilUpdates = (ele1, ele2, thisPointer) => {
let result = 0;
if (ele1.status === thisPointer.profilUpdateStates["Pending"]) {
@@ -127,7 +129,8 @@ export default {
"acceptUpdate"
)}`,
action: (e, column) => {
- this.$fhcApi.factory.profilUpdate.acceptProfilRequest(column.getData())
+ this.$api
+ .call(ApiProfilUpdate.acceptProfilRequest(column.getData()))
.then((res) => {
this.$refs.UpdatesTable.tabulator.setData();
})
@@ -143,7 +146,8 @@ export default {
"denyUpdate"
)}`,
action: (e, column) => {
- this.$fhcApi.factory.profilUpdate.denyProfilRequest(column.getData())
+ this.$api
+ .call(ApiProfilUpdate.denyProfilRequest(column.getData()))
.then((res) => {
this.$refs.UpdatesTable.tabulator.setData();
})
@@ -296,7 +300,8 @@ export default {
},
methods: {
denyProfilUpdate: function (data) {
- this.$fhcApi.factory.profilUpdate.denyProfilRequest(data)
+ this.$api
+ .call(ApiProfilUpdate.denyProfilRequest(data))
.then((res) => {
// block when the request was successful
})
@@ -306,7 +311,8 @@ export default {
});
},
acceptProfilUpdate: function (data) {
- this.$fhcApi.factory.profilUpdate.acceptProfilRequest(data)
+ this.$api
+ .call(ApiProfilUpdate.acceptProfilRequest(data))
.then((res) => {
// block when the request was successful
})
diff --git a/public/js/components/Cis/Sprachen.js b/public/js/components/Cis/Sprachen.js
index fd53d06db..4e450c136 100644
--- a/public/js/components/Cis/Sprachen.js
+++ b/public/js/components/Cis/Sprachen.js
@@ -10,7 +10,7 @@ export default {
if(this.allActiveLanguages.some(l => l.sprache === lang))
{
const isReload = document.querySelector('[cis4Reload]')
- this.$p.setLanguage(lang, this.$fhcApi)
+ this.$p.setLanguage(lang)
.then(res => res.data)
.then(data =>
{
diff --git a/public/js/components/Cis/Stundenplan/Stundenplan.js b/public/js/components/Cis/Stundenplan/Stundenplan.js
index 3fee43058..664e9ec87 100644
--- a/public/js/components/Cis/Stundenplan/Stundenplan.js
+++ b/public/js/components/Cis/Stundenplan/Stundenplan.js
@@ -4,6 +4,9 @@ import LvModal from "../Mylv/LvModal.js";
import LvInfo from "../Mylv/LvInfo.js"
import LvMenu from "../Mylv/LvMenu.js"
+import ApiStundenplan from '../../../api/factory/stundenplan.js';
+import ApiAuthinfo from '../../../api/factory/authinfo.js';
+
export const DEFAULT_MODE_STUNDENPLAN = 'Week'
const Stundenplan = {
@@ -101,7 +104,7 @@ const Stundenplan = {
},
methods:{
fetchStudiensemesterDetails: async function (date) {
- return this.$fhcApi.factory.stundenplan.studiensemesterDateInterval(date);
+ return this.$api.call(ApiStundenplan.studiensemesterDateInterval(date));
},
convertTime: function([hour,minute]){
let date = new Date();
@@ -199,8 +202,8 @@ const Stundenplan = {
},
loadEvents: function(){
Promise.allSettled([
- this.$fhcApi.factory.stundenplan.getStundenplan(this.monthFirstDay, this.monthLastDay, this.propsViewData.lv_id),
- this.$fhcApi.factory.stundenplan.getStundenplanReservierungen(this.monthFirstDay, this.monthLastDay)
+ this.$api.call(ApiStundenplan.getStundenplan(this.monthFirstDay, this.monthLastDay, this.propsViewData.lv_id)),
+ this.$api.call(ApiStundenplan.getStundenplanReservierungen(this.monthFirstDay, this.monthLastDay))
]).then((result) => {
let promise_events = [];
result.forEach((promise_result) => {
@@ -232,12 +235,13 @@ const Stundenplan = {
});
},
},
- created()
- {
- this.$fhcApi.factory.authinfo.getAuthUID().then((res) => res.data)
- .then(data=>{
- this.uid = data.uid;
- })
+ created() {
+ this.$api
+ .call(ApiAuthinfo.getAuthUID())
+ .then(res => res.data)
+ .then(data => {
+ this.uid = data.uid;
+ });
this.loadEvents();
},
beforeUnmount() {
diff --git a/public/js/components/Dashboard/Dashboard.js b/public/js/components/Dashboard/Dashboard.js
index 74a65ecaa..83c7efed2 100644
--- a/public/js/components/Dashboard/Dashboard.js
+++ b/public/js/components/Dashboard/Dashboard.js
@@ -2,6 +2,8 @@ import DashboardSection from "./Section.js";
import DashboardWidgetPicker from "./Widget/Picker.js";
import ObjectUtils from "../../helpers/ObjectUtils.js";
+import ApiDashboard from '../../api/factory/cis/dashboard.js';
+
export default {
components: {
DashboardSection,
@@ -163,8 +165,8 @@ export default {
}).catch(err => console.error('ERROR:', err));
},
async beforeMount() {
- if(!this.viewData.name || !this.viewData.uid) {
- const res = await this.$fhcApi.factory.dashboard.getViewData()
+ if (!this.viewData.name || !this.viewData.uid) {
+ const res = await this.$api.call(ApiDashboard.getViewData());
this.viewDataInternal = res.data
}
},
diff --git a/public/js/components/DashboardWidget/Ampel.js b/public/js/components/DashboardWidget/Ampel.js
index 925942079..a12de7726 100644
--- a/public/js/components/DashboardWidget/Ampel.js
+++ b/public/js/components/DashboardWidget/Ampel.js
@@ -1,6 +1,8 @@
import AbstractWidget from './Abstract.js';
import BaseOffcanvas from '../Base/Offcanvas.js';
+import ApiAmpeln from '../../api/factory/widget/ampeln.js';
+
let _idcounter = 0;
export default {
@@ -76,16 +78,16 @@ export default {
// maybe we also want to reset the source (open/alle) of the displayed ampeln
},
fetchNonConfirmedActiveAmpeln() {
- this.$fhcApi.factory
- .ampeln.open()
+ this.$api
+ .call(ApiAmpeln.open())
.then(res => {
this.activeAmpeln = res.data;
})
.catch(error => this.$fhcAlert.handleSystemError);
},
fetchAllActiveAmpeln() {
- this.$fhcApi.factory
- .ampeln.all()
+ this.$api
+ .call(ApiAmpeln.all())
.then(res => {
this.allAmpeln = res.data;
})
@@ -93,8 +95,8 @@ export default {
},
async confirm(ampelId) {
- this.$fhcApi.factory
- .ampeln.confirm(ampelId)
+ this.$api
+ .call(ApiAmpeln.confirm(ampelId))
.then(() => {
this.$fhcAlert.alertSuccess(this.$p.t('ampeln', 'ampelBestaetigt'));
// update the ampeln by refetching them
diff --git a/public/js/components/DashboardWidget/News.js b/public/js/components/DashboardWidget/News.js
index b7bd2f367..54f28c448 100644
--- a/public/js/components/DashboardWidget/News.js
+++ b/public/js/components/DashboardWidget/News.js
@@ -1,6 +1,8 @@
import AbstractWidget from './Abstract.js';
import BsModal from '../Bootstrap/Modal.js';
+import ApiCms from '../../api/factory/cms.js';
+
const MAX_LOADED_NEWS = 30;
export default {
@@ -132,8 +134,8 @@ export default {
},
created() {
this.$emit("setConfig", false);
- this.$fhcApi.factory.cms
- .news(MAX_LOADED_NEWS)
+ this.$api
+ .call(ApiCms.news(MAX_LOADED_NEWS))
.then(res => res.data)
.then((news) => {
this.allNewsList = Array.from(Object.values(news));
diff --git a/public/js/components/DashboardWidget/Stundenplan.js b/public/js/components/DashboardWidget/Stundenplan.js
index 7bb972590..7696c7a3f 100644
--- a/public/js/components/DashboardWidget/Stundenplan.js
+++ b/public/js/components/DashboardWidget/Stundenplan.js
@@ -5,6 +5,9 @@ import LvModal from '../Cis/Mylv/LvModal.js';
import ContentModal from '../Cis/Cms/ContentModal.js'
import CalendarDate from '../../composables/CalendarDate.js';
+import ApiStundenplan from '../../api/factory/stundenplan.js';
+import ApiOrt from '../../api/factory/ort.js';
+
export default {
mixins: [
Phrasen,
@@ -80,20 +83,20 @@ export default {
},
showRoomInfoModal: function(ort_kurzbz){
// getting the content_id of the ort_kurzbz
- this.$fhcApi.factory.ort.getContentID(ort_kurzbz).then(res =>{
- this.roomInfoContentID = res.data;
- this.ort_kurzbz = ort_kurzbz;
+ this.$api
+ .call(ApiOrt.getContentID(ort_kurzbz))
+ .then(res => {
+ this.roomInfoContentID = res.data;
+ this.ort_kurzbz = ort_kurzbz;
- // only showing the modal after vue was able to set the reactive data
- Vue.nextTick(()=>{this.$refs.contentModal.show();});
-
-
- }).catch(err =>{
- console.err(err);
- this.ort_kurzbz = null;
- this.roomInfoContentID = null;
- });
-
+ // only showing the modal after vue was able to set the reactive data
+ Vue.nextTick(() => { this.$refs.contentModal.show(); });
+ })
+ .catch(err => {
+ console.err(err);
+ this.ort_kurzbz = null;
+ this.roomInfoContentID = null;
+ });
},
showLvUebersicht: function (event){
this.selectedEvent= event;
@@ -122,8 +125,8 @@ export default {
loadEvents: function () {
Promise.allSettled([
- this.$fhcApi.factory.stundenplan.getStundenplan(this.monthFirstDay, this.monthLastDay),
- this.$fhcApi.factory.stundenplan.getStundenplanReservierungen(this.monthFirstDay, this.monthLastDay)
+ this.$api.call(ApiStundenplan.getStundenplan(this.monthFirstDay, this.monthLastDay)),
+ this.$api.call(ApiStundenplan.getStundenplanReservierungen(this.monthFirstDay, this.monthLastDay))
]).then((result) => {
let promise_events = [];
result.forEach((promise_result) => {
diff --git a/public/js/components/DashboardWidget/Url.js b/public/js/components/DashboardWidget/Url.js
index 7f836bf1c..2b1dea81d 100644
--- a/public/js/components/DashboardWidget/Url.js
+++ b/public/js/components/DashboardWidget/Url.js
@@ -3,6 +3,8 @@ import FormInput from "../Form/Input.js";
import BsModal from "../Bootstrap/Modal.js";
import AbstractWidget from './Abstract.js';
+import ApiBookmark from '../../api/factory/widget/bookmark.js';
+
export default {
name: "WidgetsUrl",
mixins: [AbstractWidget],
@@ -62,12 +64,12 @@ export default {
event.preventDefault();
if(!this.bookmark_id || !this.url_input || !this.title_input) return;
- this.$fhcApi.factory.bookmark
- .update({
+ this.$api
+ .call(ApiBookmark.update({
bookmark_id: this.bookmark_id,
title: this.title_input,
url: this.url_input,
- })
+ }))
.then((res) => res.data)
.then((result) => {
this.$fhcAlert.alertInfo(this.$p.t("bookmark", "bookmarkUpdated"));
@@ -92,12 +94,12 @@ export default {
// early return if validation failed
if (!this.isValidationSuccessfull()) return;
- this.$fhcApi.factory.bookmark
- .insert({
+ this.$api
+ .call(ApiBookmark.insert({
tag: this.config.tag,
title: this.title_input,
url: this.url_input,
- })
+ }))
.then((res) => res.data)
.then((result) => {
this.$fhcAlert.alertInfo(this.$p.t("bookmark", "bookmarkAdded"));
@@ -124,8 +126,8 @@ export default {
return !Object.values(this.validation).some(value => value === true);
},
async fetchBookmarks() {
- await this.$fhcApi.factory.bookmark
- .getBookmarks()
+ await this.$api
+ .call(ApiBookmark.getBookmarks())
.then((res) => res.data)
.then((result) => {
this.shared = result;
@@ -138,8 +140,8 @@ export default {
// early return if the confirm dialog was not confirmed
if (!isConfirmed) return;
- this.$fhcApi.factory.bookmark
- .delete(bookmark_id)
+ this.$api
+ .call(ApiBookmark.delete(bookmark_id))
.then((res) => res.data)
.then((result) => {
this.$fhcAlert.alertInfo(this.$p.t("bookmark", "bookmarkDeleted"));
diff --git a/public/js/components/Form/Form.js b/public/js/components/Form/Form.js
index f83dc5ed4..3cf340232 100644
--- a/public/js/components/Form/Form.js
+++ b/public/js/components/Form/Form.js
@@ -42,7 +42,9 @@ export default {
return a;
}, {});
},
+ /* Depricated Code start */
factory() {
+ console.warn('