From 0a3af62fb32839f18176eedefeba6c1886cdca16 Mon Sep 17 00:00:00 2001 From: Edwin Betancourt Date: Tue, 2 Apr 2024 10:50:23 -0400 Subject: [PATCH] fix: Refresh records on tab child. (#2057) * fix: Slash on end-points. * fix: Refresh records on tab child. --- .../file-management/resource-reference.ts | 7 +++- src/components/ADempiere/ActionMenu/index.vue | 42 +++++++++---------- src/components/ADempiere/TabManager/index.vue | 1 + .../ADempiere/TabManager/tabChild.vue | 2 +- .../ADempiere/dictionary/window/actions.js | 12 +++--- .../ADempiere/dictionary/window/getters.js | 5 +-- src/store/modules/ADempiere/persistence.js | 2 +- src/store/modules/ADempiere/windowManager.js | 17 +++++--- src/utils/ADempiere/resource.js | 9 +++- 9 files changed, 57 insertions(+), 40 deletions(-) diff --git a/src/api/ADempiere/file-management/resource-reference.ts b/src/api/ADempiere/file-management/resource-reference.ts index 0f920de90d..e0fa80cf97 100644 --- a/src/api/ADempiere/file-management/resource-reference.ts +++ b/src/api/ADempiere/file-management/resource-reference.ts @@ -16,6 +16,7 @@ * along with this program. If not, see . */ import { config } from '@/utils/ADempiere/config' + // Get Instance for connection import { request } from '@/utils/ADempiere/request' @@ -40,8 +41,12 @@ export function requestPresignedUrl({ recordId, fileName }) { + let baseURL = config.adempiere.resource.url + if (baseURL.endsWith('/')) { + baseURL = config.adempiere.resource.url.substring(0, baseURL.length - 1) + } return request({ - url: `${config.adempiere.resource.url}presigned-url/${clientId}/${containerId}/${fileName}`, + url: `${baseURL}/presigned-url/${clientId}/${containerId}/${fileName}`, method: 'get', isWithoutAuthorization: true, params: { diff --git a/src/components/ADempiere/ActionMenu/index.vue b/src/components/ADempiere/ActionMenu/index.vue index 34374626cf..c415fcb7d3 100644 --- a/src/components/ADempiere/ActionMenu/index.vue +++ b/src/components/ADempiere/ActionMenu/index.vue @@ -191,17 +191,6 @@ export default defineComponent({ }, setup(props, { root }) { - const currentTab = computed(() => { - const currentRoute = router.app._route - if (currentRoute.meta.type !== 'window') return props.actionsManager - return store.getters.getContainerInfo.currentTab - }) - - const { - containerUuid, - tableName - } = currentTab.value - const isMobile = computed(() => { return store.getters.device === 'mobile' }) @@ -213,7 +202,12 @@ export default defineComponent({ return 'small' }) - const instanceUuid = root.$route.params.instanceUuid + const currentRoute = router.app._route + let instanceUuid + if (currentRoute.params && currentRoute.params.instanceUuid) { + instanceUuid = currentRoute.params.instanceUuid + } + // set initial value const actionsList = computed(() => { if (props.actionsManager && props.actionsManager.getActionList) { @@ -227,7 +221,7 @@ export default defineComponent({ }) const recordUuid = computed(() => { - return store.getters.getUuidOfContainer(containerUuid) + return store.getters.getUuidOfContainer(props.containerUuid) }) const isWithRecord = computed(() => { @@ -235,7 +229,15 @@ export default defineComponent({ }) const isUndoAction = computed(() => { - if (!isEmptyValue(tableName)) { + if (isEmptyValue(recordUuid.value)) { + return false + } + const storedTab = store.getters.getStordTab(props.parentUuid, props.containerUuid) + if (isEmptyValue(storedTab)) { + return false + } + const { table_name } = storedTab + if (!isEmptyValue(table_name)) { if (!isWithRecord.value) { return true } @@ -315,23 +317,21 @@ export default defineComponent({ if (actionName === 'Moreoptions') return store.commit('setShowMenuMobile', true) action[actionName]({ root, - parentUuid: currentTab.value.parentUuid, - containerUuid: containerUuid, // currentTab.value.uuid, + parentUuid: props.parentUuid, + containerUuid: props.containerUuid, // currentTab.value.uuid, containerId: action.containerId, // currentTab.value.uuid, - tableName: currentTab.value.tableName, - tabId: currentTab.value.id, + // : currentTab.value.tableName, + // tabId: currentTab.value.id, instanceUuid, containerManager: props.containerManager, recordUuid: recordUuid.value, - uuid: action.uuid, - currentTab: currentTab.value + uuid: action.uuid }) } /** * Index Space */ - function indexSpace(index, menuList) { return index === (menuList - 1) } diff --git a/src/components/ADempiere/TabManager/index.vue b/src/components/ADempiere/TabManager/index.vue index 933c3e5b72..9d8187c9ed 100644 --- a/src/components/ADempiere/TabManager/index.vue +++ b/src/components/ADempiere/TabManager/index.vue @@ -621,6 +621,7 @@ export default defineComponent({ }, () => {}) }) } + if ( isReadyFromGetData.value || (!isReadyFromGetData.value && ( diff --git a/src/components/ADempiere/TabManager/tabChild.vue b/src/components/ADempiere/TabManager/tabChild.vue index 9e52e4f0ad..8662eacadd 100644 --- a/src/components/ADempiere/TabManager/tabChild.vue +++ b/src/components/ADempiere/TabManager/tabChild.vue @@ -439,7 +439,7 @@ export default defineComponent({ const currentContextAttributes = computed(() => { const contextAttributesList = getContextAttributes({ parentUuid: props.parentUuid, - contextColumnNames: currentTabMetadata.value.contextColumnNames, + contextColumnNames: currentTabMetadata.value.context_column_names, keyName: 'key' }) return generateContextKey(contextAttributesList, 'key') diff --git a/src/store/modules/ADempiere/dictionary/window/actions.js b/src/store/modules/ADempiere/dictionary/window/actions.js index 177cec0550..5c613a0cc2 100644 --- a/src/store/modules/ADempiere/dictionary/window/actions.js +++ b/src/store/modules/ADempiere/dictionary/window/actions.js @@ -513,7 +513,7 @@ export default { description: sequenceTab.description }) - const relatedColumns = sequenceTab.contextColumnNames + const relatedColumns = sequenceTab.context_column_names dispatch('setModalDialog', { containerUuid: sequenceTab.uuid, @@ -553,7 +553,7 @@ export default { parentUuid: windowUuid, containerUuid: tabUuid, tabUuid: sequenceTab.uuid, - contextColumnNames: sequenceTab.contextColumnNames + contextColumnNames: sequenceTab.context_column_names }) if (!isEmptyValue(recordsListSortTab)) { resolve(recordsListSortTab) @@ -562,7 +562,7 @@ export default { dispatch('listTabSequences', { parentUuid: windowUuid, containerUuid: tabUuid, - contextColumnNames: sequenceTab.contextColumnNames, + contextColumnNames: sequenceTab.context_column_names, tabUuid: sequenceTab.uuid }) resolve([]) @@ -590,7 +590,7 @@ export default { return !rootGetters.getTabSequenceIsChanged({ parentUuid: windowUuid, containerUuid: tabAssociatedUuid, - contextColumnNames: sequenceTab.contextColumnNames, + contextColumnNames: sequenceTab.context_column_names, tabUuid: sequenceTab.uuid }) }, @@ -598,7 +598,7 @@ export default { dispatch('discardTabSequenceChanges', { parentUuid: windowUuid, containerUuid: tabUuid, - contextColumnNames: sequenceTab.contextColumnNames, + contextColumnNames: sequenceTab.context_column_names, tabUuid: sequenceTab.uuid }) } @@ -846,7 +846,7 @@ export default { containerManager.getDefaultValue({ parentUuid: fieldDocumentStatus.parentUuid, containerUuid: fieldDocumentStatus.containerUuid, - contextColumnNames: fieldDocumentStatus.contextColumnNames, + contextColumnNames: fieldDocumentStatus.context_column_names, // uuid: fieldDocumentStatus.uuid, id: fieldDocumentStatus.id, diff --git a/src/store/modules/ADempiere/dictionary/window/getters.js b/src/store/modules/ADempiere/dictionary/window/getters.js index 312d9ad618..25190cd62a 100644 --- a/src/store/modules/ADempiere/dictionary/window/getters.js +++ b/src/store/modules/ADempiere/dictionary/window/getters.js @@ -222,7 +222,7 @@ export default { const attributesObject = {} let attributesList = fieldsList .map(fieldItem => { - const { uuid, id, columnName, default_value, contextColumnNames } = fieldItem + const { uuid, id, columnName, default_value, context_column_names } = fieldItem const isSQL = String(default_value).startsWith('@SQL=') && isGetServer const isLinkColumn = !isEmptyValue(link_column_name) && columnName === link_column_name const isParentColumn = fieldItem.isParent || (!isEmptyValue(parent_column_name) && columnName === parent_column_name) @@ -232,7 +232,6 @@ export default { parsedDefaultValue = getContextDefaultValue({ ...fieldItem, parentUuid, - contextColumnNames, isSOTrxDictionary }) } @@ -281,7 +280,7 @@ export default { const storedDefaultValue = rootGetters.getStoredDefaultValue({ parentUuid, containerUuid, - contextColumnNames: contextColumnNames, + contextColumnNames: context_column_names, uuid, value: parsedDefaultValue }) diff --git a/src/store/modules/ADempiere/persistence.js b/src/store/modules/ADempiere/persistence.js index 99fd27f612..91071d6b6c 100644 --- a/src/store/modules/ADempiere/persistence.js +++ b/src/store/modules/ADempiere/persistence.js @@ -412,7 +412,7 @@ const persistence = { const parentValues = getContextAttributes({ parentUuid, containerUuid, - contextColumnNames: tabItem.contextColumnNames + contextColumnNames: tabItem.context_column_names }) dispatch('updateValuesOfContainer', { containerUuid: tabItem.uuid, diff --git a/src/store/modules/ADempiere/windowManager.js b/src/store/modules/ADempiere/windowManager.js index 3417fbcbeb..6fdcc1c21a 100644 --- a/src/store/modules/ADempiere/windowManager.js +++ b/src/store/modules/ADempiere/windowManager.js @@ -60,7 +60,9 @@ const initState = { recordCount: 0, // total number of all records isLoaded: false, // has not been charged the first time isLoading: false, // request currently in progress - pageNumber: 1 // page number of records + pageNumber: 1, // page number of records + pageSize: 15 + } } @@ -228,6 +230,9 @@ const windowManager = { containerUuid, selectionsList }) { + // if (isEmptyValue(state.tabData[containerUuid])) { + // Vue.set(state.tabData, containerUuid, state.emtpyTabData) + // } Vue.set(state.tabData[containerUuid], 'selectionsList', selectionsList) }, @@ -293,7 +298,7 @@ const windowManager = { table_name, link_column_name, parent_column_name, - contextColumnNames + context_column_names } = rootGetters.getStoredTab(parentUuid, containerUuid) if (!isEmptyValue(filters) && typeof filters !== 'object') { @@ -304,7 +309,7 @@ const windowManager = { // add filters with link column name and parent column name if ( !isEmptyValue(link_column_name) && - !contextColumnNames.includes(link_column_name) && + !context_column_names.includes(link_column_name) && !filters.some(filter => filter.columnName === link_column_name) ) { const value = rootGetters.getValueOfField({ @@ -323,7 +328,7 @@ const windowManager = { } if ( !isEmptyValue(parent_column_name) && - !contextColumnNames.includes(parent_column_name && + !context_column_names.includes(parent_column_name && !filters.some(filter => filter.columnName === parent_column_name)) ) { const value = rootGetters.getValueOfField({ @@ -344,12 +349,12 @@ const windowManager = { // get context values const contextAttributesList = getContextAttributes({ parentUuid, - contextColumnNames, + contextColumnNames: context_column_names, keyName: 'key', format: 'object' }) - // const isWithoutValues = contextColumnNames.find(columnName => + // const isWithoutValues = context_column_names.find(columnName => // isEmptyValue(columnName) || // isEmptyValue(contextAttributesList[columnName]) // ) diff --git a/src/utils/ADempiere/resource.js b/src/utils/ADempiere/resource.js index 7fbae2dc53..f67afc42cd 100644 --- a/src/utils/ADempiere/resource.js +++ b/src/utils/ADempiere/resource.js @@ -20,7 +20,10 @@ // related to upload to server side and downdload from server side to client side. // Please add the necessary functions here: import { config } from '@/utils/ADempiere/config' + +// Get Instance for connection import { request } from '@/utils/ADempiere/request' + // Constants import { BEARER_TYPE } from '@/utils/auth' @@ -143,8 +146,12 @@ function getImageUrl({ width, height }) { + let baseUrl = config.adempiere.images.url + if (baseUrl.endsWith('/')) { + baseUrl = config.adempiere.images.url.substring(0, baseUrl.length - 1) + } return request({ - url: `${config.adempiere.images.url}/resources/file-name/${file}`, + url: `${baseUrl}/resources/file-name/${file}`, method: 'get', params: { width,