diff --git a/public/js/components/Betriebsmittel/Betriebsmittel.js b/public/js/components/Betriebsmittel/Betriebsmittel.js index 73c413286..686caa1ac 100644 --- a/public/js/components/Betriebsmittel/Betriebsmittel.js +++ b/public/js/components/Betriebsmittel/Betriebsmittel.js @@ -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')); } } ]; diff --git a/public/js/components/Funktionen/Funktionen.js b/public/js/components/Funktionen/Funktionen.js index 568a74c91..170747e5f 100644 --- a/public/js/components/Funktionen/Funktionen.js +++ b/public/js/components/Funktionen/Funktionen.js @@ -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')); } } ]; diff --git a/public/js/components/Messages/Details/TableMessages.js b/public/js/components/Messages/Details/TableMessages.js index 05484090a..afcdf0d5c 100644 --- a/public/js/components/Messages/Details/TableMessages.js +++ b/public/js/components/Messages/Details/TableMessages.js @@ -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(); } }, diff --git a/public/js/components/Notiz/Notiz.js b/public/js/components/Notiz/Notiz.js index 0119b0a77..33865f981 100644 --- a/public/js/components/Notiz/Notiz.js +++ b/public/js/components/Notiz/Notiz.js @@ -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); diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Abschlusspruefung/Abschlusspruefung.js b/public/js/components/Stv/Studentenverwaltung/Details/Abschlusspruefung/Abschlusspruefung.js index 394c8784f..7724c5fed 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Abschlusspruefung/Abschlusspruefung.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Abschlusspruefung/Abschlusspruefung.js @@ -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')); } } ]; diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Anrechnungen/Anrechnungen.js b/public/js/components/Stv/Studentenverwaltung/Details/Anrechnungen/Anrechnungen.js index 32224062d..88392337b 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Anrechnungen/Anrechnungen.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Anrechnungen/Anrechnungen.js @@ -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')); } } ]; diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Aufnahmetermine/Aufnahmetermine.js b/public/js/components/Stv/Studentenverwaltung/Details/Aufnahmetermine/Aufnahmetermine.js index 81b55983f..48a7e3d4f 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Aufnahmetermine/Aufnahmetermine.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Aufnahmetermine/Aufnahmetermine.js @@ -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')); } } ]; diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Dokumente/List/Accepted.js b/public/js/components/Stv/Studentenverwaltung/Details/Dokumente/List/Accepted.js index 46029a5d3..f70e44392 100644 --- a/public/js/components/Stv/Studentenverwaltung/Details/Dokumente/List/Accepted.js +++ b/public/js/components/Stv/Studentenverwaltung/Details/Dokumente/List/Accepted.js @@ -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: '' }}, {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: ` -