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: {
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()

View File

@ -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) => {

View File

@ -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
}
}
}