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 @@
+
+
+
+ {{ $ay.t("Filter") }}
+ {{ activeFilterNameAtOpen }} {{ activeFilterCreator }}
+
+
+
+
+
+
+
+ {{
+ $ay.t("Cancel")
+ }}
+
+
+ {{
+ $ay.t("Delete")
+ }}
+
+
+
+ {{
+ $ay.t("Reset")
+ }}
+
+
+
+ {{
+ $ay.t("SaveCopy")
+ }}
+
+
+
+ {{
+ $ay.t("Save")
+ }}
+
+
+
+
+
+
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);