StudStatus: Toggle "nur aktive anzeigen"

This commit is contained in:
cgfhtw
2023-12-14 11:28:19 +01:00
parent 14c24005fe
commit e698564202
4 changed files with 85 additions and 16 deletions
@@ -75,12 +75,18 @@ class Leitung extends FHC_Controller
$this->outputJsonSuccess($stgs);
}
public function getAntraege($studiengang = null)
public function getAntraege($studiengang = null, $extra = null)
{
if ($studiengang && $studiengang == 'todo') {
$studiengang = $extra;
$extra = true;
} else {
$extra = false;
}
if($studiengang)
if ($studiengang) {
$studiengaenge = [$studiengang];
else {
} else {
$studiengaenge =$this->permissionlib->getSTG_isEntitledFor('student/antragfreigabe');
if(!is_array($studiengaenge))
$studiengaenge = [];
@@ -96,7 +102,21 @@ class Leitung extends FHC_Controller
$antraege = [];
if ($studiengaenge) {
$result = $this->StudierendenantragModel->loadForStudiengaenge($studiengaenge);
if ($extra) {
$this->StudierendenantragModel->db->group_start();
$this->StudierendenantragModel->db->where_not_in('s.studierendenantrag_statustyp_kurzbz', [
Studierendenantragstatus_model::STATUS_CANCELLED,
Studierendenantragstatus_model::STATUS_APPROVED,
Studierendenantragstatus_model::STATUS_REJECTED,
Studierendenantragstatus_model::STATUS_OBJECTION_DENIED
]);
$this->StudierendenantragModel->db->or_group_start();
$this->StudierendenantragModel->db->where('s.studierendenantrag_statustyp_kurzbz', Studierendenantragstatus_model::STATUS_APPROVED);
$this->StudierendenantragModel->db->where('tbl_studierendenantrag.typ', Studierendenantrag_model::TYP_ABMELDUNG_STGL);
$this->StudierendenantragModel->db->group_end();
$this->StudierendenantragModel->db->group_end();
}
$result = $this->StudierendenantragModel->loadForStudiengaenge($studiengaenge, null, null, true);
if (isError($result)) {
$this->output->set_status_header(500);
return $this->outputJson('Internal Server Error');
@@ -49,8 +49,8 @@ export default {
console.error(error);
});
},
changeFilter(evt) {
this.filter = evt.target.value || undefined;
changeFilter(filter) {
this.filter = filter || undefined;
this.reload();
},
reload() {
@@ -1,3 +1,5 @@
const LOCAL_STORAGE_ID = 'studierendenantrag_leitung_2023-11-14_header_filter';
export default {
props: {
stgs: Array
@@ -5,16 +7,60 @@ export default {
emits: [
'input'
],
data() {
return {
todo_value: '',
stg_value: ''
}
},
computed: {
value() {
const a = [];
if (this.todo_value)
a.push(this.todo_value);
if (this.stg_value)
a.push(this.stg_value);
return a.join('/');
}
},
watch: {
value(n) {
window.localStorage.setItem(LOCAL_STORAGE_ID, n);
this.$emit('input', n);
}
},
created() {
const values = window.localStorage.getItem(LOCAL_STORAGE_ID).split('/');
if (values.length) {
if (values.length == 1) {
if (values[0] == 'todo')
values.push('');
else
values.unshift('');
}
this.stg_value = values.pop();
this.todo_value = values.pop();
}
},
template: `
<div class="studierendenantrag-leitung-header fhc-table-header d-flex align-items-center mb-2 gap-2">
<h3 class="h5 col m-0">{{$p.t('studierendenantrag', 'studierendenantraege')}}</h3>
<div v-if="stgs.length > 1" class="col-auto">
<select ref="stg_select" class="form-select" @input="$emit('input', $event)">
<option value="">{{$p.t('global', 'alle')}}</option>
<option v-for="stg in stgs" :key="stg.studiengang_kz" :value="stg.studiengang_kz">
{{stg.bezeichnung}} ({{stg.orgform}})
</option>
</select>
<div class="col-auto row row-cols-lg-auto g-3 align-items-center">
<div class="col-12">
<select class="form-select" v-model="todo_value">
<option value="">{{$p.t('global', 'alle')}}</option>
<option value="todo">{{$p.t('global', 'aktiv')}}</option>
</select>
</div>
<div class="col-12">
<select v-if="stgs.length > 1" class="form-select" v-model="stg_value">
<option value="">{{$p.t('global', 'alle')}}</option>
<option v-for="stg in stgs" :key="stg.studiengang_kz" :value="stg.studiengang_kz">
{{stg.bezeichnung}} ({{stg.orgform}})
</option>
</select>
</div>
</div>
</div>
`
@@ -80,7 +80,7 @@ export default {
{
let val = cell.getValue();
if (!val)
return '';
return '&nbsp;';
let date = new Date(val);
return date.toLocaleDateString();
}
@@ -201,7 +201,7 @@ export default {
this.$refs.modalGrundPre.innerHTML = val;
});
return val ? link : '';
return val ? link : '&nbsp;';
}
}, {
field: 'dms_id',
@@ -209,7 +209,7 @@ export default {
formatter: (cell, formatterParams, onRendered) => {
let val = cell.getValue();
if (!val)
return '';
return '&nbsp;';
let link = document.createElement('a');
link.href = FHC_JS_DATA_STORAGE_OBJECT.app_root +
FHC_JS_DATA_STORAGE_OBJECT.ci_router +
@@ -338,6 +338,9 @@ export default {
container.append(button);
}
if (container.innerHTML == '')
container.innerHTML = '&nbsp;';
return container;
}
}]