From 00b766cb69e5eb0ba6eea0ec10cfe3755a36ecfd Mon Sep 17 00:00:00 2001 From: Harald Bamberger Date: Wed, 5 Mar 2025 17:35:27 +0100 Subject: [PATCH] tweak mobility form behavior --- .../api/frontend/v1/stv/Mobility.php | 3 + .../Details/Mobility/List/Purpose.js | 12 ++- .../Details/Mobility/List/Support.js | 12 ++- .../Details/Mobility/Mobility.js | 77 +++++++++---------- 4 files changed, 63 insertions(+), 41 deletions(-) diff --git a/application/controllers/api/frontend/v1/stv/Mobility.php b/application/controllers/api/frontend/v1/stv/Mobility.php index b4b5a6916..2ab0ac682 100644 --- a/application/controllers/api/frontend/v1/stv/Mobility.php +++ b/application/controllers/api/frontend/v1/stv/Mobility.php @@ -47,6 +47,9 @@ class Mobility extends FHCAPI_Controller $this->BisioModel->addSelect("*"); $this->BisioModel->addJoin('bis.tbl_mobilitaetsprogramm mp', 'ON (mp.mobilitaetsprogramm_code = bis.tbl_bisio.mobilitaetsprogramm_code)', 'LEFT'); $this->BisioModel->addJoin('lehre.tbl_lehreinheit le', 'ON (le.lehreinheit_id = bis.tbl_bisio.lehreinheit_id)','LEFT'); + $this->BisioModel->addOrder('von', 'DESC'); + $this->BisioModel->addOrder('bis', 'DESC'); + $this->BisioModel->addOrder('bisio_id', 'DESC'); $result = $this->BisioModel->loadWhere( array('student_uid' => $student_uid) ); diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Mobility/List/Purpose.js b/public/js/components/Stv/Studentenverwaltung/Details/Mobility/List/Purpose.js index 3a2ef06e0..80539dc10 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Mobility/List/Purpose.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Mobility/List/Purpose.js @@ -84,7 +84,7 @@ export default { ], layout: 'fitColumns', layoutColumnsOnNewData: false, - height: '250', + height: 200, persistenceID: 'core-mobility-purpose' }, tabulatorEvents: [ @@ -117,6 +117,7 @@ export default { }, watch: { bisio_id() { + this.resetFormData(); if (this.$refs.table) { this.$refs.table.reloadTable(); } @@ -152,6 +153,9 @@ export default { } }, handleSubmitAction() { + if( this.formData.zweck_code === "" ) { + return; //TODO form validation + } if (this.bisio_id) { this.$emit('setMobilityPurpose', { zweck_code: this.formData.zweck_code, @@ -181,6 +185,12 @@ export default { }); } } + this.resetFormData(); + }, + resetFormData: function() { + this.formData = { + zweck_code: '' + }; }, reload() { this.$refs.table.reloadTable(); diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Mobility/List/Support.js b/public/js/components/Stv/Studentenverwaltung/Details/Mobility/List/Support.js index 7cb560db4..c39adad06 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Mobility/List/Support.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Mobility/List/Support.js @@ -82,7 +82,7 @@ export default { ], layout: 'fitColumns', layoutColumnsOnNewData: false, - height: '250', + height: 200, persistenceID: 'core-mobility-support' }, tabulatorEvents: [ @@ -112,6 +112,7 @@ export default { }, watch: { bisio_id() { + this.resetFormData(); if (this.$refs.table) { this.$refs.table.reloadTable(); } @@ -141,6 +142,9 @@ export default { } }, handleSubmitAction() { + if( this.formData.aufenthaltfoerderung_code === "" ) { + return; //TODO form validation + } if (this.bisio_id) { this.$emit('setMobilitySupport', { aufenthaltfoerderung_code: this.formData.aufenthaltfoerderung_code, @@ -170,6 +174,12 @@ export default { } } + this.resetFormData(); + }, + resetFormData: function() { + this.formData = { + aufenthaltfoerderung_code: "" + }; }, reload() { this.$refs.table.reloadTable(); diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Mobility/Mobility.js b/public/js/components/Stv/Studentenverwaltung/Details/Mobility/Mobility.js index 1c03208e9..bc8b71615 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Mobility/Mobility.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Mobility/Mobility.js @@ -110,6 +110,7 @@ export default { layout: 'fitDataFill', layoutColumnsOnNewData: false, height: 'auto', + minHeight: 200, selectable: true, index: 'bisio_id', persistenceID: 'stv-details-table_mobiliy' @@ -161,6 +162,8 @@ export default { bisio_id: null, localPurposes: [], localSupports: [], + lehrveranstaltung_id: '', + lehreinheit_id: '' }, statusNew: true, programsMobility: [], @@ -223,6 +226,10 @@ export default { this.$refs.supports.resetLocalData(); }); }, + handleLVchanged: function() { + this.loadItems(); + this.resetLehreinheit(); + }, loadItems(){ if(this.formData.lehrveranstaltung_id) { this.getLehreinheiten(this.formData.lehrveranstaltung_id, this.currentSemester); @@ -233,7 +240,7 @@ export default { this.loadItems(); }, resetLehreinheit(){ - this.formData.lehreinheit_id = null; + this.formData.lehreinheit_id = ''; }, getLehreinheiten(lv_id, studiensemester_kurzbz) { const data = { @@ -256,6 +263,15 @@ export default { return this.$fhcApi.factory.stv.mobility.loadMobility(bisio_id) .then(result => { this.formData = result.data; + if(this.formData.lehrveranstaltung_id === null) { + this.formData.lehrveranstaltung_id = ''; + } + if(this.formData.lehreinheit_id === null) { + this.formData.lehreinheit_id = ''; + } + if(this.formData.lehrveranstaltung_id > 0 ) { + this.loadItems(); + } }) .catch(this.$fhcAlert.handleSystemError); }, @@ -295,7 +311,10 @@ export default { this.formData.bisio_id = null; this.formData.localPurposes = []; this.formData.localSupports = []; + this.formData.lehrveranstaltung_id = '', + this.formData.lehreinheit_id = '', this.statusNew = true; + this.listLes = []; }, // ----------------------------------- methods purposes ----------------------------------- addMobilityPurpose({zweck_code, bisio_id}){ @@ -437,8 +456,9 @@ export default { type="select" v-model="formData.lehrveranstaltung_id" name="lehrveranstaltung_id" - @change="resetLehreinheit" + @change="handleLVchanged" > + +