mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-13 10:09:27 +00:00
Tab Prestudent: ZGVFields: Add Autocomplete function with strike through for not active entries
This commit is contained in:
@@ -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))
|
||||
|
||||
@@ -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"
|
||||
>
|
||||
<option v-for="zgv in listZgvs" :key="zgv.zgv_code" :value="zgv.zgv_code">{{zgv.zgv_bez}}</option>
|
||||
<template #option="slotProps">
|
||||
<div
|
||||
:class="!slotProps.option.aktiv
|
||||
? 'item-inactive'
|
||||
: ''"
|
||||
>
|
||||
{{slotProps.option.label}}
|
||||
</div>
|
||||
</template>
|
||||
</form-input>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('zgvOrt')"
|
||||
@@ -234,7 +291,7 @@ export default {
|
||||
v-model="data.zgvort"
|
||||
name="zgvort"
|
||||
>
|
||||
</form-input>
|
||||
</form-input>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('zgvDatum')"
|
||||
container-class="col-3 stv-details-prestudent-zgvDatum"
|
||||
@@ -268,11 +325,25 @@ export default {
|
||||
v-if="!config.hiddenFields.includes('zgvmas_code')"
|
||||
container-class="col-3 stv-details-prestudent-zgvmas_code"
|
||||
:label="$p.t('lehre', 'zgvMaster')"
|
||||
type="select"
|
||||
v-model="data.zgvmas_code"
|
||||
name="zgvmascode"
|
||||
type="autocomplete"
|
||||
v-model="selectedMasterZgv"
|
||||
forceSelection
|
||||
optionLabel="label"
|
||||
optionValue="zgvmas_code"
|
||||
:suggestions="filteredMasterZgvs"
|
||||
dropdown
|
||||
name="zgvmas_code"
|
||||
@complete="filterMasterZgvs"
|
||||
>
|
||||
<option v-for="mzgv in listZgvsmaster" :key="mzgv.zgvmas_code" :value="mzgv.zgvmas_code">{{mzgv.zgvmas_bez}}</option>
|
||||
<template #option="slotProps">
|
||||
<div
|
||||
:class="!slotProps.option.aktiv
|
||||
? 'item-inactive'
|
||||
: ''"
|
||||
>
|
||||
{{slotProps.option.label}}
|
||||
</div>
|
||||
</template>
|
||||
</form-input>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('zgvmaort')"
|
||||
@@ -317,11 +388,25 @@ export default {
|
||||
v-if="!config.hiddenFields.includes('zgvdoktor_code')"
|
||||
container-class="col-3 stv-details-prestudent-zgvdoktor_code"
|
||||
:label="$p.t('lehre', 'zgvDoktor')"
|
||||
type="select"
|
||||
v-model="data.zgvdoktor_code"
|
||||
type="autocomplete"
|
||||
v-model="selectedDoktorZgv"
|
||||
forceSelection
|
||||
optionLabel="label"
|
||||
optionValue="zgvdoktor_code"
|
||||
:suggestions="filteredDoktorZgvs"
|
||||
dropdown
|
||||
name="zgvdoktor_code"
|
||||
@complete="filterDoktorZgvs"
|
||||
>
|
||||
<option v-for="zgv in listZgvsdoktor" :key="zgv.zgvdoktor_code" :value="zgv.zgvdoktor_code">{{zgv.zgvdoktor_bez}}</option>
|
||||
<template #option="slotProps">
|
||||
<div
|
||||
:class="!slotProps.option.aktiv
|
||||
? 'item-inactive'
|
||||
: ''"
|
||||
>
|
||||
{{slotProps.option.label}}
|
||||
</div>
|
||||
</template>
|
||||
</form-input>
|
||||
<form-input
|
||||
v-if="!config.hiddenFields.includes('zgvdoktorort')"
|
||||
|
||||
Reference in New Issue
Block a user