diff --git a/ayanova/src/views/ay-data-list-column-view.vue b/ayanova/src/views/ay-data-list-column-view.vue index 4f5a5ed9..50f4536f 100644 --- a/ayanova/src/views/ay-data-list-column-view.vue +++ b/ayanova/src/views/ay-data-list-column-view.vue @@ -60,26 +60,15 @@ const FORM_KEY = "ay-data-list-column-view"; const API_BASE_URL = "data-list-column-view/"; export default { - //unsaved changes are actually valid for this form so no need to warn - beforeRouteLeave(to, from, next) { - let vm = this; - if (this.formState.dirty) { - //LVNEW: SAVE AUTOMATICALLY? - //No, better to follow consistent pattern - throw "ay-data-list-column-view:beforeRouteLeave save automatically not implemented yet"; - - // //Put in unsaved listview - // let formSettings = window.$gz.form.getFormSettings(vm.formKey); - // formSettings.saved.dataTable.unsavedListView = JSON.stringify( - // generateListViewFromEdited(vm) - // ); - - // formSettings.temp.cachedListView = null; - // formSettings.temp.page = 1; - // window.$gz.form.setFormSettings(vm.formKey, formSettings); + async beforeRouteLeave(to, from, next) { + if (!this.formState.dirty) { + next(); + return; + } + if ((await window.$gz.dialog.confirmLeaveUnsaved()) === true) { next(); } else { - next(); + next(false); } }, beforeDestroy() { @@ -88,13 +77,10 @@ export default { async created() { let vm = this; try { - //set route values in data object so init form can handle vm.dataListKey = this.$route.params.dataListKey; await initForm(vm); vm.formState.ready = true; window.$gz.eventBus.$on("menu-click", clickHandler); - //NOTE: this would normally be in getDataFromAPI but this form doesn't really need that function so doing it here - //modify the menu as necessary generateMenu(vm); //init disable save button so it can be enabled only on edit to show dirty form window.$gz.eventBus.$emit("menu-disable-item", FORM_KEY + ":save"); @@ -117,18 +103,6 @@ export default { dataListKey: undefined, fieldDefinitions: [], editView: [], - effectiveListView: undefined, - concurrency: undefined, - selectLists: { - dateFilterOperators: [], - dateFilterTokens: [], - stringFilterOperators: [], - integerFilterOperators: [], - boolFilterOperators: [], - decimalFilterOperators: [], - tagFilterOperators: [], - enumFilterOperators: [] - }, formState: { ready: false, dirty: false, @@ -139,7 +113,7 @@ export default { appError: undefined, serverError: {} }, - rights: window.$gz.role.getRights(window.$gz.type.DataListView) + rights: window.$gz.role.fullRightsObject() }; }, //WATCHERS @@ -158,20 +132,6 @@ export default { } else { window.$gz.eventBus.$emit("menu-disable-item", FORM_KEY + ":save"); } - - //enable / disable duplicate button - let canDuplicate = !val.dirty && val.valid && !val.readOnly; - if (canDuplicate) { - window.$gz.eventBus.$emit( - "menu-enable-item", - FORM_KEY + ":duplicate" - ); - } else { - window.$gz.eventBus.$emit( - "menu-disable-item", - FORM_KEY + ":duplicate" - ); - } }, deep: true } @@ -285,36 +245,8 @@ export default { vm.formState.serverError = res.error; window.$gz.form.setErrorBoxErrors(vm); } else { - // //successfully updated regardless if POST or PUT so update the local cache - // //Update the formSettings now that it's saved - // let formSettings = window.$gz.form.getFormSettings(vm.formKey); - // formSettings.temp.cachedListView = lvSave.listView; - // formSettings.temp.page = 1; - // formSettings.saved.dataTable.unsavedListView = null; - // window.$gz.form.setFormSettings(vm.formKey, formSettings); - //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) - // //No longer dirty - // window.$gz.form.setFormState({ - // vm: vm, - // dirty: false - // }); - // //change url to new record - // vm.$router.replace( - // window.$gz.api.replaceAfterLastSlash( - // vm.$route.fullPath, - // res.data.id - // ) - // ); - // } else { - // //Handle "put" of an existing record (UPDATE) - // vm.obj.concurrency = res.data.concurrency; - // window.$gz.form.setFormState({ - // vm: vm, - // dirty: false - // }); - // } + vm.obj = res.data; + initWorkingView(vm); } } catch (error) { vm.formState.loading = false; @@ -336,14 +268,9 @@ export default { vm.formState.serverError = res.error; window.$gz.form.setErrorBoxErrors(vm); } else { - // //set it to the default list view so the caller doesn't try to load the non-existant deleted view it was just working with - // let formSettings = window.$gz.form.getFormSettings(vm.formKey); - // formSettings.temp.cachedListView = null; - // formSettings.temp.page = 1; - // formSettings.saved.dataTable.unsavedListView = null; - // window.$gz.form.setFormSettings(vm.formKey, formSettings); - // // navigate backwards - // vm.$router.go(-1); + //this "remove" route is a reset route and returns the object + vm.obj = res.data; + initWorkingView(vm); } } catch (error) { //Update the form status