mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-02 04:39:28 +00:00
StudStatus: Toggle "nur aktive anzeigen"
This commit is contained in:
@@ -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 ' ';
|
||||
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 : ' ';
|
||||
}
|
||||
}, {
|
||||
field: 'dms_id',
|
||||
@@ -209,7 +209,7 @@ export default {
|
||||
formatter: (cell, formatterParams, onRendered) => {
|
||||
let val = cell.getValue();
|
||||
if (!val)
|
||||
return '';
|
||||
return ' ';
|
||||
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 = ' ';
|
||||
|
||||
return container;
|
||||
}
|
||||
}]
|
||||
|
||||
Reference in New Issue
Block a user