diff --git a/partials/GridDisplay.vue b/partials/GridDisplay.vue index 7f051f31c3fc2f381947879e2eea76dc45fb6b5f..31f273dda4131c1105148441983c021bd0053697 100644 --- a/partials/GridDisplay.vue +++ b/partials/GridDisplay.vue @@ -43,7 +43,8 @@ }, computed: { ...mapGetters({ - isMobile: 'globalSettings/getIsMobile' + isMobile: 'globalSettings/getIsMobile', + scrollPositionCache: 'mosys/getScrollPositionCache' }), queryPositionX () { if (this.$route.query.x) return parseInt(this.$route.query.x) @@ -66,7 +67,7 @@ }, async mounted () { await this.loadGrid(this.$route.params.uuid) - this.$root.$emit('setBackButton', '/mosys/grids') + this.$el.scrollLeft = this.scrollPositionCache }, methods: { onScroll () { diff --git a/partials/GridEditor.vue b/partials/GridEditor.vue index 3acccec4322df8552f59a761640107ff1e8fc35f..65a6d9521e340d75b23db3db83eb174bcf362905 100644 --- a/partials/GridEditor.vue +++ b/partials/GridEditor.vue @@ -99,7 +99,7 @@ components: { Cell }, - props: ['gridUuid'], + props: ['gridUuid', 'tabsAreOpen'], data () { return { gridContextMenuActions: { @@ -138,7 +138,8 @@ user: 'auth/getUserState', isMobile: 'globalSettings/getIsMobile', // editingCells: 'mosys/getEditingCells' - showEditingCells: 'mosys/getShowEditingCells' + showEditingCells: 'mosys/getShowEditingCells', + scrollPositionCache: 'mosys/getScrollPositionCache' }), cellContextMenuActions () { const actions = { @@ -182,8 +183,7 @@ }, async mounted () { await this.fetchData() - // this.$root.$emit('setBackButton', '/mosys/grids') - console.log('show editing', this.showEditingCells) + this.resetScrollPosition() }, watch: { annotations () { @@ -200,6 +200,9 @@ if (val === false) { this.updateAnnotationUIStates() } + }, + tabsAreOpen () { + this.resetScrollPosition() } }, methods: { @@ -361,7 +364,7 @@ handleCellEditClick (event, cell) { this.annotationUIStates[cell._uuid].editing = !this.annotationUIStates[cell._uuid].editing this.updateEditingCells() - // this.$store.commit('mosys/showEditingCells') + this.$root.$emit('mosys_saveScrollPosition') }, handleCellClick (event, cell) { @@ -604,6 +607,10 @@ } } else return {} + }, + resetScrollPosition () { + console.log('reset', this.scrollPositionCache, this.$el.scrollLeft) + this.$el.scrollLeft = this.scrollPositionCache } } } diff --git a/partials/GridEditorEditingCells.vue b/partials/GridEditorEditingCells.vue index 781c77da295bd6f6316aebeefdcc0ab49c1a0320..8cbeacc27de130a594bcb140897fd5348bb13d83 100644 --- a/partials/GridEditorEditingCells.vue +++ b/partials/GridEditorEditingCells.vue @@ -4,7 +4,7 @@ q-tab(slot="title", name="tab-editing-cells", default) Edit Cell q-btn(slot="title", icon="close", small, flat, round, class="fixed", style="right: 2px; margin-top: 3px", - @click="() => {$store.commit('mosys/hideEditingCells')}") + @click="handleCloseTabs()") q-tab-pane(name="tab-editing-cells") template(v-if="showEditingCells") @@ -44,6 +44,12 @@ }, beforeDestroy () { this.$store.commit('mosys/hideEditingCells') + }, + methods: { + handleCloseTabs () { + this.$root.$emit('mosys_saveScrollPosition') + this.$store.commit('mosys/hideEditingCells') + } } } diff --git a/partials/GridEditorSources.vue b/partials/GridEditorSources.vue index df2ac226c53ed044147b2e98153912fd9a7fc212..09413699c535393158c77b553ec09e3df4c7f8f0 100644 --- a/partials/GridEditorSources.vue +++ b/partials/GridEditorSources.vue @@ -6,7 +6,7 @@ q-tab(slot="title", name="tab-documents", v-if="userHasDocuments") Documents q-btn(slot="title", icon="close", small, flat, round, class="fixed", style="right: 2px; margin-top: 3px", - @click="event => {$store.commit('mosys/hideSources')}") + @click="handleCloseTabs()") q-tab-pane(name="tab-default-cells") // template(v-if="this.selectedCells.length > 0") @@ -70,6 +70,12 @@ }, beforeDestroy () { this.$store.commit('mosys/hideSources') + }, + methods: { + handleCloseTabs () { + this.$root.$emit('mosys_saveScrollPosition') + this.$store.commit('mosys/hideSources') + } } }