case 4503

This commit is contained in:
2023-04-04 22:43:45 +00:00
parent ed626323c5
commit a75a8d2541
2 changed files with 41 additions and 4 deletions

View File

@@ -9,6 +9,7 @@
<v-card-title>{{ tableColumnData.text }}</v-card-title> <v-card-title>{{ tableColumnData.text }}</v-card-title>
<v-card-text> <v-card-text>
{{ activeFilter }}
<!-- FILTER CONTROL --> <!-- FILTER CONTROL -->
<template v-if="editItem.isFilterable"> <template v-if="editItem.isFilterable">
<div class="pt-6"> <div class="pt-6">
@@ -380,7 +381,8 @@ export default {
props: { props: {
dataListKey: { type: String, default: null }, dataListKey: { type: String, default: null },
activeFilterId: { type: Number, default: null } activeFilterId: { type: Number, default: null },
defaultFilterId: { type: Number, default: null }
}, },
data: () => ({ data: () => ({
isVisible: false, isVisible: false,
@@ -390,6 +392,7 @@ export default {
fieldDefinitions: [], fieldDefinitions: [],
editItem: { filter: { items: [] } }, editItem: { filter: { items: [] } },
activeFilter: null, activeFilter: null,
defaultFilter: null,
selectLists: { selectLists: {
dateFilterOperators: [], dateFilterOperators: [],
dateFilterTokens: [], dateFilterTokens: [],
@@ -452,13 +455,15 @@ export default {
af.push(newColumnFilter); af.push(newColumnFilter);
} }
//turn activeFilter back into json and send back to server to save //turn activeFilter back into json and send back to server to save to default filter (case 4503)
this.activeFilter.filter = JSON.stringify(af); this.defaultFilter.filter = JSON.stringify(af);
//case 4503 save as new default filter so that any saved filter is not ovewritten here, data table will ensure it flips back to default filter after this
//saves and emits a refresh command
//SAVE //SAVE
const res = await window.$gz.api.put( const res = await window.$gz.api.put(
"data-list-filter", "data-list-filter",
this.activeFilter this.defaultFilter
); );
if (res.error) { if (res.error) {
throw new Error(window.$gz.errorHandler.errorToString(res, this)); throw new Error(window.$gz.errorHandler.errorToString(res, this));
@@ -586,6 +591,7 @@ export default {
this.tableColumnData = tableColumnData; this.tableColumnData = tableColumnData;
await fetchActiveFilter(this); await fetchActiveFilter(this);
await fetchDefaultFilter(this); //case 4503
initEditItem(this); initEditItem(this);
this.formState.dirty = false; this.formState.dirty = false;
this.isVisible = true; this.isVisible = true;
@@ -647,6 +653,20 @@ async function fetchActiveFilter(vm) {
} }
} }
////////////////////
//case 4503
async function fetchDefaultFilter(vm) {
///api/v8/data-list-filter/{id}
const res = await window.$gz.api.get(
`data-list-filter/${vm.defaultFilterId}`
);
if (res.error) {
throw new Error(window.$gz.errorHandler.errorToString(res, vm));
} else {
vm.defaultFilter = res.data;
}
}
////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////
// //
// Ensures UI translated text is available // Ensures UI translated text is available

View File

@@ -5,6 +5,7 @@
ref="dataTableFilter" ref="dataTableFilter"
:data-list-key="dataListKey" :data-list-key="dataListKey"
:active-filter-id="activeFilterId" :active-filter-id="activeFilterId"
:default-filter-id="defaultFilterId"
> >
</gz-data-table-filter> </gz-data-table-filter>
<gz-data-table-filter-manager <gz-data-table-filter-manager
@@ -567,6 +568,7 @@ export default {
dataTablePagingOptions: {}, dataTablePagingOptions: {},
lastDataTablePagingOptions: {}, lastDataTablePagingOptions: {},
activeFilterId: 0, //<--0 signifies to select default as it's uninitialized activeFilterId: 0, //<--0 signifies to select default as it's uninitialized
defaultFilterId: 0, //case 4503
lastFetchFilterId: -1, //used to track change of filter and reset paging in getdata lastFetchFilterId: -1, //used to track change of filter and reset paging in getdata
selectLists: { selectLists: {
savedFilters: [] savedFilters: []
@@ -700,6 +702,11 @@ export default {
this.selected = []; //remove any selections this.selected = []; //remove any selections
//New filter, need to go back to the first page //New filter, need to go back to the first page
this.dataTablePagingOptions.page = 1; this.dataTablePagingOptions.page = 1;
//case 4503 change filter selection to default then get data
//Reset back to DEFAULT filter
setActiveFilter(this); //will not trigger refresh yet
this.getDataFromApi(); this.getDataFromApi();
} }
}, },
@@ -1321,6 +1328,16 @@ async function fetchSavedFilterList(vm) {
vm.selectLists.savedFilters = res.data; vm.selectLists.savedFilters = res.data;
//confirm we still have the current active filter id //confirm we still have the current active filter id
setActiveFilter(vm, vm.activeFilterId); setActiveFilter(vm, vm.activeFilterId);
//case 4503 get default filter id so we know it
//no specific id so attempt to set to default
const dflt = vm.selectLists.savedFilters.find(z => z.default == true);
if (dflt) {
vm.defaultFilterId = dflt.id;
return;
} else {
vm.defaultFilterId = 0;
}
} }
} }