From 79fe1af09a5ce2e31127806ff4cc5189011b1011 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Thu, 4 Feb 2021 00:56:46 +0000 Subject: [PATCH] --- .../components/data-table-filter-control.vue | 2 +- .../data-table-filter-manager-control.vue | 218 ++++++++++++++++++ ayanova/src/components/data-table.vue | 15 ++ ayanova/src/main.js | 2 + 4 files changed, 236 insertions(+), 1 deletion(-) create mode 100644 ayanova/src/components/data-table-filter-manager-control.vue diff --git a/ayanova/src/components/data-table-filter-control.vue b/ayanova/src/components/data-table-filter-control.vue index 5f3a578e..583f3bd7 100644 --- a/ayanova/src/components/data-table-filter-control.vue +++ b/ayanova/src/components/data-table-filter-control.vue @@ -333,7 +333,7 @@ export default { reject: null, tableColumnData: {}, //from table fieldDefinitions: [], - editItem: {}, + editItem: { filter: { items: [] } }, activeFilter: null, selectLists: { dateFilterOperators: [], diff --git a/ayanova/src/components/data-table-filter-manager-control.vue b/ayanova/src/components/data-table-filter-manager-control.vue new file mode 100644 index 00000000..88a9f3bb --- /dev/null +++ b/ayanova/src/components/data-table-filter-manager-control.vue @@ -0,0 +1,218 @@ + + diff --git a/ayanova/src/components/data-table.vue b/ayanova/src/components/data-table.vue index a67091d4..1f126587 100644 --- a/ayanova/src/components/data-table.vue +++ b/ayanova/src/components/data-table.vue @@ -7,6 +7,12 @@ ref="dataTableFilter" > + + @@ -18,6 +24,8 @@ item-value="id" :label="$ay.t('Filter')" @input="savedFilterSelected" + prepend-icon="$ayiEdit" + @click:prepend="editFilter()" data-cy="selectSavedFilter" > @@ -521,6 +529,13 @@ export default { } return clr; }, + async editFilter() { + let res = await this.$refs.dataTableFilterManager.open(); + if (res && res.refresh == true) { + //refresh the filter picklist and get data from api + this.getDataFromApi(); + } + }, keyArrayFromSortByArray(sortBy) { return sortBy.map(sortItem => { let val = this.headers.find(z => z.value == sortItem); diff --git a/ayanova/src/main.js b/ayanova/src/main.js index 2e778722..31b5cc0c 100644 --- a/ayanova/src/main.js +++ b/ayanova/src/main.js @@ -40,6 +40,7 @@ import tagPicker from "./components/tag-picker.vue"; import pickList from "./components/pick-list.vue"; import dataTable from "./components/data-table.vue"; import dataTableFilterControl from "./components/data-table-filter-control.vue"; +import dataTableFilterManagerControl from "./components/data-table-filter-manager-control.vue"; import customFieldsControl from "./components/custom-fields-control.vue"; import currencyControl from "./components/currency-control.vue"; import decimalControl from "./components/decimal-control.vue"; @@ -188,6 +189,7 @@ Vue.component("gz-tag-picker", tagPicker); Vue.component("gz-pick-list", pickList); Vue.component("gz-data-table", dataTable); Vue.component("gz-data-table-filter", dataTableFilterControl); +Vue.component("gz-data-table-filter-manager", dataTableFilterManagerControl); Vue.component("gz-custom-fields", customFieldsControl); Vue.component("gz-currency", currencyControl); Vue.component("gz-decimal", decimalControl);