From 95f09e911423639ec6ebf6af46292bb11c88e039 Mon Sep 17 00:00:00 2001 From: adisposkofh Date: Mon, 18 May 2026 14:07:06 +0200 Subject: [PATCH] fixed timing of initial localization of tabulator collapsed column headings --- public/js/components/Cis/Profil/Profil.js | 2 +- public/js/components/filter/Filter.js | 20 +++++++++++--------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/public/js/components/Cis/Profil/Profil.js b/public/js/components/Cis/Profil/Profil.js index 37f3a8edb..0df4a86c2 100644 --- a/public/js/components/Cis/Profil/Profil.js +++ b/public/js/components/Cis/Profil/Profil.js @@ -24,7 +24,7 @@ Vue.$collapseFormatter = function (data) { let item2 = document.createElement("div"); item2.classList.add("col-6"); - item.innerHTML = "placeholder"; + item.innerHTML = "placeholder"; item2.innerHTML = col.value ? col.value : "-"; list.appendChild(item); diff --git a/public/js/components/filter/Filter.js b/public/js/components/filter/Filter.js index ff2a62777..720e832b9 100644 --- a/public/js/components/filter/Filter.js +++ b/public/js/components/filter/Filter.js @@ -215,7 +215,7 @@ export const CoreFilterCmpt = { this.tabulator.setLocale(newSelectedLanguage); if (this.$props.tabulatorOptions.responsiveLayoutCollapseFormatter) { - this.localizeCollapsedColumnHeadings(newSelectedLanguage); + this.localizeCollapsedColumnHeadings(); } }, }, @@ -316,9 +316,6 @@ export const CoreFilterCmpt = { this.tabulator.on('tableBuilt', () => { this.tableBuilt = true; this.$emit('tableBuilt'); - if (tabulatorOptions.locale && tabulatorOptions.responsiveLayoutCollapseFormatter) { - this.localizeCollapsedColumnHeadings(); - } }); this.tabulator.on("rowSelectionChanged", data => { this.selectedData = data; @@ -357,9 +354,6 @@ export const CoreFilterCmpt = { this.selectedFields = cols.filter(col => col.isVisible()).map(col => col.getField()); if (this.tabulator.options.persistence.headerFilter) this._setHeaderFilter(); - if (tabulatorOptions.locale && tabulatorOptions.responsiveLayoutCollapseFormatter) { - this.localizeCollapsedColumnHeadings(); - } }); } @@ -368,6 +362,12 @@ export const CoreFilterCmpt = { this.filterActive = filters.length > 0; this.$emit("headerFilterOn", this.filterActive); }); + + this.tabulator.on('renderComplete', () => { + if (tabulatorOptions.locale && tabulatorOptions.responsiveLayoutCollapseFormatter && this.tableBuilt) { + this.localizeCollapsedColumnHeadings(); + } + }); }, async configureTabulatorLocalizations(tabulatorOptions) { tabulatorOptions.locale = this.$p.user_language.value; @@ -485,12 +485,14 @@ export const CoreFilterCmpt = { return tabulatorOptions; }, async localizeCollapsedColumnHeadings() { - const columnHeadings = this.tabulator.getLang().columns; + const columnHeadings = this.tabulator?.getLang()?.columns; + if (!columnHeadings) return; this.$refs.table .querySelectorAll(".collapsedColumnHeading") .forEach((collapsedColumnHeadingElement) => { - const field = collapsedColumnHeadingElement.getAttribute("field"); + const field = + collapsedColumnHeadingElement.getAttribute("tabulator-column-field"); if (!field?.length) return; collapsedColumnHeadingElement.innerHTML =