diff --git a/application/controllers/api/frontend/v1/stv/Prestudent.php b/application/controllers/api/frontend/v1/stv/Prestudent.php index 0b06b9667..b433702b6 100644 --- a/application/controllers/api/frontend/v1/stv/Prestudent.php +++ b/application/controllers/api/frontend/v1/stv/Prestudent.php @@ -174,7 +174,11 @@ class Prestudent extends FHCAPI_Controller { $this->load->model('codex/Zgv_model', 'ZgvModel'); - $this->ZgvModel->addOrder('zgv_code'); + $this->ZgvModel->addSelect('zgv_code'); + $this->ZgvModel->addSelect('zgv_bez'); + $this->ZgvModel->addSelect('aktiv'); + $this->ZgvModel->addSelect('zgv_bez as label'); + $this->ZgvModel->addOrder('zgv_bez'); $result = $this->ZgvModel->load(); if (isError($result)) @@ -188,7 +192,11 @@ class Prestudent extends FHCAPI_Controller { $this->load->model('codex/Zgvdoktor_model', 'ZgvdoktorModel'); - $this->ZgvdoktorModel->addOrder('zgvdoktor_code'); + $this->ZgvdoktorModel->addSelect('zgvdoktor_code'); + $this->ZgvdoktorModel->addSelect('zgvdoktor_bez'); + $this->ZgvdoktorModel->addSelect('aktiv'); + $this->ZgvdoktorModel->addSelect('zgvdoktor_bez as label'); + $this->ZgvdoktorModel->addOrder('zgvdoktor_bez'); $result = $this->ZgvdoktorModel->load(); if (isError($result)) @@ -202,7 +210,11 @@ class Prestudent extends FHCAPI_Controller { $this->load->model('codex/Zgvmaster_model', 'ZgvmasterModel'); - $this->ZgvmasterModel->addOrder('zgvmas_code'); + $this->ZgvmasterModel->addSelect('zgvmas_code'); + $this->ZgvmasterModel->addSelect('zgvmas_bez'); + $this->ZgvmasterModel->addSelect('aktiv'); + $this->ZgvmasterModel->addSelect('zgvmas_bez as label'); + $this->ZgvmasterModel->addOrder('zgvmas_bez'); $result = $this->ZgvmasterModel->load(); if (isError($result)) diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Prestudent.js b/public/js/components/Stv/Studentenverwaltung/Details/Prestudent.js index da5aea29e..e782a6936 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Prestudent.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Prestudent.js @@ -60,7 +60,13 @@ export default { listBisStandort: [], initialFormData: {}, deltaArray: {}, - actionUpdate: false + actionUpdate: false, + filteredZgvs: [], + selectedZgv: null, + filteredMasterZgvs: [], + selectedMasterZgv: null, + filteredDoktorZgvs: [], + selectedDoktorZgv: null }; }, computed: { @@ -86,7 +92,16 @@ export default { }, modelValue(n){ this.loadPrestudent(n); - } + }, + selectedZgv(newVal) { + this.data.zgv_code = newVal?.zgv_code || null; + }, + selectedMasterZgv(newVal) { + this.data.zgvmas_code = newVal?.zgvmas_code || null; + }, + selectedDoktorZgv(newVal) { + this.data.zgvdoktor_code = newVal?.zgvdoktor_code || null; + }, }, methods: { @@ -96,6 +111,7 @@ export default { .then(result => result.data) .then(result => { this.data = result; + //neue DataVariable um ein Delta der vorgenommenen Änderungen berechnen zu können this.initialFormData = {...this.data}; }) @@ -118,6 +134,24 @@ export default { window.scrollTo(0, 0); }); }, + filterZgvs(event){ + const query = event.query.toLowerCase(); + this.filteredZgvs = this.listZgvs.filter(item => + item.label.toLowerCase().includes(query) + ) + }, + filterMasterZgvs(event){ + const query = event.query.toLowerCase(); + this.filteredMasterZgvs = this.listZgvsmaster.filter(item => + item.label.toLowerCase().includes(query) + ) + }, + filterDoktorZgvs(event){ + const query = event.query.toLowerCase(); + this.filteredDoktorZgvs = this.listZgvsdoktor.filter(item => + item.label.toLowerCase().includes(query) + ) + }, }, created() { this.loadPrestudent(); @@ -126,6 +160,9 @@ export default { .then(result => result.data) .then(result => { this.listZgvs = result; + this.selectedZgv = this.listZgvs.find( + item => item.zgv_code === this.data.zgv_code + ); }) .catch(this.$fhcAlert.handleSystemError); this.$api @@ -133,6 +170,9 @@ export default { .then(result => result.data) .then(result => { this.listZgvsmaster = result; + this.selectedMasterZgv = this.listZgvsmaster.find( + item => item.zgvmas_code === this.data.zgvmas_code + ); }) .catch(this.$fhcAlert.handleSystemError); this.$api @@ -140,6 +180,9 @@ export default { .then(result => result.data) .then(result => { this.listZgvsdoktor = result; + this.selectedDoktorZgv = this.listZgvsdoktor.find( + item => item.zgvdoktor_code === this.data.zgvdoktor_code + ); }) .catch(this.$fhcAlert.handleSystemError); this.$api @@ -220,11 +263,25 @@ export default { v-if="!config.hiddenFields.includes('zgv_code')" container-class="col-3 stv-details-prestudent-zgv_code" label="ZGV" - type="select" - v-model="data.zgv_code" - name="zgvcode" + type="autocomplete" + v-model="selectedZgv" + forceSelection + optionLabel="label" + optionValue="zgv_code" + :suggestions="filteredZgvs" + dropdown + name="zgv_code" + @complete="filterZgvs" > - {{zgv.zgv_bez}} + + + {{slotProps.option.label}} + + - + - {{mzgv.zgvmas_bez}} + + + {{slotProps.option.label}} + + - {{zgv.zgvdoktor_bez}} + + + {{slotProps.option.label}} + +