mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-24 10:22:18 +00:00
StudStatus: Toggle "nur aktive anzeigen"
This commit is contained in:
@@ -75,12 +75,18 @@ class Leitung extends FHC_Controller
|
|||||||
$this->outputJsonSuccess($stgs);
|
$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];
|
$studiengaenge = [$studiengang];
|
||||||
else {
|
} else {
|
||||||
$studiengaenge =$this->permissionlib->getSTG_isEntitledFor('student/antragfreigabe');
|
$studiengaenge =$this->permissionlib->getSTG_isEntitledFor('student/antragfreigabe');
|
||||||
if(!is_array($studiengaenge))
|
if(!is_array($studiengaenge))
|
||||||
$studiengaenge = [];
|
$studiengaenge = [];
|
||||||
@@ -96,7 +102,21 @@ class Leitung extends FHC_Controller
|
|||||||
|
|
||||||
$antraege = [];
|
$antraege = [];
|
||||||
if ($studiengaenge) {
|
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)) {
|
if (isError($result)) {
|
||||||
$this->output->set_status_header(500);
|
$this->output->set_status_header(500);
|
||||||
return $this->outputJson('Internal Server Error');
|
return $this->outputJson('Internal Server Error');
|
||||||
|
|||||||
@@ -49,8 +49,8 @@ export default {
|
|||||||
console.error(error);
|
console.error(error);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
changeFilter(evt) {
|
changeFilter(filter) {
|
||||||
this.filter = evt.target.value || undefined;
|
this.filter = filter || undefined;
|
||||||
this.reload();
|
this.reload();
|
||||||
},
|
},
|
||||||
reload() {
|
reload() {
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
const LOCAL_STORAGE_ID = 'studierendenantrag_leitung_2023-11-14_header_filter';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
stgs: Array
|
stgs: Array
|
||||||
@@ -5,16 +7,60 @@ export default {
|
|||||||
emits: [
|
emits: [
|
||||||
'input'
|
'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: `
|
template: `
|
||||||
<div class="studierendenantrag-leitung-header fhc-table-header d-flex align-items-center mb-2 gap-2">
|
<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>
|
<h3 class="h5 col m-0">{{$p.t('studierendenantrag', 'studierendenantraege')}}</h3>
|
||||||
<div v-if="stgs.length > 1" class="col-auto">
|
<div class="col-auto row row-cols-lg-auto g-3 align-items-center">
|
||||||
<select ref="stg_select" class="form-select" @input="$emit('input', $event)">
|
<div class="col-12">
|
||||||
<option value="">{{$p.t('global', 'alle')}}</option>
|
<select class="form-select" v-model="todo_value">
|
||||||
<option v-for="stg in stgs" :key="stg.studiengang_kz" :value="stg.studiengang_kz">
|
<option value="">{{$p.t('global', 'alle')}}</option>
|
||||||
{{stg.bezeichnung}} ({{stg.orgform}})
|
<option value="todo">{{$p.t('global', 'aktiv')}}</option>
|
||||||
</option>
|
</select>
|
||||||
</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>
|
||||||
</div>
|
</div>
|
||||||
`
|
`
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ export default {
|
|||||||
{
|
{
|
||||||
let val = cell.getValue();
|
let val = cell.getValue();
|
||||||
if (!val)
|
if (!val)
|
||||||
return '';
|
return ' ';
|
||||||
let date = new Date(val);
|
let date = new Date(val);
|
||||||
return date.toLocaleDateString();
|
return date.toLocaleDateString();
|
||||||
}
|
}
|
||||||
@@ -201,7 +201,7 @@ export default {
|
|||||||
this.$refs.modalGrundPre.innerHTML = val;
|
this.$refs.modalGrundPre.innerHTML = val;
|
||||||
});
|
});
|
||||||
|
|
||||||
return val ? link : '';
|
return val ? link : ' ';
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
field: 'dms_id',
|
field: 'dms_id',
|
||||||
@@ -209,7 +209,7 @@ export default {
|
|||||||
formatter: (cell, formatterParams, onRendered) => {
|
formatter: (cell, formatterParams, onRendered) => {
|
||||||
let val = cell.getValue();
|
let val = cell.getValue();
|
||||||
if (!val)
|
if (!val)
|
||||||
return '';
|
return ' ';
|
||||||
let link = document.createElement('a');
|
let link = document.createElement('a');
|
||||||
link.href = FHC_JS_DATA_STORAGE_OBJECT.app_root +
|
link.href = FHC_JS_DATA_STORAGE_OBJECT.app_root +
|
||||||
FHC_JS_DATA_STORAGE_OBJECT.ci_router +
|
FHC_JS_DATA_STORAGE_OBJECT.ci_router +
|
||||||
@@ -338,6 +338,9 @@ export default {
|
|||||||
container.append(button);
|
container.append(button);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (container.innerHTML == '')
|
||||||
|
container.innerHTML = ' ';
|
||||||
|
|
||||||
return container;
|
return container;
|
||||||
}
|
}
|
||||||
}]
|
}]
|
||||||
|
|||||||
Reference in New Issue
Block a user