From 94a1761e6cd864d783d43a1eb369db4c26b919e0 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Mon, 28 Jun 2021 21:27:02 +0000 Subject: [PATCH] --- ayanova/devdocs/todo.txt | 8 ++-- ayanova/src/views/acc-service-rate.vue | 64 ++++++++------------------ ayanova/src/views/acc-tax-code.vue | 63 ++++++++----------------- ayanova/src/views/acc-travel-rate.vue | 64 ++++++++------------------ 4 files changed, 63 insertions(+), 136 deletions(-) diff --git a/ayanova/devdocs/todo.txt b/ayanova/devdocs/todo.txt index 5173c3a9..dec39a9e 100644 --- a/ayanova/devdocs/todo.txt +++ b/ayanova/devdocs/todo.txt @@ -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 - 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 - - in duplicate menu object creation add code from project to check if id is zero before adding it + todo: duplicate the duplicate stuff in Project on all other forms + - rejig the formstate setting and object setting code for duplicate based on project - replace duplicate code with project version - Remove at server duplicate route and de-document if found anywhere - 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?? should be supported, otherwise you need to scroll around a list to find it which is fucked diff --git a/ayanova/src/views/acc-service-rate.vue b/ayanova/src/views/acc-service-rate.vue index c4de3bcf..e45ff510 100644 --- a/ayanova/src/views/acc-service-rate.vue +++ b/ayanova/src/views/acc-service-rate.vue @@ -217,6 +217,8 @@ export default { vm.rights = window.$gz.role.getRights(window.$gz.type.ServiceRate); vm.formState.readOnly = !vm.rights.change; window.$gz.eventBus.$on("menu-click", clickHandler); + let setDirty = false; + let setValid = true; //id 0 means create a new record don't load one if (vm.$route.params.recordid != 0) { @@ -224,25 +226,25 @@ export default { if (this.$route.params.obj) { //yes, no need to fetch it this.obj = this.$route.params.obj; - window.$gz.form.setFormState({ - vm: vm, - loading: false - }); } else { await vm.getDataFromApi(vm.$route.params.recordid); //let getdata handle loading } } else { - window.$gz.form.setFormState({ - vm: vm, - loading: false - }); + //Might be a duplicate and contain another record + if (this.$route.params.obj) { + this.obj = this.$route.params.obj; + this.obj.concurrency = undefined; + this.obj.id = 0; + setDirty = true; + } } + window.$gz.form.setFormState({ vm: vm, - dirty: false, - valid: true + loading: false, + dirty: setDirty, + valid: setValid }); - generateMenu(vm); } catch (error) { window.$gz.errorHandler.handleFormError(error, vm); @@ -503,40 +505,14 @@ export default { } }, 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 { - 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 - } - }); + //Navigate to new record + this.$router.push({ + name: "service-rate-edit", + params: { + recordid: 0, + obj: this.obj } - } catch (ex) { - window.$gz.errorHandler.handleFormError(ex, vm); - } finally { - window.$gz.form.setFormState({ - vm: vm, - loading: false - }); - } + }); } //end methods diff --git a/ayanova/src/views/acc-tax-code.vue b/ayanova/src/views/acc-tax-code.vue index cae1a4b4..6a3be2d2 100644 --- a/ayanova/src/views/acc-tax-code.vue +++ b/ayanova/src/views/acc-tax-code.vue @@ -179,6 +179,8 @@ export default { vm.rights = window.$gz.role.getRights(window.$gz.type.TaxCode); vm.formState.readOnly = !vm.rights.change; window.$gz.eventBus.$on("menu-click", clickHandler); + let setDirty = false; + let setValid = true; //id 0 means create a new record don't load one if (vm.$route.params.recordid != 0) { @@ -186,23 +188,24 @@ export default { if (this.$route.params.obj) { //yes, no need to fetch it this.obj = this.$route.params.obj; - window.$gz.form.setFormState({ - vm: vm, - loading: false - }); } else { await vm.getDataFromApi(vm.$route.params.recordid); //let getdata handle loading } } else { - window.$gz.form.setFormState({ - vm: vm, - loading: false - }); + //Might be a duplicate and contain another record + if (this.$route.params.obj) { + this.obj = this.$route.params.obj; + this.obj.concurrency = undefined; + this.obj.id = 0; + setDirty = true; + } } + window.$gz.form.setFormState({ vm: vm, - dirty: false, - valid: true + loading: false, + dirty: setDirty, + valid: setValid }); generateMenu(vm); @@ -460,40 +463,14 @@ export default { } }, 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 { - 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 - } - }); + //Navigate to new record + this.$router.push({ + name: "tax-code-edit", + params: { + recordid: 0, + obj: this.obj } - } catch (ex) { - window.$gz.errorHandler.handleFormError(ex, vm); - } finally { - window.$gz.form.setFormState({ - vm: vm, - loading: false - }); - } + }); } //end methods diff --git a/ayanova/src/views/acc-travel-rate.vue b/ayanova/src/views/acc-travel-rate.vue index 77c62465..41b4ed19 100644 --- a/ayanova/src/views/acc-travel-rate.vue +++ b/ayanova/src/views/acc-travel-rate.vue @@ -215,6 +215,8 @@ export default { vm.rights = window.$gz.role.getRights(window.$gz.type.TravelRate); vm.formState.readOnly = !vm.rights.change; window.$gz.eventBus.$on("menu-click", clickHandler); + let setDirty = false; + let setValid = true; //id 0 means create a new record don't load one if (vm.$route.params.recordid != 0) { @@ -222,25 +224,25 @@ export default { if (this.$route.params.obj) { //yes, no need to fetch it this.obj = this.$route.params.obj; - window.$gz.form.setFormState({ - vm: vm, - loading: false - }); } else { await vm.getDataFromApi(vm.$route.params.recordid); //let getdata handle loading } } else { - window.$gz.form.setFormState({ - vm: vm, - loading: false - }); + //Might be a duplicate and contain another record + if (this.$route.params.obj) { + this.obj = this.$route.params.obj; + this.obj.concurrency = undefined; + this.obj.id = 0; + setDirty = true; + } } + window.$gz.form.setFormState({ vm: vm, - dirty: false, - valid: true + loading: false, + dirty: setDirty, + valid: setValid }); - generateMenu(vm); } catch (error) { window.$gz.errorHandler.handleFormError(error, vm); @@ -501,40 +503,14 @@ export default { } }, 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 { - 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 - } - }); + //Navigate to new record + this.$router.push({ + name: "travel-rate-edit", + params: { + recordid: 0, + obj: this.obj } - } catch (ex) { - window.$gz.errorHandler.handleFormError(ex, vm); - } finally { - window.$gz.form.setFormState({ - vm: vm, - loading: false - }); - } + }); } //end methods