This commit is contained in:
2020-03-03 19:29:42 +00:00
parent 15bfab0884
commit aa6a1a15be
5 changed files with 26 additions and 8 deletions

View File

@@ -45,9 +45,6 @@ CURRENT TODOs
@@@@@@@@@@@ ROADMAP STAGE 1 and 2:
todo: Tag picker a bit buggy, when you type to search it retains the typed text in the entry box after selecting, it shouldn't
- possibly when type then make selection the typed part sb cleared after selection
todo: Select in grid fuckery when changing formats or switching between Listviews seems to trigger selection for some reason

View File

@@ -59,7 +59,6 @@
<v-checkbox
v-model="selected"
:value="item"
primary
hide-details
></v-checkbox>
</td>
@@ -171,6 +170,7 @@
<template v-slot:header="props">
<!-- Mimic the full width data table select all toggle :no-data-text="lt('NoData')"-->
<div
id="divSelectAll"
@click="props.toggleSelectAll(!props.everyItem)"
class="pl-2 pt-2"
>
@@ -198,7 +198,6 @@
<v-checkbox
v-model="selected"
:value="item"
primary
hide-details
></v-checkbox>
</v-card-title>
@@ -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

View File

@@ -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

View File

@@ -10,7 +10,7 @@ Vue.use(Vuex);
export default new Vuex.Store({
plugins: [createPersistedState()],
state: {
lastClientVersion:"",
lastClientVersion: "",
authenticated: false,
apiUrl: "",
helpUrl: "",

View File

@@ -4,7 +4,7 @@
:dataListKey="dataListKey"
:dataListFilter="dataListFilter"
:dataListSort="dataListSort"
:showSelect="false"
:showSelect="true"
:singleSelect="false"
v-on:update:selected="handleSelected"
>