Refactoring FhcApi_Factory

This commit is contained in:
ma0068
2025-04-23 12:03:21 +02:00
parent d780b472a6
commit 8442a3d758
2 changed files with 113 additions and 22 deletions
+75
View File
@@ -0,0 +1,75 @@
/**
* 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 {
getAnrechnungen(id) {
return {
method: 'get',
url: 'api/frontend/v1/stv/anrechnungen/getAnrechnungen/' + id
};
},
getLehrveranstaltungen(prestudent_id){
return {
method: 'get',
url: 'api/frontend/v1/stv/anrechnungen/getLehrveranstaltungen/' + prestudent_id
};
},
getBegruendungen(){
return {
method: 'get',
url: 'api/frontend/v1/stv/anrechnungen/getBegruendungen/'
};
},
getLvsKompatibel(lv_id){
return {
method: 'get',
url: 'api/frontend/v1/stv/anrechnungen/getLvsKompatibel/' + lv_id
};
},
getLektoren(studiengang_kz){
return {
method: 'get',
url: 'api/frontend/v1/stv/anrechnungen/getLektoren/' + studiengang_kz
};
},
addNewAnrechnung(params){
return {
method: 'post',
url: 'api/frontend/v1/stv/anrechnungen/insertAnrechnung/',
params
};
},
loadAnrechnung(anrechnung_id){
return {
method: 'get',
url: 'api/frontend/v1/stv/anrechnungen/loadAnrechnung/' + anrechnung_id
};
},
editAnrechnung(params){
return {
method: 'post',
url: 'api/frontend/v1/stv/anrechnungen/updateAnrechnung/',
params
};
},
deleteAnrechnung(anrechnung_id){
return {
method: 'post',
url: 'api/frontend/v1/stv/anrechnungen/deleteAnrechnung/' + anrechnung_id
};
},
}
@@ -4,6 +4,9 @@ import CoreForm from "../../../../Form/Form.js";
import FormInput from "../../../../Form/Input.js";
import CoreNotiz from "../../../../Notiz/Notiz.js";
import ApiStvExemptions from "../../../../../api/factory/stv/exemptions.js";
import ApiNotizPerson from '../../../../../api/factory/notiz/person.js';
export default {
name: "ExemptionComponent",
components: {
@@ -30,12 +33,9 @@ export default {
return {
tabulatorOptions: {
ajaxURL: 'dummy',
ajaxRequestFunc: this.$fhcApi.factory.stv.exemptions.getAnrechnungen,
ajaxParams: () => {
return {
id: this.student.prestudent_id
};
},
ajaxRequestFunc: () => this.$api.call(
ApiStvExemptions.getAnrechnungen(this.student.prestudent_id)
),
ajaxResponse: (url, params, response) => response.data,
columns: [
{title: "anrechnung_id", field: "anrechnung_id", visible: false},
@@ -83,7 +83,7 @@ export default {
button.innerHTML = '<i class="fa fa-xmark"></i>';
button.title = this.$p.t('ui', 'loeschen');
button.addEventListener('click', () =>
this.deleteAnrechnung(cell.getData().anrechnung_id)
this.actionDeleteAnrechnung(cell.getData().anrechnung_id)
);
container.append(button);
@@ -158,7 +158,8 @@ export default {
listKompatibleLehrveranstaltungen: [],
statusNew: true,
showNotizen: false,
currentAnrechnung_id: null
currentAnrechnung_id: null,
endpoint: ApiNotizPerson
}
},
watch: {
@@ -188,7 +189,9 @@ export default {
prestudent_id: this.student.prestudent_id,
formData: this.formData
};
return this.$fhcApi.factory.stv.exemptions.addNewAnrechnung(this.$refs.formExemptions, dataToSend)
return this.$refs.formExemptions
.call(ApiStvExemptions.addNewAnrechnung(dataToSend))
.then(response => {
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
this.$refs.anrechnungsModal.hide();
@@ -204,7 +207,8 @@ export default {
anrechnung_id: anrechnung_id,
formData: this.formData
};
return this.$fhcApi.factory.stv.exemptions.editAnrechnung(this.$refs.formExemptions, dataToSend)
return this.$refs.formExemptions
.call(ApiStvExemptions.editAnrechnung(dataToSend))
.then(response => {
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
this.$refs.anrechnungsModal.hide();
@@ -215,22 +219,30 @@ export default {
this.reload();
});
},
deleteAnrechnung(anrechnung_id){
actionDeleteAnrechnung(anrechnung_id) {
this.$fhcAlert
.confirmDelete()
.then(result => result
? anrechnung_id
: Promise.reject({handled: true}))
.then(this.$fhcApi.factory.stv.exemptions.deleteAnrechnung)
.then(result => {
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successDelete'));
this.reload();
})
.then(this.deleteAnrechnung)
.catch(this.$fhcAlert.handleSystemError);
},
deleteAnrechnung(anrechnung_id){
return this.$api
.call(ApiStvExemptions.deleteAnrechnung(anrechnung_id))
.then(response => {
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successDelete'));
})
.catch(this.$fhcAlert.handleSystemError)
.finally(() => {
this.reload();
});
},
getLvsKompatibel(){
if(this.formData.lehrveranstaltung_id) {
this.$fhcApi.factory.stv.exemptions.getLvsKompatibel(this.formData.lehrveranstaltung_id)
this.$api
.call(ApiStvExemptions.getLvsKompatibel(this.formData.lehrveranstaltung_id))
.then(result => {
this.listKompatibleLehrveranstaltungen = result.data;
})
@@ -243,7 +255,8 @@ export default {
}
},
loadAnrechnung(anrechnung_id){
return this.$fhcApi.factory.stv.exemptions.loadAnrechnung(anrechnung_id)
return this.$api
.call(ApiStvExemptions.loadAnrechnung(anrechnung_id))
.then(result => {
this.formData = result.data;
this.getLvsKompatibel();
@@ -263,19 +276,22 @@ export default {
}
},
created() {
this.$fhcApi.factory.stv.exemptions.getLehrveranstaltungen(this.student.prestudent_id)
this.$api
.call(ApiStvExemptions.getLehrveranstaltungen(this.student.prestudent_id))
.then(result => {
this.listNewLehrveranstaltungen = result.data;
})
.catch(this.$fhcAlert.handleSystemError);
this.$fhcApi.factory.stv.exemptions.getBegruendungen()
this.$api
.call(ApiStvExemptions.getBegruendungen())
.then(result => {
this.listBegruendungen = result.data;
})
.catch(this.$fhcAlert.handleSystemError);
this.$fhcApi.factory.stv.exemptions.getLektoren(this.student.studiengang_kz)
this.$api
.call(ApiStvExemptions.getLektoren(this.student.studiengang_kz))
.then(result => {
this.listLektoren = result.data;
})
@@ -298,7 +314,7 @@ export default {
</form-input>
</div>
<core-notiz
:endpoint="$fhcApi.factory.notiz.person"
:endpoint="endpoint"
ref="formNotes"
notiz-layout="popupModal"
typeId="anrechnung_id"