fix: The fields of type Yes-No and Number, take the fields as empty . (#299)

* fix: The fields of type Si-No and Number, take the fields as empty .

* fix: Values preference.
pull/3759/head
EdwinBetanc0urt 2020-02-04 00:49:33 -04:00 committed by GitHub
parent 343949371e
commit 4de4076230
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 104 additions and 80 deletions

View File

@ -784,7 +784,9 @@ export default {
isSendServer: false isSendServer: false
}) })
} else { } else {
const fieldsEmpty = this.$store.getters.getFieldListEmptyMandatory({ containerUuid: this.containerUuid }) const fieldsEmpty = this.$store.getters.getFieldListEmptyMandatory({
containerUuid: this.containerUuid
})
this.$message({ this.$message({
message: this.$t('notifications.mandatoryFieldMissing') + fieldsEmpty, message: this.$t('notifications.mandatoryFieldMissing') + fieldsEmpty,
type: 'info' type: 'info'

View File

@ -57,17 +57,36 @@ export const fieldMixin = {
* @param {string} label, or displayColumn to show in select * @param {string} label, or displayColumn to show in select
*/ */
handleChange(value, valueTo = undefined, label = undefined) { handleChange(value, valueTo = undefined, label = undefined) {
let newValue = value
let isSendCallout = true
let isSendToServer = true
let isChangedOldValue = false
if (value === 'NotSend') {
newValue = this.value
if (this.componentPath === 'FieldYesNo') {
isChangedOldValue = true
newValue = Boolean(newValue)
}
isSendToServer = false
isSendCallout = false
}
if (this.metadata.isAdvancedQuery) {
isSendToServer = false
isSendCallout = false
}
const sendParameters = { const sendParameters = {
parentUuid: this.metadata.parentUuid, parentUuid: this.metadata.parentUuid,
containerUuid: this.metadata.containerUuid, containerUuid: this.metadata.containerUuid,
field: this.metadata, field: this.metadata,
panelType: this.metadata.panelType, panelType: this.metadata.panelType,
columnName: this.metadata.columnName, columnName: this.metadata.columnName,
newValue: value === 'NotSend' ? this.value : value, newValue,
valueTo: valueTo, valueTo,
isAdvancedQuery: this.metadata.isAdvancedQuery, isAdvancedQuery: this.metadata.isAdvancedQuery,
isSendToServer: !(value === 'NotSend' || this.metadata.isAdvancedQuery), isSendToServer,
isSendCallout: !(value === 'NotSend' || this.metadata.isAdvancedQuery) isSendCallout,
isChangedOldValue
} }
if (this.metadata.inTable) { if (this.metadata.inTable) {
@ -80,8 +99,7 @@ export const fieldMixin = {
} else { } else {
this.$store.dispatch('notifyFieldChange', { this.$store.dispatch('notifyFieldChange', {
...sendParameters, ...sendParameters,
displayColumn: label, displayColumn: label
isChangedOldValue: this.metadata.componentPath === 'FieldYesNo' && Boolean(value === 'NotSend')
}) })
} }
} }

View File

@ -647,7 +647,8 @@ const panel = {
} }
} else { } else {
const fieldsEmpty = getters.getFieldListEmptyMandatory({ const fieldsEmpty = getters.getFieldListEmptyMandatory({
containerUuid containerUuid,
fieldsList: fieldList
}) })
showMessage({ showMessage({
message: language.t('notifications.mandatoryFieldMissing') + fieldsEmpty, message: language.t('notifications.mandatoryFieldMissing') + fieldsEmpty,
@ -930,37 +931,37 @@ const panel = {
return field return field
}, },
getEmptyMandatory: (state, getters) => (containerUuid) => {
return getters.getFieldsListFromPanel(containerUuid).find(itemField => {
if ((itemField.isMandatory || itemField.isMandatoryFromLogic) && isEmptyValue(itemField.value)) {
return true
}
})
},
// Obtain empty obligatory fields // Obtain empty obligatory fields
getFieldListEmptyMandatory: (state, getters) => (parameters) => { getFieldListEmptyMandatory: (state, getters) => ({
const { containerUuid, evaluateShowed = true, row } = parameters containerUuid,
fieldsList = [],
isEvaluateShowed = true,
row
}) => {
if (fieldsList.length <= 0) {
fieldsList = getters.getFieldsListFromPanel(containerUuid)
}
// all optionals (not mandatory) fields // all optionals (not mandatory) fields
var fieldList = getters.getFieldsListFromPanel(containerUuid).filter(fieldItem => { fieldsList = fieldsList.filter(fieldItem => {
const isMandatory = fieldItem.isMandatory || fieldItem.isMandatoryFromLogic const isMandatory = fieldItem.isMandatory || fieldItem.isMandatoryFromLogic
if (isMandatory) { if (isMandatory) {
if (evaluateShowed) { if (isEvaluateShowed) {
return fieldIsDisplayed(fieldItem) return fieldIsDisplayed(fieldItem)
} }
return isMandatory return isMandatory
} }
}) })
fieldList = fieldList.filter(fieldItem => { fieldsList = fieldsList.filter(fieldItem => {
var value = fieldItem.value let value = fieldItem.value
// used when evaluate data in table // used when evaluate data in table
if (row) { if (row) {
value = row[fieldItem.columnName] value = row[fieldItem.columnName]
} }
if (isEmptyValue(value)) { return isEmptyValue(value)
return true
}
}) })
return fieldList.map(fieldItem => {
return fieldsList.map(fieldItem => {
return fieldItem.name return fieldItem.name
}) })
}, },

View File

@ -75,16 +75,16 @@ const window = {
...tabItem, ...tabItem,
containerUuid: tabItem.uuid, containerUuid: tabItem.uuid,
parentUuid: windowUuid, parentUuid: windowUuid,
windowUuid: windowUuid, windowUuid,
tabGroup: tabItem.fieldGroup, tabGroup: tabItem.fieldGroup,
firstTabUuid: firstTabUuid, firstTabUuid,
// relations // relations
isParentTab: Boolean(firstTab === tabItem.tableName), isParentTab: Boolean(firstTab === tabItem.tableName),
// app properties // app properties
isAssociatedTabSequence: false, // show modal with order tab isAssociatedTabSequence: false, // show modal with order tab
isShowedRecordNavigation: !(tabItem.isSingleRow), isShowedRecordNavigation: !(tabItem.isSingleRow),
isLoadFieldList: false, isLoadFieldList: false,
index: index index
} }
delete tab.processesList delete tab.processesList
@ -217,7 +217,7 @@ const window = {
...responseWindow, ...responseWindow,
...tabProperties, ...tabProperties,
isShowedRecordNavigation: undefined, isShowedRecordNavigation: undefined,
firstTabUuid: firstTabUuid, firstTabUuid,
windowIndex: state.windowIndex + 1 windowIndex: state.windowIndex + 1
} }
commit('addWindow', newWindow) commit('addWindow', newWindow)
@ -242,14 +242,14 @@ const window = {
return getTabMetadata(containerUuid) return getTabMetadata(containerUuid)
.then(tabResponse => { .then(tabResponse => {
const additionalAttributes = { const additionalAttributes = {
parentUuid: parentUuid, parentUuid,
containerUuid: containerUuid, containerUuid,
isShowedFromUser: true, isShowedFromUser: true,
panelType: panelType, panelType,
tableName: tabResponse.tableName, tableName: tabResponse.tableName,
// //
isReadOnlyFromForm: false, isReadOnlyFromForm: false,
isAdvancedQuery: isAdvancedQuery isAdvancedQuery
} }
let fieldUuidsequence = 0 let fieldUuidsequence = 0
@ -291,7 +291,7 @@ const window = {
sequence: (fieldUuidsequence + 10), sequence: (fieldUuidsequence + 10),
name: 'UUID', name: 'UUID',
columnName: 'UUID', columnName: 'UUID',
isAdvancedQuery: isAdvancedQuery, isAdvancedQuery,
componentPath: 'FieldText' componentPath: 'FieldText'
} }
const field = getFieldTemplate(attributesOverwrite) const field = getFieldTemplate(attributesOverwrite)
@ -301,18 +301,18 @@ const window = {
// Panel for save on store // Panel for save on store
const panel = { const panel = {
...getters.getTab(parentUuid, containerUuid), ...getters.getTab(parentUuid, containerUuid),
isAdvancedQuery: isAdvancedQuery, isAdvancedQuery,
fieldLinkColumnName: fieldLinkColumnName, fieldLinkColumnName: fieldLinkColumnName,
fieldList: fieldsList, fieldList: fieldsList,
panelType: panelType, panelType,
// app attributes // app attributes
isShowedTotals: false isShowedTotals: false
} }
dispatch('addPanel', panel) dispatch('addPanel', panel)
dispatch('setTabIsLoadField', { dispatch('setTabIsLoadField', {
parentUuid: parentUuid, parentUuid,
containerUuid: containerUuid containerUuid
}) })
return panel return panel
}) })

View File

@ -211,14 +211,12 @@ export function getPreference({
// SYSTEM PREFERENCES // SYSTEM PREFERENCES
// Login setting // Login setting
if (!isEmptyValue(parentUuid)) { // get # globals context only window
// get # globals context only window retValue = getContext({
retValue = getContext({ columnName: '#' + columnName
columnName: '#' + columnName })
}) if (!isEmptyValue(retValue)) {
if (!isEmptyValue(retValue)) { return retValue
return retValue
}
} }
// Accounting setting // Accounting setting

View File

@ -22,28 +22,28 @@ export function generateField(fieldToGenerate, moreAttributes, typeRange = false
const referenceType = componentReference.alias[0] const referenceType = componentReference.alias[0]
let parsedDefaultValue = fieldToGenerate.defaultValue let parsedDefaultValue = fieldToGenerate.defaultValue
if (isEmptyValue(parsedDefaultValue)) { if (!moreAttributes.isAdvancedQuery) {
parsedDefaultValue = getPreference({ if (String(parsedDefaultValue).includes('@')) {
parentUuid: fieldToGenerate.parentUuid, parsedDefaultValue = parseContext({
containerUuid: fieldToGenerate.containerUuid, ...moreAttributes,
columnName: fieldToGenerate.columnName columnName: fieldToGenerate.columnName,
}) value: parsedDefaultValue
}).value
}
if (isEmptyValue(parsedDefaultValue)) { if (isEmptyValue(parsedDefaultValue)) {
parsedDefaultValue = getPreference({
parentUuid: fieldToGenerate.parentUuid,
containerUuid: fieldToGenerate.containerUuid,
columnName: fieldToGenerate.columnName
})
}
if (isEmptyValue(parsedDefaultValue) && !isEmptyValue(fieldToGenerate.elementName)) {
parsedDefaultValue = getPreference({ parsedDefaultValue = getPreference({
parentUuid: fieldToGenerate.parentUuid, parentUuid: fieldToGenerate.parentUuid,
containerUuid: fieldToGenerate.containerUuid, containerUuid: fieldToGenerate.containerUuid,
columnName: fieldToGenerate.elementName columnName: fieldToGenerate.elementName
}) })
} }
} else if (String(parsedDefaultValue).includes('@')) {
// if (String(parsedDefaultValue).includes('@SQL=')) {
// parsedDefaultValue.replace('@SQL=', '')
// }
parsedDefaultValue = parseContext({
...moreAttributes,
columnName: fieldToGenerate.columnName,
value: parsedDefaultValue
}).value
} }
parsedDefaultValue = parsedValueComponent({ parsedDefaultValue = parsedValueComponent({
fieldType: componentReference.type, fieldType: componentReference.type,
@ -53,28 +53,30 @@ export function generateField(fieldToGenerate, moreAttributes, typeRange = false
}) })
let parsedDefaultValueTo = fieldToGenerate.defaultValueTo let parsedDefaultValueTo = fieldToGenerate.defaultValueTo
if (isEmptyValue(parsedDefaultValueTo)) { if (!moreAttributes.isAdvancedQuery) {
parsedDefaultValueTo = getPreference({ // if (String(parsedDefaultValueTo).includes('@SQL=')) {
parentUuid: fieldToGenerate.parentUuid, // parsedDefaultValueTo.replace('@SQL=', '')
containerUuid: fieldToGenerate.containerUuid, if (String(parsedDefaultValueTo).includes('@')) {
columnName: `${fieldToGenerate.columnName}_To` parsedDefaultValueTo = parseContext({
}) ...moreAttributes,
if (isEmptyValue()) { columnName: `${fieldToGenerate.columnName}_To`,
value: parsedDefaultValueTo
}).value
}
if (isEmptyValue(parsedDefaultValueTo)) {
parsedDefaultValueTo = getPreference({
parentUuid: fieldToGenerate.parentUuid,
containerUuid: fieldToGenerate.containerUuid,
columnName: `${fieldToGenerate.columnName}_To`
})
}
if (isEmptyValue(parsedDefaultValueTo) && !isEmptyValue(fieldToGenerate.elementName)) {
parsedDefaultValueTo = getPreference({ parsedDefaultValueTo = getPreference({
parentUuid: fieldToGenerate.parentUuid, parentUuid: fieldToGenerate.parentUuid,
containerUuid: fieldToGenerate.containerUuid, containerUuid: fieldToGenerate.containerUuid,
columnName: `${fieldToGenerate.elementName}_To` columnName: `${fieldToGenerate.elementName}_To`
}) })
} }
} else if (String(parsedDefaultValueTo).includes('@')) {
// if (String(parsedDefaultValueTo).includes('@SQL=')) {
// parsedDefaultValueTo.replace('@SQL=', '')
// }
parsedDefaultValueTo = parseContext({
...moreAttributes,
columnName: fieldToGenerate.columnName,
value: fieldToGenerate.defaultValueTo
}).value
} }
parsedDefaultValueTo = parsedValueComponent({ parsedDefaultValueTo = parsedValueComponent({
fieldType: componentReference.type, fieldType: componentReference.type,

View File

@ -282,7 +282,10 @@ export const recursiveTreeSearch = ({
* @param {*} param0 * @param {*} param0
*/ */
export function parsedValueComponent({ fieldType, value, referenceType, isMandatory = false }) { export function parsedValueComponent({ fieldType, value, referenceType, isMandatory = false }) {
if (value === undefined || value === null) { if ((value === undefined || value === null) && !isMandatory) {
if (fieldType === 'FieldYesNo') {
return Boolean(value)
}
return undefined return undefined
} }
var returnValue var returnValue
@ -290,7 +293,7 @@ export function parsedValueComponent({ fieldType, value, referenceType, isMandat
switch (fieldType) { switch (fieldType) {
// data type Number // data type Number
case 'FieldNumber': case 'FieldNumber':
if (String(value).trim() === '') { if (String(value).trim() === '' || value === undefined || value === null) {
returnValue = undefined returnValue = undefined
if (isMandatory) { if (isMandatory) {
returnValue = 0 returnValue = 0
@ -322,7 +325,7 @@ export function parsedValueComponent({ fieldType, value, referenceType, isMandat
if (typeof value === 'object' && value.hasOwnProperty('query')) { if (typeof value === 'object' && value.hasOwnProperty('query')) {
returnValue = value returnValue = value
} }
returnValue = String(value) returnValue = value ? String(value) : undefined
break break
// data type Date // data type Date