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
})
} else {
const fieldsEmpty = this.$store.getters.getFieldListEmptyMandatory({ containerUuid: this.containerUuid })
const fieldsEmpty = this.$store.getters.getFieldListEmptyMandatory({
containerUuid: this.containerUuid
})
this.$message({
message: this.$t('notifications.mandatoryFieldMissing') + fieldsEmpty,
type: 'info'

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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