From 1ecd55d1e01c48c73b4a14a85ee52e4aa0907d71 Mon Sep 17 00:00:00 2001 From: EdwinBetanc0urt Date: Mon, 13 Jan 2020 18:16:01 -0400 Subject: [PATCH] fix: Fix the display column of the lookup when it has a default value. (#216) --- .../ADempiere/Field/FieldSelect.vue | 13 +-- src/store/modules/ADempiere/context.js | 4 +- src/store/modules/ADempiere/lookup.js | 106 +++++++++++++----- 3 files changed, 80 insertions(+), 43 deletions(-) diff --git a/src/components/ADempiere/Field/FieldSelect.vue b/src/components/ADempiere/Field/FieldSelect.vue index 5c7dee98..fba344dd 100644 --- a/src/components/ADempiere/Field/FieldSelect.vue +++ b/src/components/ADempiere/Field/FieldSelect.vue @@ -99,13 +99,6 @@ export default { } }, watch: { - isLoading(value) { - if (value) { - this.value = '' - } else { - this.value = this.metadata.displayColumn - } - }, valueModel(value) { if (this.metadata.inTable) { this.value = value @@ -192,10 +185,10 @@ export default { }) }, /** - * @param {boolean} show triggers when the pull-down menu appears or disappears + * @param {boolean} isShowList triggers when the pull-down menu appears or disappears */ - getDataLookupList(showList) { - if (showList) { + getDataLookupList(isShowList) { + if (isShowList) { // TODO: Evaluate if length = 1 and this element key = blanckOption if (this.getterLookupList.length === 0) { this.remoteMethod() diff --git a/src/store/modules/ADempiere/context.js b/src/store/modules/ADempiere/context.js index 6424eb48..4ca9d807 100644 --- a/src/store/modules/ADempiere/context.js +++ b/src/store/modules/ADempiere/context.js @@ -102,10 +102,10 @@ const context = { state.context }, getContextClientId: (state) => { - return state.context['#AD_Client_ID'] + return parseInt(state.context['#AD_Client_ID'], 10) }, getContextOrgId: (state) => { - return state.context['#AD_Org_ID'] + return parseInt(state.context['#AD_Org_ID'], 10) }, // Using to read only in data tables getContextIsActive: (state) => (parentUuid) => { diff --git a/src/store/modules/ADempiere/lookup.js b/src/store/modules/ADempiere/lookup.js index f5732a6a..e9b27464 100644 --- a/src/store/modules/ADempiere/lookup.js +++ b/src/store/modules/ADempiere/lookup.js @@ -19,8 +19,13 @@ const lookup = { } }, actions: { - getLookupItemFromServer({ commit, rootGetters }, parameters) { - const { parentUuid, containerUuid, value, tableName, directQuery } = parameters + getLookupItemFromServer({ commit, rootGetters }, { + parentUuid, + containerUuid, + tableName, + directQuery, + value + }) { if (isEmptyValue(directQuery)) { return } @@ -54,7 +59,7 @@ const lookup = { parsedDirectQuery: directQuery, tableName: tableName, roleUuid: getCurrentRole(), - clientId: parseInt(rootGetters.getContextClientId) + clientId: rootGetters.getContextClientId }) return option }) @@ -66,8 +71,12 @@ const lookup = { * tableName, * query */ - getLookupListFromServer({ commit, rootGetters }, parameters) { - const { parentUuid, containerUuid, tableName, query } = parameters + getLookupListFromServer({ commit, rootGetters }, { + parentUuid, + containerUuid, + tableName, + query + }) { if (isEmptyValue(query)) { return } @@ -102,7 +111,7 @@ const lookup = { tableName: tableName, parsedQuery: parsedQuery, roleUuid: getCurrentRole(), - clientId: parseInt(rootGetters.getContextClientId) + clientId: rootGetters.getContextClientId }) return options }) @@ -110,19 +119,24 @@ const lookup = { console.warn('Get Lookup List, Select Base - Error ' + error.code + ': ' + error.message) }) }, - deleteLookupList({ commit, state }, params) { - const { parentUuid, containerUuid, tableName, query, directQuery, value } = params - + deleteLookupList({ commit, state }, { + parentUuid, + containerUuid, + tableName, + query, + directQuery, + value + }) { let parsedDirectQuery = directQuery if (directQuery && parsedDirectQuery.includes('@')) { parsedDirectQuery = parseContext({ - parentUuid: parentUuid, - containerUuid: containerUuid, + parentUuid, + containerUuid, value: parsedDirectQuery }, true) } const lookupItem = state.lookupItem.filter(itemLookup => { - return itemLookup.parsedDirectQuery !== params.parsedDirectQuery && + return itemLookup.parsedDirectQuery !== parsedDirectQuery && itemLookup.tableName !== tableName && itemLookup.value !== value && itemLookup.roleUuid !== getCurrentRole() @@ -148,41 +162,52 @@ const lookup = { } }, getters: { - getLookupItem: (state, getters, rootState, rootGetters) => (params) => { - let parsedDirectQuery = params.directQuery + getLookupItem: (state, getters, rootState, rootGetters) => ({ + parentUuid, + containerUuid, + tableName, + directQuery, + value + }) => { + let parsedDirectQuery = directQuery if (parsedDirectQuery && parsedDirectQuery.includes('@')) { parsedDirectQuery = parseContext({ - parentUuid: params.parentUuid, - containerUuid: params.containerUuid, + parentUuid, + containerUuid, value: parsedDirectQuery }, true) } const lookupItem = state.lookupItem.find(itemLookup => { return itemLookup.parsedDirectQuery === parsedDirectQuery && - itemLookup.tableName === params.tableName && + itemLookup.tableName === tableName && itemLookup.roleUuid === getCurrentRole() && - itemLookup.clientId === parseInt(rootGetters.getContextClientId) && - itemLookup.value === params.value + itemLookup.clientId === rootGetters.getContextClientId && + itemLookup.value === value }) if (lookupItem) { return lookupItem.option } return undefined }, - getLookupList: (state, getters, rootState, rootGetters) => (params) => { - let parsedQuery = params.query + getLookupList: (state, getters, rootState, rootGetters) => ({ + parentUuid, + containerUuid, + tableName, + query + }) => { + let parsedQuery = query if (parsedQuery && parsedQuery.includes('@')) { parsedQuery = parseContext({ - parentUuid: params.parentUuid, - containerUuid: params.containerUuid, + parentUuid, + containerUuid, value: parsedQuery }, true) } const lookupList = state.lookupList.find(itemLookup => { return itemLookup.parsedQuery === parsedQuery && - itemLookup.tableName === params.tableName && + itemLookup.tableName === tableName && itemLookup.roleUuid === getCurrentRole() && - itemLookup.clientId === parseInt(rootGetters.getContextClientId) + itemLookup.clientId === rootGetters.getContextClientId }) if (lookupList) { const resultLookup = lookupList.list.filter(lookup => { @@ -195,15 +220,34 @@ const lookup = { return [] }, /** - * + * Get all lookups, item and list joined */ - getLookupAll: (state, getters, rootState, rootGetters) => (parameters) => { - const item = getters.getLookupItem(parameters) - const list = getters.getLookupList(parameters) + getLookupAll: (state, getters) => ({ + parentUuid, + containerUuid, + tableName, + query, + directQuery, + value + }) => { + const item = getters.getLookupItem({ + parentUuid, + containerUuid, + tableName, + directQuery, + value + }) + const list = getters.getLookupList({ + parentUuid, + containerUuid, + tableName, + query + }) + const allList = list if (item && !list.find(itemLookup => itemLookup.key === item.key)) { - list.push(item) + allList.push(item) } - return list + return allList } } }