fix: Mandatory logic on first field load. (#223)
parent
04b7c1bb6d
commit
f728e4eb43
|
@ -9,7 +9,7 @@
|
|||
:readonly="Boolean(metadata.readonly)"
|
||||
:disabled="isDisabled"
|
||||
:maxlength="maxLength"
|
||||
:show-password="metadata.isEncrypted ? true : false"
|
||||
:show-password="Boolean(metadata.isEncrypted)"
|
||||
@change="preHandleChange"
|
||||
/>
|
||||
</template>
|
||||
|
|
|
@ -57,13 +57,13 @@ export default {
|
|||
})
|
||||
} else if (this.panelType === 'window') {
|
||||
// compare group fields to window
|
||||
return this.$store.getters.getFieldsListNotMandatory(this.containerUuid)
|
||||
return this.$store.getters.getFieldsListNotMandatory({ containerUuid: this.containerUuid })
|
||||
.filter(fieldItem => {
|
||||
return fieldItem.groupAssigned === this.groupField
|
||||
})
|
||||
}
|
||||
// get fields not mandatory
|
||||
return this.$store.getters.getFieldsListNotMandatory(this.containerUuid)
|
||||
return this.$store.getters.getFieldsListNotMandatory({ containerUuid: this.containerUuid })
|
||||
},
|
||||
getFieldSelected() {
|
||||
return this.getterFieldListOptional
|
||||
|
|
|
@ -529,25 +529,15 @@ const panel = {
|
|||
}
|
||||
}
|
||||
|
||||
// the field has not changed, then the action is broken
|
||||
if (newValue === field.value && isEmptyValue(displayColumn)) {
|
||||
return
|
||||
}
|
||||
|
||||
commit('changeFieldValue', {
|
||||
field,
|
||||
newValue,
|
||||
valueTo,
|
||||
displayColumn,
|
||||
isChangedOldValue
|
||||
})
|
||||
|
||||
// Change Dependents
|
||||
const dependents = fieldList.filter(fieldItem => {
|
||||
return field.dependentFieldsList.includes(fieldItem.columnName)
|
||||
})
|
||||
let dependentsList = []
|
||||
if (field.dependentFieldsList.length) {
|
||||
dependentsList = fieldList.filter(fieldItem => {
|
||||
return field.dependentFieldsList.includes(fieldItem.columnName)
|
||||
})
|
||||
}
|
||||
// Iterate for change logic
|
||||
dependents.forEach(dependent => {
|
||||
dependentsList.forEach(dependent => {
|
||||
// isDisplayed Logic
|
||||
let isDisplayedFromLogic, isMandatoryFromLogic, isReadOnlyFromLogic
|
||||
if (dependent.displayLogic.trim() !== '') {
|
||||
|
@ -585,6 +575,19 @@ const panel = {
|
|||
})
|
||||
})
|
||||
|
||||
// the field has not changed, then the action is broken
|
||||
if (newValue === field.value && isEmptyValue(displayColumn)) {
|
||||
return
|
||||
}
|
||||
|
||||
commit('changeFieldValue', {
|
||||
field,
|
||||
newValue,
|
||||
valueTo,
|
||||
displayColumn,
|
||||
isChangedOldValue
|
||||
})
|
||||
|
||||
// request callouts
|
||||
if (field.panelType === 'window' && isSendCallout) {
|
||||
if (!withOutColumnNames.includes(field.columnName) && !isEmptyValue(newValue) && !isEmptyValue(field.callout)) {
|
||||
|
@ -838,9 +841,8 @@ const panel = {
|
|||
var fieldList = getters.getFieldsListFromPanel(containerUuid).filter(fieldItem => {
|
||||
const isMandatory = fieldItem.isMandatory || fieldItem.isMandatoryFromLogic
|
||||
if (isMandatory) {
|
||||
const isDisplayed = fieldIsDisplayed(fieldItem)
|
||||
if (evaluateShowed) {
|
||||
return isDisplayed
|
||||
return fieldIsDisplayed(fieldItem)
|
||||
}
|
||||
return isMandatory
|
||||
}
|
||||
|
@ -859,15 +861,18 @@ const panel = {
|
|||
return fieldItem.name
|
||||
})
|
||||
},
|
||||
// all available fields not mandatory to show, used in components panel/filterFields.vue
|
||||
getFieldsListNotMandatory: (state, getters) => (containerUuid, evaluateShowed = true) => {
|
||||
/**
|
||||
* Show all available fields not mandatory to show, used in components panel/filterFields.vue
|
||||
* @param {string} containerUuid
|
||||
* @param {boolean} isEvaluateShowed
|
||||
*/
|
||||
getFieldsListNotMandatory: (state, getters) => ({ containerUuid, isEvaluateShowed = true }) => {
|
||||
// all optionals (not mandatory) fields
|
||||
return getters.getFieldsListFromPanel(containerUuid).filter(fieldItem => {
|
||||
const isMandatory = fieldItem.isMandatory || fieldItem.isMandatoryFromLogic
|
||||
if (!isMandatory) {
|
||||
const isDisplayed = fieldIsDisplayed(fieldItem)
|
||||
if (evaluateShowed) {
|
||||
return isDisplayed
|
||||
if (isEvaluateShowed) {
|
||||
return fieldIsDisplayed(fieldItem)
|
||||
}
|
||||
return !isMandatory
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue