refactor fhcApi

This commit is contained in:
cgfhtw
2025-03-24 13:38:49 +01:00
parent f6352211f2
commit 9f06fbcf93
142 changed files with 4713 additions and 785 deletions
+25
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
export default {
getLvMenu(lvid, studiensemester_kurzbz) {
return {
method: 'get',
url: `/api/frontend/v1/LvMenu/getLvMenu/${lvid}/${studiensemester_kurzbz}`
};
}
};
+25
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
export default {
getAuthUID() {
return {
method: 'get',
url: '/api/frontend/v1/AuthInfo/getAuthUID'
};
}
};
+22
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
import person from "./betriebsmittel/person.js";
export default {
person
};
@@ -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 <https://www.gnu.org/licenses/>.
*/
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
};
}
};
+37
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
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
};
}
};
+25
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
export default {
getViewData() {
return {
method: 'get',
url: '/api/frontend/v1/Cis4FhcApi/getViewData'
};
}
};
+25
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
export default {
getMenu() {
return {
method: 'get',
url: '/api/frontend/v1/CisMenu/getMenu'
};
}
};
+64
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
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'
};
}
};
+95
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
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
}
};
}
};
+39
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
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}`
};
}
};
+33
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
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 }
};
}
};
+22
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
import person from "./notiz/person.js";
export default {
person
};
+87
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
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/'
};
}
};
+26
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
export default {
getContentID(ort_kurbz) {
return {
method: 'get',
url: '/api/frontend/v1/Ort/ContentID',
params: { ort_kurzbz: ort_kurbz }
};
}
};
+45
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
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'
};
}
};
+73
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
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'
};
}
};
+110
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
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 }
};
}
};
+26
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
export default {
search(params) {
return {
method: 'post',
url: '/api/frontend/v1/searchbar/search',
params
};
}
};
+32
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
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 }
};
}
};
+28
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
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
};
@@ -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 <https://www.gnu.org/licenses/>.
*/
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 }
};
}
};
+100
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
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
};
}
};
@@ -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 <https://www.gnu.org/licenses/>.
*/
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
}
};
}
};
@@ -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 <https://www.gnu.org/licenses/>.
*/
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
}
};
}
};
+66
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
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}`
};
},
};
+48
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
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
};
@@ -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 <https://www.gnu.org/licenses/>.
*/
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 }
};
}
};
+31
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
export default {
configStudent() {
return {
method: 'get',
url: 'api/frontend/v1/stv/config/student'
};
},
configStudents() {
return {
method: 'get',
url: 'api/frontend/v1/stv/config/students'
};
}
};
+32
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
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
};
},
};
+101
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
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
};
}
};
+32
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
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 }
};
}
};
+96
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
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 }
};
}
};
+28
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
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
};
@@ -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 <https://www.gnu.org/licenses/>.
*/
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/'
};
}
};
@@ -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 <https://www.gnu.org/licenses/>.
*/
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 }
};
}
};
@@ -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 <https://www.gnu.org/licenses/>.
*/
export default {
get(searchString) {
return {
method: 'get',
url: 'api/frontend/v1/stv/kontakt/getFirmen/' + searchString
};
}
};
@@ -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 <https://www.gnu.org/licenses/>.
*/
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
};
}
};
+74
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
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'
};
}
};
+55
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
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'
};
}
};
+128
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
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
};
}
};
+150
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
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
};
},
};
+98
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
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/'
};
}
};
+50
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
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
};
}
};
+43
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
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 }
};
}
}
};
+37
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
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}`
};
}
};
+45
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
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 }
};
}
};
+26
View File
@@ -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 <https://www.gnu.org/licenses/>.
*/
export default {
load({ ciModel, pk }) {
return {
method: 'post',
url: '/api/frontend/v1/udf/load/' + ciModel,
params: pk
};
}
};
@@ -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');
+4 -7
View File
@@ -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');
+2 -2
View File
@@ -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');
+5 -3
View File
@@ -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");
app.use(PluginsPhrasen).mount("#content");
+2 -4
View File
@@ -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');
+2 -4
View File
@@ -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');
+2 -2
View File
@@ -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');
+2 -2
View File
@@ -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');
+2 -2
View File
@@ -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');
+2 -2
View File
@@ -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');
+2 -2
View File
@@ -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');
+2 -2
View File
@@ -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');
@@ -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')
@@ -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;
})
+17 -11
View File
@@ -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) {
+29 -25
View File
@@ -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:{
+8 -6
View File
@@ -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;
});
}
},
},
+43 -39
View File
@@ -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*/ `
<h2 >News</h2>
@@ -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);
});
}
};
+10 -7
View File
@@ -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
+17 -11
View File
@@ -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;
}
});
}
},
},
+12 -7
View File
@@ -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;
}
},
@@ -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) => {
@@ -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);
@@ -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 =>{
@@ -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)
+17 -10
View File
@@ -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) {
@@ -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) {
@@ -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 () {
@@ -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
@@ -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();
@@ -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*/ `
<div class="row">
@@ -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;
@@ -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() {
@@ -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
})
+1 -1
View File
@@ -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 =>
{
@@ -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() {
+4 -2
View File
@@ -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
}
},
@@ -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
+4 -2
View File
@@ -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));
@@ -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) => {
+12 -10
View File
@@ -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"));
+18 -2
View File
@@ -42,7 +42,9 @@ export default {
return a;
}, {});
},
/* Depricated Code start */
factory() {
console.warn('<form>.factory is deprecated! Use <form>.call() instead.');
const factory = Object.create(Object.getPrototypeOf(this.$fhcApi.factory), Object.getOwnPropertyDescriptors(this.$fhcApi.factory));
factory.$fhcApi = {
get: this.get,
@@ -51,6 +53,7 @@ export default {
};
return factory;
}
/* Depricated Code end */
},
methods: {
get(...args) {
@@ -59,7 +62,12 @@ export default {
else
args.unshift(this);
return this.$fhcApi.get(...args);
/* Depricated Code start */
if (!this.$api)
return this.$fhcApi.get(...args);
/* Depricated Code end */
return this.$api.get(...args);
},
post(...args) {
if (typeof args[0] == 'object' && args[0].clearValidation && args[0].setFeedback)
@@ -67,7 +75,15 @@ export default {
else
args.unshift(this);
return this.$fhcApi.post(...args);
/* Depricated Code start */
if (!this.$api)
return this.$fhcApi.post(...args);
/* Depricated Code end */
return this.$api.post(...args);
},
call(factory, overwriteconfig) {
return this.$api.call(factory, overwriteconfig, this);
},
_sendFeedbackToInput(inputs, feedback, valid) {
if (inputs.length) {
+15 -8
View File
@@ -48,7 +48,7 @@ export default {
return {
tabulatorOptions: {
ajaxURL: 'dummy',
ajaxRequestFunc: this.endpoint.getNotizen,
ajaxRequestFunc: () => this.$api.call(this.endpoint.getNotizen(this.id, this.typeId)),
ajaxParams: () => {
return {
id: this.id,
@@ -338,7 +338,8 @@ export default {
this.$refs.formNotiz.clearValidation();
return this.endpoint.addNewNotiz(this.$refs.formNotiz, this.id, formData)
return this.$refs.formNotiz
.call(this.endpoint.addNewNotiz(this.id, formData))
.then(response => {
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
this.resetFormData();
@@ -353,7 +354,8 @@ export default {
});
},
deleteNotiz(notiz_id) {
return this.endpoint.deleteNotiz(notiz_id, this.typeId, this.id)
return this.$api
.call(this.endpoint.deleteNotiz(notiz_id, this.typeId, this.id))
.then(result => {
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successDelete'));
this.reload();
@@ -365,7 +367,8 @@ export default {
});
},
loadNotiz(notiz_id) {
return this.endpoint.loadNotiz(notiz_id)
return this.$api
.call(this.endpoint.loadNotiz(notiz_id))
.then(result => {
this.notizData = result.data;
this.notizData.typeId = this.typeId;
@@ -375,7 +378,8 @@ export default {
.catch(this.$fhcAlert.handleSystemError);
},
loadDocEntries(notiz_id) {
return this.endpoint.loadDokumente(notiz_id)
return this.$api
.call(this.endpoint.loadDokumente(notiz_id))
.then(
result => {
this.notizData.anhang = result.data;
@@ -389,7 +393,8 @@ export default {
Object.entries(this.notizData.anhang).forEach(([k, v]) => formData.append(k, v));
this.$refs.formNotiz.clearValidation();
return this.endpoint.updateNotiz(this.$refs.formNotiz, notiz_id, formData)
return this.$refs.formNotiz
.call(this.endpoint.updateNotiz(notiz_id, formData))
.then(response => {
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
this.resetFormData();
@@ -426,14 +431,16 @@ export default {
};
},
getUid() {
return this.endpoint.getUid()
return this.$api
.call(this.endpoint.getUid())
.then(result => {
this.notizData.intVerfasser = result.data;
})
.catch(this.$fhcAlert.handleSystemError);
},
search(event) {
return this.endpoint.getMitarbeiter(event.query)
return this.$api
.call(this.endpoint.getMitarbeiter(event.query))
.then(result => {
this.filteredMitarbeiter = result.data.retval;
});
@@ -3,6 +3,8 @@ import CoreForm from '../../Form/Form.js';
import FormValidation from '../../Form/Validation.js';
import FormInput from '../../Form/Input.js';
import ApiStudstatusAbmeldung from '../../../api/factory/studstatus/abmeldung.js';
var _uuid = 0;
export default {
@@ -43,8 +45,8 @@ export default {
},
methods: {
load() {
return this.$fhcApi.factory
.studstatus.abmeldung.getDetails(this.studierendenantragId, this.prestudentId)
return this.$api
.call(ApiStudstatusAbmeldung.getDetails(this.studierendenantragId, this.prestudentId))
.then(result => {
this.data = result.data;
if (this.data.status) {
@@ -70,12 +72,12 @@ export default {
this.saving = true;
this.$refs.form.clearValidation();
this.$refs.form.factory
.studstatus.abmeldung.create(
this.$refs.form
.call(ApiStudstatusAbmeldung.create(
this.data.studiensemester_kurzbz,
this.data.prestudent_id,
this.formData.grund
)
))
.then(result => {
if (result.data === true)
@@ -111,10 +113,7 @@ export default {
this.saving = true;
this.$refs.form.clearValidation();
this.$refs.form.factory
.studstatus.abmeldung.cancel(
this.data.studierendenantrag_id
)
this.$refs.form.call(ApiStudstatusAbmeldung.cancel(this.data.studierendenantrag_id))
.then(result => {
if (Number.isInteger(result.data))
document.location = document.location.replace(/abmeldung\/([0-9]*)\/[0-9]*[\/]?$/, 'abmeldung/$1') + "/" + result.data;
@@ -3,6 +3,9 @@ import CoreForm from '../../Form/Form.js';
import FormValidation from '../../Form/Validation.js';
import FormInput from '../../Form/Input.js';
import ApiStudstatusAbmeldung from '../../../api/factory/studstatus/abmeldung.js';
import ApiCheckperson from '../../../api/factory/checkperson.js';
var _uuid = 0;
export default {
@@ -45,8 +48,8 @@ export default {
},
methods: {
load() {
return this.$fhcApi.factory
.studstatus.abmeldung.getDetails(this.studierendenantragId, this.prestudentId)
return this.$api
.call(ApiStudstatusAbmeldung.getDetails(this.studierendenantragId, this.prestudentId))
.then(result => {
this.data = result.data;
if (this.data.status) {
@@ -71,21 +74,22 @@ export default {
this.saving = true;
this.$refs.form.clearValidation();
this.$refs.form.factory
.studstatus.abmeldung.create(
this.$refs.form
.call(ApiStudstatusAbmeldung.create(
this.data.studiensemester_kurzbz,
this.data.prestudent_id,
this.formData.grund
)
))
.then(result => {
if(this.unrulyInternal) {
this.$fhcApi.factory.checkperson.updatePersonUnrulyStatus(this.data.person_id, true).then(
(res)=> {
if(res?.meta?.status === "success") {
if (this.unrulyInternal) {
this.$api
.call(ApiCheckperson.updatePersonUnrulyStatus(this.data.person_id, true))
.then(res => {
if (res?.meta?.status === "success") {
this.$fhcAlert.alertSuccess(this.$p.t('studierendenantrag', 'antrag_unruly_updated'))
}
})
});
}
if (result.data === true)
@@ -3,6 +3,7 @@ import CoreForm from '../../Form/Form.js';
import FormValidation from '../../Form/Validation.js';
import FormInput from '../../Form/Input.js';
import ApiStudstatusUnterbrechung from '../../../api/factory/studstatus/unterbrechung.js';
export default {
components: {
@@ -72,8 +73,11 @@ export default {
},
methods: {
load() {
return this.$fhcApi.factory
.studstatus.unterbrechung.getDetails(this.studierendenantragId, this.prestudentId)
return this.$api
.call(ApiStudstatusUnterbrechung.getDetails(
this.studierendenantragId,
this.prestudentId
))
.then(
result => {
this.data = result.data;
@@ -99,14 +103,14 @@ export default {
this.saving = true;
this.$refs.form.clearValidation();
this.$refs.form.factory
.studstatus.unterbrechung.create(
this.$refs.form
.call(ApiStudstatusUnterbrechung.create(
this.stsem !== null && this.data.studiensemester[this.stsem].studiensemester_kurzbz,
this.data.prestudent_id,
this.data.grund,
this.stsem !== null && this.currentWiedereinstieg,
this.attachment
)
))
.then(result => {
if (Number.isInteger(result.data))
document.location += "/" + result.data;
@@ -141,10 +145,10 @@ export default {
this.saving = true;
this.$refs.form.clearValidation();
this.$refs.form.factory
.studstatus.unterbrechung.cancel(
this.$refs.form
.call(ApiStudstatusUnterbrechung.cancel(
this.data.studierendenantrag_id
)
))
.then(result => {
if (Number.isInteger(result.data))
document.location = document.location.replace(/unterbrechung\/([0-9]*)\/[0-9]*[\/]?$/, 'unterbrechung/$1') + "/" + result.data;
@@ -2,6 +2,7 @@ import {CoreFetchCmpt} from '../../Fetch.js';
import CoreForm from '../../Form/Form.js';
import FormValidation from '../../Form/Validation.js';
import ApiStudstatusWiederholung from '../../../api/factory/studstatus/wiederholung.js';
export default {
components: {
@@ -49,10 +50,10 @@ export default {
},
methods: {
load() {
return this.$fhcApi.factory
.studstatus.wiederholung.getDetails(
return this.$api
.call(ApiStudstatusWiederholung.getDetails(
this.prestudentId
)
))
.then(result => {
this.data = result.data;
if (!this.data.status || this.data.status == 'ErsteAufforderungVersandt' || this.data.status == 'ZweiteAufforderungVersandt') {
@@ -87,11 +88,11 @@ export default {
});
this.saving = true;
this.$refs.form.factory
.studstatus.wiederholung[func](
this.$refs.form
.call(ApiStudstatusWiederholung[func](
this.data.prestudent_id,
this.data.studiensemester_kurzbz
)
))
.then(result => {
if (result.data === true)
document.location += "";
@@ -6,6 +6,9 @@ import LvPopup from './Leitung/LvPopup.js';
import BsAlert from '../Bootstrap/Alert.js';
import FhcLoader from '../Loader.js';
import ApiStudstatusLeitung from '../../api/factory/studstatus/leitung.js';
import ApiStudstatusAbmeldung from '../../api/factory/studstatus/abmeldung.js';
export default {
components: {
LeitungHeader,
@@ -39,8 +42,8 @@ export default {
},
methods: {
loadFilter() {
this.$fhcApi.factory
.studstatus.leitung.getStgs()
this.$api
.call(ApiStudstatusLeitung.getStgs())
.then(result => this.stgs = result.data)
.catch(this.$fhcAlert.handleSystemError);
},
@@ -98,8 +101,8 @@ export default {
}
} else {
this.$refs.loader.show();
this.$fhcApi.factory
.studstatus.leitung.approve(oks)
this
._singleOrMultiApiCall(oks, ApiStudstatusLeitung.approve)
.then(this.showResults);
}
},
@@ -130,37 +133,38 @@ export default {
.catch(() => {});
} else {
this.$refs.loader.show();
this.$fhcApi.factory
.studstatus.leitung.reject(gruende)
this
._singleOrMultiApiCall(gruende, ApiStudstatusLeitung.reject)
.then(this.showResults);
}
},
actionReopen(evt) {
var antraege = evt || this.selectedData;
this.$refs.loader.show();
this.$fhcApi.factory
.studstatus.leitung.reopen(gruende)
this
._singleOrMultiApiCall(antraege, ApiStudstatusLeitung.reopen)
.then(this.showResults);
},
actionPause(evt) {
var antraege = evt || this.selectedData;
this.$refs.loader.show();
this.$fhcApi.factory
.studstatus.leitung.pause(antraege)
this
._singleOrMultiApiCall(antraege, ApiStudstatusLeitung.pause)
.then(this.showResults);
},
actionUnpause(evt) {
var antraege = evt || this.selectedData;
this.$refs.loader.show();
this.$fhcApi.factory
.studstatus.leitung.unpause(antraege)
this
._singleOrMultiApiCall(antraege, ApiStudstatusLeitung.unpause)
.then(this.showResults);
},
actionObject(evt) {
var antraege = evt || this.selectedData;
this.$refs.loader.show();
this.$fhcApi.factory
.studstatus.leitung.object(antraege)
this
._singleOrMultiApiCall(antraege, ApiStudstatusLeitung.object)
.then(this.showResults);
},
actionoObjectionDeny(evt, gruende) {
@@ -189,24 +193,35 @@ export default {
.catch(() => {});
} else {
this.$refs.loader.show();
this.$fhcApi.factory
.studstatus.leitung.denyObjection(gruende)
this
._singleOrMultiApiCall(gruende, ApiStudstatusLeitung.denyObjection)
.then(this.showResults);
}
},
actionObjectionApprove(evt, gruende) {
var antraege = evt || this.selectedData;
this.$refs.loader.show();
this.$fhcApi.factory
.studstatus.leitung.approveObjection(antraege)
this
._singleOrMultiApiCall(antraege, ApiStudstatusLeitung.approveObjection)
.then(this.showResults);
},
actionCancel(evt) {
var antraege = evt || this.selectedData;
this.$refs.loader.show();
this.$fhcApi.factory
.studstatus.abmeldung.cancel(antraege)
.then(this.showResults);
if (Array.isArray(antraege)) {
Promise
.allSettled(
antraege.map(antrag => this.$api.call(
ApiStudstatusAbmeldung.cancel(antrag.studierendenantrag_id),
{ errorHeader: '#' + antrag.studierendenantrag_id }
))
)
.then(this.showResults);
} else {
this.$api
.call(ApiStudstatusAbmeldung.cancel(antraege))
.then(this.showResults);
}
},
showResults(results) {
let fulfilled = results.filter(res => res.status == 'fulfilled');
@@ -214,6 +229,16 @@ export default {
//fulfilled.forEach(a => this.$fhcAlert.alertDefault('success', '#' + a.value.data, 'Approved, ...'));
if (fulfilled.length)
this.reload();
},
_singleOrMultiApiCall(antraege, endpoint) {
if (Array.isArray(antraege)) {
return Promise
.allSettled(antraege.map(antrag => this.$api.call(
endpoint(antrag),
{ errorHeader: '#' + antrag.studierendenantrag_id }
)));
}
return this.$api.call(endpoint(antraege));
}
},
created() {
@@ -1,6 +1,8 @@
import BsAlert from '../../../Bootstrap/Alert.js';
import BsModal from '../../../Bootstrap/Modal.js';
import ApiStudstatusLeitung from '../../../../api/factory/studstatus/leitung.js';
export default {
components: {
BsModal,
@@ -47,8 +49,11 @@ export default {
}
this.abortController = new AbortController();
this.$fhcApi.factory
.studstatus.leitung.getPrestudents(evt.query, this.abortController.signal)
this.$api
.call(ApiStudstatusLeitung.getPrestudents(evt.query), {
signal: this.abortController.signal,
timeout: 30000
})
.then(result => {
this.data = result.data;
this.abortController = null;
@@ -1,6 +1,8 @@
import BsAlert from '../../Bootstrap/Alert.js';
import {CoreFetchCmpt} from "../../Fetch.js";
import ApiStudstatusWiederholung from '../../../api/factory/studstatus/wiederholung.js';
export default {
components: {
CoreFetchCmpt
@@ -45,8 +47,8 @@ export default {
loadlvs() {
if (!this.antragId)
return new Promise(() => {});
return this.$fhcApi.factory
.studstatus.wiederholung.getLvs(this.antragId);
return this.$api
.call(ApiStudstatusWiederholung.getLvs(this.antragId));
},
submit(result) {
this.result = [result, this.check];
@@ -3,6 +3,8 @@ import {CoreFetchCmpt} from '../../Fetch.js';
import LvPopup from './LvPopup.js';
import { dateFilter } from '../../../tabulator/filters/Dates.js';
import ApiStudstatusLeitung from '../../../api/factory/studstatus/leitung.js';
export default {
components: {
BsModal,
@@ -50,12 +52,12 @@ export default {
getHistory() {
if (this.lastHistoryClickedId === null)
return null;
return this.$fhcApi.factory
.studstatus.leitung.getHistory(this.lastHistoryClickedId)
return this.$api
.call(ApiStudstatusLeitung.getHistory(this.lastHistoryClickedId))
.then(res => {
this.historyData = res.data.sort((a, b) => a.insertamum > b.insertamum);
})
.catch(this.$fhcApi.handleSystemError);
.catch(this.$fhcAlert.handleSystemError);
},
getHistoryStatus(data, index) {
if (data.insertvon == 'Studienabbruch')
@@ -112,7 +114,8 @@ export default {
height: '65vh',
layout: "fitDataFill",
ajaxURL: '/' + (this.filter || ''),
ajaxRequestFunc: this.$fhcApi.factory.studstatus.leitung.getAntraege,
ajaxRequestFunc: url => this.$api.call(ApiStudstatusLeitung.getAntraege(url)),
ajaxResponse: (url, params, response) => response.data,
persistence: { // NOTE(chris): do not store column titles
sort: true, //persist column sorting
filter: true, //persist filters
@@ -1,5 +1,7 @@
import StudierendenantragStatus from './Status.js';
import ApiStudstatusWiederholung from '../../api/factory/studstatus/wiederholung.js';
export default {
components: {
StudierendenantragStatus
@@ -56,8 +58,11 @@ export default {
anmerkung: lv.antrag_anmerkung || "",
studiensemester_kurzbz: this.lvs2sem
}));
this.$fhcApi.factory
.studstatus.wiederholung.saveLvs(forbiddenLvs, mandatoryLvs)
this.$api
.call(ApiStudstatusWiederholung.saveLvs(
forbiddenLvs,
mandatoryLvs
))
.then(response => {
this.$fhcAlert.alertSuccess('Speichern erfolgreich');
this.statusCode = response.data[0].studierendenantrag_statustyp_kurzbz;
@@ -78,8 +83,9 @@ export default {
mounted() {
this.$p
.loadCategory(['ui', 'lehre', 'studierendenantrag', 'global'])
.then(() => this.antragId)
.then(this.$fhcApi.factory.studstatus.wiederholung.getLvs)
.then(() => this.$api.call(
ApiStudstatusWiederholung.getLvs(this.antragId)
))
.then(result => {
let res = {};
for (var k in result.data) {

Some files were not shown because too many files have changed in this diff Show More