refactor tabulatorevents to avoid updateDefinitions (Tabs Betriebsmittel, Funktionen, Messages, Notizen, Abschlusspruefung, Anrechnungen, Aufnahmetermine, Dokumente, Kontakt, Lehrveranstaltungstermine, Mobility, Prestudent, Pruefungen)

This commit is contained in:
ma0068
2026-02-05 09:41:15 +01:00
parent fc0fdc7909
commit ee619004bd
17 changed files with 492 additions and 627 deletions
@@ -53,7 +53,6 @@ export default {
layout: 'fitColumns',
layoutColumnsOnNewData: false,
height: '550',
persistenceID: 'core-betriebsmittel'
}
},
computed: {
@@ -64,6 +63,7 @@ export default {
this.endpoint.getAllBetriebsmittel(this.typeId, this.id, (this.filterByProvidedTypes ? this.betriebsmittelTypes : null))
),
ajaxResponse: (url, params, response) => response.data,
persistenceID: 'core-betriebsmittel',
columns: [
{title: "Nummer", field: "nummer", width: 150},
{title: "PersonId", field: "person_id", visible: false},
@@ -171,41 +171,30 @@ export default {
await this.$p.loadCategory(['wawi', 'global', 'infocenter', 'betriebsmittel', 'person']);
let cm = this.$refs.table.tabulator.columnManager;
const setHeader = (field, text) => {
const col = this.$refs.table.tabulator.getColumn(field);
if (!col) return;
cm.getColumnByField('nummer').component.updateDefinition({
title: this.$p.t('wawi', 'nummer')
});
cm.getColumnByField('betriebsmitteltyp').component.updateDefinition({
title: this.$p.t('global', 'typ')
});
cm.getColumnByField('anmerkung').component.updateDefinition({
title: this.$p.t('global', 'anmerkung')
});
cm.getColumnByField('retouram').component.updateDefinition({
title: this.$p.t('wawi', 'retourdatum')
});
cm.getColumnByField('beschreibung').component.updateDefinition({
title: this.$p.t('global', 'beschreibung')
});
cm.getColumnByField('kaution').component.updateDefinition({
title: this.$p.t('infocenter', 'kaution')
});
cm.getColumnByField('ausgegebenam').component.updateDefinition({
title: this.$p.t('wawi', 'ausgabedatum')
});
cm.getColumnByField('betriebsmittel_id').component.updateDefinition({
title: this.$p.t('ui', 'betriebsmittel_id')
});
cm.getColumnByField('betriebsmittelperson_id').component.updateDefinition({
title: this.$p.t('ui', 'betriebsmittelperson_id')
});
cm.getColumnByField('person_id').component.updateDefinition({
title: this.$p.t('person', 'person_id')
});
cm.getColumnByField('uid').component.updateDefinition({
title: this.$p.t('person', 'uid')
});
const el = col.getElement();
if (!el || !el.querySelector) return;
const titleEl = el.querySelector('.tabulator-col-title');
if (titleEl) {
titleEl.textContent = text;
}
};
setHeader('nummer', this.$p.t('wawi', 'nummer'));
setHeader('betriebsmitteltyp', this.$p.t('global', 'typ'));
setHeader('anmerkung', this.$p.t('global', 'anmerkung'));
setHeader('retouram', this.$p.t('wawi', 'retourdatum'));
setHeader('beschreibung', this.$p.t('global', 'beschreibung'));
setHeader('kaution', this.$p.t('infocenter', 'kaution'));
setHeader('ausgegebenam', this.$p.t('wawi', 'ausgabedatum'));
setHeader('betriebsmittel_id', this.$p.t('ui', 'betriebsmittel_id'));
setHeader('betriebsmittelperson_id', this.$p.t('ui', 'betriebsmittelperson_id'));
setHeader('person_id', this.$p.t('person', 'person_id'));
setHeader('uid', this.$p.t('person', 'uid'));
}
}
];
+34 -42
View File
@@ -60,8 +60,7 @@ export default {
selectedOe: null,
layout: 'fitDataFill',
layoutColumnsOnNewData: false,
height: '300',
persistenceID: 'core-functions',
height: '300'
}
},
computed: {
@@ -72,20 +71,33 @@ export default {
ApiCoreFunktion.getAllUserFunctions(this.personUID)
),
ajaxResponse: (url, params, response) => response.data,
persistenceID: 'core-functions',
columns: [
{
title: "dienstverhaeltnis_unternehmen",
field: "dienstverhaeltnis_unternehmen",
headerFilter: "list",
headerFilterParams: {valuesLookup: true, autocomplete: true, sort: "asc"},
headerFilterParams: {
valuesLookup: true, autocomplete: true, sort: "asc"
},
width: 140,
//Field Company: if visible show link to dv
visible: this.showDvCompany,
formatter: this.companyLinkFormatter
},
{
title: "funktion_beschreibung", field: "funktion_beschreibung", headerFilter: "list",
headerFilterParams: {valuesLookup: true, autocomplete: true, sort: "asc"},
headerFilterParams: {
valuesLookup: true, autocomplete: true, sort: "asc"
},
width: 140
},
{
title: "funktion_oebezeichnung", field: "funktion_oebezeichnung", headerFilter: "list",
headerFilterParams: {valuesLookup: true, autocomplete: true, sort: "asc"}
headerFilterParams: {
valuesLookup: true, autocomplete: true, sort: "asc"
},
width: 140
},
{title: "wochenstunden", field: "wochenstunden", headerFilter: true},
{
@@ -120,7 +132,7 @@ export default {
});
},
},
{title: "bezeichnung", field: "bezeichnung", headerFilter: true},
{title: "bezeichnung", field: "bezeichnung", headerFilter: true, width: 140},
{title: "aktiv", field: "aktiv", visible: false},
{title: "benutzerfunktion_id", field: "benutzerfunktion_id", visible: false},
{title: "uid", field: "uid", visible: false},
@@ -184,47 +196,27 @@ export default {
event: 'tableBuilt',
handler: async () => {
await this.$p.loadCategory(['global', 'lehre', 'person', 'ui']);
let cm = this.$refs.table.tabulator.columnManager;
//Field Company: if visible show link to dv
const column = cm.getColumnByField('dienstverhaeltnis_unternehmen');
const companyDv = {
title: this.$p.t('person', 'dv_unternehmen'),
width: 140,
visible: this.showDvCompany,
formatter: this.companyLinkFormatter
};
column.component.updateDefinition(companyDv);
const setHeader = (field, text) => {
const col = this.$refs.table.tabulator.getColumn(field);
if (!col) return;
cm.getColumnByField('funktion_beschreibung').component.updateDefinition({
title: this.$p.t('person', 'zuordnung_taetigkeit'),
width: 140
});
cm.getColumnByField('funktion_oebezeichnung').component.updateDefinition({
title: this.$p.t('lehre', 'organisationseinheit'),
width: 140
});
cm.getColumnByField('wochenstunden').component.updateDefinition({
title: this.$p.t('person', 'wochenstunden')
});
const el = col.getElement();
if (!el || !el.querySelector) return;
const columnDatumVon = cm.getColumnByField('datum_von');
const fieldVonDatum = {
title: this.$p.t('ui', 'from')
const titleEl = el.querySelector('.tabulator-col-title');
if (titleEl) {
titleEl.textContent = text;
}
};
columnDatumVon.component.updateDefinition(fieldVonDatum);
const columnDatumBis = cm.getColumnByField('datum_bis');
const fieldBisDatum = {
title: this.$p.t('global', 'bis'),
};
columnDatumBis.component.updateDefinition(fieldBisDatum);
cm.getColumnByField('bezeichnung').component.updateDefinition({
title: this.$p.t('ui', 'bezeichnung'),
width: 140
});
setHeader('dienstverhaeltnis_unternehmen', this.$p.t('person', 'dv_unternehmen'));
setHeader('funktion_beschreibung', this.$p.t('person', 'zuordnung_taetigkeit'));
setHeader('funktion_oebezeichnung', this.$p.t('lehre', 'organisationseinheit'));
setHeader('wochenstunden', this.$p.t('person', 'wochenstunden'));
setHeader('datum_von', this.$p.t('ui', 'from'));
setHeader('datum_bis', this.$p.t('global', 'bis'));
setHeader('bezeichnung', this.$p.t('ui', 'bezeichnung'));
}
}
];
@@ -28,13 +28,10 @@ export default {
previewBody: "",
open: false,
personId: null,
layout: 'fitDataStretchFrozen',
layoutColumnsOnNewData: false,
height: '400',
persistenceID: 'core-message-2025112401',
selectable: 1,
selectableRangeMode: 'click',
index: 'message_id',
}
},
methods: {
@@ -131,6 +128,9 @@ export default {
};
},
ajaxResponse: (url, params, response) => this.buildTreemap(response),
layout: 'fitDataStretchFrozen',
index: 'message_id',
persistenceID: 'core-message-2025112401',
columns: [
{title: "subject", field: "subject", headerFilter: true},
{title: "body", field: "body", formatter: "html", visible: false, headerFilter: true},
@@ -178,8 +178,12 @@ export default {
"archived",
"deleted"
],
formatter: (cell, formatterParams) => {
/* formatter: (cell, formatterParams) => {
return formatterParams[cell.getValue()];
},*/
formatter: (cell, formatterParams) => {
const key = formatterParams[cell.getValue()];
return this.$p.t('messages', key);
},
},
{
@@ -291,44 +295,29 @@ export default {
handler: async() => {
await this.$p.loadCategory(['global', 'person', 'stv', 'messages', 'ui', 'notiz']);
const setHeader = (field, text) => {
const col = this.$refs.table.tabulator.getColumn(field);
if (!col) return;
let cm = this.$refs.table.tabulator.columnManager;
const el = col.getElement();
if (!el || !el.querySelector) return;
const titleEl = el.querySelector('.tabulator-col-title');
if (titleEl) {
titleEl.textContent = text;
}
};
setHeader('subject', this.$p.t('global', 'betreff'));
setHeader('body', this.$p.t('messages', 'body'));
setHeader('message_id', this.$p.t('messages', 'message_id'));
setHeader('insertamum', this.$p.t('global', 'datum'));
setHeader('sender', this.$p.t('messages', 'sender'));
setHeader('recipient', this.$p.t('messages', 'recipient'));
setHeader('sender_id', this.$p.t('messages', 'senderId'));
setHeader('recipient_id', this.$p.t('messages', 'recipientId'));
setHeader('statusdatum', this.$p.t('notiz', 'letzte_aenderung'));
cm.getColumnByField('subject').component.updateDefinition({
title: this.$p.t('global', 'betreff')
});
cm.getColumnByField('body').component.updateDefinition({
title: this.$p.t('messages', 'body')
});
cm.getColumnByField('message_id').component.updateDefinition({
title: this.$p.t('messages', 'message_id')
});
cm.getColumnByField('insertamum').component.updateDefinition({
title: this.$p.t('global', 'datum')
});
cm.getColumnByField('sender').component.updateDefinition({
title: this.$p.t('messages', 'sender')
});
cm.getColumnByField('recipient').component.updateDefinition({
title: this.$p.t('messages', 'recipient')
});
cm.getColumnByField('sender_id').component.updateDefinition({
title: this.$p.t('messages', 'senderId')
});
cm.getColumnByField('recipient_id').component.updateDefinition({
title: this.$p.t('messages', 'recipientId')
});
cm.getColumnByField('statusdatum').component.updateDefinition({
title: this.$p.t('notiz', 'letzte_aenderung')
});
cm.getColumnByField('status').component.updateDefinition({
formatterParams: [
this.$p.t('messages/unread'),
this.$p.t('messages/read'),
this.$p.t('messages/archived'),
this.$p.t('messages/deleted')
]
});
this.$refs.table.tabulator.rowManager.getDisplayRows();
}
},
+30 -53
View File
@@ -227,7 +227,7 @@ export default {
index: 'notiz_id',
persistenceID: this.tabulatorPersistenceId,
persistence: {
sort: false,
sort: true,
columns: ["width", "visible", "frozen"],
filter: false,
headerFilter: false,
@@ -242,62 +242,39 @@ export default {
event: 'tableBuilt',
handler: async () => {
//to avoid js error
if (!this.$refs.table) return;
await this.$p.loadCategory(['notiz', 'global', 'ui']);
let cm = this.$refs.table.tabulator.columnManager;
const setHeader = (field, text) => {
const col = this.$refs.table.tabulator.getColumn(field);
if (!col) return;
cm.getColumnByField('verfasser').component.updateDefinition({
title: this.$p.t('notiz', 'verfasser'),
});
cm.getColumnByField('verfasser_uid').component.updateDefinition({
title: this.$p.t('ui', 'verfasser_uid'),
});
cm.getColumnByField('titel').component.updateDefinition({
title: this.$p.t('global', 'titel'),
});
cm.getColumnByField('bearbeiter').component.updateDefinition({
title: this.$p.t('notiz', 'bearbeiter'),
});
cm.getColumnByField('bearbeiter_uid').component.updateDefinition({
title: this.$p.t('ui', 'bearbeiter_uid'),
});
cm.getColumnByField('start_format').component.updateDefinition({
title: this.$p.t('global', 'gueltigVon'),
});
cm.getColumnByField('ende_format').component.updateDefinition({
title: this.$p.t('global', 'gueltigBis'),
});
cm.getColumnByField('countdoc').component.updateDefinition({
title: this.$p.t('notiz', 'document'),
});
cm.getColumnByField('erledigt').component.updateDefinition({
title: this.$p.t('notiz', 'erledigt'),
});
cm.getColumnByField('lastupdate').component.updateDefinition({
title: this.$p.t('notiz', 'letzte_aenderung'),
});
cm.getColumnByField('notiz_id').component.updateDefinition({
title: this.$p.t('ui', 'notiz_id')
});
cm.getColumnByField('notizzuordnung_id').component.updateDefinition({
title: this.$p.t('ui', 'notizzuordnung_id')
});
cm.getColumnByField('type_id').component.updateDefinition({
title: this.$p.t('ui', 'type_id')
});
cm.getColumnByField('id').component.updateDefinition({
title: this.$p.t('ui', 'extension_id')
});
cm.getColumnByField('actions').component.updateDefinition({
title: this.$p.t('global', 'aktionen')
});
const el = col.getElement();
if (!el || !el.querySelector) return;
cm.getColumnByField('text_stripped').component.updateDefinition({
title: this.$p.t('global', 'text'),
width: 250,
tooltip: true,
//clipContents: true,
});
const titleEl = el.querySelector('.tabulator-col-title');
if (titleEl) {
titleEl.textContent = text;
}
};
setHeader('verfasser', this.$p.t('notiz', 'verfasser'));
setHeader('verfasser_uid', this.$p.t('ui', 'verfasser_uid'));
setHeader('titel', this.$p.t('global', 'titel'));
setHeader('bearbeiter', this.$p.t('notiz', 'bearbeiter'));
setHeader('bearbeiter_uid', this.$p.t('ui', 'bearbeiter_uid'));
setHeader('start_format', this.$p.t('global', 'gueltigVon'));
setHeader('ende_format', this.$p.t('global', 'gueltigBis'));
setHeader('countdoc', this.$p.t('notiz', 'document'));
setHeader('erledigt', this.$p.t('notiz', 'erledigt'));
setHeader('lastupdate', this.$p.t('notiz', 'letzte_aenderung'));
setHeader('notiz_id', this.$p.t('ui', 'notiz_id'));
setHeader('notizzuordnung_id', this.$p.t('ui', 'notizzuordnung_id'));
setHeader('type_id', this.$p.t('ui', 'type_id'));
setHeader('id', this.$p.t('ui', 'extension_id'));
setHeader('text_stripped', this.$p.t('global', 'text'));
// Force layout recalculation for handling overflow text
this.$refs.table.tabulator.redraw(true);
@@ -79,8 +79,6 @@ export default {
layoutColumnsOnNewData: false,
height: 'auto',
minHeight: '200',
index: 'abschlusspruefung_id',
persistenceID: 'stv-details-finalexam-2025112401'
}
},
computed: {
@@ -89,6 +87,8 @@ export default {
ajaxURL: 'dummy',
ajaxRequestFunc: () => this.$api.call(ApiStvAbschlusspruefung.getAbschlusspruefung(this.student.uid)),
ajaxResponse: (url, params, response) => response.data,
index: 'abschlusspruefung_id',
persistenceID: 'stv-details-finalexam-2025112401',
columns: [
{title: "vorsitz", field: "vorsitz_nachname"},
{title: "abschlussbeurteilung", field: "beurteilung_bezeichnung"},
@@ -196,50 +196,36 @@ export default {
{
event: 'tableBuilt',
handler: async() => {
if (!this.$refs.table) return;
await this.$p.loadCategory(['global', 'person', 'stv', 'abschlusspruefung', 'ui']);
const setHeader = (field, text) => {
const col = this.$refs.table.tabulator.getColumn(field);
if (!col) return;
let cm = this.$refs.table.tabulator.columnManager;
const el = col.getElement();
if (!el || !el.querySelector) return;
cm.getColumnByField('vorsitz_nachname').component.updateDefinition({
title: this.$p.t('abschlusspruefung', 'vorsitz_header')
});
cm.getColumnByField('beurteilung_bezeichnung').component.updateDefinition({
title: this.$p.t('abschlusspruefung', 'abschlussbeurteilung')
});
cm.getColumnByField('p1_nachname').component.updateDefinition({
title: this.$p.t('abschlusspruefung', 'pruefer1')
});
cm.getColumnByField('p2_nachname').component.updateDefinition({
title: this.$p.t('abschlusspruefung', 'pruefer2')
});
cm.getColumnByField('p3_nachname').component.updateDefinition({
title: this.$p.t('abschlusspruefung', 'pruefer3')
});
cm.getColumnByField('datum').component.updateDefinition({
title: this.$p.t('global', 'datum')
});
cm.getColumnByField('uhrzeit').component.updateDefinition({
title: this.$p.t('global', 'uhrzeit')
});
cm.getColumnByField('freigabedatum').component.updateDefinition({
title: this.$p.t('abschlusspruefung', 'freigabe')
});
cm.getColumnByField('antritt_bezeichnung').component.updateDefinition({
title: this.$p.t('abschlusspruefung', 'pruefungsantritt')
});
cm.getColumnByField('sponsion').component.updateDefinition({
title: this.$p.t('abschlusspruefung', 'sponsion')
});
cm.getColumnByField('anmerkung').component.updateDefinition({
title: this.$p.t('global', 'anmerkung')
});
cm.getColumnByField('pruefungstyp_kurzbz').component.updateDefinition({
title: this.$p.t('global', 'typ')
});
cm.getColumnByField('abschlusspruefung_id').component.updateDefinition({
title: this.$p.t('abschlusspruefung', 'abschlusspruefung_id')
});
const titleEl = el.querySelector('.tabulator-col-title');
if (titleEl) {
titleEl.textContent = text;
}
};
setHeader('vorsitz_nachname', this.$p.t('abschlusspruefung', 'vorsitz_header'));
setHeader('beurteilung_bezeichnung', this.$p.t('abschlusspruefung', 'abschlussbeurteilung'));
setHeader('p1_nachname', this.$p.t('abschlusspruefung', 'pruefer1'));
setHeader('p2_nachname', this.$p.t('abschlusspruefung', 'pruefer2'));
setHeader('p3_nachname', this.$p.t('abschlusspruefung', 'pruefer3'));
setHeader('datum', this.$p.t('global', 'datum'));
setHeader('uhrzeit', this.$p.t('global', 'uhrzeit'));
setHeader('freigabedatum', this.$p.t('abschlusspruefung', 'freigabe'));
setHeader('antritt_bezeichnung', this.$p.t('abschlusspruefung', 'pruefungsantritt'));
setHeader('sponsion', this.$p.t('abschlusspruefung', 'sponsion'));
setHeader('anmerkung', this.$p.t('global', 'anmerkung'));
setHeader('pruefungstyp_kurzbz', this.$p.t('global', 'typ'));
setHeader('abschlusspruefung_id', this.$p.t('abschlusspruefung', 'abschlusspruefung_id'));
}
}
];
@@ -40,10 +40,6 @@ export default {
showNotizen: false,
currentAnrechnung_id: null,
endpoint: ApiNotizPerson,
layout: 'fitDataStretchFrozen',
height: '500',
index: 'anrechnung_id',
persistenceID: 'stv-details-anrechnungen-2025112401'
}
},
computed: {
@@ -54,6 +50,10 @@ export default {
ApiStvExemptions.getAnrechnungen(this.student.prestudent_id)
),
ajaxResponse: (url, params, response) => response.data,
layout: 'fitDataStretchFrozen',
height: '500',
index: 'anrechnung_id',
persistenceID: 'stv-details-anrechnungen-2025112401',
columns: [
{title: "anrechnung_id", field: "anrechnung_id", visible: false},
{title: "lehrveranstaltung_id", field: "lehrveranstaltung_id", visible: false},
@@ -135,39 +135,28 @@ export default {
await this.$p.loadCategory(['anrechnungen', 'global', 'ui', 'lehre']);
let cm = this.$refs.table.tabulator.columnManager;
const setHeader = (field, text) => {
const col = this.$refs.table.tabulator.getColumn(field);
if (!col) return;
cm.getColumnByField('anrechnung_id').component.updateDefinition({
title: this.$p.t('ui', 'anrechnung_id'),
});
cm.getColumnByField('lehrveranstaltung_id').component.updateDefinition({
title: this.$p.t('lehre', 'lehrveranstaltung_id'),
});
cm.getColumnByField('bez_lehrveranstaltung').component.updateDefinition({
title: this.$p.t('lehre', 'lehrveranstaltung'),
});
cm.getColumnByField('begruendung').component.updateDefinition({
title: this.$p.t('global', 'begruendung'),
});
cm.getColumnByField('lehrveranstaltung_id_kompatibel').component.updateDefinition({
title: this.$p.t('anrechnung', 'lehrveranstaltung_id_kompatibel'),
});
cm.getColumnByField('lehrveranstaltung_bez_kompatibel').component.updateDefinition({
title: this.$p.t('anrechnung', 'lehrveranstaltung_bez_kompatibel'),
});
cm.getColumnByField('status').component.updateDefinition({
title: this.$p.t('global', 'status'),
});
cm.getColumnByField('genehmigt_von').component.updateDefinition({
title: this.$p.t('anrechnung', 'genehmigtVon'),
});
cm.getColumnByField('notizen_anzahl').component.updateDefinition({
title: this.$p.t('anrechnung', 'existingNotes'),
});
cm.getColumnByField('insertamum').component.updateDefinition({
title: this.$p.t('global', 'datum'),
});
const el = col.getElement();
if (!el || !el.querySelector) return;
const titleEl = el.querySelector('.tabulator-col-title');
if (titleEl) {
titleEl.textContent = text;
}
};
setHeader( 'anrechnung_id', this.$p.t('ui', 'anrechnung_id'));
setHeader( 'lehrveranstaltung_id', this.$p.t('lehre', 'lehrveranstaltung_id'));
setHeader( 'bez_lehrveranstaltung', this.$p.t('lehre', 'lehrveranstaltung'));
setHeader( 'begruendung', this.$p.t('global', 'begruendung'));
setHeader( 'lehrveranstaltung_id_kompatibel', this.$p.t('anrechnung', 'lehrveranstaltung_id_kompatibel'));
setHeader( 'lehrveranstaltung_bez_kompatibel', this.$p.t('anrechnung', 'lehrveranstaltung_bez_kompatibel'));
setHeader( 'status', this.$p.t('global', 'status'));
setHeader( 'genehmigt_von', this.$p.t('anrechnung', 'genehmigtVon'));
setHeader( 'notizen_anzahl', this.$p.t('anrechnung', 'existingNotes'));
setHeader( 'insertamum', this.$p.t('global', 'datum'));
}
}
];
@@ -52,9 +52,7 @@ export default {
layout: 'fitDataStretchFrozen',
layoutColumnsOnNewData: false,
height: 'auto',
minHeight: 200,
index: 'aufnahmetermin_id',
persistenceID: 'stv-details-table_admission-dates-2025112401'
minHeight: 200
}
},
methods: {
@@ -250,6 +248,8 @@ export default {
dataLoaded: function() {
this.redraw(true);
},
index: 'aufnahmetermin_id',
persistenceID: 'stv-details-table_admission-dates-2025112401',
columns: [
{title: "rt_id", field: "rt_id", visible: false},
{title: "rt_person_id", field: "rt_person_id", visible: false},
@@ -338,53 +338,34 @@ export default {
event: 'tableBuilt',
handler: async () => {
await this.$p.loadCategory(['admission', 'global', 'person', 'ui', 'projektarbeitsbeurteilung']);
let cm = this.$refs.table.tabulator.columnManager;
const setHeader = (field, text) => {
const col = this.$refs.table.tabulator.getColumn(field);
if (!col) return;
cm.getColumnByField('rt_id').component.updateDefinition({
title: this.$p.t('ui', 'reihungstest_id')
});
cm.getColumnByField('rt_person_id').component.updateDefinition({
title: this.$p.t('ui', 'reihungstest_person_id')
});
cm.getColumnByField('person_id').component.updateDefinition({
title: this.$p.t('person', 'person_id')
});
cm.getColumnByField('datum').component.updateDefinition({
title: this.$p.t('global', 'datum')
});
cm.getColumnByField('stufe').component.updateDefinition({
title: this.$p.t('admission', 'stufe')
});
cm.getColumnByField('studiensemester').component.updateDefinition({
title: this.$p.t('lehre', 'studiensemester')
});
cm.getColumnByField('anmerkung').component.updateDefinition({
title: this.$p.t('global', 'anmerkung')
});
cm.getColumnByField('anmeldedatum').component.updateDefinition({
title: this.$p.t('admission', 'anmeldedatum')
});
cm.getColumnByField('punkte').component.updateDefinition({
title: this.$p.t('exam', 'punkte')
});
cm.getColumnByField('teilgenommen').component.updateDefinition({
title: this.$p.t('admission', 'teilgenommen')
});
cm.getColumnByField('ort').component.updateDefinition({
title: this.$p.t('person', 'ort')
});
cm.getColumnByField('studienplan').component.updateDefinition({
title: this.$p.t('lehre', 'studienplan')
});
cm.getColumnByField('studienplan_id').component.updateDefinition({
title: this.$p.t('ui', 'studienplan_id')
});
cm.getColumnByField('studiengangkurzbzlang_ber').component.updateDefinition({
title: this.$p.t('projektarbeitsbeurteilung', 'studiengang')
});
cm.getColumnByField('studiengang_kz_ber').component.updateDefinition({
title: this.$p.t('admission', 'stg_kurz')
});
const el = col.getElement();
if (!el || !el.querySelector) return;
const titleEl = el.querySelector('.tabulator-col-title');
if (titleEl) {
titleEl.textContent = text;
}
};
setHeader('rt_id', this.$p.t('ui', 'reihungstest_id'));
setHeader('rt_person_id', this.$p.t('ui', 'reihungstest_person_id'));
setHeader('person_id', this.$p.t('person', 'person_id'));
setHeader('datum', this.$p.t('global', 'datum'));
setHeader('stufe', this.$p.t('admission', 'stufe'));
setHeader('studiensemester', this.$p.t('lehre', 'studiensemester'));
setHeader('anmerkung', this.$p.t('global', 'anmerkung'));
setHeader('anmeldedatum', this.$p.t('admission', 'anmeldedatum'));
setHeader('punkte', this.$p.t('exam', 'punkte'));
setHeader('teilgenommen', this.$p.t('admission', 'teilgenommen'));
setHeader('ort', this.$p.t('person', 'ort'));
setHeader('studienplan', this.$p.t('lehre', 'studienplan'));
setHeader('studienplan_id', this.$p.t('ui', 'studienplan_id'));
setHeader('studiengangkurzbzlang_ber', this.$p.t('projektarbeitsbeurteilung', 'studiengang'));
setHeader('studiengang_kz_ber', this.$p.t('admission', 'stg_kurz'));
}
}
];
@@ -18,12 +18,9 @@ export default {
data(){
return {
listDocuments: [],
layout: 'fitDataStretchFrozen',
layoutColumnsOnNewData: false,
height: 300,
selectable: true,
selectableRangeMode: 'click',
persistenceID: 'core-details-documents-accepted-2025072101',
}
},
computed: {
@@ -38,7 +35,12 @@ export default {
ajaxResponse: (url, params, response) => {
return response.data;
},
layout: 'fitDataStretchFrozen',
index: 'akte_id',
selectableRangeMode: 'click',
persistenceID: 'stv-details-accepted-2026020401',
columns: [
{title: "akte_id", field: "akte_id", visible: false},
{title: "Dokument", field: "bezeichnung"},
{title: "Akzeptiertdatum", field: "docdatum",
formatter: function (cell) {
@@ -78,7 +80,6 @@ export default {
crossElement: '<i class="fa fa-xmark text-secondary"></i>'
}},
{title: "Infotext", field: "infotext"},
{title: "akte_id", field: "akte_id"},
{title: "dms_id", field: "dms_id", visible: false},
{title: "titel", field: "titel_intern", visible: false},
{title: "vorhanden", field: "vorhanden",
@@ -167,44 +168,30 @@ export default {
handler: async () => {
await this.$p.loadCategory(['global', 'dokumente', 'ui', 'mobility', 'ampeln']);
let cm = this.$refs.table.tabulator.columnManager;
const setHeader = (field, text) => {
const col = this.$refs.table.tabulator.getColumn(field);
if (!col) return;
cm.getColumnByField('bezeichnung').component.updateDefinition({
title: this.$p.t('global', 'dokument')
});
cm.getColumnByField('docdatum').component.updateDefinition({
title: this.$p.t('dokumente', 'datumAkzeptiert')
});
cm.getColumnByField('dokument_kurzbz').component.updateDefinition({
title: this.$p.t('mobility', 'kurzbz')
});
cm.getColumnByField('insertvonma').component.updateDefinition({
title: this.$p.t('dokumente', 'akzeptiertVon')
});
cm.getColumnByField('hochgeladenamum').component.updateDefinition({
title: this.$p.t('global', 'uploaddatum')
});
cm.getColumnByField('nachgereicht').component.updateDefinition({
title: this.$p.t('dokumente', 'nachgereicht')
});
cm.getColumnByField('vorhanden').component.updateDefinition({
title: this.$p.t('dokumente', 'vorhanden')
});
cm.getColumnByField('dms_id').component.updateDefinition({
title: this.$p.t('global', 'dms_id')
});
cm.getColumnByField('titel_intern').component.updateDefinition({
title: this.$p.t('global', 'titel')
});
cm.getColumnByField('anmerkung_intern').component.updateDefinition({
title: this.$p.t('global', 'anmerkung')
});
cm.getColumnByField('akte_id').component.updateDefinition({
title: this.$p.t('global', 'akte_id')
});
cm.getColumnByField('nachgereicht_am').component.updateDefinition({
title: this.$p.t('dokumente', 'nachreichungAm')
});
const el = col.getElement();
if (!el || !el.querySelector) return;
const titleEl = el.querySelector('.tabulator-col-title');
if (titleEl) {
titleEl.textContent = text;
}
};
setHeader('bezeichnung', this.$p.t('global', 'dokument'));
setHeader('docdatum', this.$p.t('dokumente', 'datumAkzeptiert'));
setHeader('dokument_kurzbz', this.$p.t('mobility', 'kurzbz'));
setHeader('insertvonma', this.$p.t('dokumente', 'akzeptiertVon'));
setHeader('hochgeladenamum', this.$p.t('global', 'uploaddatum'));
setHeader('nachgereicht', this.$p.t('dokumente', 'nachgereicht'));
setHeader('vorhanden', this.$p.t('dokumente', 'vorhanden'));
setHeader('dms_id', this.$p.t('global', 'dms_id'));
setHeader('titel_intern', this.$p.t('global', 'titel'));
setHeader('anmerkung_intern', this.$p.t('global', 'anmerkung'));
setHeader('akte_id', this.$p.t('global', 'akte_id'));
setHeader('nachgereicht_am', this.$p.t('dokumente', 'nachreichungAm'));
}
},
{
@@ -322,7 +309,7 @@ export default {
}
},
template: `
<div class="stv-details-documents h-100 pb-3">
<div class="stv-details-aceepted h-100 pb-3">
<h5>{{$p.t('dokumente', 'accepted')}}</h5>
<modal-edit
@@ -17,12 +17,10 @@ export default {
},
data(){
return {
layout: 'fitDataStretchFrozen',
layoutColumnsOnNewData: false,
height: 300,
selectable: true,
selectableRangeMode: 'click',
persistenceID: 'core-details-documents-unaccepted',
listDocuments: [],
prestudentDocumentData: [],
}
@@ -37,6 +35,8 @@ export default {
studiengang_kz: this.studiengang_kz})
),
ajaxResponse: (url, params, response) => response.data,
persistenceID: 'stv-details-unaccepted-2026020401',
layout: 'fitDataStretchFrozen',
columns: [
{title: "Dokument", field: "bezeichnung"},
{title: "Kurzbz", field: "dokument_kurzbz", visible: false},
@@ -184,38 +184,29 @@ export default {
handler: async () => {
await this.$p.loadCategory(['global', 'dokumente', 'ui', 'mobility', 'ampeln']);
let cm = this.$refs.table.tabulator.columnManager;
const setHeader = (field, text) => {
const col = this.$refs.table.tabulator.getColumn(field);
if (!col) return;
cm.getColumnByField('bezeichnung').component.updateDefinition({
title: this.$p.t('global', 'dokument')
});
cm.getColumnByField('dokument_kurzbz').component.updateDefinition({
title: this.$p.t('mobility', 'kurzbz')
});
cm.getColumnByField('hochgeladenamum').component.updateDefinition({
title: this.$p.t('global', 'uploaddatum')
});
cm.getColumnByField('nachgereicht').component.updateDefinition({
title: this.$p.t('dokumente', 'nachgereicht')
});
cm.getColumnByField('vorhanden').component.updateDefinition({
title: this.$p.t('dokumente', 'vorhanden')
});
cm.getColumnByField('titel_intern').component.updateDefinition({
title: this.$p.t('global', 'titel')
});
cm.getColumnByField('anmerkung_intern').component.updateDefinition({
title: this.$p.t('global', 'anmerkung')
});
cm.getColumnByField('akte_id').component.updateDefinition({
title: this.$p.t('global', 'akte_id')
});
cm.getColumnByField('pflicht').component.updateDefinition({
title: this.$p.t('ampeln', 'mandatory')
});
cm.getColumnByField('nachgereicht_am').component.updateDefinition({
title: this.$p.t('global', 'dokument')
});
const el = col.getElement();
if (!el || !el.querySelector) return;
const titleEl = el.querySelector('.tabulator-col-title');
if (titleEl) {
titleEl.textContent = text;
}
};
setHeader('bezeichnung', this.$p.t('global', 'dokument'));
setHeader('dokument_kurzbz', this.$p.t('mobility', 'kurzbz'));
setHeader('hochgeladenamum', this.$p.t('global', 'uploaddatum'));
setHeader('nachgereicht', this.$p.t('dokumente', 'nachgereicht'));
setHeader('vorhanden', this.$p.t('dokumente', 'vorhanden'));
setHeader('titel_intern', this.$p.t('global', 'titel'));
setHeader('anmerkung_intern', this.$p.t('global', 'anmerkung'));
setHeader('akte_id', this.$p.t('global', 'akte_id'));
setHeader('pflicht', this.$p.t('ampeln', 'mandatory'));
setHeader('nachgereicht_am', this.$p.t('global', 'dokument'));
}
},
{
@@ -24,12 +24,30 @@ export default {
},
data(){
return {
tabulatorOptions: {
formData: {
mobilitaetstyp_kurzbz: "GS",
studiensemester_kurzbz: this.currentSemester,
status_kurzbz: 'Student',
mobilitaet_id: null
},
statusNew: true,
listTypenMobility: [],
listStudiensemester: [],
programsMobility: [],
listStudienprogramme: [],
listPartner: [],
statiPrestudent: [],
}
},
computed: {
tabulatorOptions() {
const options = {
ajaxURL: 'dummy',
ajaxRequestFunc: () => this.$api.call(
ApiStvJointstudies.getStudies(this.student.prestudent_id)
),
ajaxResponse: (url, params, response) => response.data,
persistenceID: 'stv-details-jointstudies',
columns: [
{title: "mobilitaet_id", field: "mobilitaet_id", visible: false},
{title: "StSem", field: "studiensemester_kurzbz"},
@@ -120,70 +138,43 @@ export default {
frozen: true
},
],
},
tabulatorEvents: [
};
return options;
},
tabulatorEvents() {
const events = [
{
event: 'tableBuilt',
handler: async() => {
await this.$p.loadCategory(['global', 'jointstudies', 'ui', 'lehre', 'mobility']);
const setHeader = (field, text) => {
const col = this.$refs.table.tabulator.getColumn(field);
if (!col) return;
let cm = this.$refs.table.tabulator.columnManager;
const el = col.getElement();
if (!el || !el.querySelector) return;
cm.getColumnByField('mobilitaet_id').component.updateDefinition({
title: this.$p.t('global', 'mobilitaet_id')
});
/* cm.getColumnByField('studiensemester_kurzbz').component.updateDefinition({
title: this.$p.t('lehre', 'studiensemester')
});*/
cm.getColumnByField('gsprogrammtyp_kurzbz').component.updateDefinition({
title: this.$p.t('global', 'typ')
});
/* cm.getColumnByField('ausbildungssemester').component.updateDefinition({
title: this.$p.t('lehre', 'semester')
});*/
cm.getColumnByField('prestudent_id').component.updateDefinition({
title: this.$p.t('global', 'prestudentID')
});
cm.getColumnByField('kurzbz').component.updateDefinition({
title: this.$p.t('mobility', 'mobilitaetsprogramm')
});
cm.getColumnByField('studienprogramm').component.updateDefinition({
title: this.$p.t('jointstudies', 'studienprogramm')
});
cm.getColumnByField('insertamum').component.updateDefinition({
title: this.$p.t('global', 'insertamum')
});
cm.getColumnByField('insertvon').component.updateDefinition({
title: this.$p.t('global', 'insertvon')
});
cm.getColumnByField('updateamum').component.updateDefinition({
title: this.$p.t('global', 'updateamum')
});
cm.getColumnByField('updatevon').component.updateDefinition({
title: this.$p.t('global', 'updatevon')
});
const titleEl = el.querySelector('.tabulator-col-title');
if (titleEl) {
titleEl.textContent = text;
}
};
/* cm.getColumnByField('actions').component.updateDefinition({
title: this.$p.t('global', 'aktionen')
});*/
setHeader('mobilitaet_id', this.$p.t('global', 'mobilitaet_id'));
setHeader('gsprogrammtyp_kurzbz', this.$p.t('global', 'typ'));
setHeader('prestudent_id', this.$p.t('global', 'prestudentID'));
setHeader('kurzbz', this.$p.t('mobility', 'mobilitaetsprogramm'));
setHeader('studienprogramm', this.$p.t('jointstudies', 'studienprogramm'));
setHeader('insertamum', this.$p.t('global', 'insertamum'));
setHeader('insertvon', this.$p.t('global', 'insertvon'));
setHeader('updateamum', this.$p.t('global', 'updateamum'));
setHeader('updatevon', this.$p.t('global', 'updatevon'));
}
}
],
formData: {
mobilitaetstyp_kurzbz: "GS",
studiensemester_kurzbz: this.currentSemester,
status_kurzbz: 'Student',
mobilitaet_id: null
},
statusNew: true,
listTypenMobility: [],
listStudiensemester: [],
programsMobility: [],
listStudienprogramme: [],
listPartner: [],
statiPrestudent: [],
}
];
return events;
},
},
methods: {
actionDeleteJointStudy(mobilitaet_id) {
@@ -45,8 +45,6 @@ export default{
suggestions: null,
places: null
},
index: 'adresse_id',
persistenceID: 'stv-details-kontakt-address'
}
},
computed:{
@@ -56,6 +54,8 @@ export default{
ajaxRequestFunc: () => this.$api.call(ApiStvAddress.get(this.uid)),
ajaxResponse: (url, params, response) => response.data,
//autoColumns: true,
index: 'adresse_id',
persistenceID: 'stv-details-kontakt-address',
columns:[
{title:"Typ", field:"bezeichnung"},
{title:"Strasse", field:"strasse"},
@@ -158,61 +158,39 @@ export default{
const events = [
{
event: 'tableBuilt',
handler: async () => {
handler: async() => {
await this.$p.loadCategory(['notiz', 'global', 'person', 'ui']);
let cm = this.$refs.table.tabulator.columnManager;
cm.getColumnByField('bezeichnung').component.updateDefinition({
title: this.$p.t('global', 'typ')
});
cm.getColumnByField('strasse').component.updateDefinition({
title: this.$p.t('person', 'strasse')
});
cm.getColumnByField('plz').component.updateDefinition({
title: this.$p.t('person', 'plz')
});
cm.getColumnByField('ort').component.updateDefinition({
title: this.$p.t('person', 'ort')
});
cm.getColumnByField('gemeinde').component.updateDefinition({
title: this.$p.t('person', 'gemeinde')
});
cm.getColumnByField('nation').component.updateDefinition({
title: this.$p.t('person', 'nation')
});
cm.getColumnByField('heimatadresse').component.updateDefinition({
title: this.$p.t('person', 'heimatadresse')
});
cm.getColumnByField('zustelladresse').component.updateDefinition({
title: this.$p.t('person', 'zustelladresse')
});
cm.getColumnByField('co_name').component.updateDefinition({
title: this.$p.t('person', 'co_name')
});
cm.getColumnByField('name').component.updateDefinition({
title: this.$p.t('person', 'firma_zusatz')
});
cm.getColumnByField('firmenname').component.updateDefinition({
title: this.$p.t('person', 'firma')
});
cm.getColumnByField('lastupdate').component.updateDefinition({
title: this.$p.t('notiz', 'letzte_aenderung')
});
cm.getColumnByField('rechnungsadresse').component.updateDefinition({
title: this.$p.t('person', 'rechnungsadresse')
});
cm.getColumnByField('anmerkung').component.updateDefinition({
title: this.$p.t('global', 'anmerkung')
});
cm.getColumnByField('firma_id').component.updateDefinition({
title: this.$p.t('ui', 'firma_id')
});
cm.getColumnByField('adresse_id').component.updateDefinition({
title: this.$p.t('ui', 'adresse_id')
});
cm.getColumnByField('person_id').component.updateDefinition({
title: this.$p.t('person', 'person_id')
});
const setHeader = (field, text) => {
const col = this.$refs.table.tabulator.getColumn(field);
if (!col) return;
const el = col.getElement();
if (!el || !el.querySelector) return;
const titleEl = el.querySelector('.tabulator-col-title');
if (titleEl) {
titleEl.textContent = text;
}
};
setHeader('bezeichnung', this.$p.t('global', 'typ'));
setHeader('strasse', this.$p.t('person', 'strasse'));
setHeader('plz', this.$p.t('person', 'plz'));
setHeader('ort', this.$p.t('person', 'ort'));
setHeader('gemeinde', this.$p.t('person', 'gemeinde'));
setHeader('nation', this.$p.t('person', 'nation'));
setHeader('heimatadresse', this.$p.t('person', 'heimatadresse'));
setHeader('zustelladresse', this.$p.t('person', 'zustelladresse'));
setHeader('co_name', this.$p.t('person', 'co_name'));
setHeader('name', this.$p.t('person', 'firma_zusatz'));
setHeader('firmenname', this.$p.t('person', 'firma'));
setHeader('lastupdate', this.$p.t('notiz', 'letzte_aenderung'));
setHeader('rechnungsadresse', this.$p.t('person', 'rechnungsadresse'));
setHeader('anmerkung', this.$p.t('global', 'anmerkung'));
setHeader('firma_id', this.$p.t('ui', 'firma_id'));
setHeader('adresse_id', this.$p.t('ui', 'adresse_id'));
setHeader('person_id', this.$p.t('person', 'person_id'));
}
}
];
@@ -24,8 +24,6 @@ export default{
typ: 'p'
},
statusNew: true,
index: 'bankverbindung_id',
persistenceID: 'stv-details-kontakt-bankaccount'
}
},
computed: {
@@ -34,6 +32,8 @@ export default{
ajaxURL: 'dummy',
ajaxRequestFunc: () => this.$api.call(ApiStvBankaccount.get(this.uid)),
ajaxResponse: (url, params, response) => response.data,
index: 'bankverbindung_id',
persistenceID: 'stv-details-kontakt-bankaccount',
columns:[
{title:"Name", field:"name"},
{title:"Anschrift", field:"anschrift", visible:false},
@@ -109,33 +109,25 @@ export default{
handler: async() => {
await this.$p.loadCategory(['global','person']);
let cm = this.$refs.table.tabulator.columnManager;
const setHeader = (field, text) => {
const col = this.$refs.table.tabulator.getColumn(field);
if (!col) return;
cm.getColumnByField('name').component.updateDefinition({
title: this.$p.t('global', 'name')
});
const el = col.getElement();
if (!el || !el.querySelector) return;
cm.getColumnByField('typ').component.updateDefinition({
title: this.$p.t('global', 'typ')
});
cm.getColumnByField('anschrift').component.updateDefinition({
title: this.$p.t('person', 'anschrift')
});
cm.getColumnByField('kontonr').component.updateDefinition({
title: this.$p.t('person', 'kontonr')
});
cm.getColumnByField('blz').component.updateDefinition({
title: this.$p.t('person', 'blz')
});
cm.getColumnByField('verrechnung').component.updateDefinition({
title: this.$p.t('person', 'verrechnung')
});
cm.getColumnByField('person_id').component.updateDefinition({
title: this.$p.t('person', 'person_id')
});
cm.getColumnByField('bankverbindung_id').component.updateDefinition({
title: this.$p.t('ui', 'bankverbindung_id')
});
const titleEl = el.querySelector('.tabulator-col-title');
if (titleEl) {
titleEl.textContent = text;
}
};
setHeader('name', this.$p.t('global','name'));
setHeader('typ', this.$p.t('global','typ'));
setHeader('anschrift', this.$p.t('person','anschrift'));
setHeader('kontonr', this.$p.t('person','kontonr'));
setHeader('blz', this.$p.t('person','blz'));
setHeader('verrechnung', this.$p.t('person','verrechnung'));
}
}
];
@@ -59,6 +59,7 @@ export default {
ajaxURL: 'dummy',
ajaxRequestFunc: () => this.$api.call(ApiStvContact.get(this.uid)),
ajaxResponse: (url, params, response) => response.data,
persistenceID: 'stv-details-kontakt-contact',
columns:[
{title:"Typ", field:"kontakttypbeschreibung"},
{title:"Kontakt", field:"kontakt"},
@@ -134,7 +135,7 @@ export default {
},
tabulatorEvents() {
const events = [
{
/* {
event: 'tableBuilt',
handler: async() => {
await this.$p.loadCategory(['notiz','global','person']);
@@ -175,6 +176,37 @@ export default {
title: this.$p.t('ui', 'standort_id')
});
}
}, */
{
event: 'tableBuilt',
handler: async() => {
await this.$p.loadCategory(['notiz','global','person']);
const setHeader = (field, text) => {
const col = this.$refs.table.tabulator.getColumn(field);
if (!col) return;
const el = col.getElement();
if (!el || !el.querySelector) return;
const titleEl = el.querySelector('.tabulator-col-title');
if (titleEl) {
titleEl.textContent = text;
}
};
setHeader('kontakttypbeschreibung', this.$p.t('global', 'typ'));
setHeader('kontakt', this.$p.t('global', 'kontakt'));
setHeader('zustellung', this.$p.t('person', 'zustellung'));
setHeader('anmerkung', this.$p.t('global', 'anmerkung'));
setHeader('lastupdate', this.$p.t('notiz', 'letzte_aenderung'));
setHeader('name', this.$p.t('person', 'firma'));
setHeader('bezeichnung', this.$p.t('person', 'standort'));
setHeader('firma_id', this.$p.t('ui', 'firma_id'));
setHeader('kontakt_id', this.$p.t('ui', 'kontakt_id'));
setHeader('person_id', this.$p.t('person', 'person_id'));
setHeader('standort_id', this.$p.t('ui', 'standort_id'));
}
}
];
return events;
@@ -59,6 +59,7 @@ export default {
ajaxResponse: (url, params, response) => {
return response.data;
},
persistenceID: 'stv-details-lvtermine',
columns: [
{title: "lv_id", field: "lehrveranstaltung_id", visible: false},
{title: "lehreinheit_id", field: "lehreinheit_id", visible: false},
@@ -100,35 +101,28 @@ export default {
handler: async() => {
await this.$p.loadCategory(['global', 'ui', 'lehre']);
let cm = this.$refs.table.tabulator.columnManager;
const setHeader = (field, text) => {
const col = this.$refs.table.tabulator.getColumn(field);
if (!col) return;
cm.getColumnByField('lehrveranstaltung_id').component.updateDefinition({
title: this.$p.t('lehre', 'lehrveranstaltung_id')
});
cm.getColumnByField('lehreinheit_id').component.updateDefinition({
title: this.$p.t('global', 'lehreinheit_id')
});
cm.getColumnByField('datum').component.updateDefinition({
title: this.$p.t('global', 'datum')
});
cm.getColumnByField('beginn').component.updateDefinition({
title: this.$p.t('ui', 'dateFrom')
});
cm.getColumnByField('ende').component.updateDefinition({
title: this.$p.t('ui', 'dateTo')
});
cm.getColumnByField('gruppen_kuerzel').component.updateDefinition({
title: this.$p.t('global', 'gruppen')
});
cm.getColumnByField('ort_kurzbz').component.updateDefinition({
title: this.$p.t('global', 'ortLocation')
});
cm.getColumnByField('lektorname').component.updateDefinition({
title: this.$p.t('lehre', 'lektor')
});
cm.getColumnByField('lehrfach_bez').component.updateDefinition({
title: this.$p.t('global', 'lehrfach')
});
const el = col.getElement();
if (!el || !el.querySelector) return;
const titleEl = el.querySelector('.tabulator-col-title');
if (titleEl) {
titleEl.textContent = text;
}
};
setHeader('lehrveranstaltung_id', this.$p.t('lehre', 'lehrveranstaltung_id'));
setHeader('lehreinheit_id', this.$p.t('global', 'lehreinheit_id'));
setHeader('datum', this.$p.t('global', 'datum'));
setHeader('beginn', this.$p.t('ui', 'dateFrom'));
setHeader('ende', this.$p.t('ui', 'dateTo'));
setHeader('gruppen_kuerzel', this.$p.t('global', 'gruppen'));
setHeader('ort_kurzbz', this.$p.t('global', 'ortLocation'));
setHeader('lektorname', this.$p.t('lehre', 'lektor'));
setHeader('lehrfach_bez', this.$p.t('global', 'lehrfach'));
}
}
];
@@ -61,8 +61,6 @@ export default {
layoutColumnsOnNewData: false,
height: 'auto',
minHeight: 200,
index: 'bisio_id',
persistenceID: 'stv-details-table_mobiliy-2025112401'
}
},
watch: {
@@ -80,6 +78,8 @@ export default {
ApiStvMobility.getMobilitaeten(this.student.uid)
),
ajaxResponse: (url, params, response) => response.data,
index: 'bisio_id',
persistenceID: 'stv-details-table_mobility-2025112401',
columns: [
{title: "Kurzbz", field: "kurzbz"},
{title: "Nation", field: "nation_code"},
@@ -161,26 +161,29 @@ export default {
{
event: 'tableBuilt',
handler: async() => {
if (!this.$refs.table) return;
await this.$p.loadCategory(['global', 'person', 'stv', 'mobility', 'ui']);
const setHeader = (field, text) => {
const col = this.$refs.table.tabulator.getColumn(field);
if (!col) return;
let cm = this.$refs.table.tabulator.columnManager;
const el = col.getElement();
if (!el || !el.querySelector) return;
cm.getColumnByField('kurzbz').component.updateDefinition({
title: this.$p.t('mobility', 'kurzbz_program')
});
cm.getColumnByField('nation_code').component.updateDefinition({
title: this.$p.t('mobility', 'gastnation')
});
cm.getColumnByField('von').component.updateDefinition({
title: this.$p.t('ui', 'von')
});
cm.getColumnByField('bis').component.updateDefinition({
title: this.$p.t('global', 'bis')
});
cm.getColumnByField('bisio_id').component.updateDefinition({
title: this.$p.t('mobility', 'bisio_id')
});
const titleEl = el.querySelector('.tabulator-col-title');
if (titleEl) {
titleEl.textContent = text;
}
};
setHeader('kurzbz', this.$p.t('mobility', 'kurzbz_program'));
setHeader('nation_code', this.$p.t('mobility', 'gastnation'));
setHeader('von', this.$p.t('ui', 'von'));
setHeader('bis', this.$p.t('global', 'bis'));
setHeader('bisio_id', this.$p.t('mobility', 'bisio_id'));
}
}
];
@@ -15,8 +15,7 @@ export default{
layout: 'fitDataFill',
layoutColumnsOnNewData: false,
height: 'auto',
selectable: false,
persistenceID: 'stv-details-prestudent-history',
selectable: false
}
},
computed: {
@@ -26,6 +25,7 @@ export default{
ajaxRequestFunc: () => this.$api.call(ApiStvPrestudent.getHistoryPrestudents(this.personId)),
ajaxResponse: (url, params, response) => response.data,
//autoColumns: true,
persistenceID: 'stv-details-prestudent-history',
columns:[
{title:"StSem", field:"studiensemester_kurzbz"},
{title:"Prio", field:"priorisierung"},
@@ -29,10 +29,41 @@ export default{
},
data(){
return {
tabulatorOptions: {
pruefungData: {},
listTypesExam: [],
listLvsAndLes: [],
listLvsAndMas: [],
listLvs: [],
listLes: [],
listMas: [],
listMarks: [],
zeugnisData: [],
filter: false,
statusNew: true,
isStartDropDown: false,
isFilterSet: false,
showHint: false,
}
},
computed:{
tabulatorOptions() {
const options = {
ajaxURL: 'dummy',
ajaxRequestFunc: () => this.$api.call(ApiStvExam.getPruefungen(this.uid)),
ajaxResponse: (url, params, response) => response.data,
layout: 'fitDataStretchFrozen',
layoutColumnsOnNewData: false,
height: 'auto',
index: 'pruefung_id',
persistenceID: 'stv-details-pruefung-list-2026012701',
persistence: {
sort: true,
columns: ["width", "visible", "frozen"],
filter: false,
headerFilter: false,
group: false,
page: false
},
columns: [
{title: "Datum", field: "format_datum"},
{title: "Lehrveranstaltung", field: "lehrveranstaltung_bezeichnung"},
@@ -87,81 +118,44 @@ export default{
},
frozen: true
}],
layout: 'fitDataStretchFrozen',
layoutColumnsOnNewData: false,
height: 'auto',
index: 'pruefung_id',
persistenceID: 'stv-details-pruefung-list-2026012701',
persistence: {
sort: false,
columns: ["width", "visible", "frozen"],
filter: false,
headerFilter: false,
group: false,
page: false
}
},
tabulatorEvents: [
};
return options;
},
tabulatorEvents() {
const events = [
{
event: 'tableBuilt',
handler: async () => {
await this.$p.loadCategory(['fristenmanagement', 'global', 'lehre', 'exam', 'ui']);
let cm = this.$refs.table.tabulator.columnManager;
cm.getColumnByField('format_datum').component.updateDefinition({
title: this.$p.t('global', 'datum')
});
cm.getColumnByField('lehrveranstaltung_bezeichnung').component.updateDefinition({
title: this.$p.t('lehre', 'lehrveranstaltung')
});
cm.getColumnByField('note_bezeichnung').component.updateDefinition({
title: this.$p.t('lehre', 'note')
});
cm.getColumnByField('anmerkung').component.updateDefinition({
title: this.$p.t('global', 'anmerkung')
});
cm.getColumnByField('pruefungstyp_kurzbz').component.updateDefinition({
title: this.$p.t('global', 'typ')
});
cm.getColumnByField('punkte').component.updateDefinition({
title: this.$p.t('exam', 'punkte')
});
cm.getColumnByField('pruefung_id').component.updateDefinition({
title: this.$p.t('ui', 'pruefung_id')
});
cm.getColumnByField('lehreinheit_id').component.updateDefinition({
title: this.$p.t('global', 'lehreinheit_id')
});
cm.getColumnByField('mitarbeiter_uid').component.updateDefinition({
title: this.$p.t('ui', 'mitarbeiter_uid')
});
cm.getColumnByField('student_uid').component.updateDefinition({
title: this.$p.t('ui', 'student_uid')
});
//Uncaught TypeError: e.element.after is not a function
/* cm.getColumnByField('actions').component.updateDefinition({
title: this.$p.t('global', 'actions')
});*/
const setHeader = (field, text) => {
const col = this.$refs.table.tabulator.getColumn(field);
if (!col) return;
const el = col.getElement();
if (!el || !el.querySelector) return;
const titleEl = el.querySelector('.tabulator-col-title');
if (titleEl) {
titleEl.textContent = text;
}
};
setHeader('format_datum', this.$p.t('global', 'datum'));
setHeader('lehrveranstaltung_bezeichnung', this.$p.t('lehre', 'lehrveranstaltung'));
setHeader('note_bezeichnung', this.$p.t('lehre', 'note'));
setHeader('anmerkung', this.$p.t('global', 'anmerkung'));
setHeader('pruefungstyp_kurzbz', this.$p.t('global', 'typ'));
setHeader('punkte', this.$p.t('exam', 'punkte'));
setHeader('pruefung_id', this.$p.t('ui', 'pruefung_id'));
setHeader('lehreinheit_id', this.$p.t('global', 'lehreinheit_id'));
setHeader('mitarbeiter_uid', this.$p.t('ui', 'mitarbeiter_uid'));
setHeader('student_uid', this.$p.t('ui', 'student_uid'));
}
}
],
pruefungData: {},
listTypesExam: [],
listLvsAndLes: [],
listLvsAndMas: [],
listLvs: [],
listLes: [],
listMas: [],
listMarks: [],
zeugnisData: [],
filter: false,
statusNew: true,
isStartDropDown: false,
isFilterSet: false,
showHint: false,
}
},
computed:{
},
];
return events;
},
lv_teile(){
return this.listLvsAndLes.filter(lv => lv.lehrveranstaltung_id == this.pruefungData.lehrveranstaltung_id);
},