diff --git a/public/js/components/Betriebsmittel/Betriebsmittel.js b/public/js/components/Betriebsmittel/Betriebsmittel.js
index 148d7a83c..73c413286 100644
--- a/public/js/components/Betriebsmittel/Betriebsmittel.js
+++ b/public/js/components/Betriebsmittel/Betriebsmittel.js
@@ -43,7 +43,22 @@ export default {
},
data() {
return {
- tabulatorOptions: {
+ listBetriebsmitteltyp: [],
+ formData: {
+ ausgegebenam : new Date(),
+ betriebsmitteltyp: 'Zutrittskarte'
+ },
+ statusNew: true,
+ filteredInventar: [],
+ layout: 'fitColumns',
+ layoutColumnsOnNewData: false,
+ height: '550',
+ persistenceID: 'core-betriebsmittel'
+ }
+ },
+ computed: {
+ tabulatorOptions() {
+ const options = {
ajaxURL: 'dummy',
ajaxRequestFunc: () => this.$api.call(
this.endpoint.getAllBetriebsmittel(this.typeId, this.id, (this.filterByProvidedTypes ? this.betriebsmittelTypes : null))
@@ -115,7 +130,7 @@ export default {
'/content/pdfExport.php?xml=betriebsmittelperson.rdf.php&xsl=Uebernahme&id=' + cellData.betriebsmittelperson_id + '&output=pdf';
window.open(linkToPdf, '_blank');
- });
+ });
container.append(button);
button = document.createElement('button');
@@ -143,13 +158,13 @@ export default {
return container;
},
frozen: true
- }],
- layout: 'fitColumns',
- layoutColumnsOnNewData: false,
- height: '550',
- persistenceID: 'core-betriebsmittel'
- },
- tabulatorEvents: [
+ }
+ ],
+ };
+ return options;
+ },
+ tabulatorEvents() {
+ const events = [
{
event: 'tableBuilt',
handler: async() => {
@@ -193,14 +208,8 @@ export default {
});
}
}
- ],
- listBetriebsmitteltyp: [],
- formData: {
- ausgegebenam : new Date(),
- betriebsmitteltyp: 'Zutrittskarte'
- },
- statusNew: true,
- filteredInventar: []
+ ];
+ return events;
}
},
watch: {
@@ -466,5 +475,4 @@ export default {
`
-}
-
+}
\ No newline at end of file
diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Abschlusspruefung/Abschlusspruefung.js b/public/js/components/Stv/Studentenverwaltung/Details/Abschlusspruefung/Abschlusspruefung.js
index d46e1f299..394c8784f 100644
--- a/public/js/components/Stv/Studentenverwaltung/Details/Abschlusspruefung/Abschlusspruefung.js
+++ b/public/js/components/Stv/Studentenverwaltung/Details/Abschlusspruefung/Abschlusspruefung.js
@@ -34,40 +34,58 @@ export default {
default: false
}
},
- computed: {
- studentUids() {
- if (this.student.uid)
- {
- return [this.student.uid];
- }
- return this.student.map(e => e.uid);
- },
- studentKzs(){
- if (this.student.uid)
- {
- return [this.student.studiengang_kz];
- }
- return this.student.map(e => e.studiengang_kz);
- },
- stg_kz(){
- return this.studentKzs[0];
- },
- showAllFormats() {
- if( this.isBerechtigtDocAndOdt === false
- || !Array.isArray(this.isBerechtigtDocAndOdt) )
- {
- return false;
- }
- let retval = this.isBerechtigtDocAndOdt.includes(this.stgInfo.oe_kurzbz);
- return retval;
- }
- },
props: {
student: Object
},
data() {
return {
- tabulatorOptions: {
+ tabulatorData: [],
+ lastSelected: null,
+ formData: {
+ typStg: null,
+ pruefungstyp_kurzbz: null,
+ akadgrad_id: null,
+ vorsitz: null,
+ pruefungsantritt_kurzbz: null,
+ abschlussbeurteilung_kurzbz: null,
+ datum: null,
+ sponsion: null,
+ pruefer1: null,
+ pruefer2: null,
+ pruefer3: null,
+ anmerkung: null,
+ protokoll: null,
+ note: null,
+ link: null
+ },
+ statusNew: true,
+ arrTypen: [],
+ arrAntritte: [],
+ arrBeurteilungen: [],
+ arrAkadGrad: [],
+ arrNoten: [],
+ selectedVorsitz: null,
+ filteredMitarbeiter: [],
+ filteredPersons: [],
+ selectedPruefer1: null,
+ selectedPruefer2: null,
+ selectedPruefer3: null,
+ stgInfo: { typ: '', oe_kurzbz: '' },
+ abortController: {
+ mitarbeiter: null,
+ persons: null
+ },
+ layout: 'fitDataStretchFrozen',
+ layoutColumnsOnNewData: false,
+ height: 'auto',
+ minHeight: '200',
+ index: 'abschlusspruefung_id',
+ persistenceID: 'stv-details-finalexam-2025112401'
+ }
+ },
+ computed: {
+ tabulatorOptions() {
+ const options = {
ajaxURL: 'dummy',
ajaxRequestFunc: () => this.$api.call(ApiStvAbschlusspruefung.getAbschlusspruefung(this.student.uid)),
ajaxResponse: (url, params, response) => response.data,
@@ -163,14 +181,11 @@ export default {
frozen: true
},
],
- layout: 'fitDataStretchFrozen',
- layoutColumnsOnNewData: false,
- height: 'auto',
- minHeight: '200',
- index: 'abschlusspruefung_id',
- persistenceID: 'stv-details-finalexam-2025112401'
- },
- tabulatorEvents: [
+ };
+ return options;
+ },
+ tabulatorEvents() {
+ const events = [
{
event: 'dataLoaded',
handler: data => this.tabulatorData = data.map(item => {
@@ -225,50 +240,36 @@ export default {
cm.getColumnByField('abschlusspruefung_id').component.updateDefinition({
title: this.$p.t('abschlusspruefung', 'abschlusspruefung_id')
});
- /*
- cm.getColumnByField('actions').component.updateDefinition({
- title: this.$p.t('global', 'aktionen')
- });
- */
}
}
- ],
- tabulatorData: [],
- lastSelected: null,
- formData: {
- typStg: null,
- pruefungstyp_kurzbz: null,
- akadgrad_id: null,
- vorsitz: null,
- pruefungsantritt_kurzbz: null,
- abschlussbeurteilung_kurzbz: null,
- datum: null,
- sponsion: null,
- pruefer1: null,
- pruefer2: null,
- pruefer3: null,
- anmerkung: null,
- protokoll: null,
- note: null,
- link: null
- },
- statusNew: true,
- arrTypen: [],
- arrAntritte: [],
- arrBeurteilungen: [],
- arrAkadGrad: [],
- arrNoten: [],
- selectedVorsitz: null,
- filteredMitarbeiter: [],
- filteredPersons: [],
- selectedPruefer1: null,
- selectedPruefer2: null,
- selectedPruefer3: null,
- stgInfo: { typ: '', oe_kurzbz: '' },
- abortController: {
- mitarbeiter: null,
- persons: null
- },
+ ];
+ return events;
+ },
+ studentUids() {
+ if (this.student.uid)
+ {
+ return [this.student.uid];
+ }
+ return this.student.map(e => e.uid);
+ },
+ studentKzs(){
+ if (this.student.uid)
+ {
+ return [this.student.studiengang_kz];
+ }
+ return this.student.map(e => e.studiengang_kz);
+ },
+ stg_kz(){
+ return this.studentKzs[0];
+ },
+ showAllFormats() {
+ if( this.isBerechtigtDocAndOdt === false
+ || !Array.isArray(this.isBerechtigtDocAndOdt) )
+ {
+ return false;
+ }
+ let retval = this.isBerechtigtDocAndOdt.includes(this.stgInfo.oe_kurzbz);
+ return retval;
}
},
watch: {
@@ -339,7 +340,7 @@ export default {
},
getPersonLabel(titelpre, nachname, vorname, titelpost, uid) {
return nachname + ' ' + vorname + (titelpre ? ' ' + titelpre : '') + (titelpost ? ' ' + titelpost : '') + (uid ? ' (' + uid + ')' : '');
-
+
},
actionDeleteAbschlusspruefung(abschlusspruefung_id) {
this.$fhcAlert
@@ -841,4 +842,3 @@ export default {
`
}
-
diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Anrechnungen/Anrechnungen.js b/public/js/components/Stv/Studentenverwaltung/Details/Anrechnungen/Anrechnungen.js
index a2029b0b9..32224062d 100644
--- a/public/js/components/Stv/Studentenverwaltung/Details/Anrechnungen/Anrechnungen.js
+++ b/public/js/components/Stv/Studentenverwaltung/Details/Anrechnungen/Anrechnungen.js
@@ -31,7 +31,24 @@ export default {
},
data() {
return {
- tabulatorOptions: {
+ formData: {},
+ listBegruendungen: [],
+ listNewLehrveranstaltungen: [],
+ listLektoren: [],
+ listKompatibleLehrveranstaltungen: [],
+ statusNew: true,
+ showNotizen: false,
+ currentAnrechnung_id: null,
+ endpoint: ApiNotizPerson,
+ layout: 'fitDataStretchFrozen',
+ height: '500',
+ index: 'anrechnung_id',
+ persistenceID: 'stv-details-anrechnungen-2025112401'
+ }
+ },
+ computed: {
+ tabulatorOptions() {
+ const options = {
ajaxURL: 'dummy',
ajaxRequestFunc: () => this.$api.call(
ApiStvExemptions.getAnrechnungen(this.student.prestudent_id)
@@ -107,12 +124,11 @@ export default {
frozen: true
},
],
- layout: 'fitDataStretchFrozen',
- height: '500',
- index: 'anrechnung_id',
- persistenceID: 'stv-details-anrechnungen-2025112401'
- },
- tabulatorEvents: [
+ };
+ return options;
+ },
+ tabulatorEvents() {
+ const events = [
{
event: 'tableBuilt',
handler: async () => {
@@ -154,16 +170,8 @@ export default {
}
}
- ],
- formData: {},
- listBegruendungen: [],
- listNewLehrveranstaltungen: [],
- listLektoren: [],
- listKompatibleLehrveranstaltungen: [],
- statusNew: true,
- showNotizen: false,
- currentAnrechnung_id: null,
- endpoint: ApiNotizPerson
+ ];
+ return events;
}
},
watch: {
diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Aufnahmetermine/Aufnahmetermine.js b/public/js/components/Stv/Studentenverwaltung/Details/Aufnahmetermine/Aufnahmetermine.js
index d03569df4..b2ba26a55 100644
--- a/public/js/components/Stv/Studentenverwaltung/Details/Aufnahmetermine/Aufnahmetermine.js
+++ b/public/js/components/Stv/Studentenverwaltung/Details/Aufnahmetermine/Aufnahmetermine.js
@@ -36,158 +36,19 @@ export default {
},
data() {
return {
- tabulatorOptions: {
- ajaxURL: 'dummy',
- ajaxRequestFunc: () => this.$api.call(
- ApiStvAdmissionDates.getAufnahmetermine(this.student.person_id)
- ),
- ajaxResponse: (url, params, response) => response.data,
- columns: [
- {title: "rt_id", field: "rt_id", visible: false},
- {title: "rt_person_id", field: "rt_person_id", visible: false},
- {title: "person_id", field: "person_id", visible: false},
- {title: "datum", field: "datum",
- formatter: function (cell) {
- const dateStr = cell.getValue();
- if (!dateStr) return "";
-
- const date = new Date(dateStr);
- return date.toLocaleString("de-DE", {
- day: "2-digit",
- month: "2-digit",
- year: "numeric",
- });
- }
- },
- {title: "stufe", field: "stufe"},
- {title: "studiensemester", field: "studiensemester"},
- {title: "anmerkung", field: "anmerkung", visible: false},
- {title: "anmeldedatum", field: "anmeldedatum", visible: false,
- formatter: function (cell) {
- const dateStr = cell.getValue();
- if (!dateStr) return "";
-
- const date = new Date(dateStr);
- return date.toLocaleString("de-DE", {
- day: "2-digit",
- month: "2-digit",
- year: "numeric",
- });
- }
- },
- {title: "punkte", field: "punkte"},
- {
- title: "teilgenommen", field: "teilgenommen",
- formatter: "tickCross",
- hozAlign: "center",
- formatterParams: {
- tickElement: '',
- crossElement: ''
- }
- },
- {title: "ort", field: "ort", visible: false},
- {title: "studienplan", field: "studienplan", visible: false},
- {title: "studienplan_id", field: "studienplan_id", visible: false},
- {title: "stg", field: "studiengangkurzbzlang"},
- {title: "Stg", field: "stg_kuerzel"},
- {
- title: 'Aktionen', field: 'actions',
- minWidth: 150, // Ensures Action-buttons will be always fully displayed
- formatter: (cell, formatterParams, onRendered) => {
- let container = document.createElement('div');
- container.className = "d-flex gap-2";
-
- let button = document.createElement('button');
- button.className = 'btn btn-outline-secondary btn-action';
- button.innerHTML = '';
- button.title = this.$p.t('ui', 'bearbeiten');
- button.addEventListener('click', (event) =>
- this.actionEditPlacementTest(cell.getData().rt_person_id)
- );
- container.append(button);
-
- button = document.createElement('button');
- button.className = 'btn btn-outline-secondary btn-action';
- button.innerHTML = '';
- button.title = this.$p.t('ui', 'loeschen');
- button.addEventListener('click', () =>
- this.actionDeletePlacementTest(cell.getData().rt_person_id)
- );
- container.append(button);
-
- return container;
- },
- frozen: true
- }
- ],
- layout: 'fitDataStretchFrozen',
- layoutColumnsOnNewData: false,
- height: 'auto',
- minHeight: 200,
- index: 'aufnahmetermin_id',
- persistenceID: 'stv-details-table_admission-dates-2025112401'
- },
- tabulatorEvents: [
- {
- event: 'tableBuilt',
- handler: async () => {
- await this.$p.loadCategory(['admission', 'global', 'person', 'ui', 'projektarbeitsbeurteilung']);
- let cm = this.$refs.table.tabulator.columnManager;
-
- 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').component.updateDefinition({
- title: this.$p.t('projektarbeitsbeurteilung', 'studiengang')
- });
- cm.getColumnByField('stg_kuerzel').component.updateDefinition({
- title: this.$p.t('admission', 'stg_kurz')
- });
- }
- }
- ],
formData: {},
statusNew: true,
listPlacementTests: [],
listStudyPlans: [],
filterOnlyFutureTestsSet: false,
- filteredPlacementTests: []
+ filteredPlacementTests: [],
+ //data after tabulator data
+ layout: 'fitDataStretchFrozen',
+ layoutColumnsOnNewData: false,
+ height: 'auto',
+ minHeight: 200,
+ index: 'aufnahmetermin_id',
+ persistenceID: 'stv-details-table_admission-dates-2025112401'
}
},
methods: {
@@ -332,6 +193,155 @@ export default {
this.formData = {};
},
},
+ computed: {
+ tabulatorOptions() {
+ const options = {
+ ajaxURL: 'dummy',
+ ajaxRequestFunc: () => this.$api.call(
+ ApiStvAdmissionDates.getAufnahmetermine(this.student.person_id)
+ ),
+ ajaxResponse: (url, params, response) => response.data,
+ columns: [
+ {title: "rt_id", field: "rt_id", visible: false},
+ {title: "rt_person_id", field: "rt_person_id", visible: false},
+ {title: "person_id", field: "person_id", visible: false},
+ {title: "datum", field: "datum",
+ formatter: function (cell) {
+ const dateStr = cell.getValue();
+ if (!dateStr) return "";
+
+ const date = new Date(dateStr);
+ return date.toLocaleString("de-DE", {
+ day: "2-digit",
+ month: "2-digit",
+ year: "numeric",
+ });
+ }
+ },
+ {title: "stufe", field: "stufe"},
+ {title: "studiensemester", field: "studiensemester"},
+ {title: "anmerkung", field: "anmerkung", visible: false},
+ {title: "anmeldedatum", field: "anmeldedatum", visible: false,
+ formatter: function (cell) {
+ const dateStr = cell.getValue();
+ if (!dateStr) return "";
+
+ const date = new Date(dateStr);
+ return date.toLocaleString("de-DE", {
+ day: "2-digit",
+ month: "2-digit",
+ year: "numeric",
+ });
+ }
+ },
+ {title: "punkte", field: "punkte"},
+ {
+ title: "teilgenommen", field: "teilgenommen",
+ formatter: "tickCross",
+ hozAlign: "center",
+ formatterParams: {
+ tickElement: '',
+ crossElement: ''
+ }
+ },
+ {title: "ort", field: "ort", visible: false},
+ {title: "studienplan", field: "studienplan", visible: false},
+ {title: "studienplan_id", field: "studienplan_id", visible: false},
+ {title: "stg", field: "studiengangkurzbzlang"},
+ {title: "Stg", field: "stg_kuerzel"},
+ {
+ title: 'Aktionen', field: 'actions',
+ minWidth: 150, // Ensures Action-buttons will be always fully displayed
+ formatter: (cell, formatterParams, onRendered) => {
+ let container = document.createElement('div');
+ container.className = "d-flex gap-2";
+
+ let button = document.createElement('button');
+ button.className = 'btn btn-outline-secondary btn-action';
+ button.innerHTML = '';
+ button.title = this.$p.t('ui', 'bearbeiten');
+ button.addEventListener('click', (event) =>
+ this.actionEditPlacementTest(cell.getData().rt_person_id)
+ );
+ container.append(button);
+
+ button = document.createElement('button');
+ button.className = 'btn btn-outline-secondary btn-action';
+ button.innerHTML = '';
+ button.title = this.$p.t('ui', 'loeschen');
+ button.addEventListener('click', () =>
+ this.actionDeletePlacementTest(cell.getData().rt_person_id)
+ );
+ container.append(button);
+
+ return container;
+ },
+ frozen: true
+ }
+ ],
+ };
+ return options;
+ },
+ tabulatorEvents() {
+ const events = [
+ {
+ event: 'tableBuilt',
+ handler: async () => {
+ await this.$p.loadCategory(['admission', 'global', 'person', 'ui', 'projektarbeitsbeurteilung']);
+ let cm = this.$refs.table.tabulator.columnManager;
+
+ 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').component.updateDefinition({
+ title: this.$p.t('projektarbeitsbeurteilung', 'studiengang')
+ });
+ cm.getColumnByField('stg_kuerzel').component.updateDefinition({
+ title: this.$p.t('admission', 'stg_kurz')
+ });
+ }
+ }
+ ];
+
+ return events;
+ }
+ },
created() {
this.$api
.call(ApiStvAdmissionDates.getListPlacementTests(this.student.prestudent_id))
diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Lehrveranstaltungstermine/ListLehrveranstaltungstermine.js b/public/js/components/Stv/Studentenverwaltung/Details/Lehrveranstaltungstermine/ListLehrveranstaltungstermine.js
index 20cb95fbd..2732a5707 100644
--- a/public/js/components/Stv/Studentenverwaltung/Details/Lehrveranstaltungstermine/ListLehrveranstaltungstermine.js
+++ b/public/js/components/Stv/Studentenverwaltung/Details/Lehrveranstaltungstermine/ListLehrveranstaltungstermine.js
@@ -11,22 +11,6 @@ export default {
FormInput,
FormForm
},
- computed: {
- downloadLink: function(){
- if(!this.dataSem.start || !this.dataSem.ende || !this.student.uid) return;
- let start = new Date(this.dataSem.start);
- start = Math.floor(start.getTime()/1000);
- let ende = new Date(this.dataSem.ende);
- ende = Math.floor(ende.getTime() / 1000);
-
- let link =
- FHC_JS_DATA_STORAGE_OBJECT.app_root + "cis/private/lvplan/stpl_kalender.php?type=student&pers_uid=" + this.student.uid + "&begin=" + start + "&ende= " +ende + "&format=excel";
- return link;
- },
- dbStundenplanTable: function (){
- return this.showStundenplanDev ? 'stundenplandev' : 'stundenplan';
- }
- },
inject: {
currentSemester: {
from: 'currentSemester',
@@ -44,6 +28,22 @@ export default {
showStundenplanDev: false
};
},
+ computed: {
+ downloadLink: function(){
+ if(!this.dataSem.start || !this.dataSem.ende || !this.student.uid) return;
+ let start = new Date(this.dataSem.start);
+ start = Math.floor(start.getTime()/1000);
+ let ende = new Date(this.dataSem.ende);
+ ende = Math.floor(ende.getTime() / 1000);
+
+ let link =
+ FHC_JS_DATA_STORAGE_OBJECT.app_root + "cis/private/lvplan/stpl_kalender.php?type=student&pers_uid=" + this.student.uid + "&begin=" + start + "&ende= " +ende + "&format=excel";
+ return link;
+ },
+ dbStundenplanTable: function (){
+ return this.showStundenplanDev ? 'stundenplandev' : 'stundenplan';
+ },
+ },
methods: {
initTabulatorOptions(){
this.tabulatorOptions = {
@@ -80,7 +80,7 @@ export default {
{title: "farbe", field: "farbe", visible: false},
{title: "Gruppen", field: "gruppen_kuerzel"},
{title: "ort", field: "ort_kurzbz"},
- {title: "lektorIn", field: "lektorname"},
+ {title: "lektorIn", field: "lektorname", sorter:"string"},
{title: "Lehrfach", field: "lehrfach_bez"}
],
rowFormatter: function(row){
@@ -135,7 +135,7 @@ export default {
},
getDatesOfSemester(studiensemester_kurzbz) {
this.dataSem = this.listStudiensemester.find(item => item.studiensemester_kurzbz === studiensemester_kurzbz);
- },
+ },
exportToExcel(){
window.open(this.downloadLink, '_blank');
},
diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Prestudent/History.js b/public/js/components/Stv/Studentenverwaltung/Details/Prestudent/History.js
index 44b318f5b..1fe96188f 100644
--- a/public/js/components/Stv/Studentenverwaltung/Details/Prestudent/History.js
+++ b/public/js/components/Stv/Studentenverwaltung/Details/Prestudent/History.js
@@ -12,7 +12,16 @@ export default{
},
data() {
return {
- tabulatorOptions: {
+ layout: 'fitDataFill',
+ layoutColumnsOnNewData: false,
+ height: 'auto',
+ selectable: false,
+ persistenceID: 'stv-details-prestudent-history',
+ }
+ },
+ computed: {
+ tabulatorOptions() {
+ const options = {
ajaxURL: 'dummy',
ajaxRequestFunc: () => this.$api.call(ApiStvPrestudent.getHistoryPrestudents(this.personId)),
ajaxResponse: (url, params, response) => response.data,
@@ -37,13 +46,11 @@ export default{
element.classList.add('fw-bold');
}
},
- layout: 'fitDataFill',
- layoutColumnsOnNewData: false,
- height: 'auto',
- selectable: false,
- persistenceID: 'stv-details-prestudent-history'
- },
- tabulatorEvents: [
+ };
+ return options;
+ },
+ tabulatorEvents() {
+ const events = [
{
event: 'tableBuilt',
handler: async () => {
@@ -64,8 +71,9 @@ export default{
});
}
}
- ]
- }
+ ];
+ return events;
+ },
},
watch: {
personId() {
diff --git a/public/js/components/Stv/Studentenverwaltung/Details/Prestudent/MultiStatus.js b/public/js/components/Stv/Studentenverwaltung/Details/Prestudent/MultiStatus.js
index e67f19ccf..8f381c330 100644
--- a/public/js/components/Stv/Studentenverwaltung/Details/Prestudent/MultiStatus.js
+++ b/public/js/components/Stv/Studentenverwaltung/Details/Prestudent/MultiStatus.js
@@ -26,37 +26,8 @@ export default{
}
},
computed: {
- prestudentIds() {
- if (this.modelValue.prestudent_id)
- {
- return [this.modelValue.prestudent_id];
- }
- return this.modelValue.map(e => e.prestudent_id);
- },
- showToolbarStudent() {
- if (Array.isArray(this.modelValue)) {
- if (!this.modelValue.length)
- return false;
- return this.modelValue.every(item => item.uid);
- }
- return !!this.modelValue.uid;
- },
- showToolbarInteressent() {
- if (Array.isArray(this.modelValue)) {
- if (!this.modelValue.length)
- return false;
- return !this.modelValue.some(item => item.uid);
- }
- return !this.modelValue.uid;
- }
- },
- props: {
- modelValue: Object,
- config: Object,
- },
- data() {
- return {
- tabulatorOptions: {
+ tabulatorOptions() {
+ const options = {
ajaxURL: 'dummy',
ajaxRequestFunc: () => this.$api.call(ApiStvPrestudent.getHistoryPrestudent(this.modelValue.prestudent_id)),
ajaxResponse: (url, params, response) => response.data,
@@ -164,7 +135,7 @@ export default{
}
},
{title: "UpdateVon", field: "updatevon", visible: false},
-/* {title: "Aufnahmestufe", field: "aufnahmestufe", visible: false},*/
+ /* {title: "Aufnahmestufe", field: "aufnahmestufe", visible: false},*/
{
title: 'Aktionen', field: 'actions',
minWidth: 150, // Ensures Action-buttons will be always fully displayed
@@ -207,8 +178,8 @@ export default{
button.addEventListener('click', () =>
this.actionEditStatus(data.status_kurzbz, data.studiensemester_kurzbz, data.ausbildungssemester)
);
-/* if (this.dataMeldestichtag && this.dataMeldestichtag > data.datum && !this.hasPermissionToSkipStatusCheck)
- button.disabled = true;*/
+ /* if (this.dataMeldestichtag && this.dataMeldestichtag > data.datum && !this.hasPermissionToSkipStatusCheck)
+ button.disabled = true;*/
container.append(button);
button = document.createElement('button');
@@ -240,8 +211,11 @@ export default{
selectable: false,
index: 'statusId',
persistenceID: 'stv-multistatus-2025112401'
- },
- tabulatorEvents: [
+ };
+ return options;
+ },
+ tabulatorEvents() {
+ const events = [
{
event: 'tableBuilt',
handler: async () => {
@@ -250,8 +224,8 @@ export default{
let cm = this.$refs.table.tabulator.columnManager;
cm.getColumnByField('lehrverband').component.updateDefinition({
- title: this.$p.t('lehre', 'lehrverband')
- });
+ title: this.$p.t('lehre', 'lehrverband')
+ });
cm.getColumnByField('bestaetigtam').component.updateDefinition({
title: this.$p.t('lehre', 'bestaetigt_am')
@@ -298,7 +272,39 @@ export default{
});
}
}
- ],
+ ];
+ return events;
+ },
+ prestudentIds() {
+ if (this.modelValue.prestudent_id)
+ {
+ return [this.modelValue.prestudent_id];
+ }
+ return this.modelValue.map(e => e.prestudent_id);
+ },
+ showToolbarStudent() {
+ if (Array.isArray(this.modelValue)) {
+ if (!this.modelValue.length)
+ return false;
+ return this.modelValue.every(item => item.uid);
+ }
+ return !!this.modelValue.uid;
+ },
+ showToolbarInteressent() {
+ if (Array.isArray(this.modelValue)) {
+ if (!this.modelValue.length)
+ return false;
+ return !this.modelValue.some(item => item.uid);
+ }
+ return !this.modelValue.uid;
+ }
+ },
+ props: {
+ modelValue: Object,
+ config: Object,
+ },
+ data() {
+ return {
statusData: {},
statusId: {},
dataMeldestichtag: null,