From 04278e4b917e29ed1c7b961cf3758a40711423df Mon Sep 17 00:00:00 2001 From: Kelani Tolulope Date: Wed, 23 Aug 2023 13:40:23 +0100 Subject: [PATCH] Fix page builder save on close route to route back to the view page --- client/web/compose/src/app.js | 6 ++++++ .../src/components/Admin/EditorToolbar.vue | 3 +-- client/web/compose/src/store/ui.js | 19 +++++++++++++++++++ .../compose/src/views/Admin/Charts/Edit.vue | 5 +++-- .../compose/src/views/Admin/Modules/Edit.vue | 5 +++-- .../compose/src/views/Admin/Pages/Builder.vue | 5 +++-- .../compose/src/views/Admin/Pages/Edit.vue | 5 +++-- .../web/compose/src/views/Namespace/Edit.vue | 4 ++-- 8 files changed, 40 insertions(+), 12 deletions(-) diff --git a/client/web/compose/src/app.js b/client/web/compose/src/app.js index 4474174f3..c033bd411 100644 --- a/client/web/compose/src/app.js +++ b/client/web/compose/src/app.js @@ -179,5 +179,11 @@ export default (options = {}) => { ...options, } + options.router.beforeEach((to, from, next) => { + store.dispatch('ui/setPreviousPage', from) + + next() + }) + return new Vue(options) } diff --git a/client/web/compose/src/components/Admin/EditorToolbar.vue b/client/web/compose/src/components/Admin/EditorToolbar.vue index 9cb317ae5..7244746d1 100644 --- a/client/web/compose/src/components/Admin/EditorToolbar.vue +++ b/client/web/compose/src/components/Admin/EditorToolbar.vue @@ -12,12 +12,11 @@ class="wrap-with-vertical-gutters align-items-center" > state.previousPages, + previousPage: (state) => state.previousPage, + getNextAndPrevRecord: ({ recordPaginationIDs }) => (recordID) => { const recordIndex = recordPaginationIDs.indexOf(recordID) const prev = recordIndex >= 0 ? recordPaginationIDs[recordIndex - 1] : undefined @@ -86,6 +91,16 @@ export default function (ComposeAPI) { commit(types.popPreviousPages) return new Promise((resolve) => resolve(previousPage)) }, + + setPreviousPage ({ commit }, value) { + const shouldNotSavePage = value.name !== 'admin.pages.builder' && + !value.query.layoutID && value.name !== 'admin.modules.create' && + value.name !== 'admin.charts.create' + + if (value && value.name && shouldNotSavePage) { + commit(types.setPreviousPage, value) + } + }, }, mutations: { @@ -128,6 +143,10 @@ export default function (ComposeAPI) { [types.popPreviousPages] (state) { return state.previousPages.pop() }, + + [types.setPreviousPage] (state, value) { + state.previousPage = value + }, }, } } diff --git a/client/web/compose/src/views/Admin/Charts/Edit.vue b/client/web/compose/src/views/Admin/Charts/Edit.vue index 1d0f2a6e9..60304cbe9 100644 --- a/client/web/compose/src/views/Admin/Charts/Edit.vue +++ b/client/web/compose/src/views/Admin/Charts/Edit.vue @@ -298,7 +298,6 @@ @@ -386,6 +386,7 @@ export default { ...mapGetters({ modules: 'module/set', modByID: 'module/getByID', + previousPage: 'ui/previousPage', }), colorSchemes () { @@ -651,7 +652,7 @@ export default { }, redirect () { - this.$router.push({ name: 'admin.charts' }) + this.$router.push(this.previousPage || { name: 'admin.charts' }) }, onEditReport (i) { diff --git a/client/web/compose/src/views/Admin/Modules/Edit.vue b/client/web/compose/src/views/Admin/Modules/Edit.vue index 9301f7589..55c5400bf 100644 --- a/client/web/compose/src/views/Admin/Modules/Edit.vue +++ b/client/web/compose/src/views/Admin/Modules/Edit.vue @@ -439,7 +439,6 @@ @@ -537,6 +537,7 @@ export default { computed: { ...mapGetters({ pages: 'page/set', + previousPage: 'ui/previousPage', }), title () { @@ -799,7 +800,7 @@ export default { this.toastSuccess(this.$t('notification:module.created')) if (closeOnSuccess) { - this.$router.push({ name: 'admin.modules' }) + this.$router.push(this.previousPage || { name: 'admin.modules' }) } else { this.$router.push({ name: 'admin.modules.edit', params: { moduleID: this.module.moduleID } }) } diff --git a/client/web/compose/src/views/Admin/Pages/Builder.vue b/client/web/compose/src/views/Admin/Pages/Builder.vue index de233f610..15d15c53d 100644 --- a/client/web/compose/src/views/Admin/Pages/Builder.vue +++ b/client/web/compose/src/views/Admin/Pages/Builder.vue @@ -254,13 +254,13 @@