diff --git a/ayanova/devdocs/todo.txt b/ayanova/devdocs/todo.txt index 860f5e40..0c2a5b50 100644 --- a/ayanova/devdocs/todo.txt +++ b/ayanova/devdocs/todo.txt @@ -6,8 +6,10 @@ WIFI change 5g channel to 52,56,60 and 2g channel to 8 recheck before doing as it seems to vary, maybe someone else's is auto switching -todo: manually go through every form and look for errors in console and make sure it all works properly - *all* forms, leave no stone unturned, sb no surprises beyond this point +todo: datagrid offset out of whack on filter change of grid list or create new + it should reset paging any time the filter has changed from the prior in use + +todo: datetime should support keyboard entry if typing todo: if dbid in url query parameter of contact form on server it should include that in the message also something needs to be fixed there, it's been in notes forever diff --git a/ayanova/src/api/enums.js b/ayanova/src/api/enums.js index 1aaa45e7..4ed7da40 100644 --- a/ayanova/src/api/enums.js +++ b/ayanova/src/api/enums.js @@ -58,7 +58,7 @@ export default { // eslint-disable-next-line let res = await window.$gz.api.get("enum-list/list/" + enumKey); //We never expect there to be no data here - if (!res.data) { + if (!res.hasOwnProperty("data")) { throw res; } return res.data; diff --git a/ayanova/src/components/gz-data-table.vue b/ayanova/src/components/gz-data-table.vue index 084b001e..5483ef48 100644 --- a/ayanova/src/components/gz-data-table.vue +++ b/ayanova/src/components/gz-data-table.vue @@ -429,7 +429,7 @@ export default { }); }, - listViewChanged: function() { + listViewChanged: async function() { let vm = this; //If listview had changed it can only have changed *away* from the unsaved filter item if it's present so just remove the unsaved filter item if it exists @@ -442,37 +442,29 @@ export default { // return n.id == -1; // }); + //first prevent the following changes from triggering a fetch + vm.loading = true; + //always go back to page one on a change of data list view + vm.dataTablePagingOptions.page = 1; + for (let i = vm.selectLists.listViews.length - 1; i >= 0; i--) { if (vm.selectLists.listViews[i].id === -1) { vm.selectLists.listViews.splice(i, 1); } } - let ShouldGetData = vm.dataTablePagingOptions.page == 1; - if (vm.listViewId == 0) { //default view, no saved, no cached vm.listView = undefined; - saveFormSettings(vm); - if (ShouldGetData) { - vm.getDataFromApi(); - } else { - vm.dataTablePagingOptions.page = 1; - } - // } else if (vm.listViewId > 0) { - (async function() { - await fetchListView(vm); - - saveFormSettings(vm); - if (ShouldGetData) { - vm.getDataFromApi(); - } else { - vm.dataTablePagingOptions.page = 1; - } - })(); + await fetchListView(vm); + saveFormSettings(vm); } + + //fetch data because listview has changed + vm.loading = false; + vm.getDataFromApi(); }, gridCellButtonClick(key, i) { //translate key to actual object type from header data diff --git a/ayanova/src/components/pick-list.vue b/ayanova/src/components/pick-list.vue index 44461508..77640e9d 100644 --- a/ayanova/src/components/pick-list.vue +++ b/ayanova/src/components/pick-list.vue @@ -258,7 +258,7 @@ export default { vm.fetching = false; //We never expect there to be no data here - if (!res.data) { + if (!res.hasOwnProperty("data")) { throw res; } vm.searchResults = res.data; diff --git a/ayanova/src/components/tag-picker.vue b/ayanova/src/components/tag-picker.vue index 0cf65ca0..3e3af287 100644 --- a/ayanova/src/components/tag-picker.vue +++ b/ayanova/src/components/tag-picker.vue @@ -82,7 +82,7 @@ export default { let res = await window.$gz.api.get("tag-list/list?query=" + val); //roles //We never expect there to be no data here - if (!res.data) { + if (!res.hasOwnProperty("data")) { throw res; } //adding this to the property will automatically have it cached by the autocomplete component diff --git a/ayanova/src/views/adm-license.vue b/ayanova/src/views/adm-license.vue index ec9b3cb6..d6a6b23c 100644 --- a/ayanova/src/views/adm-license.vue +++ b/ayanova/src/views/adm-license.vue @@ -559,14 +559,14 @@ async function initForm(vm) { await fetchTranslatedText(vm); let res = await window.$gz.api.get("license"); //We never expect there to be no data here - if (!res.data) { + if (!res.hasOwnProperty("data")) { throw res; } vm.currentLicenseInfo = res.data.license; res = await window.$gz.api.get("license/database-empty"); //We never expect there to be no data here - if (!res.data) { + if (!res.hasOwnProperty("data")) { throw res; } vm.dbIsEmpty = res.data; diff --git a/ayanova/src/views/ay-about.vue b/ayanova/src/views/ay-about.vue index 50c615bf..37ff0a2b 100644 --- a/ayanova/src/views/ay-about.vue +++ b/ayanova/src/views/ay-about.vue @@ -291,7 +291,7 @@ async function fetchTranslatedText(vm) { async function getServerInfo(vm) { let res = await window.$gz.api.get("server-info"); //We never expect there to be no data here - if (!res.data) { + if (!res.hasOwnProperty("data")) { throw res; } else { vm.serverInfo = res.data; diff --git a/ayanova/src/views/ay-evaluate.vue b/ayanova/src/views/ay-evaluate.vue index 6c25b67c..47ac8748 100644 --- a/ayanova/src/views/ay-evaluate.vue +++ b/ayanova/src/views/ay-evaluate.vue @@ -164,7 +164,7 @@ export default { //Does the database need to be erased? let res = await window.$gz.api.get("license/database-empty"); //We never expect there to be no data here - if (!res.data) { + if (!res.hasOwnProperty("data")) { throw res; } if (res.data != true) {