mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-14 10:39:27 +00:00
Studverwaltung: refactor from Tabulator5 to 6, reformat some date entries
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
'vue3' => true,
|
||||
'primevue3' => true,
|
||||
#'filtercomponent' => true,
|
||||
'tabulator5' => true,
|
||||
'tabulator6' => true,
|
||||
'tinymce5' => true,
|
||||
'phrases' => array(
|
||||
'global',
|
||||
|
||||
@@ -64,6 +64,7 @@ export default {
|
||||
),
|
||||
ajaxResponse: (url, params, response) => response.data,
|
||||
persistenceID: 'core-betriebsmittel',
|
||||
selectableRows: true,
|
||||
columns: [
|
||||
{title: "Nummer", field: "nummer", width: 150},
|
||||
{title: "PersonId", field: "person_id", visible: false},
|
||||
|
||||
@@ -30,8 +30,6 @@ export default {
|
||||
personId: null,
|
||||
layoutColumnsOnNewData: false,
|
||||
height: '400',
|
||||
selectable: 1,
|
||||
selectableRangeMode: 'click',
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -131,6 +129,8 @@ export default {
|
||||
layout: 'fitDataStretchFrozen',
|
||||
index: 'message_id',
|
||||
persistenceID: 'core-message-2025112401',
|
||||
selectableRows: 1,
|
||||
selectableRowsRangeMode: 'click',
|
||||
columns: [
|
||||
{title: "subject", field: "subject", headerFilter: true},
|
||||
{title: "body", field: "body", formatter: "html", visible: false, headerFilter: true},
|
||||
|
||||
@@ -54,6 +54,7 @@ export default {
|
||||
height: '500',
|
||||
index: 'anrechnung_id',
|
||||
persistenceID: 'stv-details-anrechnungen-2025112401',
|
||||
selectableRows: true,
|
||||
columns: [
|
||||
{title: "anrechnung_id", field: "anrechnung_id", visible: false},
|
||||
{title: "lehrveranstaltung_id", field: "lehrveranstaltung_id", visible: false},
|
||||
|
||||
@@ -96,7 +96,19 @@ export default {
|
||||
{title: "Akte Id", field: "akte_id", visible: false},
|
||||
{title: this.$p.t('stv', 'archiv_title'), field: "titel"},
|
||||
{title: this.$p.t('stv', 'archiv_description'), field: "bezeichnung"},
|
||||
{title: this.$p.t('stv', 'archiv_creation_date'), field: "erstelltam"},
|
||||
{title: this.$p.t('stv', 'archiv_creation_date'), field: "erstelltam",
|
||||
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",
|
||||
hour12: false
|
||||
});
|
||||
}},
|
||||
{
|
||||
title: this.$p.t('stv', 'archiv_signiert'),
|
||||
field: "signiert",
|
||||
@@ -117,7 +129,22 @@ export default {
|
||||
crossElement: '<i class="fa fa-xmark text-danger"></i>'
|
||||
},
|
||||
},
|
||||
{title: this.$p.t('stv', 'archiv_accepted_on_at'), field: "akzeptiertamum"},
|
||||
{title: this.$p.t('stv', 'archiv_accepted_on_at'), field: "akzeptiertamum",
|
||||
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",
|
||||
hour: "2-digit",
|
||||
minute: "2-digit",
|
||||
second: "2-digit",
|
||||
hour12: false
|
||||
});
|
||||
}},
|
||||
{
|
||||
title: this.$p.t('stv', 'archiv_gedruckt'),
|
||||
field: "gedruckt",
|
||||
|
||||
@@ -20,7 +20,6 @@ export default {
|
||||
listDocuments: [],
|
||||
layoutColumnsOnNewData: false,
|
||||
height: 300,
|
||||
selectable: true,
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@@ -37,7 +36,8 @@ export default {
|
||||
},
|
||||
layout: 'fitDataStretchFrozen',
|
||||
index: 'akte_id',
|
||||
selectableRangeMode: 'click',
|
||||
selectableRows: true,
|
||||
selectableRowsRangeMode: 'click',
|
||||
persistenceID: 'stv-details-accepted-2026020401',
|
||||
columns: [
|
||||
{title: "akte_id", field: "akte_id", visible: false},
|
||||
|
||||
@@ -19,8 +19,6 @@ export default {
|
||||
return {
|
||||
layoutColumnsOnNewData: false,
|
||||
height: 300,
|
||||
selectable: true,
|
||||
selectableRangeMode: 'click',
|
||||
listDocuments: [],
|
||||
prestudentDocumentData: [],
|
||||
}
|
||||
@@ -35,8 +33,10 @@ export default {
|
||||
studiengang_kz: this.studiengang_kz})
|
||||
),
|
||||
ajaxResponse: (url, params, response) => response.data,
|
||||
persistenceID: 'stv-details-unaccepted-2026020401',
|
||||
layout: 'fitDataStretchFrozen',
|
||||
persistenceID: 'stv-details-unaccepted-2026020401',
|
||||
selectableRows: true,
|
||||
selectableRowsRangeMode: 'click',
|
||||
columns: [
|
||||
{title: "Dokument", field: "bezeichnung"},
|
||||
{title: "Kurzbz", field: "dokument_kurzbz", visible: false},
|
||||
|
||||
@@ -135,48 +135,6 @@ export default {
|
||||
},
|
||||
tabulatorEvents() {
|
||||
const events = [
|
||||
/* {
|
||||
event: 'tableBuilt',
|
||||
handler: async() => {
|
||||
await this.$p.loadCategory(['notiz','global','person']);
|
||||
|
||||
let cm = this.$refs.table.tabulator.columnManager;
|
||||
|
||||
cm.getColumnByField('kontakttypbeschreibung').component.updateDefinition({
|
||||
title: this.$p.t('global', 'typ')
|
||||
});
|
||||
cm.getColumnByField('kontakt').component.updateDefinition({
|
||||
title: this.$p.t('global', 'kontakt')
|
||||
});
|
||||
cm.getColumnByField('zustellung').component.updateDefinition({
|
||||
title: this.$p.t('person', 'zustellung')
|
||||
});
|
||||
cm.getColumnByField('anmerkung').component.updateDefinition({
|
||||
title: this.$p.t('global', 'anmerkung')
|
||||
});
|
||||
cm.getColumnByField('lastupdate').component.updateDefinition({
|
||||
title: this.$p.t('notiz', 'letzte_aenderung')
|
||||
});
|
||||
cm.getColumnByField('name').component.updateDefinition({
|
||||
title: this.$p.t('person', 'firma')
|
||||
});
|
||||
cm.getColumnByField('bezeichnung').component.updateDefinition({
|
||||
title: this.$p.t('person', 'standort')
|
||||
});
|
||||
cm.getColumnByField('firma_id').component.updateDefinition({
|
||||
title: this.$p.t('ui', 'firma_id')
|
||||
});
|
||||
cm.getColumnByField('kontakt_id').component.updateDefinition({
|
||||
title: this.$p.t('ui', 'kontakt_id')
|
||||
});
|
||||
cm.getColumnByField('person_id').component.updateDefinition({
|
||||
title: this.$p.t('person', 'person_id')
|
||||
});
|
||||
cm.getColumnByField('standort_id').component.updateDefinition({
|
||||
title: this.$p.t('ui', 'standort_id')
|
||||
});
|
||||
}
|
||||
}, */
|
||||
{
|
||||
event: 'tableBuilt',
|
||||
handler: async() => {
|
||||
|
||||
@@ -127,8 +127,8 @@ export default {
|
||||
ajaxResponse: (url, params, response) => response.data,
|
||||
dataTree: true,
|
||||
columns: this.tabulatorColumns,
|
||||
selectable: true,
|
||||
selectableRangeMode: 'click',
|
||||
selectableRows: true,
|
||||
selectableRowsRangeMode: 'click',
|
||||
index: 'buchungsnr',
|
||||
persistenceID: 'stv-details-konto'
|
||||
};
|
||||
|
||||
@@ -39,8 +39,38 @@ export default {
|
||||
{ field: 'lv_bezeichnung', title: this.$p.t('lehre/lehrveranstaltung') },
|
||||
{ field: 'note_bezeichnung', title: this.$p.t('lehre/note') },
|
||||
{ field: 'insertvon', title: this.$p.t('profil/mitarbeiterIn'), visible: false },
|
||||
{ field: 'benotungsdatum', title: this.$p.t('stv/grades_gradingdate'), visible: false },
|
||||
{ field: 'freigabedatum', title: this.$p.t('stv/grades_approvaldate'), visible: false },
|
||||
{ field: 'benotungsdatum', title: this.$p.t('stv/grades_gradingdate'), 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",
|
||||
hour: "2-digit",
|
||||
minute: "2-digit",
|
||||
second: "2-digit",
|
||||
hour12: false
|
||||
});
|
||||
}},
|
||||
{ field: 'freigabedatum', title: this.$p.t('stv/grades_approvaldate'), 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",
|
||||
hour: "2-digit",
|
||||
minute: "2-digit",
|
||||
second: "2-digit",
|
||||
hour12: false
|
||||
});
|
||||
}},
|
||||
{ field: 'studiensemester_kurzbz', title: this.$p.t('lehre/studiensemester'), visible: false },
|
||||
{ field: 'stg_bezeichnung', title: this.$p.t('lehre/studiengang'), visible: false },
|
||||
{ field: 'note', title: this.$p.t('stv/grades_numericgrade'), visible: false },
|
||||
@@ -49,8 +79,8 @@ export default {
|
||||
],
|
||||
layout: 'fitDataStretch',
|
||||
height: '100%',
|
||||
selectable: true,
|
||||
selectableRangeMode: 'click',
|
||||
selectableRows: true,
|
||||
selectableRowsRangeMode: 'click',
|
||||
persistenceID: 'stv-details-noten-repeater'
|
||||
};
|
||||
}
|
||||
|
||||
@@ -39,8 +39,38 @@ export default {
|
||||
{ field: 'lehrveranstaltung_bezeichnung', title: this.$p.t('lehre/lehrveranstaltung') },
|
||||
{ field: 'note_bezeichnung', title: this.$p.t('lehre/note') },
|
||||
{ field: 'mitarbeiter_uid', title: this.$p.t('profil/mitarbeiterIn'), visible: false },
|
||||
{ field: 'benotungsdatum', title: this.$p.t('stv/grades_gradingdate'), visible: false },
|
||||
{ field: 'freigabedatum', title: this.$p.t('stv/grades_approvaldate'), visible: false },
|
||||
{ field: 'benotungsdatum', title: this.$p.t('stv/grades_gradingdate'), 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",
|
||||
hour: "2-digit",
|
||||
minute: "2-digit",
|
||||
second: "2-digit",
|
||||
hour12: false
|
||||
});
|
||||
}},
|
||||
{ field: 'freigabedatum', title: this.$p.t('stv/grades_approvaldate'), 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",
|
||||
hour: "2-digit",
|
||||
minute: "2-digit",
|
||||
second: "2-digit",
|
||||
hour12: false
|
||||
});
|
||||
}},
|
||||
{ field: 'studiensemester_kurzbz', title: this.$p.t('lehre/studiensemester'), visible: false },
|
||||
{ field: 'note', title: this.$p.t('stv/grades_numericgrade'), visible: false },
|
||||
{ field: 'student_uid', title: this.$p.t('profil/studentIn'), visible: false },
|
||||
@@ -49,8 +79,8 @@ export default {
|
||||
],
|
||||
layout: 'fitDataStretch',
|
||||
height: '100%',
|
||||
selectable: true,
|
||||
selectableRangeMode: 'click',
|
||||
selectableRows: true,
|
||||
selectableRowsRangeMode: 'click',
|
||||
persistenceID: 'stv-details-noten-teacher'
|
||||
};
|
||||
}
|
||||
|
||||
@@ -148,8 +148,38 @@ export default {
|
||||
{ field: 'zeugnis', title: this.$p.t('stv/grades_zeugnis'), formatter: 'tickCross' },
|
||||
{ field: 'lehrveranstaltung_bezeichnung', title: this.$p.t('lehre/lehrveranstaltung') },
|
||||
gradeField,
|
||||
{ field: 'uebernahmedatum', title: this.$p.t('stv/grades_takeoverdate'), visible: false },
|
||||
{ field: 'benotungsdatum', title: this.$p.t('stv/grades_gradingdate'), visible: false },
|
||||
{ field: 'uebernahmedatum', title: this.$p.t('stv/grades_takeoverdate'), 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",
|
||||
hour: "2-digit",
|
||||
minute: "2-digit",
|
||||
second: "2-digit",
|
||||
hour12: false
|
||||
});
|
||||
}},
|
||||
{ field: 'benotungsdatum', title: this.$p.t('stv/grades_gradingdate'), 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",
|
||||
hour: "2-digit",
|
||||
minute: "2-digit",
|
||||
second: "2-digit",
|
||||
hour12: false
|
||||
});
|
||||
}},
|
||||
{ field: 'studiensemester_kurzbz', title: this.$p.t('lehre/studiensemester'), visible: false },
|
||||
{ field: 'note_number', title: this.$p.t('stv/grades_numericgrade'), visible: false, formatter: cell => cell.getData().note, tooltip: (evt, cell) => cell.getData().note },
|
||||
{ field: 'lehrveranstaltung_id', title: this.$p.t('lehre/lehrveranstaltung_id'), visible: false },
|
||||
@@ -218,8 +248,8 @@ export default {
|
||||
columns,
|
||||
height: '100%',
|
||||
layout: 'fitDataStretchFrozen',
|
||||
selectable: 1,
|
||||
selectableRangeMode: 'click',
|
||||
selectableRows: 1,
|
||||
selectableRowsRangeMode: 'click',
|
||||
persistenceID: 'stv-details-noten-zeugnis-2025112401',
|
||||
persistence:{
|
||||
columns: ["width", "visible", "frozen"]
|
||||
|
||||
@@ -15,7 +15,7 @@ export default{
|
||||
layout: 'fitDataFill',
|
||||
layoutColumnsOnNewData: false,
|
||||
height: 'auto',
|
||||
selectable: false
|
||||
selectableRows: false
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@@ -25,7 +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',
|
||||
persistenceID: 'stv-details-prestudent-history-20260204',
|
||||
columns:[
|
||||
{title:"StSem", field:"studiensemester_kurzbz"},
|
||||
{title:"Prio", field:"priorisierung"},
|
||||
@@ -56,19 +56,23 @@ export default{
|
||||
handler: async () => {
|
||||
await this.$p.loadCategory(['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('orgform_kurzbz').component.updateDefinition({
|
||||
title: this.$p.t('lehre', 'organisationsform')
|
||||
});
|
||||
const el = col.getElement();
|
||||
if (!el || !el.querySelector) return;
|
||||
|
||||
cm.getColumnByField('bezeichnung').component.updateDefinition({
|
||||
title: this.$p.t('lehre', 'studienplan')
|
||||
});
|
||||
const titleEl = el.querySelector('.tabulator-col-title');
|
||||
if (titleEl) {
|
||||
titleEl.textContent = text;
|
||||
}
|
||||
};
|
||||
|
||||
setHeader('orgform_kurzbz', this.$p.t('lehre', 'organisationsform'));
|
||||
setHeader('bezeichnung', this.$p.t('lehre', 'studienplan'));
|
||||
setHeader('prestudent_id', this.$p.t('ui', 'prestudent_id'));
|
||||
|
||||
cm.getColumnByField('prestudent_id').component.updateDefinition({
|
||||
title: this.$p.t('ui', 'prestudent_id')
|
||||
});
|
||||
}
|
||||
}
|
||||
];
|
||||
|
||||
@@ -208,7 +208,7 @@ export default{
|
||||
layout: 'fitDataStretchFrozen',
|
||||
layoutColumnsOnNewData: false,
|
||||
height: 'auto',
|
||||
selectable: false,
|
||||
selectableRows: false,
|
||||
index: 'statusId',
|
||||
persistenceID: 'stv-multistatus-2025112401'
|
||||
};
|
||||
|
||||
@@ -260,7 +260,7 @@ export default {
|
||||
layout: 'fitDataStretchFrozen',
|
||||
height: 'auto',
|
||||
minHeight: '200',
|
||||
selectable: 1,
|
||||
selectableRows: 1,
|
||||
index: 'projektarbeit_id',
|
||||
persistence:{
|
||||
columns: true, //persist column layout
|
||||
|
||||
+2
-2
@@ -120,8 +120,8 @@ export default {
|
||||
layoutColumnsOnNewData: false,
|
||||
height: 'auto',
|
||||
minHeight: '100',
|
||||
selectable: true,
|
||||
selectable: 1,
|
||||
selectableRows: true,
|
||||
selectableRows: 1,
|
||||
index: 'betreuer_id',
|
||||
persistence:{
|
||||
columns: true, //persist column layout
|
||||
|
||||
@@ -64,8 +64,21 @@ export default{
|
||||
group: false,
|
||||
page: false
|
||||
},
|
||||
selectableRows: true,
|
||||
columns: [
|
||||
{title: "Datum", field: "format_datum"},
|
||||
{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",
|
||||
hour12: false
|
||||
});
|
||||
}},
|
||||
{title: "Lehrveranstaltung", field: "lehrveranstaltung_bezeichnung"},
|
||||
{title: "Note", field: "note_bezeichnung"},
|
||||
{title: "Anmerkung", field: "anmerkung"},
|
||||
@@ -141,7 +154,7 @@ export default{
|
||||
}
|
||||
};
|
||||
|
||||
setHeader('format_datum', this.$p.t('global', 'datum'));
|
||||
setHeader('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'));
|
||||
|
||||
@@ -173,8 +173,8 @@ export default {
|
||||
layout: 'fitDataStretch',
|
||||
layoutColumnsOnNewData: false,
|
||||
height: '100%',
|
||||
selectable: true,
|
||||
selectableRangeMode: 'click',
|
||||
selectableRows: true,
|
||||
selectableRowsRangeMode: 'click',
|
||||
index: 'prestudent_id',
|
||||
persistenceID: 'stv-list',
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user