This commit is contained in:
2019-04-23 19:41:55 +00:00
parent b8789627ab
commit 8d83ca6b95
3 changed files with 39 additions and 37 deletions

View File

@@ -24,12 +24,12 @@ function dealWithError(msg, form) {
//then put the error into it //then put the error into it
if (form) { if (form) {
if (form.$gzdevmode()) { if (form.$gzdevmode()) {
//make sure appError is defined on data //make sure formState.appError is defined on data
if (!form.$_.has(form, "appError")) { if (!form.$_.has(form, "formState.appError")) {
throw "DEV ERROR errorHandler::dealWithError -> appError seems to be missing from form's vue data object"; throw "DEV ERROR errorHandler::dealWithError -> formState.appError seems to be missing from form's vue data object";
} }
} }
form.appError = msg; form.formState.appError = msg;
form.$gzform.setErrorBoxErrors(form); form.$gzform.setErrorBoxErrors(form);
} }
} }

View File

@@ -79,11 +79,11 @@ function getControlLabel(ctrl) {
function getErrorsForField(vm, ref) { function getErrorsForField(vm, ref) {
var ret = []; var ret = [];
if (ref == "errorbox") { if (ref == "errorbox") {
ret = vm.$_.filter(vm.serverError.details, function(o) { ret = vm.$_.filter(vm.formState.serverError.details, function(o) {
return !o.target; return !o.target;
}); });
} else { } else {
ret = vm.$_.filter(vm.serverError.details, function(o) { ret = vm.$_.filter(vm.formState.serverError.details, function(o) {
if (!o.target) { if (!o.target) {
return false; return false;
} }
@@ -110,9 +110,9 @@ function getErrorBoxErrors(vm, errs) {
} }
//any application errors? //any application errors?
if (vm.appError) { if (vm.formState.appError) {
hasErrors = true; hasErrors = true;
ret = vm.appError + "\r\n----------\r\n" + ret; ret = vm.formState.appError + "\r\n----------\r\n" + ret;
} }
if (!hasErrors) { if (!hasErrors) {
@@ -322,44 +322,44 @@ export default {
serverErrors(vm, ref) { serverErrors(vm, ref) {
//CHECK PREREQUISITES IN DEV MODE TO ENSURE FORM ISN"T MISSING NEEDED DATA ATTRIBUTES ETC //CHECK PREREQUISITES IN DEV MODE TO ENSURE FORM ISN"T MISSING NEEDED DATA ATTRIBUTES ETC
if (vm.$gzdevmode()) { if (vm.$gzdevmode()) {
//make sure serverErrors is defined on data //make sure formState.serverErrors is defined on data
if (!vm.$_.has(vm, "serverError")) { if (!vm.$_.has(vm, "formState.serverError")) {
throw "DEV ERROR gzform::serverErrors -> serverError seems to be missing from form's vue data object"; throw "DEV ERROR gzform::formState.serverErrors -> formState.serverError seems to be missing from form's vue data object";
} }
//make sure appError is defined on data //make sure formState.appError is defined on data
if (!vm.$_.has(vm, "appError")) { if (!vm.$_.has(vm, "formState.appError")) {
throw "DEV ERROR gzform::serverErrors -> appError seems to be missing from form's vue data object"; throw "DEV ERROR gzform::formState.serverErrors -> formState.appError seems to be missing from form's vue data object";
} }
//make sure formState.errorBoxMessage is defined on data //make sure formState.errorBoxMessage is defined on data
if (!vm.$_.has(vm, "formState.errorBoxMessage")) { if (!vm.$_.has(vm, "formState.errorBoxMessage")) {
throw "DEV ERROR gzform::serverErrors -> formState.errorBoxMessage seems to be missing from form's vue data object"; throw "DEV ERROR gzform::formState.serverErrors -> formState.errorBoxMessage seems to be missing from form's vue data object";
} }
//ensure the error returned is in an expected format to catch coding errors at the server end //ensure the error returned is in an expected format to catch coding errors at the server end
if (!vm.$_.isEmpty(vm.serverError)) { if (!vm.$_.isEmpty(vm.formState.serverError)) {
//Make sure there is an error code if there is an error collection //Make sure there is an error code if there is an error collection
if (!vm.serverError.code) { if (!vm.formState.serverError.code) {
throw "DEV ERROR gzform::serverErrors -> server returned error without code"; throw "DEV ERROR gzform::formState.serverErrors -> server returned error without code";
} }
} }
} }
var ret = []; var ret = [];
//check for errors if we have any errors //check for errors if we have any errors
if (!vm.$_.isEmpty(vm.serverError)) { if (!vm.$_.isEmpty(vm.formState.serverError)) {
//debugger; //debugger;
//First let's get the top level error code //First let's get the top level error code
var apiErrorCode = parseInt(vm.serverError.code); var apiErrorCode = parseInt(vm.formState.serverError.code);
//GENERAL ERROR //GENERAL ERROR
if (ref == "errorbox") { if (ref == "errorbox") {
//Add any general errors to ret //Add any general errors to ret
var err = vm.$gzlocale.get("ErrorAPI" + apiErrorCode.toString()); var err = vm.$gzlocale.get("ErrorAPI" + apiErrorCode.toString());
if (vm.serverError.message) { if (vm.formState.serverError.message) {
err = err + "\r\n" + vm.serverError.message; err = err + "\r\n" + vm.formState.serverError.message;
} }
//Update the form status //Update the form status
this.setFormState({ this.setFormState({
@@ -371,7 +371,7 @@ export default {
//DETAIL ERRORS //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"}} //{"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 //Specific field validation errors are in an array in "details" key
if (!vm.$_.isEmpty(vm.serverError.details)) { if (!vm.$_.isEmpty(vm.formState.serverError.details)) {
//See if this key is in the details array //See if this key is in the details array
var errorsForField = getErrorsForField(vm, ref); var errorsForField = getErrorsForField(vm, ref);
@@ -406,14 +406,14 @@ export default {
}, },
/////////////////////////////// ///////////////////////////////
// ClearServerErrors // ClearformState.serverErrors
// Clear all server errors and app errors and ensure error box doesn't show // Clear all server errors and app errors and ensure error box doesn't show
// //
deleteAllErrorBoxErrors(vm) { deleteAllErrorBoxErrors(vm) {
//clear all keys from server error //clear all keys from server error
vm.$gzutil.removeAllPropertiesFromObject(vm.serverError); vm.$gzutil.removeAllPropertiesFromObject(vm.formState.serverError);
//clear app errors //clear app errors
vm.appError = null; vm.formState.appError = null;
//clear out actual message box display //clear out actual message box display
vm.formState.errorBoxMessage = null; vm.formState.errorBoxMessage = null;
//Update the form status //Update the form status
@@ -439,8 +439,8 @@ export default {
if (triggeringChange || vm.formState.loading) { if (triggeringChange || vm.formState.loading) {
return; return;
} }
//If ref appears in the servererrors details collection, remove each one //If ref appears in the formState.serverErrors details collection, remove each one
var m = vm.$_.remove(vm.serverError.details, function(o) { var m = vm.$_.remove(vm.formState.serverError.details, function(o) {
if (!o.target) { if (!o.target) {
return false; return false;
} }
@@ -448,10 +448,13 @@ export default {
}); });
//If there are no more errors in details then remove the whole thing as it's no longer required //If there are no more errors in details then remove the whole thing as it's no longer required
if (vm.serverError.details && vm.serverError.details.length < 1) { if (
if (vm.serverError.code == "2200") { vm.formState.serverError.details &&
vm.formState.serverError.details.length < 1
) {
if (vm.formState.serverError.code == "2200") {
//clear all keys from server error //clear all keys from server error
vm.$gzutil.removeAllPropertiesFromObject(vm.serverError); vm.$gzutil.removeAllPropertiesFromObject(vm.formState.serverError);
} }
} }

View File

@@ -251,16 +251,15 @@ export default {
data() { data() {
return { return {
obj: {}, obj: {},
serverError: {},
appError: null,
formState: { formState: {
ready: false, ready: false,
dirty: false, dirty: false,
valid: true, valid: true,
readOnly: false, readOnly: false,
loading: true, loading: true,
errorBoxMessage: null errorBoxMessage: null,
appError: null,
serverError: {}
} }
}; };
}, },
@@ -299,7 +298,7 @@ export default {
.get(url) .get(url)
.then(res => { .then(res => {
if (res.error) { if (res.error) {
vm.serverError = res.error; vm.formState.serverError = res.error;
vm.$gzform.setErrorBoxErrors(vm); vm.$gzform.setErrorBoxErrors(vm);
} else { } else {
vm.obj = res.data; vm.obj = res.data;
@@ -335,7 +334,7 @@ export default {
.then(res => { .then(res => {
this.formState.loading = false; this.formState.loading = false;
if (res.error) { if (res.error) {
vm.serverError = res.error; vm.formState.serverError = res.error;
vm.$gzform.setErrorBoxErrors(vm); vm.$gzform.setErrorBoxErrors(vm);
} else { } else {
vm.$gzform.setFormState({ vm.$gzform.setFormState({