This commit is contained in:
@@ -29,9 +29,9 @@ export default {
|
||||
if (res.error) {
|
||||
throw res.error;
|
||||
}
|
||||
|
||||
window.$gz.store.commit("addFormCustomTemplateItem", {
|
||||
formKey: formKey,
|
||||
concurrencyToken: res.data.concurrencyToken,
|
||||
value: addDataKeyNames(JSON.parse(res.data.template))
|
||||
});
|
||||
|
||||
@@ -61,5 +61,16 @@ export default {
|
||||
var templateItem = window.$gz._.find(template, ["fld", fieldKey]);
|
||||
|
||||
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;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -65,6 +65,8 @@ export default new Vuex.Store({
|
||||
state.localeText[data.key] = data.value;
|
||||
},
|
||||
addFormCustomTemplateItem(state, data) {
|
||||
state.formCustomTemplate[data.formKey + "_concurrencyToken"] =
|
||||
data.concurrencyToken;
|
||||
state.formCustomTemplate[data.formKey] = data.value;
|
||||
},
|
||||
setLocale(state, data) {
|
||||
|
||||
@@ -147,6 +147,7 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
obj: [],
|
||||
concurrencyToken: undefined,
|
||||
formCustomTemplateKey: this.$route.params.formCustomTemplateKey,
|
||||
pickLists: {
|
||||
formFieldDataTypes: [
|
||||
@@ -196,54 +197,79 @@ export default {
|
||||
},
|
||||
submit() {
|
||||
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
|
||||
window.$gz.form.deleteAllErrorBoxErrors(this);
|
||||
|
||||
//Create template data object here....
|
||||
var newObj = {
|
||||
formKey: this.formCustomTemplateKey,
|
||||
concurrencyToken: this.concurrencyToken,
|
||||
template: []
|
||||
};
|
||||
//Rules:
|
||||
console.log("Template from server:");
|
||||
console.log(
|
||||
window.$gz.store.state.formCustomTemplate[this.formCustomTemplateKey]
|
||||
);
|
||||
console.log("Working object:");
|
||||
console.log(this.obj);
|
||||
for (var i = 0; i < this.obj.length; i++) {
|
||||
var fldItem = this.obj[i];
|
||||
if (fldItem.custom == false) {
|
||||
//Process regular stock field
|
||||
//If it's set to hidden or required then it's template-worthy
|
||||
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
|
||||
// .upsert(url, this.obj)
|
||||
// .then(res => {
|
||||
// vm.formState.loading = false;
|
||||
// if (res.error != undefined) {
|
||||
// vm.formState.serverError = res.error;
|
||||
// window.$gz.form.setErrorBoxErrors(vm);
|
||||
// } 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.data.id) {
|
||||
// //Handle "post" of new record (CREATE)
|
||||
// vm.obj = res.data;
|
||||
// window.$gz.form.setFormState({
|
||||
// vm: vm,
|
||||
// dirty: false,
|
||||
// readOnly: res.readOnly ? true : false
|
||||
// });
|
||||
/* example
|
||||
{"data":{"id":1,"concurrencyToken":3798757,"formKey":"widget","template":"[
|
||||
{\"fld\":\"WidgetNotes\",\"required\":true},
|
||||
{\"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\"}]"}}
|
||||
|
||||
// //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);
|
||||
// } else {
|
||||
// //Handle "put" of an existing record (UPDATE)
|
||||
// vm.obj.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);
|
||||
// });
|
||||
|
||||
But what is happening:
|
||||
{"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"}]}
|
||||
*/
|
||||
window.$gz.api
|
||||
.upsert(url, newObj)
|
||||
.then(res => {
|
||||
debugger;
|
||||
vm.formState.loading = false;
|
||||
if (res.error != undefined) {
|
||||
vm.formState.serverError = res.error;
|
||||
window.$gz.form.setErrorBoxErrors(vm);
|
||||
} else {
|
||||
//Handle "put" of an existing record (UPDATE) (there is no POST of a new record for this particular object)
|
||||
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.concurrencyToken = window.$gz.formCustomTemplate.getTemplateConcurrencyToken(
|
||||
vm.formCustomTemplateKey
|
||||
);
|
||||
}
|
||||
|
||||
// vm.formAvailableFields = res.data;
|
||||
|
||||
Reference in New Issue
Block a user