diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Projektarbeit/Details.js b/public/js/components/Stv/Studentenverwaltung/Details/Projektarbeit/Details.js index 35a4f5f8a..a51342c7c 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Projektarbeit/Details.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Projektarbeit/Details.js @@ -100,41 +100,7 @@ export default { this.formData.anmerkung = null; this.$refs.formDetails.clearValidation(); }, - getFormData(statusNew, studiensemester_kurzbz, additional_lehrveranstaltung_id/*, successCallback*/) { - - //~ let callArray = [ - //~ this.$api.call(ApiStvProjektarbeit.getTypenProjektarbeit()), - //~ this.$api.call(ApiStvProjektarbeit.getLehrveranstaltungen( - //~ this.student.uid, - //~ projektarbeit_id ? null : this.student.studiengang_kz, - //~ studiensemester_kurzbz ?? this.defaultSemester, - //~ additional_lehrveranstaltung_id ?? null - //~ )), - //~ this.$api.call(ApiStvProjektarbeit.getNoten()) - //~ ]; - - //~ if (projektarbeit_id) callArray.push(this.$api.call(ApiStvProjektarbeit.loadProjektarbeit(projektarbeit_id))); - - //~ // Run when All promises are settled - //~ Promise.allSettled(callArray).then((results) => { - //~ let hasError = false; - //~ let allFormData = []; - //~ results.forEach((promise_result) => { - - //~ if (promise_result.status === 'fulfilled' && promise_result.value.meta.status === "success") { - //~ allFormData.push(promise_result.value.data); - //~ } else { - //~ hasError = true; - //~ //this.$fhcAlert.handleSystemError(promise_result); - //~ } - //~ //let data = promise_result.value.data; - //~ }); - - //~ if (!hasError) { - //~ this.setFormData(allFormData[0], allFormData[1], allFormData[2], allFormData[3], allFormData[4] ?? null); - //~ if (successCallback) successCallback(); - //~ } - //~ }); + getFormData(statusNew, studiensemester_kurzbz, additional_lehrveranstaltung_id) { this.$api .call(ApiStvProjektarbeit.getTypenProjektarbeit()) @@ -162,6 +128,8 @@ export default { this.arrNoten = result.data; }) .catch(this.$fhcAlert.handleSystemError); + + if (statusNew) this.resetForm(); }, loadProjektarbeit(projektarbeit_id) { @@ -316,7 +284,7 @@ export default { :key="lv.lehrveranstaltung_id" :value="lv.lehrveranstaltung_id" > - {{lv.bezeichnung + ' ' + lv.orgform_kurzbz + ' (' + lv.semester + ' Sem) ID: ' + lv.lehrveranstaltung_id}} + {{lv.bezeichnung + (lv.orgform_kurzbz ? ' ' + lv.orgform_kurzbz : '') + ' (' + lv.semester + ' Sem) ID: ' + lv.lehrveranstaltung_id}} diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Projektarbeit/Projektarbeit.js b/public/js/components/Stv/Studentenverwaltung/Details/Projektarbeit/Projektarbeit.js index f78963066..d4f941e4b 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Projektarbeit/Projektarbeit.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Projektarbeit/Projektarbeit.js @@ -82,7 +82,6 @@ export default { }, ], tabulatorData: [], - //lastSelected: null, editedProjektarbeit: null, statusNew: true, studiensemester_kurzbz: null, @@ -257,23 +256,19 @@ export default { methods: { actionNewProjektarbeit() { this.statusNew = true; + this.editedProjektarbeit = null; + this.toggleMenu('details'); this.$refs.projektarbeitDetails.getFormData(this.statusNew); this.$refs.projektarbeitModal.show(); }, actionEditProjektarbeit() { this.statusNew = false; this.toggleMenu('details'); - 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.projektarbeitModal.show(); }, actionDeleteProjektarbeit(projektarbeit_id) { @@ -313,6 +308,7 @@ 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); @@ -325,6 +321,22 @@ export default { }, toggleMenu(tabId) { this.activeTab = tabId; + if (this.statusNew == false) { + switch(tabId) { + case 'details': + this.$refs.projektarbeitDetails.getFormData( + this.statusNew, this.editedProjektarbeit?.studiensemester_kurzbz, this.editedProjektarbeit?.lehrveranstaltung_id + ); + this.$refs.projektarbeitDetails.loadProjektarbeit(this.editedProjektarbeit?.projektarbeit_id); + break; + case 'betreuer': + this.$refs.projektbetreuer.getFormData( + this.editedProjektarbeit ? this.editedProjektarbeit.projekttyp_kurzbz : null + ); + this.$refs.projektbetreuer.getProjektbetreuer(this.editedProjektarbeit?.projektarbeit_id, this.editedProjektarbeit?.studiensemester_kurzbz); + break; + } + } } }, template: ` @@ -352,13 +364,13 @@ export default {
{{$p.t('projektarbeit', 'projektarbeitBearbeiten')}}
- + diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Projektarbeit/Projektbetreuer.js b/public/js/components/Stv/Studentenverwaltung/Details/Projektarbeit/Projektbetreuer.js index 1290aa036..6ce9bca54 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Projektarbeit/Projektbetreuer.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Projektarbeit/Projektbetreuer.js @@ -235,10 +235,7 @@ export default { }) .catch(this.$fhcAlert.handleSystemError); }, - getData(projektarbeit_id, studiensemester_kurzbz, projekttyp_kurzbz) { - - this.studiensemester_kurzbz = studiensemester_kurzbz; - + getFormData(projekttyp_kurzbz) { // default Stundensätze from config this.defaultFormDataValues.stunden = this.getDefaultStunden(projekttyp_kurzbz); this.defaultFormDataValues.stundensatz = this.config.defaultProjektbetreuerStundensatz; @@ -257,21 +254,25 @@ export default { this.arrNoten = result.data; }) .catch(this.$fhcAlert.handleSystemError); - - if (projektarbeit_id) { - this.projektarbeit_id = projektarbeit_id; - this.getProjektbetreuer(); - } else { - this.$refs.projektbetreuerTable.tabulator.setData([]); - } }, - getProjektbetreuer() { - this.$api - .call(ApiStvProjektbetreuer.getProjektbetreuer(this.projektarbeit_id)) - .then(result => { - this.$refs.projektbetreuerTable.tabulator.replaceData(this.addIds(result.data)); - }) - .catch(this.$fhcAlert.handleSystemError); + getProjektbetreuer(projektarbeit_id, studiensemester_kurzbz) { + if (projektarbeit_id) { + // if projektarbeit changed, reset the form to hold new data + if (this.projektarbeit_id != projektarbeit_id) { + this.resetForm(); + this.resetModes(); + } + this.projektarbeit_id = projektarbeit_id; + this.studiensemester_kurzbz = studiensemester_kurzbz; + this.$api + .call(ApiStvProjektbetreuer.getProjektbetreuer(this.projektarbeit_id)) + .then(result => { + this.$refs.projektbetreuerTable.tabulator.replaceData(this.addIds(result.data)); + }) + .catch(this.$fhcAlert.handleSystemError); + } else { + this.emptyBetreuer(); + } }, saveProjektbetreuer() { this.$refs.formProjektbetreuer.call( @@ -279,7 +280,7 @@ export default { ) .then(result => { this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave')); - this.getProjektbetreuer(); + this.getProjektbetreuer(this.projektarbeit_id, this.studiensemester_kurzbz); this.resetModes(); }) .catch(this.$fhcAlert.handleSystemError); @@ -296,6 +297,9 @@ export default { this.filteredBetreuer = result.data; }); }, + emptyBetreuer() { + this.$refs.projektbetreuerTable.tabulator.clearData(); + }, resetForm() { this.formData = this.getDefaultFormData(); if (this.beurteilungDownloadLink !== null) this.beurteilungDownloadLink = '';