fix: Update the search if a field with value is hidden or showed. (#307)
parent
6837cc19b4
commit
f6e7118846
|
@ -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) {
|
itemField.isShowedFromUser = false
|
||||||
if (fieldsUser.length && fieldsUser.includes(itemField.columnName)) {
|
if (fieldsUser.includes(itemField.columnName)) {
|
||||||
// if it isShowedFromUser it is false, and it has some value, it means
|
itemField.isShowedFromUser = true
|
||||||
// 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 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) ||
|
|
||||||
(isAdvancedQuery && ['NULL', 'NOT_NULL'].includes(itemField.operator))) {
|
|
||||||
hiddenFieldsWithValue = true
|
|
||||||
}
|
|
||||||
if (isAdvancedQuery) {
|
|
||||||
itemField.isShowedFromUser = false
|
|
||||||
}
|
|
||||||
itemField.isShowedFromUser = false
|
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
if (itemField.groupAssigned === groupField) {
|
|
||||||
if (fieldsUser.length && fieldsUser.includes(itemField.columnName)) {
|
if (!isChangedDisplayedWithValue) {
|
||||||
// if it isShowedFromUser it is false, and it has some value, it means
|
// if isShowedFromUser was changed, and field has some value, the SmartBrowser
|
||||||
// that it is going to show, therefore the SmartBrowser must be searched
|
// or AdvancedQuery must send the parameters to update the search result
|
||||||
if ((!isEmptyValue(itemField.value) && !itemField.isShowedFromUser) ||
|
if ((isShowedOriginal !== itemField.isShowedFromUser && !isEmptyValue(itemField.value)) ||
|
||||||
(isAdvancedQuery && ['NULL', 'NOT_NULL'].includes(itemField.operator))) {
|
(isAdvancedQuery && ['NULL', 'NOT_NULL'].includes(itemField.operator))) {
|
||||||
showsFieldsWithValue = true
|
isChangedDisplayedWithValue = 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
|
||||||
})
|
})
|
||||||
|
|
|
@ -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({
|
||||||
|
|
Loading…
Reference in New Issue