fix: Fix the display column of the lookup when it has a default value. (#216)

pull/3759/head
EdwinBetanc0urt 2020-01-13 18:16:01 -04:00 committed by Yamel Senih
parent d7745092f9
commit 1ecd55d1e0
3 changed files with 80 additions and 43 deletions

View File

@ -99,13 +99,6 @@ export default {
} }
}, },
watch: { watch: {
isLoading(value) {
if (value) {
this.value = ''
} else {
this.value = this.metadata.displayColumn
}
},
valueModel(value) { valueModel(value) {
if (this.metadata.inTable) { if (this.metadata.inTable) {
this.value = value 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) { getDataLookupList(isShowList) {
if (showList) { if (isShowList) {
// TODO: Evaluate if length = 1 and this element key = blanckOption // TODO: Evaluate if length = 1 and this element key = blanckOption
if (this.getterLookupList.length === 0) { if (this.getterLookupList.length === 0) {
this.remoteMethod() this.remoteMethod()

View File

@ -102,10 +102,10 @@ const context = {
state.context state.context
}, },
getContextClientId: (state) => { getContextClientId: (state) => {
return state.context['#AD_Client_ID'] return parseInt(state.context['#AD_Client_ID'], 10)
}, },
getContextOrgId: (state) => { getContextOrgId: (state) => {
return state.context['#AD_Org_ID'] return parseInt(state.context['#AD_Org_ID'], 10)
}, },
// Using to read only in data tables // Using to read only in data tables
getContextIsActive: (state) => (parentUuid) => { getContextIsActive: (state) => (parentUuid) => {

View File

@ -19,8 +19,13 @@ const lookup = {
} }
}, },
actions: { actions: {
getLookupItemFromServer({ commit, rootGetters }, parameters) { getLookupItemFromServer({ commit, rootGetters }, {
const { parentUuid, containerUuid, value, tableName, directQuery } = parameters parentUuid,
containerUuid,
tableName,
directQuery,
value
}) {
if (isEmptyValue(directQuery)) { if (isEmptyValue(directQuery)) {
return return
} }
@ -54,7 +59,7 @@ const lookup = {
parsedDirectQuery: directQuery, parsedDirectQuery: directQuery,
tableName: tableName, tableName: tableName,
roleUuid: getCurrentRole(), roleUuid: getCurrentRole(),
clientId: parseInt(rootGetters.getContextClientId) clientId: rootGetters.getContextClientId
}) })
return option return option
}) })
@ -66,8 +71,12 @@ const lookup = {
* tableName, * tableName,
* query * query
*/ */
getLookupListFromServer({ commit, rootGetters }, parameters) { getLookupListFromServer({ commit, rootGetters }, {
const { parentUuid, containerUuid, tableName, query } = parameters parentUuid,
containerUuid,
tableName,
query
}) {
if (isEmptyValue(query)) { if (isEmptyValue(query)) {
return return
} }
@ -102,7 +111,7 @@ const lookup = {
tableName: tableName, tableName: tableName,
parsedQuery: parsedQuery, parsedQuery: parsedQuery,
roleUuid: getCurrentRole(), roleUuid: getCurrentRole(),
clientId: parseInt(rootGetters.getContextClientId) clientId: rootGetters.getContextClientId
}) })
return options return options
}) })
@ -110,19 +119,24 @@ const lookup = {
console.warn('Get Lookup List, Select Base - Error ' + error.code + ': ' + error.message) console.warn('Get Lookup List, Select Base - Error ' + error.code + ': ' + error.message)
}) })
}, },
deleteLookupList({ commit, state }, params) { deleteLookupList({ commit, state }, {
const { parentUuid, containerUuid, tableName, query, directQuery, value } = params parentUuid,
containerUuid,
tableName,
query,
directQuery,
value
}) {
let parsedDirectQuery = directQuery let parsedDirectQuery = directQuery
if (directQuery && parsedDirectQuery.includes('@')) { if (directQuery && parsedDirectQuery.includes('@')) {
parsedDirectQuery = parseContext({ parsedDirectQuery = parseContext({
parentUuid: parentUuid, parentUuid,
containerUuid: containerUuid, containerUuid,
value: parsedDirectQuery value: parsedDirectQuery
}, true) }, true)
} }
const lookupItem = state.lookupItem.filter(itemLookup => { const lookupItem = state.lookupItem.filter(itemLookup => {
return itemLookup.parsedDirectQuery !== params.parsedDirectQuery && return itemLookup.parsedDirectQuery !== parsedDirectQuery &&
itemLookup.tableName !== tableName && itemLookup.tableName !== tableName &&
itemLookup.value !== value && itemLookup.value !== value &&
itemLookup.roleUuid !== getCurrentRole() itemLookup.roleUuid !== getCurrentRole()
@ -148,41 +162,52 @@ const lookup = {
} }
}, },
getters: { getters: {
getLookupItem: (state, getters, rootState, rootGetters) => (params) => { getLookupItem: (state, getters, rootState, rootGetters) => ({
let parsedDirectQuery = params.directQuery parentUuid,
containerUuid,
tableName,
directQuery,
value
}) => {
let parsedDirectQuery = directQuery
if (parsedDirectQuery && parsedDirectQuery.includes('@')) { if (parsedDirectQuery && parsedDirectQuery.includes('@')) {
parsedDirectQuery = parseContext({ parsedDirectQuery = parseContext({
parentUuid: params.parentUuid, parentUuid,
containerUuid: params.containerUuid, containerUuid,
value: parsedDirectQuery value: parsedDirectQuery
}, true) }, true)
} }
const lookupItem = state.lookupItem.find(itemLookup => { const lookupItem = state.lookupItem.find(itemLookup => {
return itemLookup.parsedDirectQuery === parsedDirectQuery && return itemLookup.parsedDirectQuery === parsedDirectQuery &&
itemLookup.tableName === params.tableName && itemLookup.tableName === tableName &&
itemLookup.roleUuid === getCurrentRole() && itemLookup.roleUuid === getCurrentRole() &&
itemLookup.clientId === parseInt(rootGetters.getContextClientId) && itemLookup.clientId === rootGetters.getContextClientId &&
itemLookup.value === params.value itemLookup.value === value
}) })
if (lookupItem) { if (lookupItem) {
return lookupItem.option return lookupItem.option
} }
return undefined return undefined
}, },
getLookupList: (state, getters, rootState, rootGetters) => (params) => { getLookupList: (state, getters, rootState, rootGetters) => ({
let parsedQuery = params.query parentUuid,
containerUuid,
tableName,
query
}) => {
let parsedQuery = query
if (parsedQuery && parsedQuery.includes('@')) { if (parsedQuery && parsedQuery.includes('@')) {
parsedQuery = parseContext({ parsedQuery = parseContext({
parentUuid: params.parentUuid, parentUuid,
containerUuid: params.containerUuid, containerUuid,
value: parsedQuery value: parsedQuery
}, true) }, true)
} }
const lookupList = state.lookupList.find(itemLookup => { const lookupList = state.lookupList.find(itemLookup => {
return itemLookup.parsedQuery === parsedQuery && return itemLookup.parsedQuery === parsedQuery &&
itemLookup.tableName === params.tableName && itemLookup.tableName === tableName &&
itemLookup.roleUuid === getCurrentRole() && itemLookup.roleUuid === getCurrentRole() &&
itemLookup.clientId === parseInt(rootGetters.getContextClientId) itemLookup.clientId === rootGetters.getContextClientId
}) })
if (lookupList) { if (lookupList) {
const resultLookup = lookupList.list.filter(lookup => { const resultLookup = lookupList.list.filter(lookup => {
@ -195,15 +220,34 @@ const lookup = {
return [] return []
}, },
/** /**
* * Get all lookups, item and list joined
*/ */
getLookupAll: (state, getters, rootState, rootGetters) => (parameters) => { getLookupAll: (state, getters) => ({
const item = getters.getLookupItem(parameters) parentUuid,
const list = getters.getLookupList(parameters) 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)) { if (item && !list.find(itemLookup => itemLookup.key === item.key)) {
list.push(item) allList.push(item)
} }
return list return allList
} }
} }
} }