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 //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 // 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 // Add any new keys used to the block in locale.js=>commonKeysEditForm
import Vue from "vue";
import errorHandler from "./errorhandler"; import errorHandler from "./errorhandler";
var triggeringChange = false; 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) { function isEmpty(o) {
if (typeof o == "number" && o == 0) { if (typeof o == "number" && o == 0) {
return false; return false;
@@ -143,7 +162,7 @@ export default {
err = vm.$_.replace(err, "{0}", fieldName); err = vm.$_.replace(err, "{0}", fieldName);
//lodash replace only replaces first instance so need to do it twice //lodash replace only replaces first instance so need to do it twice
err = vm.$_.replace(err, "{0}", fieldName); err = vm.$_.replace(err, "{0}", fieldName);
vm.formValid = false; setFormValid(vm, false);
return err; return err;
}, },
/////////////////////////////// ///////////////////////////////
@@ -170,7 +189,7 @@ export default {
var fieldName = getControlLabel(ctrl); var fieldName = getControlLabel(ctrl);
err = vm.$_.replace(err, "{0}", fieldName); err = vm.$_.replace(err, "{0}", fieldName);
err = vm.$_.replace(err, "{1}", max); err = vm.$_.replace(err, "{1}", max);
vm.formValid = false; setFormValid(vm, false);
return err; return err;
} else { } else {
return false; return false;
@@ -224,7 +243,7 @@ export default {
if (valueStart.isAfter(valueEnd)) { if (valueStart.isAfter(valueEnd)) {
// "ErrorStartDateAfterEndDate": "Start date must be earlier than stop / end date", // "ErrorStartDateAfterEndDate": "Start date must be earlier than stop / end date",
var err = vm.$gzlocale.get("ErrorStartDateAfterEndDate"); var err = vm.$gzlocale.get("ErrorStartDateAfterEndDate");
vm.formValid = false; setFormValid(vm, false);
return err; return err;
} else { } else {
return false; return false;
@@ -256,7 +275,7 @@ export default {
// "ErrorFieldValueNotInteger": "Value must be an integer" // "ErrorFieldValueNotInteger": "Value must be an integer"
var err = vm.$gzlocale.get("ErrorFieldValueNotInteger"); var err = vm.$gzlocale.get("ErrorFieldValueNotInteger");
vm.formValid = false; setFormValid(vm, false);
return err; return err;
}, },
/////////////////////////////// ///////////////////////////////
@@ -289,7 +308,7 @@ export default {
// "ErrorFieldValueNotDecimal": "Value must be a number" // "ErrorFieldValueNotDecimal": "Value must be a number"
var err = vm.$gzlocale.get("ErrorFieldValueNotDecimal"); var err = vm.$gzlocale.get("ErrorFieldValueNotDecimal");
vm.formValid = false; setFormValid(vm, false);
return err; return err;
}, },
/////////////////////////////// ///////////////////////////////
@@ -338,7 +357,7 @@ export default {
if (vm.serverError.message) { if (vm.serverError.message) {
err = err + "\r\n" + vm.serverError.message; err = err + "\r\n" + vm.serverError.message;
} }
vm.formValid = false; setFormValid(vm, false);
ret.push(err); ret.push(err);
} }
//DETAIL ERRORS //DETAIL ERRORS
@@ -363,7 +382,7 @@ export default {
} }
ret.push(fldErr); ret.push(fldErr);
}); });
vm.formValid = false; setFormValid(vm, false);
return ret; return ret;
} }
} }
@@ -384,7 +403,7 @@ export default {
vm.appError = null; vm.appError = null;
//clear out actual message box display //clear out actual message box display
vm.errorBoxMessage = null; vm.errorBoxMessage = null;
vm.formValid = true; setFormValid(vm, true);
}, },
/////////////////////////////// ///////////////////////////////
// setErrorBoxErrors // setErrorBoxErrors
@@ -430,7 +449,8 @@ export default {
vm.obj[ref] = val; vm.obj[ref] = val;
triggeringChange = false; triggeringChange = false;
} }
vm.formDirty = true; setFormDirty(vm, true);
//vm.formValid = vm.$refs.form.validate(); 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> <script>
/* eslint-disable */ /* eslint-disable */
import Vue from "vue";
function clickHandler(menuItem) { function clickHandler(menuItem) {
if (!menuItem) { if (!menuItem) {
return; return;
@@ -292,12 +294,13 @@ export default {
//tried to set nexttick as latest attempt, but it's not working //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 //tried to defer validation until form is loaded but that's also not working for some reason
//wtf is going on here??? //wtf is going on here???
vm.nextTick(function() { Vue.nextTick(function() {
vm.formValid = true; vm.formValid = true;
vm.formDirty = false; vm.formDirty = false;
vm.formLoading = false;
}); });
} }
this.formLoading = false;
}) })
.catch(function handleGetDataFromAPIError(error) { .catch(function handleGetDataFromAPIError(error) {
vm.formLoading = false; vm.formLoading = false;
@@ -323,7 +326,10 @@ export default {
vm.$gzv.setErrorBoxErrors(vm); vm.$gzv.setErrorBoxErrors(vm);
} else { } else {
//It's ok, form is saved //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 //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) { if (res.id) {