@@ -198,7 +198,6 @@
@@ -316,6 +315,7 @@ export default {
return {
loading: true,
dataTablePagingOptions: {},
+ lastDataTablePagingOptions: {},
listViewId: 0,
listView: undefined,
pickLists: {
@@ -348,11 +348,29 @@ export default {
watch: {
dataTablePagingOptions: {
handler() {
+ //{ "page": 1, "itemsPerPage": 10, "sortBy": [], "sortDesc": [], "groupBy": [], "groupDesc": [], "mustSort": false, "multiSort": false }
+ //this code works around some weird bug that causes visible items to be selected in grid (only, not in actual selected array, just a visual thing)
+ // when breakpoint is switched between wide and narrow either way. No idea why it happens but this fixes that issue and also ensures that there are no
+ //spurious fetches happening just because the view has changed
+ if (
+ this.lastDataTablePagingOptions.page ==
+ this.dataTablePagingOptions.page &&
+ this.lastDataTablePagingOptions.itemsPerPage ==
+ this.dataTablePagingOptions.itemsPerPage
+ ) {
+ //no effective change, return
+ return;
+ }
+ //has changed something important so refetch and put a pin in last paging settings for next time
this.getDataFromApi();
+ this.lastDataTablePagingOptions = this.dataTablePagingOptions;
},
deep: true
},
selected: function(newValue, oldValue) {
+ if (!newValue) {
+ return;
+ }
if (newValue.length != oldValue.length) {
this.handleSelectChange();
}
@@ -489,6 +507,7 @@ export default {
//Make sure the locale keys are fetched
await fetchLocalizedHeaderNames(res.columns); //Note can use await here because it's wrapped inside an async function call, it will wait then resume next stuff below
await fetchEnums(res.columns);
+
//build vm.headers here
vm.headers = buildHeaders(res.columns);
//Post process data here and then set vm.records
diff --git a/ayanova/src/components/tag-picker.vue b/ayanova/src/components/tag-picker.vue
index a37b598c..03e4514e 100644
--- a/ayanova/src/components/tag-picker.vue
+++ b/ayanova/src/components/tag-picker.vue
@@ -46,7 +46,9 @@
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
/* eslint-disable */
////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
+//NOTE: I had some concerns about how the selection is made, but leving it for now
+//basically the typed text stays after you select from dropdown, however, it clears as soon as you tab off
+//and in theory it could help if picking more than one tag that have similar selection criteria
export default {
beforeUpdate() {
//Set the initial picklist items based on the record items, this only needs to be called once at init
diff --git a/ayanova/src/store.js b/ayanova/src/store.js
index b897bfb9..2c29dffd 100644
--- a/ayanova/src/store.js
+++ b/ayanova/src/store.js
@@ -10,7 +10,7 @@ Vue.use(Vuex);
export default new Vuex.Store({
plugins: [createPersistedState()],
state: {
- lastClientVersion:"",
+ lastClientVersion: "",
authenticated: false,
apiUrl: "",
helpUrl: "",
diff --git a/ayanova/src/views/widgets.vue b/ayanova/src/views/widgets.vue
index 081a862c..6f609e70 100644
--- a/ayanova/src/views/widgets.vue
+++ b/ayanova/src/views/widgets.vue
@@ -4,7 +4,7 @@
:dataListKey="dataListKey"
:dataListFilter="dataListFilter"
:dataListSort="dataListSort"
- :showSelect="false"
+ :showSelect="true"
:singleSelect="false"
v-on:update:selected="handleSelected"
>