fix: Update the search if a field with value is hidden or showed. (#307)

pull/3759/head
EdwinBetanc0urt 2020-02-05 19:12:47 -04:00 committed by GitHub
parent 6837cc19b4
commit f6e7118846
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 53 deletions

View File

@ -138,77 +138,41 @@ const panel = {
}) { }) {
const panel = getters.getPanel(containerUuid, isAdvancedQuery) const panel = getters.getPanel(containerUuid, isAdvancedQuery)
const newPanel = panel const newPanel = panel
let showsFieldsWithValue = false let isChangedDisplayedWithValue = false
let hiddenFieldsWithValue = false
newPanel.fieldList = panel.fieldList.map(itemField => { newPanel.fieldList = panel.fieldList.map(itemField => {
const isMandatory = itemField.isMandatory || itemField.isMandatoryFromLogic const isShowedOriginal = itemField.isShowedFromUser
if (!isMandatory && fieldIsDisplayed(itemField)) { if (groupField === itemField.groupAssigned) {
if (isAdvancedQuery || itemField.groupAssigned === groupField) {
if (fieldsUser.length && fieldsUser.includes(itemField.columnName)) {
// if it isShowedFromUser it is false, and it has some value, it means
// that it is going to show, therefore the SmartBrowser must be searched
if ((!isEmptyValue(itemField.value) && !itemField.isShowedFromUser) ||
(isAdvancedQuery && ['NULL', 'NOT_NULL'].includes(itemField.operator))) {
showsFieldsWithValue = true
}
if (isAdvancedQuery) {
itemField.isShowedFromUser = false itemField.isShowedFromUser = false
} if (fieldsUser.includes(itemField.columnName)) {
itemField.isShowedFromUser = true itemField.isShowedFromUser = true
return itemField
} }
// if it isShowedFromUser it is true, and it has some value, it means }
// that it is going to hidden, therefore the SmartBrowser must be searched
if ((!isEmptyValue(itemField.value) && itemField.isShowedFromUser) || if (!isChangedDisplayedWithValue) {
// if isShowedFromUser was changed, and field has some value, the SmartBrowser
// or AdvancedQuery must send the parameters to update the search result
if ((isShowedOriginal !== itemField.isShowedFromUser && !isEmptyValue(itemField.value)) ||
(isAdvancedQuery && ['NULL', 'NOT_NULL'].includes(itemField.operator))) { (isAdvancedQuery && ['NULL', 'NOT_NULL'].includes(itemField.operator))) {
hiddenFieldsWithValue = true isChangedDisplayedWithValue = true
}
if (isAdvancedQuery) {
itemField.isShowedFromUser = false
}
itemField.isShowedFromUser = false
}
} else {
if (itemField.groupAssigned === groupField) {
if (fieldsUser.length && fieldsUser.includes(itemField.columnName)) {
// if it isShowedFromUser it is false, and it has some value, it means
// that it is going to show, therefore the SmartBrowser must be searched
if ((!isEmptyValue(itemField.value) && !itemField.isShowedFromUser) ||
(isAdvancedQuery && ['NULL', 'NOT_NULL'].includes(itemField.operator))) {
showsFieldsWithValue = true
}
if (isAdvancedQuery) {
itemField.isShowedFromUser = false
}
itemField.isShowedFromUser = true
return itemField
}
if ((!isEmptyValue(itemField.value) && itemField.isShowedFromUser) ||
(isAdvancedQuery && ['NULL', 'NOT_NULL'].includes(itemField.operator))) {
hiddenFieldsWithValue = true
}
if (isAdvancedQuery) {
itemField.isShowedFromUser = false
}
itemField.isShowedFromUser = false
} }
} }
return itemField return itemField
}) })
commit('changePanel', { commit('changePanel', {
containerUuid, containerUuid,
panel, panel,
newPanel newPanel
}) })
if (showsFieldsWithValue || hiddenFieldsWithValue) { if (isChangedDisplayedWithValue) {
// Updated record result // Updated record result
if (panel.panelType === 'browser') { if (panel.panelType === 'browser') {
dispatch('getBrowserSearch', { dispatch('getBrowserSearch', {
containerUuid, containerUuid,
isClearSelection: true isClearSelection: true
}) })
} else if (panel.panelType === 'table' && panel.isAdvancedQuery) { } else if (panel.panelType === 'table' || panel.isAdvancedQuery) {
dispatch('getObjectListFromCriteria', { dispatch('getObjectListFromCriteria', {
parentUuid: panel.parentUuid, parentUuid: panel.parentUuid,
containerUuid, containerUuid,
@ -837,6 +801,7 @@ const panel = {
return dispatch(executeAction, { return dispatch(executeAction, {
parentUuid, parentUuid,
containerUuid, containerUuid,
panelType,
isAdvancedQuery, isAdvancedQuery,
routeToDelete routeToDelete
}) })

View File

@ -118,6 +118,11 @@ export function generateField(fieldToGenerate, moreAttributes, typeRange = false
defaultOperator: 'EQUAL' defaultOperator: 'EQUAL'
} }
if (moreAttributes.isAdvancedQuery && ['FieldText', 'FieldTextLong'].includes(field.componentPath)) {
field.operator = 'LIKE'
field.defaultOperator = 'LIKE'
}
// evaluate simple logics without context // evaluate simple logics without context
if (field.displayLogic.trim() !== '' && !field.displayLogic.includes('@')) { if (field.displayLogic.trim() !== '' && !field.displayLogic.includes('@')) {
field.isDisplayedFromLogic = evaluator.evaluateLogic({ field.isDisplayedFromLogic = evaluator.evaluateLogic({