|
|
|
@@ -73,7 +73,8 @@ export default {
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
mounted() {
|
|
|
|
|
function dateFormatter (cell) {
|
|
|
|
|
function dateFormatter(cell)
|
|
|
|
|
{
|
|
|
|
|
let val = cell.getValue();
|
|
|
|
|
if (!val)
|
|
|
|
|
return '';
|
|
|
|
@@ -96,239 +97,219 @@ export default {
|
|
|
|
|
columns: ["width", "visible"], //persist columns
|
|
|
|
|
},
|
|
|
|
|
persistenceID: 'studierendenantrag_leitung',
|
|
|
|
|
columns: [
|
|
|
|
|
{
|
|
|
|
|
formatter: 'rowSelection',
|
|
|
|
|
titleFormatter: 'rowSelection',
|
|
|
|
|
titleFormatterParams: {
|
|
|
|
|
rowRange: 'active'
|
|
|
|
|
},
|
|
|
|
|
hozAlign: 'center',
|
|
|
|
|
headerSort: false
|
|
|
|
|
columns: [{
|
|
|
|
|
formatter: 'rowSelection',
|
|
|
|
|
titleFormatter: 'rowSelection',
|
|
|
|
|
titleFormatterParams: {
|
|
|
|
|
rowRange: 'active'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'studierendenantrag_id',
|
|
|
|
|
title: '#'
|
|
|
|
|
hozAlign: 'center',
|
|
|
|
|
headerSort: false
|
|
|
|
|
}, {
|
|
|
|
|
field: 'studierendenantrag_id',
|
|
|
|
|
title: '#'
|
|
|
|
|
}, {
|
|
|
|
|
field: 'bezeichnung',
|
|
|
|
|
title: this.p.t('lehre', 'studiengang'),
|
|
|
|
|
headerFilter: 'list',
|
|
|
|
|
headerFilterParams: {
|
|
|
|
|
valuesLookup: true,
|
|
|
|
|
clearable: true,
|
|
|
|
|
autocomplete: true,
|
|
|
|
|
}
|
|
|
|
|
}, {
|
|
|
|
|
field: 'orgform',
|
|
|
|
|
title: this.p.t('lehre', 'organisationsform'),
|
|
|
|
|
headerFilter: 'list',
|
|
|
|
|
headerFilterParams: {
|
|
|
|
|
valuesLookup: true,
|
|
|
|
|
clearable: true,
|
|
|
|
|
autocomplete: true,
|
|
|
|
|
}
|
|
|
|
|
}, {
|
|
|
|
|
field: 'typ',
|
|
|
|
|
title: this.p.t('studierendenantrag', 'antrag_typ'),
|
|
|
|
|
headerFilter: 'list',
|
|
|
|
|
headerFilterParams: {
|
|
|
|
|
valuesLookup: true,
|
|
|
|
|
clearable: true,
|
|
|
|
|
autocomplete: true,
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'bezeichnung',
|
|
|
|
|
title: this.p.t('lehre', 'studiengang'),
|
|
|
|
|
headerFilter: 'list',
|
|
|
|
|
headerFilterParams: {
|
|
|
|
|
valuesLookup: true,
|
|
|
|
|
clearable: true,
|
|
|
|
|
autocomplete: true,
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'orgform',
|
|
|
|
|
title: this.p.t('lehre', 'organisationsform'),
|
|
|
|
|
headerFilter: 'list',
|
|
|
|
|
headerFilterParams: {
|
|
|
|
|
valuesLookup: true,
|
|
|
|
|
clearable: true,
|
|
|
|
|
autocomplete: true,
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'typ',
|
|
|
|
|
title: this.p.t('studierendenantrag', 'antrag_typ'),
|
|
|
|
|
headerFilter: 'list',
|
|
|
|
|
headerFilterParams: {
|
|
|
|
|
valuesLookup: true,
|
|
|
|
|
clearable: true,
|
|
|
|
|
autocomplete: true,
|
|
|
|
|
},
|
|
|
|
|
formatter: (cell, formatterParams, onRendered) => {
|
|
|
|
|
return this.p.t('studierendenantrag','antrag_typ_' + cell.getValue());
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'statustyp',
|
|
|
|
|
title: this.p.t('studierendenantrag', 'antrag_status'),
|
|
|
|
|
headerFilter: 'list',
|
|
|
|
|
headerFilterParams: {
|
|
|
|
|
valuesLookup: true,
|
|
|
|
|
clearable: true,
|
|
|
|
|
autocomplete: true,
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'matrikelnr',
|
|
|
|
|
title: this.p.t('person', 'personenkennzeichen'),
|
|
|
|
|
headerFilter: 'input'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'prestudent_id',
|
|
|
|
|
title: this.p.t('lehre', 'prestudent'),
|
|
|
|
|
headerFilter: 'input'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'name',
|
|
|
|
|
title: this.p.t('global', 'name'),
|
|
|
|
|
mutator: (value, data) => (data.vorname + ' ' + data.nachname).replace(/^\s*(.*)\s*$/, '$1'),
|
|
|
|
|
headerFilter: 'input'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'datum',
|
|
|
|
|
title: this.p.t('global', 'datum'),
|
|
|
|
|
formatter: dateFormatter,
|
|
|
|
|
headerFilterFunc: 'dates',
|
|
|
|
|
headerFilter: dateFilter
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'datum_wiedereinstieg',
|
|
|
|
|
title: this.p.t('studierendenantrag', 'antrag_datum_wiedereinstieg'),
|
|
|
|
|
formatter: dateFormatter,
|
|
|
|
|
headerFilterFunc: 'dates',
|
|
|
|
|
headerFilter: dateFilter
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'grund',
|
|
|
|
|
title: this.p.t('studierendenantrag', 'antrag_grund'),
|
|
|
|
|
formatter: (cell, formatterParams, onRendered) => {
|
|
|
|
|
let link = document.createElement('a'),
|
|
|
|
|
val = cell.getValue();
|
|
|
|
|
link.href = "#modal-grund";
|
|
|
|
|
link.setAttribute('data-bs-toggle', 'modal');
|
|
|
|
|
link.innerHTML = this.p.t('studierendenantrag', 'antrag_grund');
|
|
|
|
|
link.addEventListener('click', () => {
|
|
|
|
|
this.$refs.modalGrundPre.innerHTML = val;
|
|
|
|
|
});
|
|
|
|
|
formatter: (cell, formatterParams, onRendered) => {
|
|
|
|
|
return this.p.t('studierendenantrag','antrag_typ_' + cell.getValue());
|
|
|
|
|
}
|
|
|
|
|
}, {
|
|
|
|
|
field: 'statustyp',
|
|
|
|
|
title: this.p.t('studierendenantrag', 'antrag_status'),
|
|
|
|
|
headerFilter: 'list',
|
|
|
|
|
headerFilterParams: {
|
|
|
|
|
valuesLookup: true,
|
|
|
|
|
clearable: true,
|
|
|
|
|
autocomplete: true,
|
|
|
|
|
}
|
|
|
|
|
}, {
|
|
|
|
|
field: 'matrikelnr',
|
|
|
|
|
title: this.p.t('person', 'personenkennzeichen'),
|
|
|
|
|
headerFilter: 'input'
|
|
|
|
|
}, {
|
|
|
|
|
field: 'prestudent_id',
|
|
|
|
|
title: this.p.t('lehre', 'prestudent'),
|
|
|
|
|
headerFilter: 'input'
|
|
|
|
|
}, {
|
|
|
|
|
field: 'name',
|
|
|
|
|
title: this.p.t('global', 'name'),
|
|
|
|
|
mutator: (value, data) => (data.vorname + ' ' + data.nachname).replace(/^\s*(.*)\s*$/, '$1'),
|
|
|
|
|
headerFilter: 'input'
|
|
|
|
|
}, {
|
|
|
|
|
field: 'datum',
|
|
|
|
|
title: this.p.t('global', 'datum'),
|
|
|
|
|
formatter: dateFormatter,
|
|
|
|
|
headerFilterFunc: 'dates',
|
|
|
|
|
headerFilter: dateFilter
|
|
|
|
|
}, {
|
|
|
|
|
field: 'datum_wiedereinstieg',
|
|
|
|
|
title: this.p.t('studierendenantrag', 'antrag_datum_wiedereinstieg'),
|
|
|
|
|
formatter: dateFormatter,
|
|
|
|
|
headerFilterFunc: 'dates',
|
|
|
|
|
headerFilter: dateFilter
|
|
|
|
|
}, {
|
|
|
|
|
field: 'grund',
|
|
|
|
|
title: this.p.t('studierendenantrag', 'antrag_grund'),
|
|
|
|
|
formatter: (cell, formatterParams, onRendered) => {
|
|
|
|
|
let link = document.createElement('a'),
|
|
|
|
|
val = cell.getValue();
|
|
|
|
|
link.href = "#modal-grund";
|
|
|
|
|
link.setAttribute('data-bs-toggle', 'modal');
|
|
|
|
|
link.innerHTML = this.p.t('studierendenantrag', 'antrag_grund');
|
|
|
|
|
link.addEventListener('click', () => {
|
|
|
|
|
this.$refs.modalGrundPre.innerHTML = val;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return val ? link : '';
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'dms_id',
|
|
|
|
|
title: this.p.t('studierendenantrag', 'antrag_dateianhaenge'),
|
|
|
|
|
formatter: (cell, formatterParams, onRendered) => {
|
|
|
|
|
let val = cell.getValue();
|
|
|
|
|
if (!val)
|
|
|
|
|
return '';
|
|
|
|
|
return '<a href="' + FHC_JS_DATA_STORAGE_OBJECT.app_root +
|
|
|
|
|
FHC_JS_DATA_STORAGE_OBJECT.ci_router +
|
|
|
|
|
'/lehre/Antrag/Attachment/show/' + val + '" target="_blank"><i class="fa fa-paperclip" aria-hidden="true"></i> ' + this.p.t('studierendenantrag', 'antrag_anhang') + '</a>';
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'actions',
|
|
|
|
|
formatter: (cell, formatterParams, onRendered) => {
|
|
|
|
|
let container = document.createElement('div'),
|
|
|
|
|
data = cell.getData();
|
|
|
|
|
return val ? link : '';
|
|
|
|
|
}
|
|
|
|
|
}, {
|
|
|
|
|
field: 'dms_id',
|
|
|
|
|
title: this.p.t('studierendenantrag', 'antrag_dateianhaenge'),
|
|
|
|
|
formatter: (cell, formatterParams, onRendered) => {
|
|
|
|
|
let val = cell.getValue();
|
|
|
|
|
if (!val)
|
|
|
|
|
return '';
|
|
|
|
|
return '<a href="' + FHC_JS_DATA_STORAGE_OBJECT.app_root +
|
|
|
|
|
FHC_JS_DATA_STORAGE_OBJECT.ci_router +
|
|
|
|
|
'/lehre/Antrag/Attachment/show/' + val + '" target="_blank"><i class="fa fa-paperclip" aria-hidden="true"></i> ' + this.p.t('studierendenantrag', 'antrag_anhang') + '</a>';
|
|
|
|
|
}
|
|
|
|
|
}, {
|
|
|
|
|
field: 'actions',
|
|
|
|
|
formatter: (cell, formatterParams, onRendered) => {
|
|
|
|
|
let container = document.createElement('div'),
|
|
|
|
|
data = cell.getData();
|
|
|
|
|
|
|
|
|
|
container.className = "d-flex gap-2";
|
|
|
|
|
container.className = "d-flex gap-2";
|
|
|
|
|
|
|
|
|
|
if((data.typ == 'Abmeldung' || data.typ == 'Unterbrechung') && (data.status == 'Genehmigt'))
|
|
|
|
|
{
|
|
|
|
|
// NOTE(chris): Download PDF
|
|
|
|
|
if ((data.typ == 'Abmeldung' || data.typ == 'Unterbrechung') && (data.status == 'Genehmigt')) {
|
|
|
|
|
// NOTE(chris): Download PDF
|
|
|
|
|
let button = document.createElement('a');
|
|
|
|
|
button.innerHTML = '<i class="fa-solid fa-download" title="' + this.p.t('studierendenantrag', 'btn_download_antrag') + '"></i>';
|
|
|
|
|
button.className = "btn btn-outline-secondary";
|
|
|
|
|
button.target = "_blank";
|
|
|
|
|
button.href = FHC_JS_DATA_STORAGE_OBJECT.app_root +
|
|
|
|
|
'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 == 'AbmeldungStgl' && data.status == 'Genehmigt') {
|
|
|
|
|
// NOTE(chris): Object
|
|
|
|
|
let button = document.createElement('button');
|
|
|
|
|
button.innerHTML = this.p.t('studierendenantrag', 'btn_object');
|
|
|
|
|
button.className = "btn btn-outline-secondary";
|
|
|
|
|
button.addEventListener('click', () => this.$emit('action:object', [cell.getData()]));
|
|
|
|
|
container.append(button);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (data.typ == 'AbmeldungStgl' && data.status == 'Beeinsprucht') {
|
|
|
|
|
// NOTE(chris): Deny Objection
|
|
|
|
|
let button = document.createElement('button');
|
|
|
|
|
button.innerHTML = this.p.t('studierendenantrag', 'btn_objection_deny');
|
|
|
|
|
button.className = "btn btn-outline-secondary";
|
|
|
|
|
button.addEventListener('click', () => this.$emit('action:objectionDeny', [cell.getData()]));
|
|
|
|
|
container.append(button);
|
|
|
|
|
|
|
|
|
|
// NOTE(chris): Approve Objection
|
|
|
|
|
button = document.createElement('button');
|
|
|
|
|
button.innerHTML = this.p.t('studierendenantrag', 'btn_objection_approve');
|
|
|
|
|
button.className = "btn btn-outline-secondary";
|
|
|
|
|
button.addEventListener('click', () => this.$emit('action:objectionApprove', [cell.getData()]));
|
|
|
|
|
container.append(button);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (this.stgA.includes(data.studiengang_kz)) {
|
|
|
|
|
// NOTE(chris): Reopen
|
|
|
|
|
if (data.typ == 'Wiederholung' && data.status == 'Verzichtet') {
|
|
|
|
|
let button = document.createElement('button');
|
|
|
|
|
button.innerHTML = this.p.t('studierendenantrag', 'btn_reopen');
|
|
|
|
|
button.className = "btn btn-outline-secondary";
|
|
|
|
|
button.addEventListener('click', () => this.$emit('action:reopen', [cell.getData()]));
|
|
|
|
|
container.append(button);
|
|
|
|
|
}
|
|
|
|
|
// NOTE(chris): Lv Zuweisen
|
|
|
|
|
if (data.typ == 'Wiederholung' && (data.status == 'Erstellt' || data.status == 'Lvszugewiesen')) {
|
|
|
|
|
let button = document.createElement('a');
|
|
|
|
|
button.innerHTML = '<i class="fa-solid fa-download" title="' + this.p.t('studierendenantrag', 'btn_download_antrag') + '"></i>';
|
|
|
|
|
button.innerHTML = this.p.t('studierendenantrag', 'btn_lvzuweisen');
|
|
|
|
|
button.className = "btn btn-outline-secondary";
|
|
|
|
|
button.target = "_blank";
|
|
|
|
|
button.href = FHC_JS_DATA_STORAGE_OBJECT.app_root +
|
|
|
|
|
'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 == 'AbmeldungStgl' && data.status == 'Genehmigt')
|
|
|
|
|
{
|
|
|
|
|
// NOTE(chris): Object
|
|
|
|
|
let button = document.createElement('button');
|
|
|
|
|
button.innerHTML = this.p.t('studierendenantrag', 'btn_object');
|
|
|
|
|
button.className = "btn btn-outline-secondary";
|
|
|
|
|
button.addEventListener('click',() => this.$emit('action:object', [cell.getData()]));
|
|
|
|
|
container.append(button);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(data.typ == 'AbmeldungStgl' && data.status == 'Beeinsprucht')
|
|
|
|
|
{
|
|
|
|
|
// NOTE(chris): Deny Objection
|
|
|
|
|
let button = document.createElement('button');
|
|
|
|
|
button.innerHTML = this.p.t('studierendenantrag', 'btn_objection_deny');
|
|
|
|
|
button.className = "btn btn-outline-secondary";
|
|
|
|
|
button.addEventListener('click',() => this.$emit('action:objectionDeny', [cell.getData()]));
|
|
|
|
|
container.append(button);
|
|
|
|
|
|
|
|
|
|
// NOTE(chris): Approve Objection
|
|
|
|
|
button = document.createElement('button');
|
|
|
|
|
button.innerHTML = this.p.t('studierendenantrag', 'btn_objection_approve');
|
|
|
|
|
button.className = "btn btn-outline-secondary";
|
|
|
|
|
button.addEventListener('click',() => this.$emit('action:objectionApprove', [cell.getData()]));
|
|
|
|
|
container.append(button);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (this.stgA.includes(data.studiengang_kz))
|
|
|
|
|
{
|
|
|
|
|
// NOTE(chris): Reopen
|
|
|
|
|
if (data.typ == 'Wiederholung' && data.status == 'Verzichtet') {
|
|
|
|
|
let button = document.createElement('button');
|
|
|
|
|
button.innerHTML = this.p.t('studierendenantrag', 'btn_reopen');
|
|
|
|
|
button.className = "btn btn-outline-secondary";
|
|
|
|
|
button.addEventListener('click',() => this.$emit('action:reopen', [cell.getData()]));
|
|
|
|
|
container.append(button);
|
|
|
|
|
}
|
|
|
|
|
// NOTE(chris): Lv Zuweisen
|
|
|
|
|
if (data.typ == 'Wiederholung' && (data.status == 'Erstellt' || data.status == 'Lvszugewiesen')) {
|
|
|
|
|
let button = document.createElement('a');
|
|
|
|
|
button.innerHTML = this.p.t('studierendenantrag', 'btn_lvzuweisen');
|
|
|
|
|
button.className = "btn btn-outline-secondary";
|
|
|
|
|
button.href = FHC_JS_DATA_STORAGE_OBJECT.app_root +
|
|
|
|
|
FHC_JS_DATA_STORAGE_OBJECT.ci_router +
|
|
|
|
|
'/lehre/Antrag/Wiederholung/assistenz/' +
|
|
|
|
|
cell.getData().studierendenantrag_id + '/frame';
|
|
|
|
|
button.onclick = e => {
|
|
|
|
|
e.preventDefault();
|
|
|
|
|
BsModal.popup(Vue.h('iframe', {
|
|
|
|
|
src: button.href,
|
|
|
|
|
class: 'position-absolute top-0 start-0 w-100 h-100'
|
|
|
|
|
}), {
|
|
|
|
|
dialogClass: 'modal-fullscreen'
|
|
|
|
|
}, this.p.t('studierendenantrag', 'title_lvzuweisen', cell.getData())).then(() => {
|
|
|
|
|
this.$emit('reload');
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
container.append(button);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (this.stgL.includes(data.studiengang_kz))
|
|
|
|
|
{
|
|
|
|
|
// NOTE(chris): Approve
|
|
|
|
|
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";
|
|
|
|
|
button.addEventListener('click', () => this.$emit('action:approve', [cell.getData()]));
|
|
|
|
|
container.append(button);
|
|
|
|
|
}
|
|
|
|
|
// NOTE(chris): Reject (Unterbrechung braucht grund)
|
|
|
|
|
if (data.status == 'Erstellt' && data.typ == 'Unterbrechung') {
|
|
|
|
|
let button = document.createElement('button');
|
|
|
|
|
button.innerHTML = this.p.t('studierendenantrag', 'btn_reject');
|
|
|
|
|
button.className = "btn btn-outline-secondary";
|
|
|
|
|
button.addEventListener('click', () => this.$emit('action:reject', [cell.getData()]));
|
|
|
|
|
container.append(button);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// NOTE(chris): Show LVs
|
|
|
|
|
if (data.typ == 'Wiederholung' && (data.status == 'Lvszugewiesen' || data.status == 'Genehmigt')) {
|
|
|
|
|
let button = document.createElement('button');
|
|
|
|
|
button.innerHTML = this.p.t('studierendenantrag', 'btn_show_lvs');
|
|
|
|
|
button.className = "btn btn-outline-secondary";
|
|
|
|
|
button.addEventListener('click', () => this.showLVs(cell.getData()));
|
|
|
|
|
button.onclick = e => {
|
|
|
|
|
e.preventDefault();
|
|
|
|
|
BsModal.popup(Vue.h('iframe', {
|
|
|
|
|
src: button.href,
|
|
|
|
|
class: 'position-absolute top-0 start-0 w-100 h-100'
|
|
|
|
|
}), {
|
|
|
|
|
dialogClass: 'modal-fullscreen'
|
|
|
|
|
}, this.p.t('studierendenantrag', 'title_lvzuweisen', cell.getData())).then(() => {
|
|
|
|
|
this.$emit('reload');
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
container.append(button);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// TODO(chris): not yet perfect
|
|
|
|
|
onRendered(() => {
|
|
|
|
|
cell.getColumn().setWidth(true);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return container;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (this.stgL.includes(data.studiengang_kz)) {
|
|
|
|
|
// NOTE(chris): Approve
|
|
|
|
|
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";
|
|
|
|
|
button.addEventListener('click', () => this.$emit('action:approve', [cell.getData()]));
|
|
|
|
|
container.append(button);
|
|
|
|
|
}
|
|
|
|
|
// NOTE(chris): Reject (Unterbrechung braucht grund)
|
|
|
|
|
if (data.status == 'Erstellt' && data.typ == 'Unterbrechung') {
|
|
|
|
|
let button = document.createElement('button');
|
|
|
|
|
button.innerHTML = this.p.t('studierendenantrag', 'btn_reject');
|
|
|
|
|
button.className = "btn btn-outline-secondary";
|
|
|
|
|
button.addEventListener('click', () => this.$emit('action:reject', [cell.getData()]));
|
|
|
|
|
container.append(button);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// NOTE(chris): Show LVs
|
|
|
|
|
if (data.typ == 'Wiederholung' && (data.status == 'Lvszugewiesen' || data.status == 'Genehmigt')) {
|
|
|
|
|
let button = document.createElement('button');
|
|
|
|
|
button.innerHTML = this.p.t('studierendenantrag', 'btn_show_lvs');
|
|
|
|
|
button.className = "btn btn-outline-secondary";
|
|
|
|
|
button.addEventListener('click', () => this.showLVs(cell.getData()));
|
|
|
|
|
container.append(button);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// TODO(chris): not yet perfect
|
|
|
|
|
onRendered(() => {
|
|
|
|
|
cell.getColumn().setWidth(true);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return container;
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}]
|
|
|
|
|
});
|
|
|
|
|
this.table.on("tableBuilt", () => {
|
|
|
|
|
let columns = this.table.getColumns();
|
|
|
|
|