This commit is contained in:
@@ -11,6 +11,8 @@
|
||||
//import _ from "../libs/lodash.min.js";
|
||||
import errorHandler from "./errorhandler";
|
||||
|
||||
var triggeringChange = false;
|
||||
|
||||
function isEmpty(o) {
|
||||
if (typeof o == "number" && o == 0) {
|
||||
return false;
|
||||
@@ -472,24 +474,44 @@ Here are all the API level error codes that can be returned by the API server:
|
||||
// On Change handler
|
||||
// This is required so that server errors can be cleared when input is changed
|
||||
Change(v, ref) {
|
||||
if (triggeringChange) {
|
||||
return;
|
||||
}
|
||||
//If ref appears in the servererrors details collection, remove each one
|
||||
var m = v.$_.remove(v.serverError.details, function(o) {
|
||||
return o.target == ref;
|
||||
});
|
||||
|
||||
// //if a target was hit then need to trigger validate again for it to remove the error message
|
||||
//NOTHING SEEMS TO BE ABLE TO TRIGGER THIS
|
||||
|
||||
// if (m.length > 0) {
|
||||
// var ctrl = getControl(v, ref);
|
||||
// //ctrl.validate(true);
|
||||
// // ctrl.errorMessages.length=0;
|
||||
|
||||
// // var frm=getControl(v,"form");
|
||||
// // frm.validate();
|
||||
// }
|
||||
|
||||
|
||||
//If there are no more errors in details then remove the whole thing as it's no longer required
|
||||
if (v.serverError.details && v.serverError.details.length < 1) {
|
||||
if (v.serverError.code == "2200") {
|
||||
this.RemoveAllProperties(v.serverError);
|
||||
}
|
||||
}
|
||||
|
||||
//Clear out old validation display in form by forcing the control's data to change
|
||||
//I tried calling form validate and reset and all that bullshit but it did nothing
|
||||
//probably because it has safeguards to prevent excess validation, this works though so far
|
||||
//I added the triggering change guard but it actually doesn't seem to be required here, more investigation is required
|
||||
if (m.length > 0) {
|
||||
triggeringChange = true;
|
||||
var val = v.obj[ref];
|
||||
v.obj[ref] = null;
|
||||
v.obj[ref] = val;
|
||||
triggeringChange = false;
|
||||
}
|
||||
},
|
||||
///////////////////////////////
|
||||
// Clean out server errors
|
||||
// This is called both from the form immediately before submit and here in Change handler
|
||||
// It's purpose is to more efficiently clear out the object even though I could set it to an empty object, this way it just keeps the same object
|
||||
// avoiding some potential issues
|
||||
RemoveAllProperties(o) {
|
||||
//clear any errors that might be around from previous submit
|
||||
for (var variableKey in o) {
|
||||
if (o.hasOwnProperty(variableKey)) {
|
||||
delete o[variableKey];
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -184,6 +184,9 @@ export default {
|
||||
//debugger;
|
||||
//console.log("CHANGE - " + ref);
|
||||
this.$gzv.Change(this, ref);
|
||||
//Make form re-validate here and if it works then make it do it only if gzv.change returns true or something indicating it's required to re-validate or clear that input's errors
|
||||
// this.$refs.form.resetValidation();
|
||||
// this.$refs.form.validate();
|
||||
},
|
||||
getDataFromApi() {
|
||||
var url = "Widget/" + this.$route.params.id;
|
||||
@@ -198,13 +201,9 @@ export default {
|
||||
|
||||
var that = this;
|
||||
var url = "Widget/" + this.$route.params.id;
|
||||
|
||||
//clear any errors that might be around from previous submit
|
||||
for (var variableKey in this.serverError) {
|
||||
if (this.serverError.hasOwnProperty(variableKey)) {
|
||||
delete this.serverError[variableKey];
|
||||
}
|
||||
}
|
||||
|
||||
//clear any errors that might be around from previous submit
|
||||
this.$gzv.RemoveAllProperties(this.serverError);
|
||||
|
||||
this.$gzapi
|
||||
.upsert(url, this.obj)
|
||||
@@ -215,8 +214,6 @@ export default {
|
||||
that.serverError = res.error;
|
||||
// that.$refs.form.resetValidation();
|
||||
// that.$refs.form.validate();
|
||||
//example error when submit when there are no roles set at all (blank)
|
||||
//{"error":{"code":"2200","details":[{"code":"2200","message":"","target":"roles","error":"VALIDATION_FAILED"}],"message":"Object did not pass validation"}}
|
||||
} else {
|
||||
//Logic for detecting if a post or put: if id then it was a post, if no id then it was a put
|
||||
if (res.id) {
|
||||
|
||||
Reference in New Issue
Block a user