Studierendenverwalung Projektarbeiten: preserve data before saved, modal not closed after saving

This commit is contained in:
Alexei Karpenko
2025-09-10 17:28:15 +02:00
parent fc845ebf4e
commit 3a06dc613f
3 changed files with 10 additions and 12 deletions
@@ -165,6 +165,7 @@ export default {
},
loadProjektarbeit(projektarbeit_id) {
if (this?.formData?.projektarbeit_id == projektarbeit_id) return;
this.resetForm();
return this.$api
.call(ApiStvProjektarbeit.loadProjektarbeit(projektarbeit_id))
@@ -263,14 +263,17 @@ export default {
actionEditProjektarbeit() {
this.statusNew = false;
this.toggleMenu('details');
this.$refs.projektarbeitDetails.getFormData(this.statusNew, this.editedProjektarbeit.studiensemester_kurzbz, this.editedProjektarbeit.lehrveranstaltung_id);
this.$refs.projektarbeitDetails.getFormData(
this.statusNew, this.editedProjektarbeit.studiensemester_kurzbz, this.editedProjektarbeit.lehrveranstaltung_id
);
this.$refs.projektarbeitDetails.loadProjektarbeit(this.editedProjektarbeit.projektarbeit_id);
this.$refs.projektarbeitModal.show();
},
actionEditBetreuer() {
this.statusNew = false;
this.toggleMenu('betreuer');
this.$refs.projektbetreuer.getData(this.editedProjektarbeit.projektarbeit_id, this.editedProjektarbeit.studiensemester_kurzbz, this.editedProjektarbeit.projekttyp_kurzbz);
this.$refs.projektbetreuer.getData(
this.editedProjektarbeit.projektarbeit_id, this.editedProjektarbeit.studiensemester_kurzbz, this.editedProjektarbeit.projekttyp_kurzbz
);
this.$refs.projektarbeitModal.show();
},
actionDeleteProjektarbeit(projektarbeit_id) {
@@ -310,7 +313,6 @@ export default {
projektarbeitSaved() {
this.reload();
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
this.hideModal('projektarbeitModal');
},
setDefaultStunden(projekttyp_kurzbz) {
this.$refs.projektbetreuer.setDefaultStunden(projekttyp_kurzbz);
@@ -193,15 +193,13 @@ export default {
betr.betreuerart_kurzbz === betreuerart_kurzbz
);
let betreuer = [];
if (idx >= 0) { // if betreuer found
betreuer = projektbetreuerListe[idx];
// set currently edited betreuer
this.formData = betreuer;
// set currently edited betreuer (deep copy)
this.formData = JSON.parse(JSON.stringify(projektbetreuerListe[idx]));
// set download link
if (betreuer.beurteilungDownloadLink !== null) this.beurteilungDownloadLink = betreuer.beurteilungDownloadLink;
if (this.formData.beurteilungDownloadLink !== null) this.beurteilungDownloadLink = this.formData.beurteilungDownloadLink;
// set betreuer for autocomplete field
this.autocompleteSelectedBetreuer = {
@@ -244,7 +242,6 @@ export default {
// default Stundensätze from config
this.defaultFormDataValues.stunden = this.getDefaultStunden(projekttyp_kurzbz);
this.defaultFormDataValues.stundensatz = this.config.defaultProjektbetreuerStundensatz;
this.resetModes();
// get other initial data
this.$api
@@ -266,7 +263,6 @@ export default {
this.getProjektbetreuer();
} else {
this.$refs.projektbetreuerTable.tabulator.setData([]);
this.resetForm();
}
},
getProjektbetreuer() {
@@ -274,7 +270,6 @@ export default {
.call(ApiStvProjektbetreuer.getProjektbetreuer(this.projektarbeit_id))
.then(result => {
this.$refs.projektbetreuerTable.tabulator.replaceData(this.addIds(result.data));
this.resetForm();
})
.catch(this.$fhcAlert.handleSystemError);
},