This commit is contained in:
2019-04-23 18:02:48 +00:00
parent 98ed94e0b8
commit d6e6b006ae
2 changed files with 40 additions and 14 deletions

View File

@@ -7,10 +7,29 @@
//probably should be broken up more
// All locale keys for validation *MUST* be fetched prior to this being used as it assumes all keys are fetched first
// Add any new keys used to the block in locale.js=>commonKeysEditForm
import Vue from "vue";
import errorHandler from "./errorhandler";
var triggeringChange = false;
////////////////////////////////////
// set calling form Dirty state
//
function setFormDirty(vm, isDirty) {
Vue.nextTick(function() {
vm.formDirty = isDirty;
});
}
////////////////////////////////////
// set calling form Valid state
//
function setFormValid(vm, isValid) {
Vue.nextTick(function() {
vm.formValid = isValid;
});
}
function isEmpty(o) {
if (typeof o == "number" && o == 0) {
return false;
@@ -143,7 +162,7 @@ export default {
err = vm.$_.replace(err, "{0}", fieldName);
//lodash replace only replaces first instance so need to do it twice
err = vm.$_.replace(err, "{0}", fieldName);
vm.formValid = false;
setFormValid(vm, false);
return err;
},
///////////////////////////////
@@ -170,7 +189,7 @@ export default {
var fieldName = getControlLabel(ctrl);
err = vm.$_.replace(err, "{0}", fieldName);
err = vm.$_.replace(err, "{1}", max);
vm.formValid = false;
setFormValid(vm, false);
return err;
} else {
return false;
@@ -224,7 +243,7 @@ export default {
if (valueStart.isAfter(valueEnd)) {
// "ErrorStartDateAfterEndDate": "Start date must be earlier than stop / end date",
var err = vm.$gzlocale.get("ErrorStartDateAfterEndDate");
vm.formValid = false;
setFormValid(vm, false);
return err;
} else {
return false;
@@ -256,7 +275,7 @@ export default {
// "ErrorFieldValueNotInteger": "Value must be an integer"
var err = vm.$gzlocale.get("ErrorFieldValueNotInteger");
vm.formValid = false;
setFormValid(vm, false);
return err;
},
///////////////////////////////
@@ -289,7 +308,7 @@ export default {
// "ErrorFieldValueNotDecimal": "Value must be a number"
var err = vm.$gzlocale.get("ErrorFieldValueNotDecimal");
vm.formValid = false;
setFormValid(vm, false);
return err;
},
///////////////////////////////
@@ -338,7 +357,7 @@ export default {
if (vm.serverError.message) {
err = err + "\r\n" + vm.serverError.message;
}
vm.formValid = false;
setFormValid(vm, false);
ret.push(err);
}
//DETAIL ERRORS
@@ -363,7 +382,7 @@ export default {
}
ret.push(fldErr);
});
vm.formValid = false;
setFormValid(vm, false);
return ret;
}
}
@@ -384,7 +403,7 @@ export default {
vm.appError = null;
//clear out actual message box display
vm.errorBoxMessage = null;
vm.formValid = true;
setFormValid(vm, true);
},
///////////////////////////////
// setErrorBoxErrors
@@ -430,7 +449,8 @@ export default {
vm.obj[ref] = val;
triggeringChange = false;
}
vm.formDirty = true;
//vm.formValid = vm.$refs.form.validate();
setFormDirty(vm, true);
setFormValid(vm, vm.$refs.form.validate());
//TODO: shouldn't it check for any dirty here and set the isdirty to false if none since each rule can set it dirty
}
};

View File

@@ -147,6 +147,8 @@
<script>
/* eslint-disable */
import Vue from "vue";
function clickHandler(menuItem) {
if (!menuItem) {
return;
@@ -292,12 +294,13 @@ export default {
//tried to set nexttick as latest attempt, but it's not working
//tried to defer validation until form is loaded but that's also not working for some reason
//wtf is going on here???
vm.nextTick(function() {
Vue.nextTick(function() {
vm.formValid = true;
vm.formDirty = false;
vm.formLoading = false;
});
}
this.formLoading = false;
})
.catch(function handleGetDataFromAPIError(error) {
vm.formLoading = false;
@@ -323,7 +326,10 @@ export default {
vm.$gzv.setErrorBoxErrors(vm);
} else {
//It's ok, form is saved
vm.formDirty = false;
Vue.nextTick(function() {
// vm.formValid = true;
vm.formDirty = false;
});
//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) {