From 4724008c2df9231341e6ee3d64fcd9e060e5e0ac Mon Sep 17 00:00:00 2001 From: Johann Hoffmann Date: Wed, 18 Feb 2026 14:32:57 +0100 Subject: [PATCH] betreuer page update table after adding serientermin qgate1/2 status prev/next; preserve scrollX/Y in betreuer/assistenz page --- .../Cis/Abgabetool/AbgabetoolAssistenz.js | 18 +++++++++--------- .../Cis/Abgabetool/AbgabetoolMitarbeiter.js | 18 ++++++++++++++++++ 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/public/js/components/Cis/Abgabetool/AbgabetoolAssistenz.js b/public/js/components/Cis/Abgabetool/AbgabetoolAssistenz.js index 8b0fe7ddb..fb6a8cd64 100644 --- a/public/js/components/Cis/Abgabetool/AbgabetoolAssistenz.js +++ b/public/js/components/Cis/Abgabetool/AbgabetoolAssistenz.js @@ -643,21 +643,21 @@ export const AbgabetoolAssistenz = { // reset selection to empty // this.$refs.abgabeTable.tabulator.deselectRow() const table = this.$refs.abgabeTable.tabulator; - const scrollX = table.rowManager.element.scrollLeft; - const scrollY = table.rowManager.element.scrollTop; + const scrollX = table.rowManager.scrollLeft; + const scrollY = table.rowManager.scrollTop; const mappedData = this.mapProjekteToTableData(this.projektarbeiten) table.setData(mappedData) table.redraw(true) - - requestAnimationFrame(() => { - table.rowManager.element.scrollLeft = scrollX; - table.rowManager.element.scrollTop = scrollY; - }); - - + Vue.nextTick(()=> { + const table = this.$refs.abgabeTable?.tabulator.element.querySelector('.tabulator-tableholder') + if(table) { + table.scrollLeft = scrollX; + table.scrollTop = scrollY; + } + }) }).finally(()=>{ this.saving = false diff --git a/public/js/components/Cis/Abgabetool/AbgabetoolMitarbeiter.js b/public/js/components/Cis/Abgabetool/AbgabetoolMitarbeiter.js index 2ad29d20c..2453f33bf 100644 --- a/public/js/components/Cis/Abgabetool/AbgabetoolMitarbeiter.js +++ b/public/js/components/Cis/Abgabetool/AbgabetoolMitarbeiter.js @@ -563,6 +563,24 @@ export const AbgabetoolMitarbeiter = { )).then(res => { if (res.meta.status === "success" && res.data) { this.$fhcAlert.alertSuccess(this.$p.t('abgabetool/serienTerminGespeichert')) + + const oldScrollLeft = this.$refs.abgabeTable?.tabulator.rowManager.scrollLeft + const oldScrollTop = this.$refs.abgabeTable?.tabulator.rowManager.scrollTop + this.loading = true + this.loadProjektarbeiten(this.showAll, () => { + this.$refs.abgabeTable?.tabulator.redraw(true) + this.$refs.abgabeTable?.tabulator.setSort([]); + this.loading = false + + Vue.nextTick(()=> { + const table = this.$refs.abgabeTable?.tabulator.element.querySelector('.tabulator-tableholder') + if(table) { + table.scrollLeft = oldScrollLeft; + table.scrollTop = oldScrollTop; + } + }) + + }) } else { this.$fhcAlert.alertError(this.$p.t('abgabetool/errorSerienterminSpeichern')) }