diff --git a/public/js/components/Cis/Profil/MitarbeiterProfil.js b/public/js/components/Cis/Profil/MitarbeiterProfil.js index fd3c1b072..58b9bfc09 100644 --- a/public/js/components/Cis/Profil/MitarbeiterProfil.js +++ b/public/js/components/Cis/Profil/MitarbeiterProfil.js @@ -36,7 +36,7 @@ export default { return { showModal: false, editDataFilter: null, - preloadedPhrasen:{}, + arePhrasesPreloaded: false, // tabulator options funktionen_table_options: { persistenceID: "filterTableMaProfilFunktionen", @@ -48,6 +48,7 @@ export default { responsiveLayout: "collapse", responsiveLayoutCollapseUseFormatters: false, responsiveLayoutCollapseFormatter: Vue.$collapseFormatter, + responsiveLayoutCollapseStartOpen: false, columns: [ { title: @@ -58,24 +59,27 @@ export default { formatter: "responsiveCollapse", maxWidth: 40, headerClick: this.collapseFunction, - visible: true + visible: true, + responsive: 0, }, { - title: Vue.computed(() => this.preloadedPhrasen.bezeichnungPhrase), + title: Vue.computed(() => this.$p.t('ui/bezeichnung')), field: "Bezeichnung", headerFilter: true, minWidth: 200, - visible: true + visible: true, + responsive: 0, }, { - title: Vue.computed(() => this.preloadedPhrasen.organisationseinheitPhrase), + title: Vue.computed(() => this.$p.t('lehre/organisationseinheit')), field: "Organisationseinheit", headerFilter: true, minWidth: 200, - visible: true + visible: true, + responsive: 1, }, { - title: Vue.computed(() => this.preloadedPhrasen.gueltigVonPhrase), + title: Vue.computed(() => this.$p.t('global/gueltigVon')), field: "Gültig_von", headerFilterFunc: 'dates', headerFilter: dateFilter, @@ -83,10 +87,11 @@ export default { minWidth: 200, visible: true, formatter:"datetime", - formatterParams: this.datetimeFormatterParams() + formatterParams: this.datetimeFormatterParams(), + responsive: 4, }, { - title: Vue.computed(() => this.preloadedPhrasen.gueltigBisPhrase), + title: Vue.computed(() => this.$p.t('global/gueltigBis')), field: "Gültig_bis", headerFilterFunc: 'dates', headerFilter: dateFilter, @@ -94,14 +99,16 @@ export default { minWidth: 200, visible: true, formatter:"datetime", - formatterParams: this.datetimeFormatterParams() + formatterParams: this.datetimeFormatterParams(), + responsive: 3, }, { - title: Vue.computed(() => this.preloadedPhrasen.wochenstundenPhrase), + title: Vue.computed(() => this.$p.t('profil/wochenstunden')), field: "Wochenstunden", headerFilter: true, minWidth: 200, - visible: true + visible: true, + responsive: 2, }, ], }, @@ -116,6 +123,7 @@ export default { responsiveLayoutCollapseUseFormatters: false, responsiveLayoutCollapseFormatter: Vue.$collapseFormatter, data: [{betriebsmittel: "", Nummer: "", Ausgegeben_am: ""}], + responsiveLayoutCollapseStartOpen: false, columns: [ { title: @@ -126,32 +134,36 @@ export default { formatter: "responsiveCollapse", maxWidth: 40, headerClick: this.collapseFunction, - visible: true + visible: true, + responsive: 0, }, { - title: Vue.computed(() => this.preloadedPhrasen.entlehnteBetriebsmittelPhrase), + title: Vue.computed(() => this.$p.t('profil/entlehnteBetriebsmittel')), field: "betriebsmittel", headerFilter: true, minWidth: 200, - visible: true + visible: true, + responsive: 0, }, { - title: Vue.computed(() => this.preloadedPhrasen.inventarnummerPhrase), + title: Vue.computed(() => this.$p.t('profil/inventarnummer')), field: "Nummer", headerFilter: true, resizable: true, minWidth: 200, - visible: true + visible: true, + responsive: 2, }, { - title: Vue.computed(() => this.preloadedPhrasen.ausgabedatumPhrase), + title: Vue.computed(() => this.$p.t('profil/ausgabedatum')), field: "Ausgegeben_am", headerFilterFunc: 'dates', headerFilter: dateFilter, minWidth: 200, visible: true, formatter:"datetime", - formatterParams: this.datetimeFormatterParams() + formatterParams: this.datetimeFormatterParams(), + responsive: 1, }, ], } @@ -166,11 +178,9 @@ export default { methods: { betriebsmittelTableBuilt: function () { - this.$refs.betriebsmittelTable.tabulator.setColumns(this.betriebsmittel_table_options.columns) this.$refs.betriebsmittelTable.tabulator.setData(this.data.mittel); }, funktionenTableBuilt: function () { - this.$refs.funktionenTable.tabulator.setColumns(this.funktionen_table_options.columns) this.$refs.funktionenTable.tabulator.setData(this.data.funktionen); }, hideEditProfilModal: function () { @@ -221,8 +231,8 @@ export default { }); }, setTableColumnTitles() { // reevaluates computed phrasen - if(this.$refs.betriebsmittelTable) this.$refs.betriebsmittelTable.tabulator.setColumns(this.betriebsmittel_table_options.columns) - if(this.$refs.funktionenTable) this.$refs.funktionenTable.tabulator.setColumns(this.funktionen_table_options.columns) + if(this.$refs.betriebsmittelTable) this.$refs.betriebsmittelTable.tabulator.setColumns(this.betriebsmittel_table_options.columns); + if(this.$refs.funktionenTable) this.$refs.funktionenTable.tabulator.setColumns(this.funktionen_table_options.columns); }, datetimeFormatterParams: function() { const params = { @@ -308,15 +318,7 @@ export default { created() { // preload phrasen this.$p.loadCategory(["ui","lehre","global","profil"]).then(() => { - this.preloadedPhrasen.bezeichnungPhrase = this.$p.t('ui/bezeichnung'); - this.preloadedPhrasen.organisationseinheitPhrase = this.$p.t('lehre/organisationseinheit'); - this.preloadedPhrasen.gueltigVonPhrase = this.$p.t('global/gueltigVon'); - this.preloadedPhrasen.gueltigBisPhrase = this.$p.t('global/gueltigBis'); - this.preloadedPhrasen.wochenstundenPhrase = this.$p.t('profil/wochenstunden'); - this.preloadedPhrasen.entlehnteBetriebsmittelPhrase = this.$p.t('profil/entlehnteBetriebsmittel'); - this.preloadedPhrasen.inventarnummerPhrase = this.$p.t('profil/inventarnummer'); - this.preloadedPhrasen.ausgabedatumPhrase = this.$p.t('profil/ausgabedatum'); - this.preloadedPhrasen.loaded=true; + this.arePhrasesPreloaded = true; }); //? sorts the profil Updates: pending -> accepted -> rejected this.data.profilUpdates?.sort(this.sortProfilUpdates); @@ -440,7 +442,7 @@ export default {
{ - this.preloadedPhrasen.bezeichnungPhrase = - this.$p.t("ui/bezeichnung"); - this.preloadedPhrasen.organisationseinheitPhrase = this.$p.t( - "lehre/organisationseinheit", - ); - this.preloadedPhrasen.gueltigVonPhrase = - this.$p.t("global/gueltigVon"); - this.preloadedPhrasen.gueltigBisPhrase = - this.$p.t("global/gueltigBis"); - this.preloadedPhrasen.wochenstundenPhrase = this.$p.t( - "profil/wochenstunden", - ); - this.preloadedPhrasen.loaded = true; + this.arePhrasesPreloaded = true; }); }, @@ -288,7 +276,7 @@ export default {
- +
diff --git a/public/js/components/Cis/Profil/StudentProfil.js b/public/js/components/Cis/Profil/StudentProfil.js index 57f933305..fbf893b27 100644 --- a/public/js/components/Cis/Profil/StudentProfil.js +++ b/public/js/components/Cis/Profil/StudentProfil.js @@ -35,7 +35,7 @@ export default { showModal: false, collapseIconBetriebsmittel: true, editDataFilter: null, - preloadedPhrasen:{}, + arePhrasesPreloaded: false, // tabulator options zutrittsgruppen_table_options: { persistenceID: "filterTableStudentProfilZutrittsgruppen", @@ -44,10 +44,12 @@ export default { }, minHeight: 200, layout: "fitColumns", - columns: [{ - title: Vue.computed(() => this.preloadedPhrasen.zutrittsGruppenPhrase), + columns: [ + { + title: Vue.computed(() => this.$p.t('profil/zutrittsGruppen')), field: "bezeichnung" - }], + } + ], }, betriebsmittel_table_options: { persistenceID: "filterTableStudentProfilBetriebsmittel", @@ -59,6 +61,7 @@ export default { responsiveLayout: "collapse", responsiveLayoutCollapseUseFormatters: false, responsiveLayoutCollapseFormatter: Vue.$collapseFormatter, + responsiveLayoutCollapseStartOpen: false, columns: [ { title: @@ -69,31 +72,35 @@ export default { formatter: "responsiveCollapse", maxWidth: 40, headerClick: this.collapseFunction, + responsive: 0, }, { - title: Vue.computed(()=>this.preloadedPhrasen.entlehnteBetriebsmittelPhrase), + title: Vue.computed(()=>this.$p.t('profil/entlehnteBetriebsmittel')), field: "betriebsmittel", headerFilter: true, minWidth: 200, - visible: true + visible: true, + responsive: 0, }, { - title: Vue.computed(() =>this.preloadedPhrasen.inventarnummerPhrase) , + title: Vue.computed(() => this.$p.t('profil/inventarnummer')) , field: "Nummer", headerFilter: true, resizable: true, minWidth: 200, - visible: true + visible: true, + responsive: 2, }, { - title: Vue.computed(() =>this.preloadedPhrasen.ausgabedatum) , + title: Vue.computed(() => this.$p.t('profil/ausgabedatum')) , field: "Ausgegeben_am", headerFilterFunc: 'dates', headerFilter: dateFilter, minWidth: 200, visible: true, formatter:"datetime", - formatterParams: this.datetimeFormatterParams() + formatterParams: this.datetimeFormatterParams(), + responsive: 1, }, ], }, @@ -113,11 +120,9 @@ 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 ); @@ -252,11 +257,7 @@ export default { created() { // preload phrasen this.$p.loadCategory('profil').then(() => { - this.preloadedPhrasen.zutrittsGruppenPhrase = this.$p.t('profil/zutrittsGruppen'); - this.preloadedPhrasen.entlehnteBetriebsmittelPhrase = this.$p.t('profil/entlehnteBetriebsmittel'); - this.preloadedPhrasen.inventarnummerPhrase = this.$p.t('profil/inventarnummer'); - this.preloadedPhrasen.ausgabedatum = this.$p.t('profil/ausgabedatum'); - this.preloadedPhrasen.loaded = true; + this.arePhrasesPreloaded = true; }); //? sorts the profil Updates: pending -> accepted -> rejected this.data.profilUpdates?.sort(this.sortProfilUpdates); @@ -379,7 +380,7 @@ export default {