Abmeldung durch Stgl: status => typ

This commit is contained in:
cgfhtw
2023-07-10 10:19:06 +02:00
parent 5eca034911
commit 3fce448451
12 changed files with 204 additions and 13 deletions
@@ -1,4 +1,5 @@
import StudierendenantragAbmeldung from './Form/Abmeldung.js';
import StudierendenantragAbmeldungStgl from './Form/AbmeldungStgl.js';
import StudierendenantragUnterbrechung from './Form/Unterbrechung.js';
import StudierendenantragWiederholung from './Form/Wiederholung.js';
import Phrasen from '../../mixins/Phrasen.js';
@@ -6,6 +7,7 @@ import Phrasen from '../../mixins/Phrasen.js';
export default {
components: {
StudierendenantragAbmeldung,
StudierendenantragAbmeldungStgl,
StudierendenantragUnterbrechung,
StudierendenantragWiederholung
},
@@ -0,0 +1,99 @@
import {CoreFetchCmpt} from '../../Fetch.js';
import Phrasen from '../../../mixins/Phrasen.js';
export default {
components: {
CoreFetchCmpt
},
mixins: [
Phrasen
],
emits: [
'setInfos',
'setStatus'
],
props: {
studierendenantragId: Number
},
data() {
return {
data: null
}
},
computed: {
statusSeverity() {
switch (this.data.status)
{
case 'Erstellt': return 'info';
case 'Genehmigt': return 'success';
default: return 'info';
}
}
},
methods: {
load() {
return axios.get(
FHC_JS_DATA_STORAGE_OBJECT.app_root +
FHC_JS_DATA_STORAGE_OBJECT.ci_router +
'/components/Antrag/Abmeldung/getDetailsForAntrag/' +
this.studierendenantragId
).then(
result => {
this.data = result.data.retval;
if (this.data.status) {
this.$emit("setStatus", {
msg: this.p.t_ref('studierendenantrag', 'status_x', {status: this.data.statustyp}),
severity: this.statusSeverity
});
}
return result;
}
);
}
},
template: `
<div class="studierendenantrag-form-abmeldung">
<core-fetch-cmpt :api-function="load">
<div class="row">
<div class="col-12">
<table class="table">
<tr>
<th>{{p.t('lehre', 'studiengang')}}</th>
<td align="right">{{data.bezeichnung}}</td>
</tr>
<tr>
<th>{{p.t('lehre', 'organisationsform')}}</th>
<td align="right">{{data.orgform_bezeichnung}}</td>
</tr>
<tr>
<th>{{p.t('projektarbeitsbeurteilung', 'nameStudierende')}}</th>
<td align="right">{{data.name}}</td>
</tr>
<tr>
<th>{{p.t('person', 'personenkennzeichen')}}</th>
<td align="right">{{data.matrikelnr}}</td>
</tr>
<tr>
<th>{{p.t('lehre', 'studienjahr')}}</th>
<td align="right">{{data.studienjahr_kurzbz}}</td>
</tr>
<tr>
<th>{{p.t('lehre', 'semester')}}</th>
<td align="right">{{data.semester}}</td>
</tr>
</table>
</div>
<div class="mb-3">
<h5>{{p.t('studierendenantrag', 'antrag_grund')}}:</h5>
<pre>{{data.grund}}</pre>
</div>
</div>
<template v-slot:error="{errorMessage}">
<div class="alert alert-danger m-0" role="alert">
{{ errorMessage }}
</div>
</template>
</core-fetch-cmpt>
</div>
`
}
@@ -79,6 +79,7 @@ export default {
@complete="loadData"
inputId="newAntragModalAutoComplete"
dropdown
dropdown-mode="current"
>
<template #option="slotProps">
<div :title="slotProps.option.prestudent_id">
@@ -230,7 +230,7 @@ export default {
'content/pdfExport.php?xml=Antrag' + data.typ + '.xml.php&xsl=Antrag' + data.typ + '&id='+ data.studierendenantrag_id +'&output=pdf';
container.append(button);
}
if(data.typ == 'Abmeldung' && data.status == 'GenehmigtStgl')
if(data.typ == 'AbmeldungStgl' && data.status == 'Genehmigt')
{
// NOTE(chris): Object
let button = document.createElement('button');
@@ -240,7 +240,7 @@ export default {
container.append(button);
}
if(data.typ == 'Abmeldung' && data.status == 'Beeinsprucht')
if(data.typ == 'AbmeldungStgl' && data.status == 'Beeinsprucht')
{
// NOTE(chris): Deny Objection
let button = document.createElement('button');
@@ -294,7 +294,7 @@ export default {
if (this.stgL.includes(data.studiengang_kz))
{
// NOTE(chris): Approve
if ((data.typ == 'Wiederholung' && data.status == 'Lvszugewiesen') || (data.typ != 'Wiederholung' && (data.status == 'Erstellt' || data.status == 'ErstelltStgl'))) {
if ((data.typ == 'Wiederholung' && data.status == 'Lvszugewiesen') || (data.typ != 'Wiederholung' && data.status == 'Erstellt')) {
let button = document.createElement('button');
button.innerHTML = this.p.t('studierendenantrag', 'btn_approve');
button.className = "btn btn-outline-secondary";