* fix: Add Smart Browser validation to research with mandatory parameters. * Delete duplicated code.pull/3759/head
parent
d55e7b7d4d
commit
ac4b0df91c
|
@ -1,4 +1,4 @@
|
|||
import { showNotification } from '@/utils/ADempiere/notification'
|
||||
import { showNotification, showMessage } from '@/utils/ADempiere/notification'
|
||||
import Item from './items'
|
||||
import { convertFieldListToShareLink, recursiveTreeSearch } from '@/utils/ADempiere/valueUtils'
|
||||
import { supportedTypes, exportFileFromJson } from '@/utils/ADempiere/exportUtil'
|
||||
|
@ -195,6 +195,7 @@ export const contextMixin = {
|
|||
this.getReferences()
|
||||
},
|
||||
methods: {
|
||||
showMessage,
|
||||
showNotification,
|
||||
actionContextMenu(event) {
|
||||
switch (event.srcKey) {
|
||||
|
@ -217,35 +218,9 @@ export const contextMixin = {
|
|||
})
|
||||
break
|
||||
case 'f5':
|
||||
if (this.panelType === 'window') {
|
||||
this.$store.dispatch('getDataListTab', {
|
||||
parentUuid: this.parentUuid,
|
||||
containerUuid: this.containerUuid,
|
||||
isRefreshPanel: true,
|
||||
recordUuid: this.recordUuid
|
||||
})
|
||||
} else if (this.panelType === 'browser') {
|
||||
this.$store.dispatch('getBrowserSearch', {
|
||||
containerUuid: this.containerUuid,
|
||||
isClearSelection: true
|
||||
})
|
||||
}
|
||||
this.refreshData()
|
||||
break
|
||||
}
|
||||
// this.$store.dispatch('resetPanelToNew', {
|
||||
// parentUuid: this.parentUuid,
|
||||
// containerUuid: this.containerUuid,
|
||||
// recordUuid: this.recordUuid,
|
||||
// panelType: 'window',
|
||||
// isNewRecord: true
|
||||
// })
|
||||
// this.$store.dispatch('deleteEntity', {
|
||||
// parentUuid: this.parentUuid,
|
||||
// containerUuid: this.containerUuid,
|
||||
// recordUuid: this.recordUuid,
|
||||
// panelType: 'window',
|
||||
// isNewRecord: false
|
||||
// })
|
||||
},
|
||||
refreshData() {
|
||||
if (this.panelType === 'window') {
|
||||
|
@ -256,10 +231,21 @@ export const contextMixin = {
|
|||
recordUuid: this.recordUuid
|
||||
})
|
||||
} else if (this.panelType === 'browser') {
|
||||
this.$store.dispatch('getBrowserSearch', {
|
||||
const fieldsEmpty = this.$store.getters.getFieldListEmptyMandatory({
|
||||
containerUuid: this.containerUuid,
|
||||
isClearSelection: true
|
||||
fieldsList: this.getterFieldList
|
||||
})
|
||||
if (fieldsEmpty.length) {
|
||||
this.showMessage({
|
||||
message: this.$t('notifications.mandatoryFieldMissing') + fieldsEmpty,
|
||||
type: 'info'
|
||||
})
|
||||
} else {
|
||||
this.$store.dispatch('getBrowserSearch', {
|
||||
containerUuid: this.containerUuid,
|
||||
isClearSelection: true
|
||||
})
|
||||
}
|
||||
}
|
||||
},
|
||||
getReferences() {
|
||||
|
|
|
@ -67,13 +67,18 @@ const browser = {
|
|||
field.isShowedFromUser = true
|
||||
}
|
||||
|
||||
// Only isQueryCriteria fields, displayed in main panel
|
||||
if (field.isQueryCriteria && !isEmptyValue(field.value) && String(field.value) !== '-1') {
|
||||
field.isShowedFromUser = true
|
||||
// Only isQueryCriteria fields with values, displayed in main panel
|
||||
if (field.isQueryCriteria) {
|
||||
if (isEmptyValue(field.value)) {
|
||||
// isMandatory params to showed search criteria
|
||||
if (field.isMandatory || field.isMandatoryFromLogic) {
|
||||
isMandatoryParams = true
|
||||
}
|
||||
} else {
|
||||
field.isShowedFromUser = true
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: Evaluate if not change when iterate
|
||||
isMandatoryParams = field.isMandatory
|
||||
return field
|
||||
})
|
||||
fieldsList = fieldsList.concat(fieldsRangeList)
|
||||
|
@ -83,7 +88,7 @@ const browser = {
|
|||
.filter(field => field.parentFieldsList && field.isActive)
|
||||
.forEach((field, index, list) => {
|
||||
field.parentFieldsList.forEach(parentColumnName => {
|
||||
var parentField = list.find(parentField => {
|
||||
const parentField = list.find(parentField => {
|
||||
return parentField.columnName === parentColumnName && parentColumnName !== field.columnName
|
||||
})
|
||||
if (parentField) {
|
||||
|
@ -124,11 +129,10 @@ const browser = {
|
|||
// Panel for save on store
|
||||
const newBrowser = {
|
||||
...browserResponse,
|
||||
containerUuid: browserResponse.uuid,
|
||||
containerUuid,
|
||||
fieldList: fieldsList,
|
||||
panelType,
|
||||
// app attributes
|
||||
isMandatoryParams,
|
||||
isShowedCriteria: Boolean(fieldsList.length && isMandatoryParams),
|
||||
isShowedTotals: true
|
||||
}
|
||||
|
|
|
@ -731,7 +731,8 @@ const panel = {
|
|||
}
|
||||
// Default Value
|
||||
if (fieldDependent.defaultValue.trim() !== '' &&
|
||||
fieldDependent.defaultValue.includes('@')) {
|
||||
fieldDependent.defaultValue.includes('@') &&
|
||||
String(fieldDependent.defaultValue).trim() !== '-1') {
|
||||
defaultValue = parseContext({
|
||||
parentUuid,
|
||||
containerUuid,
|
||||
|
|
|
@ -30,19 +30,21 @@ export function generateField(fieldToGenerate, moreAttributes, typeRange = false
|
|||
value: parsedDefaultValue
|
||||
}).value
|
||||
}
|
||||
if (isEmptyValue(parsedDefaultValue)) {
|
||||
if (isEmptyValue(parsedDefaultValue) && String(parsedDefaultValue).trim() !== '-1') {
|
||||
parsedDefaultValue = getPreference({
|
||||
parentUuid: fieldToGenerate.parentUuid,
|
||||
containerUuid: fieldToGenerate.containerUuid,
|
||||
columnName: fieldToGenerate.columnName
|
||||
})
|
||||
}
|
||||
if (isEmptyValue(parsedDefaultValue) && !isEmptyValue(fieldToGenerate.elementName)) {
|
||||
parsedDefaultValue = getPreference({
|
||||
parentUuid: fieldToGenerate.parentUuid,
|
||||
containerUuid: fieldToGenerate.containerUuid,
|
||||
columnName: fieldToGenerate.elementName
|
||||
})
|
||||
|
||||
// search value preference with elementName
|
||||
if (isEmptyValue(parsedDefaultValue) && !isEmptyValue(fieldToGenerate.elementName)) {
|
||||
parsedDefaultValue = getPreference({
|
||||
parentUuid: fieldToGenerate.parentUuid,
|
||||
containerUuid: fieldToGenerate.containerUuid,
|
||||
columnName: fieldToGenerate.elementName
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
parsedDefaultValue = parsedValueComponent({
|
||||
|
@ -63,19 +65,21 @@ export function generateField(fieldToGenerate, moreAttributes, typeRange = false
|
|||
value: parsedDefaultValueTo
|
||||
}).value
|
||||
}
|
||||
if (isEmptyValue(parsedDefaultValueTo)) {
|
||||
if (isEmptyValue(parsedDefaultValueTo) && String(parsedDefaultValueTo).trim() !== '-1') {
|
||||
parsedDefaultValueTo = getPreference({
|
||||
parentUuid: fieldToGenerate.parentUuid,
|
||||
containerUuid: fieldToGenerate.containerUuid,
|
||||
columnName: `${fieldToGenerate.columnName}_To`
|
||||
})
|
||||
}
|
||||
if (isEmptyValue(parsedDefaultValueTo) && !isEmptyValue(fieldToGenerate.elementName)) {
|
||||
parsedDefaultValueTo = getPreference({
|
||||
parentUuid: fieldToGenerate.parentUuid,
|
||||
containerUuid: fieldToGenerate.containerUuid,
|
||||
columnName: `${fieldToGenerate.elementName}_To`
|
||||
})
|
||||
|
||||
// search value preference with elementName
|
||||
if (isEmptyValue(parsedDefaultValueTo) && !isEmptyValue(fieldToGenerate.elementName)) {
|
||||
parsedDefaultValueTo = getPreference({
|
||||
parentUuid: fieldToGenerate.parentUuid,
|
||||
containerUuid: fieldToGenerate.containerUuid,
|
||||
columnName: `${fieldToGenerate.elementName}_To`
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
parsedDefaultValueTo = parsedValueComponent({
|
||||
|
@ -101,9 +105,9 @@ export function generateField(fieldToGenerate, moreAttributes, typeRange = false
|
|||
parsedDefaultValue,
|
||||
parsedDefaultValueTo,
|
||||
// logics to app
|
||||
isDisplayedFromLogic: Boolean(fieldToGenerate.isDisplayed),
|
||||
isReadOnlyFromLogic: Boolean(fieldToGenerate.isReadOnly),
|
||||
isMandatoryFromLogic: Boolean(fieldToGenerate.isMandatory),
|
||||
isDisplayedFromLogic: fieldToGenerate.isDisplayed,
|
||||
isReadOnlyFromLogic: false,
|
||||
isMandatoryFromLogic: false,
|
||||
//
|
||||
parentFieldsList: [],
|
||||
dependentFieldsList: [],
|
||||
|
|
|
@ -10,7 +10,7 @@ import { convertValueFromGRPC } from '@/api/ADempiere/data'
|
|||
export function isEmptyValue(value) {
|
||||
if (value === undefined || value == null) {
|
||||
return true
|
||||
} else if (value === -1 || value === '-1') {
|
||||
} else if (value === -1 || String(value).trim() === '-1') {
|
||||
return true
|
||||
} else if (typeof value === 'string') {
|
||||
return Boolean(!value.trim().length)
|
||||
|
|
Loading…
Reference in New Issue