This commit is contained in:
2021-06-28 21:27:02 +00:00
parent f2ad70258a
commit 94a1761e6c
4 changed files with 63 additions and 136 deletions

View File

@@ -413,14 +413,12 @@ CURRENTLY DOING:
Tested on Project, works perfectly, also found some optimizations to make around new records in create and also found that new: true is unnecessarily being set on route Tested on Project, works perfectly, also found some optimizations to make around new records in create and also found that new: true is unnecessarily being set on route
todo: duplicate the duplicate stuff in Project on all other forms todo: duplicate the duplicate stuff in Project on all other forms
- remove new: true from all places it currently appears, completely superflous - rejig the formstate setting and object setting code for duplicate based on project
- rejig the formstate setting and object setting code for duplicate based on project
- in duplicate menu object creation add code from project to check if id is zero before adding it
- replace duplicate code with project version - replace duplicate code with project version
- Remove at server duplicate route and de-document if found anywhere - Remove at server duplicate route and de-document if found anywhere
- At server remove any now redundant code that was related to duplication - At server remove any now redundant code that was related to duplication
todo: how to directly open a workorder quickly when you know the wo number?? todo: how to directly open a workorder quickly when you know the wo number??
should be supported, otherwise you need to scroll around a list to find it which is fucked should be supported, otherwise you need to scroll around a list to find it which is fucked

View File

@@ -217,6 +217,8 @@ export default {
vm.rights = window.$gz.role.getRights(window.$gz.type.ServiceRate); vm.rights = window.$gz.role.getRights(window.$gz.type.ServiceRate);
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) {
@@ -224,25 +226,25 @@ export default {
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);
} catch (error) { } catch (error) {
window.$gz.errorHandler.handleFormError(error, vm); window.$gz.errorHandler.handleFormError(error, vm);
@@ -503,40 +505,14 @@ 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: "service-rate-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: "service-rate-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

@@ -179,6 +179,8 @@ export default {
vm.rights = window.$gz.role.getRights(window.$gz.type.TaxCode); vm.rights = window.$gz.role.getRights(window.$gz.type.TaxCode);
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) {
@@ -186,23 +188,24 @@ export default {
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);
@@ -460,40 +463,14 @@ 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: "tax-code-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: "tax-code-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

@@ -215,6 +215,8 @@ export default {
vm.rights = window.$gz.role.getRights(window.$gz.type.TravelRate); vm.rights = window.$gz.role.getRights(window.$gz.type.TravelRate);
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) {
@@ -222,25 +224,25 @@ export default {
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);
} catch (error) { } catch (error) {
window.$gz.errorHandler.handleFormError(error, vm); window.$gz.errorHandler.handleFormError(error, vm);
@@ -501,40 +503,14 @@ 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: "travel-rate-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: "travel-rate-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