This commit is contained in:
2019-12-10 00:48:31 +00:00
parent ad52782b21
commit 2ea738d42d
3 changed files with 83 additions and 41 deletions

View File

@@ -29,9 +29,9 @@ export default {
if (res.error) { if (res.error) {
throw res.error; throw res.error;
} }
window.$gz.store.commit("addFormCustomTemplateItem", { window.$gz.store.commit("addFormCustomTemplateItem", {
formKey: formKey, formKey: formKey,
concurrencyToken: res.data.concurrencyToken,
value: addDataKeyNames(JSON.parse(res.data.template)) value: addDataKeyNames(JSON.parse(res.data.template))
}); });
@@ -61,5 +61,16 @@ export default {
var templateItem = window.$gz._.find(template, ["fld", fieldKey]); var templateItem = window.$gz._.find(template, ["fld", fieldKey]);
return templateItem; return templateItem;
},
getTemplateConcurrencyToken(formKey) {
var tok =
window.$gz.store.state.formCustomTemplate[formKey + "_concurrencyToken"];
if (tok === undefined) {
throw "ERROR form-custom-template::getTemplateConcurrencyToken -> Store is missing concurrency token for [" +
formKey +
"]";
}
return tok;
} }
}; };

View File

@@ -65,6 +65,8 @@ export default new Vuex.Store({
state.localeText[data.key] = data.value; state.localeText[data.key] = data.value;
}, },
addFormCustomTemplateItem(state, data) { addFormCustomTemplateItem(state, data) {
state.formCustomTemplate[data.formKey + "_concurrencyToken"] =
data.concurrencyToken;
state.formCustomTemplate[data.formKey] = data.value; state.formCustomTemplate[data.formKey] = data.value;
}, },
setLocale(state, data) { setLocale(state, data) {

View File

@@ -147,6 +147,7 @@ export default {
data() { data() {
return { return {
obj: [], obj: [],
concurrencyToken: undefined,
formCustomTemplateKey: this.$route.params.formCustomTemplateKey, formCustomTemplateKey: this.$route.params.formCustomTemplateKey,
pickLists: { pickLists: {
formFieldDataTypes: [ formFieldDataTypes: [
@@ -196,54 +197,79 @@ export default {
}, },
submit() { submit() {
var vm = this; var vm = this;
var url = API_BASE_URL + this.$route.params.id; var url = API_BASE_URL + this.formCustomTemplateKey;
//clear any errors vm might be around from previous submit //clear any errors vm might be around from previous submit
window.$gz.form.deleteAllErrorBoxErrors(this); window.$gz.form.deleteAllErrorBoxErrors(this);
//Create template data object here.... //Create template data object here....
var newObj = {
formKey: this.formCustomTemplateKey,
concurrencyToken: this.concurrencyToken,
template: []
};
//Rules: //Rules:
console.log("Template from server:"); for (var i = 0; i < this.obj.length; i++) {
console.log( var fldItem = this.obj[i];
window.$gz.store.state.formCustomTemplate[this.formCustomTemplateKey] if (fldItem.custom == false) {
); //Process regular stock field
console.log("Working object:"); //If it's set to hidden or required then it's template-worthy
console.log(this.obj); if (fldItem.visible == false || fldItem.required == true) {
newObj.template.push({
fld: fldItem.key,
required: fldItem.required,
hide: !fldItem.visible
});
}
} else {
//Process custom field
//If it's not visible then don't add it at all
if (fldItem.visible == true) {
newObj.template.push({
fld: fldItem.key,
required: fldItem.required,
type: fldItem.type
});
}
}
}
// window.$gz.api /* example
// .upsert(url, this.obj) {"data":{"id":1,"concurrencyToken":3798757,"formKey":"widget","template":"[
// .then(res => { {\"fld\":\"WidgetNotes\",\"required\":true},
// vm.formState.loading = false; {\"fld\":\"WidgetCustom1\",\"required\":false,\"type\":\"datetime\"},
// if (res.error != undefined) { {\"fld\":\"WidgetCustom2\",\"required\":true,\"type\":\"text\"},
// vm.formState.serverError = res.error; {\"fld\":\"WidgetCustom3\",\"required\":false,\"type\":\"number\"},
// window.$gz.form.setErrorBoxErrors(vm); {\"fld\":\"WidgetCustom4\",\"required\":false,\"type\":\"bool\"},
// } else { {\"fld\":\"WidgetCustom5\",\"required\":false,\"type\":\"currency\"},
// //Logic for detecting if a post or put: if id then it was a post, if no id then it was a put {\"fld\":\"WidgetCustom6\",\"required\":false,\"type\":\"date\"},
// if (res.data.id) { {\"fld\":\"WidgetCustom7\",\"required\":false,\"type\":\"time\"}]"}}
// //Handle "post" of new record (CREATE)
// vm.obj = res.data;
// window.$gz.form.setFormState({
// vm: vm,
// dirty: false,
// readOnly: res.readOnly ? true : false
// });
// //change url to new record but don't actually navigate, replace current url with same url but with the actual id at the end instead of zero:
// vm.$router.replace(vm.$route.fullPath.slice(0, -1) + res.data.id); But what is happening:
// } else { {"formKey":"widget","concurrencyToken":3798757,"template":[{"fld":"WidgetName","required":true,"hide":false},{"fld":"WidgetCount","required":true,"hide":false},{"fld":"WidgetStartDate","required":true,"hide":false},{"fld":"WidgetEndDate","required":true,"hide":false},{"fld":"WidgetNotes","required":true,"hide":false},{"fld":"WidgetCustom1","required":false,"type":"datetime"},{"fld":"WidgetCustom2","required":true,"type":"text"},{"fld":"WidgetCustom3","required":false,"type":"number"},{"fld":"WidgetCustom4","required":false,"type":"bool"},{"fld":"WidgetCustom5","required":false,"type":"currency"},{"fld":"WidgetCustom6","required":false,"type":"date"},{"fld":"WidgetCustom7","required":false,"type":"time"}]}
// //Handle "put" of an existing record (UPDATE) */
// vm.obj.concurrencyToken = res.data.concurrencyToken; window.$gz.api
// window.$gz.form.setFormState({ .upsert(url, newObj)
// vm: vm, .then(res => {
// dirty: false debugger;
// }); vm.formState.loading = false;
// } if (res.error != undefined) {
// } vm.formState.serverError = res.error;
// }) window.$gz.form.setErrorBoxErrors(vm);
// .catch(function handleSubmitError(error) { } else {
// vm.formState.loading = false; //Handle "put" of an existing record (UPDATE) (there is no POST of a new record for this particular object)
// window.$gz.errorHandler.handleFormError(error, vm); vm.concurrencyToken = res.data.concurrencyToken;
// }); window.$gz.form.setFormState({
vm: vm,
dirty: false
});
}
})
.catch(function handleSubmitError(error) {
vm.formState.loading = false;
window.$gz.errorHandler.handleFormError(error, vm);
});
} }
} }
}; };
@@ -369,6 +395,9 @@ function initDataObject(vm) {
}; };
vm.obj.push(objItem); vm.obj.push(objItem);
vm.concurrencyToken = window.$gz.formCustomTemplate.getTemplateConcurrencyToken(
vm.formCustomTemplateKey
);
} }
// vm.formAvailableFields = res.data; // vm.formAvailableFields = res.data;