This commit is contained in:
2020-10-07 21:28:51 +00:00
parent a77d48c905
commit 9fcbd48a75
4 changed files with 46 additions and 37 deletions

View File

@@ -86,11 +86,27 @@ function getControlLabel(ctrl) {
function getErrorsForField(vm, ref) {
let ret = [];
if (ref == "errorbox") {
ret = window.$gz._.filter(vm.formState.serverError.details, function(o) {
return !o.target;
});
//de-lodash
// ret = window.$gz. _.filter(vm.formState.serverError.details, function(o) {
// return !o.target;
// });
ret = vm.formState.serverError.details.filter(z => z.target == false);
} else {
ret = window.$gz._.filter(vm.formState.serverError.details, function(o) {
//de-lodash
// ret = window.$gz. _.filter(vm.formState.serverError.details, function(o) {
// if (!o.target) {
// return false;
// }
// //server error fields are capitalized
// //client field names are generally lower case except for custom fields
// //so we need to normalize them all to lower case to match
// //they will always differ by more than case so this is fine
// return o.target.toLowerCase() == ref.toLowerCase();
// });
ret = vm.formState.serverError.details.filter(function(o) {
if (!o.target) {
return false;
}
@@ -157,10 +173,9 @@ export default {
// "ErrorRequiredFieldEmpty": "{0} is a required field. Please enter a value for {0}",
let err = vm.$ay.t("ErrorRequiredFieldEmpty");
let fieldName = getControlLabel(ctrl);
err = window.$gz._.replace(err, "{0}", fieldName);
//lodash replace only replaces first instance so need to do it twice
err = window.$gz._.replace(err, "{0}", fieldName);
// console.log("gzform:required rule - failed, setting invalid", fieldName);
err = err.replace("{0}", fieldName);
//replace only replaces first instance so need to do it twice
err = err.replace("{0}", fieldName);
//Update the form status
this.setFormState({
vm: vm,
@@ -201,8 +216,8 @@ export default {
// "ErrorFieldLengthExceeded": "{0} can not exceed {1} characters.",
let err = vm.$ay.t("ErrorFieldLengthExceeded");
let fieldName = getControlLabel(ctrl);
err = window.$gz._.replace(err, "{0}", fieldName);
err = window.$gz._.replace(err, "{1}", max);
err = err.replace("{0}", fieldName);
err = err.replace("{1}", max);
//Update the form status
this.setFormState({
vm: vm,
@@ -532,9 +547,9 @@ export default {
// "ErrorRequiredFieldEmpty": "{0} is a required field. Please enter a value for {0}",
let err = vm.$ay.t("ErrorRequiredFieldEmpty");
let fieldName = getControlLabel(ctrl);
err = window.$gz._.replace(err, "{0}", fieldName);
//lodash replace only replaces first instance so need to do it twice
err = window.$gz._.replace(err, "{0}", fieldName);
err = err.replace("{0}", fieldName);
//replace only replaces first instance so need to do it twice
err = err.replace("{0}", fieldName);
//Update the form status
this.setFormState({
vm: vm,
@@ -568,13 +583,11 @@ export default {
}
//It's empty and it's required so return error
// "ErrorRequiredFieldEmpty": "{0} is a required field. Please enter a value for {0}",
let err = vm.$ay.t("ErrorRequiredFieldEmpty");
//let fieldName = getControlLabel(ctrl);
err = window.$gz._.replace(err, "{0}", fieldName);
//lodash replace only replaces first instance so need to do it twice
err = window.$gz._.replace(err, "{0}", fieldName);
err = err.replace("{0}", fieldName);
//replace only replaces first instance so need to do it twice
err = err.replace("{0}", fieldName);
//Update the form status
this.setFormState({
vm: vm,
@@ -613,7 +626,8 @@ export default {
}
//ensure the error returned is in an expected format to catch coding errors at the server end
if (!window.$gz._.isEmpty(vm.formState.serverError)) {
if (!window.$gz.util.objectIsEmpty(vm.formState.serverError)) {
//de-lodash with my own function
//Make sure there is an error code if there is an error collection
if (!vm.formState.serverError.code) {
throw new Error(
@@ -625,7 +639,8 @@ export default {
let ret = [];
//check for errors if we have any errors
if (!window.$gz._.isEmpty(vm.formState.serverError)) {
if (!window.$gz.util.objectIsEmpty(vm.formState.serverError)) {
//de-lodash
//First let's get the top level error code
let apiErrorCode = parseInt(vm.formState.serverError.code);
@@ -668,7 +683,7 @@ export default {
//DETAIL ERRORS
//{"error":{"code":"2200","details":[{"message":"Exception: Error converting value \"\" to type 'AyaNova.Biz.AUTHORIZATION_ROLES'. Path 'roles', line 1, position 141.","target":"roles","error":"2203"}],"message":"Object did not pass validation"}}
//Specific field validation errors are in an array in "details" key
if (!window.$gz._.isEmpty(vm.formState.serverError.details)) {
if (!window.$gz.util.objectIsEmpty(vm.formState.serverError.details)) {
//See if this key is in the details array
let errorsForField = getErrorsForField(vm, ref);
if (errorsForField.length > 0) {

View File

@@ -407,6 +407,13 @@ export default {
? has(obj[key.split(".")[0]], keyParts.slice(1).join("."))
: hasOwnProperty.call(obj, key))
);
},
///////////////////////////////////////////////
// Check if object is empty
//
objectIsEmpty: function(obj) {
//https://stackoverflow.com/a/4994265/8939
return Object.keys(obj).length === 0;
}
/**