mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-20 16:32:20 +00:00
refactor tabulator options and events into computed section: Tabs Betriebsmittel, Abschlusspruefung, Anrechnungen, Aufnahmetermine, Kontakt, Prestudent, Status, bugfix Lehrveranstaltungstermine: sorter for Lektor as string
This commit is contained in:
@@ -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 {
|
||||
</template>
|
||||
</bs-modal>
|
||||
</div>`
|
||||
}
|
||||
|
||||
}
|
||||
+81
-81
@@ -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 {
|
||||
</div>
|
||||
`
|
||||
}
|
||||
|
||||
|
||||
@@ -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: {
|
||||
|
||||
+157
-147
@@ -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: '<i class="fa fa-check text-success"></i>',
|
||||
crossElement: '<i class="fa fa-xmark text-danger"></i>'
|
||||
}
|
||||
},
|
||||
{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 = '<i class="fa fa-edit"></i>';
|
||||
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 = '<i class="fa fa-xmark"></i>';
|
||||
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: '<i class="fa fa-check text-success"></i>',
|
||||
crossElement: '<i class="fa fa-xmark text-danger"></i>'
|
||||
}
|
||||
},
|
||||
{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 = '<i class="fa fa-edit"></i>';
|
||||
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 = '<i class="fa fa-xmark"></i>';
|
||||
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))
|
||||
|
||||
+18
-18
@@ -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');
|
||||
},
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user