Allow extra columns for studvw student list

This commit is contained in:
chfhtw
2026-07-08 11:00:20 +02:00
parent 5bed848aae
commit b991bbd9a5
6 changed files with 463 additions and 163 deletions
@@ -0,0 +1,19 @@
let result = [];
let current;
<?php foreach ($snippets as $path) { ?>
current = (tabulatorcolumns => {
<?php $this->load->view($path); ?>
})(result);
if (current) {
if (Array.isArray(current))
result = result.concat(current);
else
result.push(current);
}
<?php } ?>
export default result;
@@ -0,0 +1,334 @@
return [
{
title: "UID",
titlePhrase: 'person/uid',
field: "uid",
headerFilter: true
},
{
title: "TitelPre",
titlePhrase: 'person/titelpre',
field: "titelpre",
headerFilter: "list",
headerFilterParams: {
valuesLookup: true,
listOnEmpty: true,
autocomplete: true,
sort: "asc"
}
},
{
title: "Nachname",
titlePhrase: 'person/nachname',
field: "nachname",
headerFilter: true
},
{
title: "Vorname",
titlePhrase: 'person/vorname',
field: "vorname",
headerFilter: true
},
{
title: "Wahlname",
titlePhrase: 'person/wahlname',
field: "wahlname",
visible: false,
headerFilter: true
},
{
title: "Vornamen",
titlePhrase: 'person/vornamen',
field: "vornamen",
visible: false,
headerFilter: true
},
{
title: "TitelPost",
titlePhrase: 'person/titelpost',
field: "titelpost",
headerFilter: "list",
headerFilterParams: {
valuesLookup: true,
listOnEmpty: true,
autocomplete: true,
sort: "asc"
}
},
{
title: "Ersatzkennzeichen",
titlePhrase: 'person/ersatzkennzeichen',
field: "ersatzkennzeichen",
headerFilter: true
},
{
title: "Geburtsdatum",
titlePhrase: 'person/geburtsdatum',
field: "gebdatum",
formatter: 'dateFormatter',
headerFilter: true,
headerFilterFunc(headerValue, rowValue) {
const matches = headerValue.match(/^(([0-9]{2})\.)?([0-9]{2})\.([0-9]{4})?$/);
let comparestr = headerValue;
if(matches !== null) {
const year = (matches[4] !== undefined) ? matches[4] : '';
const month = matches[3];
const day = (matches[2] !== undefined) ? matches[2] : '';
comparestr = year + '-' + month + '-' + day;
}
return rowValue.match(comparestr);
}
},
{
title: "Geschlecht",
titlePhrase: 'person/geschlecht',
field: "geschlecht",
headerFilter: "list",
headerFilterParams: {
values: {
'm': 'männlich',
'w': 'weiblich',
'x': 'divers',
'u': 'unbekannt'
},
listOnEmpty: true,
autocomplete: true
}
},
{
title: "Sem.",
titlePhrase: 'lehre/sem',
field: "semester",
headerFilter: "list",
headerFilterParams: {
valuesLookup: true,
listOnEmpty: true,
autocomplete: true,
sort: "asc"
}
},
{
title: "Verb.",
titlePhrase: 'lehre/verb',
field: "verband",
headerFilter: "list",
headerFilterParams: {
valuesLookup: true,
listOnEmpty: true,
autocomplete: true,
sort: "asc"
}
},
{
title: "Grp.",
titlePhrase: 'lehre/grp',
field: "gruppe",
headerFilter: "list",
headerFilterParams: {
valuesLookup: true,
listOnEmpty: true,
autocomplete: true,
sort: "asc"
}
},
{
title: "Studiengang",
titlePhrase: 'lehre/studiengang',
field: "studiengang",
headerFilter: "list",
headerFilterParams: {
valuesLookup: true,
listOnEmpty: true,
autocomplete: true,
sort: "asc"
}
},
{
title: "Studiengang_kz",
titlePhrase: 'lehre/studiengang_kz',
field: "studiengang_kz",
visible: false,
headerFilter: true
},
{
title: "Personenkennzeichen",
titlePhrase: 'person/personenkennzeichen',
field: "matrikelnr",
headerFilter: true
},
{
title: "PersonID",
titlePhrase: 'person/person_id',
field: "person_id",
headerFilter: true
},
{
title: "Status",
titlePhrase: 'global/status',
field: "status",
headerFilter: "list",
headerFilterParams: {
valuesLookup: true,
listOnEmpty: true,
autocomplete: true,
sort: "asc"
}
},
{
title: "Status Datum",
titlePhrase: 'profilUpdate/statusDate',
field: "status_datum",
visible: false,
formatter: 'dateFormatter'
},
{
title: "Status Bestaetigung",
titlePhrase: 'global/status_bestaetigung',
field: "status_bestaetigung",
visible: false,
formatter: 'dateFormatter',
headerFilter: true
},
{
title: "EMail (Privat)",
titlePhrase: 'person/email_private',
field: "mail_privat",
visible: false,
headerFilter: true
},
{
title: "EMail (Intern)",
titlePhrase: 'person/email_intern',
field: "mail_intern",
visible: false,
headerFilter: true
},
{
title: "Anmerkungen",
titlePhrase: 'stv/notes_person',
field: "anmerkungen",
visible: false,
headerFilter: true
},
{
title: "AnmerkungPre",
titlePhrase: 'stv/notes_prestudent',
field: "anmerkung",
visible: false,
headerFilter: true
},
{
title: "OrgForm",
titlePhrase: 'lehre/orgform',
field: "orgform_kurzbz",
headerFilter: "list",
headerFilterParams: {
valuesLookup: true,
listOnEmpty: true,
autocomplete: true,
sort: "asc"
}
},
{
title: "Aufmerksamdurch",
titlePhrase: 'person/aufmerksamDurch',
field: "aufmerksamdurch_kurzbz",
visible: false
},
{
title: "Gesamtpunkte",
titlePhrase: 'admission/gesamtpunkte',
field: "punkte",
visible: false
},
{
title: "Aufnahmegruppe",
titlePhrase: 'stv/aufnahmegruppe_kurzbz',
field: "aufnahmegruppe_kurzbz",
visible: false
},
{
title: "Dual",
titlePhrase: 'lehre/dual_short',
field: "dual",
visible: false,
formatter: 'tickCross',
formatterParams: {
tickElement: '<i class="fas fa-check text-success"></i>',
crossElement: '<i class="fas fa-times text-danger"></i>'
},
headerFilter: "tickCross",
headerFilterParams: {
"tristate": true,
elementAttributes: {
"value": "true"
}
},
headerFilterEmptyCheck(value) {
return value === null
}
},
{
title: "Matrikelnummer",
titlePhrase: 'person/matrikelnummer',
field: "matr_nr",
visible: false,
headerFilter: true
},
{
title: "Studienplan",
titlePhrase: 'lehre/studienplan',
field: "studienplan_bezeichnung",
headerFilter: "list",
headerFilterParams: {
valuesLookup: true,
listOnEmpty: true,
autocomplete: true,
sort: "asc"
}
},
{
title: "PreStudentInnenID",
titlePhrase: 'ui/prestudent_id',
field: "prestudent_id",
headerFilter: true
},
{
title: "Priorität",
titlePhrase: 'lehre/prioritaet',
field: "priorisierung_relativ"
},
{
title: "Mentor",
titlePhrase: 'stv/mentor',
field: "mentor",
visible: false
},
{
title: "Aktiv",
titlePhrase: 'person/aktiv',
field: "bnaktiv",
visible: false,
formatter: 'tickCross',
formatterParams: {
allowEmpty: true,
tickElement: '<i class="fas fa-check text-success"></i>',
crossElement: '<i class="fas fa-times text-danger"></i>'
},
headerFilter: "tickCross",
headerFilterParams: {
"tristate": true,
elementAttributes: {
"value": "true"
}
},
headerFilterEmptyCheck(value) {
return value === null
}
},
{
title: "Unruly",
field: "unruly",
visible: false
}
];