From 3a1055d87ea05524e72e83861be6a7d0e347db8e Mon Sep 17 00:00:00 2001 From: Johann Hoffmann Date: Fri, 14 Feb 2025 13:54:02 +0100 Subject: [PATCH] computed phrasen in column titles student profil for zutrittsgruppen/betriebsmittel; samilar to mitarbeiter profil --- .../js/components/Cis/Profil/StudentProfil.js | 51 +++++++++++++++---- 1 file changed, 42 insertions(+), 9 deletions(-) diff --git a/public/js/components/Cis/Profil/StudentProfil.js b/public/js/components/Cis/Profil/StudentProfil.js index 5b4609e5f..364feecd2 100644 --- a/public/js/components/Cis/Profil/StudentProfil.js +++ b/public/js/components/Cis/Profil/StudentProfil.js @@ -24,7 +24,7 @@ export default { FetchProfilUpdates, EditProfil, }, - inject: ["sortProfilUpdates", "collapseFunction"], + inject: ["sortProfilUpdates", "collapseFunction", "language"], data() { return { showModal: false, @@ -33,18 +33,27 @@ export default { // tabulator options zutrittsgruppen_table_options: { + persistenceID: "filterTableStudentProfilZutrittsgruppen", + persistence: { + columns: false + }, height: 200, layout: "fitColumns", - data: [{bezeichnung: ""}], - columns: [{title: "Zutritt", field: "bezeichnung"}], + columns: [{ + title: Vue.computed(() => this.$p.t('profil/zutrittsGruppen')), + field: "bezeichnung" + }], }, betriebsmittel_table_options: { + persistenceID: "filterTableStudentProfilBetriebsmittel", + persistence: { + columns: false + }, height: 300, layout: "fitColumns", responsiveLayout: "collapse", responsiveLayoutCollapseUseFormatters: false, responsiveLayoutCollapseFormatter: Vue.$collapseFormatter, - data: [{betriebsmittel: "", Nummer: "", Ausgegeben_am: ""}], columns: [ { title: @@ -57,23 +66,26 @@ export default { headerClick: this.collapseFunction, }, { - title: "Betriebsmittel", + title: Vue.computed(() => this.$p.t('profil/entlehnteBetriebsmittel')), field: "betriebsmittel", headerFilter: true, minWidth: 200, + visible: true }, { - title: "Nummer", + title: Vue.computed(() => this.$p.t('profil/inventarnummer')), field: "Nummer", headerFilter: true, resizable: true, minWidth: 200, + visible: true }, { - title: "Ausgegeben_am", + title: Vue.computed(() => this.$p.t('profil/ausgabedatum')), field: "Ausgegeben_am", headerFilter: true, minWidth: 200, + visible: true }, ], }, @@ -92,9 +104,11 @@ export default { methods: { betriebsmittelTableBuilt: function () { + this.$refs.betriebsmittelTable.tabulator.setColumns(this.betriebsmittel_table_options.columns) this.$refs.betriebsmittelTable.tabulator.setData(this.data.mittel); }, zutrittsgruppenTableBuilt: function () { + this.$refs.zutrittsgruppenTable.tabulator.setColumns(this.zutrittsgruppen_table_options.columns) this.$refs.zutrittsgruppenTable.tabulator.setData( this.data.zuttritsgruppen ); @@ -212,6 +226,12 @@ export default { //? sorts the profil Updates: pending -> accepted -> rejected this.data.profilUpdates?.sort(this.sortProfilUpdates); }, + watch: { + 'language.value'(newVal) { + if(this.$refs.betriebsmittelTable) this.$refs.betriebsmittelTable.tabulator.setColumns(this.betriebsmittel_table_options.columns) + if(this.$refs.zutrittsgruppenTable) this.$refs.zutrittsgruppenTable.tabulator.setColumns(this.zutrittsgruppen_table_options.columns) + } + }, template: /*html*/ `
- +
- +