From 95bc92f962d7a53f89d336cac22789827e1e1d8d Mon Sep 17 00:00:00 2001 From: Edwin Betancourt Date: Wed, 10 Mar 2021 10:07:49 -0400 Subject: [PATCH] fixes #653 set default values in panel open menu. (#654) Co-authored-by: EdwinBetanc0urt --- .../ADempiere/DropdownMenu/index.vue | 30 +++++++++++++ src/layout/components/Sidebar/SidebarItem.vue | 42 ++++++++++++++++++- 2 files changed, 70 insertions(+), 2 deletions(-) diff --git a/src/components/ADempiere/DropdownMenu/index.vue b/src/components/ADempiere/DropdownMenu/index.vue index 54568543..ce5ae117 100644 --- a/src/components/ADempiere/DropdownMenu/index.vue +++ b/src/components/ADempiere/DropdownMenu/index.vue @@ -77,6 +77,8 @@ export default { }, methods: { redirect(item) { + this.openItemMenu(item) + let tabParent if (item.meta && item.meta.type === 'window') { tabParent = 0 @@ -93,6 +95,34 @@ export default { childs: item.children } }, () => {}) + }, + /** + * Clear field values, and set default values with open + * @param view router item with meta attributes + */ + openItemMenu(view) { + if (view.meta && view.meta.uuid && view.meta.type) { + const { + parentUuid, + uuid: containerUuid, + type: panelType + } = view.meta + + if (panelType !== 'window') { + this.$store.dispatch('setDefaultValues', { + parentUuid, + containerUuid, + panelType, + isNewRecord: false + }) + + if (['browser'].includes(panelType)) { + this.$store.dispatch('deleteRecordContainer', { + viewUuid: containerUuid + }) + } + } + } } } } diff --git a/src/layout/components/Sidebar/SidebarItem.vue b/src/layout/components/Sidebar/SidebarItem.vue index bd4d6679..a36be49e 100644 --- a/src/layout/components/Sidebar/SidebarItem.vue +++ b/src/layout/components/Sidebar/SidebarItem.vue @@ -2,8 +2,16 @@
@@ -94,6 +102,36 @@ export default { return false }, + /** + * Clear field values, and set default values with open + * @param view router item with meta attributes + */ + openItemMenu(menuItem) { + const view = menuItem._props.route + + if (view.meta && view.meta.uuid && view.meta.type) { + const { + parentUuid, + uuid: containerUuid, + type: panelType + } = view.meta + + if (panelType !== 'window') { + this.$store.dispatch('setDefaultValues', { + parentUuid, + containerUuid, + panelType, + isNewRecord: false + }) + + if (['browser'].includes(panelType)) { + this.$store.dispatch('deleteRecordContainer', { + viewUuid: containerUuid + }) + } + } + } + }, resolvePath(routePath) { if (isExternal(routePath)) { return routePath