This commit is contained in:
2021-06-29 15:05:23 +00:00
parent 1e7faae7d9
commit 2fee84f166
2 changed files with 51 additions and 86 deletions

View File

@@ -1332,29 +1332,39 @@ export default {
vm.formState.readOnly = !vm.rights.change; vm.formState.readOnly = !vm.rights.change;
window.$gz.eventBus.$on("menu-click", clickHandler); window.$gz.eventBus.$on("menu-click", clickHandler);
let setDirty = false;
let setValid = true;
//id 0 means create a new record don't load one //id 0 means create a new record don't load one
if (vm.$route.params.recordid != 0) { if (vm.$route.params.recordid != 0) {
//is there already an obj from a prior operation? //is there already an obj from a prior operation?
if (this.$route.params.obj) { if (this.$route.params.obj) {
//yes, no need to fetch it //yes, no need to fetch it
this.obj = this.$route.params.obj; this.obj = this.$route.params.obj;
window.$gz.form.setFormState({
vm: vm,
loading: false
});
} else { } else {
await vm.getDataFromApi(vm.$route.params.recordid); //let getdata handle loading await vm.getDataFromApi(vm.$route.params.recordid); //let getdata handle loading
} }
} else { } else {
window.$gz.form.setFormState({ //Might be a duplicate and contain another record
vm: vm, if (this.$route.params.obj) {
loading: false this.obj = this.$route.params.obj;
}); this.obj.concurrency = undefined;
this.obj.id = 0;
this.obj.serviceRateItems.forEach(z => (z.id = 0));
this.obj.travelRateItems.forEach(z => (z.id = 0));
this.obj.contractPartOverrideItems.forEach(z => (z.id = 0));
this.obj.contractServiceRateOverrideItems.forEach(z => (z.id = 0));
this.obj.contractTravelRateOverrideItems.forEach(z => (z.id = 0));
setDirty = true;
}
} }
window.$gz.form.setFormState({ window.$gz.form.setFormState({
vm: vm, vm: vm,
dirty: false, loading: false,
valid: true dirty: setDirty,
valid: setValid
}); });
generateMenu(vm); generateMenu(vm);
@@ -1772,42 +1782,18 @@ export default {
window.$gz.errorHandler.handleFormError(error, vm); window.$gz.errorHandler.handleFormError(error, vm);
} }
}, },
async duplicate() {
let vm = this;
if (!vm.canDuplicate || vm.$route.params.recordid == 0) {
return;
}
window.$gz.form.setFormState({
vm: vm,
loading: true
});
let url = API_BASE_URL + "duplicate/" + vm.$route.params.recordid;
try { async duplicate() {
window.$gz.form.deleteAllErrorBoxErrors(vm); //Navigate to new record
let res = await window.$gz.api.upsert(url); this.$router.push({
if (res.error) { name: "contract-edit",
vm.formState.serverError = res.error; params: {
window.$gz.form.setErrorBoxErrors(vm); recordid: 0,
} else { obj: this.obj
//Navigate to new record
this.$router.push({
name: "contract-edit",
params: {
recordid: res.data.id,
obj: res.data // Pass data object to new form
}
});
} }
} catch (ex) { });
window.$gz.errorHandler.handleFormError(ex, vm);
} finally {
window.$gz.form.setFormState({
vm: vm,
loading: false
});
}
} }
//end methods //end methods
} }
}; };

View File

@@ -443,29 +443,33 @@ export default {
vm.formState.readOnly = !vm.rights.change; vm.formState.readOnly = !vm.rights.change;
window.$gz.eventBus.$on("menu-click", clickHandler); window.$gz.eventBus.$on("menu-click", clickHandler);
let setDirty = false;
let setValid = true;
//id 0 means create a new record don't load one //id 0 means create a new record don't load one
if (vm.$route.params.recordid != 0) { if (vm.$route.params.recordid != 0) {
//is there already an obj from a prior operation? //is there already an obj from a prior operation?
if (this.$route.params.obj) { if (this.$route.params.obj) {
//yes, no need to fetch it //yes, no need to fetch it
this.obj = this.$route.params.obj; this.obj = this.$route.params.obj;
window.$gz.form.setFormState({
vm: vm,
loading: false
});
} else { } else {
await vm.getDataFromApi(vm.$route.params.recordid); //let getdata handle loading await vm.getDataFromApi(vm.$route.params.recordid); //let getdata handle loading
} }
} else { } else {
window.$gz.form.setFormState({ //Might be a duplicate and contain another record
vm: vm, if (this.$route.params.obj) {
loading: false this.obj = this.$route.params.obj;
}); this.obj.concurrency = undefined;
this.obj.id = 0;
setDirty = true;
}
} }
window.$gz.form.setFormState({ window.$gz.form.setFormState({
vm: vm, vm: vm,
dirty: false, loading: false,
valid: true dirty: setDirty,
valid: setValid
}); });
generateMenu(vm); generateMenu(vm);
@@ -740,41 +744,16 @@ export default {
} }
}, },
async duplicate() { async duplicate() {
let vm = this; //Navigate to new record
if (!vm.canDuplicate || vm.$route.params.recordid == 0) { this.$router.push({
return; name: "loan-unit-edit",
} params: {
window.$gz.form.setFormState({ recordid: 0,
vm: vm, obj: this.obj
loading: true
});
let url = API_BASE_URL + "duplicate/" + vm.$route.params.recordid;
try {
window.$gz.form.deleteAllErrorBoxErrors(vm);
let res = await window.$gz.api.upsert(url);
if (res.error) {
vm.formState.serverError = res.error;
window.$gz.form.setErrorBoxErrors(vm);
} else {
//Navigate to new record
this.$router.push({
name: "loan-unit-edit",
params: {
recordid: res.data.id,
obj: res.data // Pass data object to new form
}
});
} }
} catch (ex) { });
window.$gz.errorHandler.handleFormError(ex, vm);
} finally {
window.$gz.form.setFormState({
vm: vm,
loading: false
});
}
} }
//end methods //end methods
} }
}; };