diff --git a/src/components/ADempiere/Field/FieldNumber.vue b/src/components/ADempiere/Field/FieldNumber.vue index 279178e6..304410e3 100644 --- a/src/components/ADempiere/Field/FieldNumber.vue +++ b/src/components/ADempiere/Field/FieldNumber.vue @@ -1,17 +1,23 @@ + diff --git a/src/components/ADempiere/Field/fieldPopovers/fieldContextInfo.vue b/src/components/ADempiere/Field/popover/contextInfo.vue similarity index 100% rename from src/components/ADempiere/Field/fieldPopovers/fieldContextInfo.vue rename to src/components/ADempiere/Field/popover/contextInfo.vue diff --git a/src/components/ADempiere/Field/fieldPopovers/fieldDocumentStatus.vue b/src/components/ADempiere/Field/popover/documentStatus.vue similarity index 100% rename from src/components/ADempiere/Field/fieldPopovers/fieldDocumentStatus.vue rename to src/components/ADempiere/Field/popover/documentStatus.vue diff --git a/src/components/ADempiere/Field/fieldPopovers/fieldOperatorComparison.vue b/src/components/ADempiere/Field/popover/operatorComparison.vue similarity index 100% rename from src/components/ADempiere/Field/fieldPopovers/fieldOperatorComparison.vue rename to src/components/ADempiere/Field/popover/operatorComparison.vue diff --git a/src/components/ADempiere/Field/fieldPopovers/fieldTranslated.vue b/src/components/ADempiere/Field/popover/translated.vue similarity index 100% rename from src/components/ADempiere/Field/fieldPopovers/fieldTranslated.vue rename to src/components/ADempiere/Field/popover/translated.vue diff --git a/src/store/modules/ADempiere/data.js b/src/store/modules/ADempiere/data.js index 7c9f15e2..075dfdd4 100644 --- a/src/store/modules/ADempiere/data.js +++ b/src/store/modules/ADempiere/data.js @@ -290,11 +290,13 @@ const data = { value: valueGetDisplayColumn }) .then(responseLookup => { - dispatch('addDisplayColumn', { - containerUuid, - columnName: itemField.columnName, - displayColumn: responseLookup.label - }) + if (responseLookup) { + dispatch('addDisplayColumn', { + containerUuid, + columnName: itemField.columnName, + displayColumn: responseLookup.label + }) + } }) }) } @@ -626,12 +628,14 @@ const data = { value: valueToReturn.key }) .then(responseLookup => { - valueToReturn.label = responseLookup.label - dispatch('addDisplayColumn', { - containerUuid: field.containerUuid, - columnName: field.columnName, - displayColumn: responseLookup.label - }) + if (responseLookup) { + valueToReturn.label = responseLookup.label + dispatch('addDisplayColumn', { + containerUuid: field.containerUuid, + columnName: field.columnName, + displayColumn: responseLookup.label + }) + } }) } resolve(valueToReturn) diff --git a/src/store/modules/ADempiere/panel.js b/src/store/modules/ADempiere/panel.js index 765932b2..cadc5398 100644 --- a/src/store/modules/ADempiere/panel.js +++ b/src/store/modules/ADempiere/panel.js @@ -407,22 +407,24 @@ const panel = { value: newValues[actionField.columnName] }) .then(response => { - dispatch('notifyFieldChange', { - isSendToServer, - isSendCallout, - isAdvancedQuery, - panelType, - parentUuid, - containerUuid, - columnName: actionField.columnName, - displayColumn: response.label, - newValue: newValues[actionField.columnName], - valueTo: newValues[`${actionField.columnName}_To`], - fieldList, - field: actionField, - withOutColumnNames, - isChangedOldValue: true // defines if set oldValue with newValue instead of current value - }) + if (!isEmptyValue(response)) { + dispatch('notifyFieldChange', { + isSendToServer, + isSendCallout, + isAdvancedQuery, + panelType, + parentUuid, + containerUuid, + columnName: actionField.columnName, + displayColumn: response.label, + newValue: newValues[actionField.columnName], + valueTo: newValues[`${actionField.columnName}_To`], + fieldList, + field: actionField, + withOutColumnNames, + isChangedOldValue: true // defines if set oldValue with newValue instead of current value + }) + } }) } else { newValues[`DisplayColumn_${actionField.columnName}`] = lookup.label diff --git a/src/utils/ADempiere/globalMethods.js b/src/utils/ADempiere/globalMethods.js index 3d4b14f7..0c3f7ee8 100644 --- a/src/utils/ADempiere/globalMethods.js +++ b/src/utils/ADempiere/globalMethods.js @@ -2,5 +2,7 @@ export { isEmptyValue, zeroPad, - tagStatus + tagStatus, + calculationValue, + clearVariables } from '@/utils/ADempiere/valueUtils.js' diff --git a/src/utils/ADempiere/valueUtils.js b/src/utils/ADempiere/valueUtils.js index 218e7071..427b80b6 100644 --- a/src/utils/ADempiere/valueUtils.js +++ b/src/utils/ADempiere/valueUtils.js @@ -415,3 +415,30 @@ export function tagStatus(tag) { } return type } + +let partialValue = '' +export function calculationValue(value, event) { + const VALIDATE_EXPRESSION = /[^\d\/.()%\*\+\-]/gim + if (!this.isEmptyValue(event) && !VALIDATE_EXPRESSION.test(event.key)) { + partialValue += event.key + const operation = String(value) + partialValue + if (!isEmptyValue(operation)) { + try { + // eslint-disable-next-line no-eval + return eval(operation) + '' + } catch (error) { + return null + } + } + } else { + if (value.key === 'Backspace') { + partialValue = partialValue.slice(0, -1) + } else { + return null + } + } +} + +export function clearVariables() { + partialValue = '' +}