Store query as object not array

This commit is contained in:
Erki Aas 2022-11-07 16:41:23 +02:00
parent 1817adcc82
commit 30af9d31ec
2 changed files with 13 additions and 11 deletions

View File

@ -26,7 +26,7 @@ import ExamineLogModal from "./Modal/ExamineLogModal.vue";
import ComboboxFilter from "./Filter/ComboboxFilter.js";
import flattenObj from "../helpers/flattenObj";
import parseEventData from "../helpers/parseEventData";
import { mapActions } from 'vuex';
import {mapActions, mapGetters} from 'vuex';
import config from "./Grid/Main/config";
export default {
@ -57,7 +57,7 @@ export default {
},
created() {
// TODO: monitor actual URL
this.setFilterQuery([])
this.setFilterQuery({})
},
methods: {
...mapActions({
@ -67,9 +67,9 @@ export default {
setupStream() {
this.es && this.es.close();
let url = new URL('/events', window.location.href);
this.filterQuery.map((e) => {
url.searchParams.append(e.key, e.value);
})
for (const key in this.filterQuery) {
url.searchParams.append(key, this.filterQuery[key]);
}
let es = new EventSource(url.toString());
es.onmessage = (e) => this.handleReceiveMessage(e)
es.addEventListener("filters", (e) => this.handleReceiveFilters(e))
@ -88,7 +88,7 @@ export default {
this.gridApi.addGlobalListener((type, event) => {
if (type === 'filterChanged') {
let changedColumn = event.columns[0] ? (event.columns[0].colId) : null
let query = []
let query = {}
let gridColumns = event.columnApi.columnModel.gridColumns
gridColumns.map((column) => {
// Reset child column filter if parent changed
@ -100,10 +100,7 @@ export default {
this.gridApi.onFilterChanged();
}
if (column.filterActive) {
query.push({
key: column.colId,
value: column.filterActive
})
query[column.colId] = column.filterActive
}
})
this.setFilterQuery(query)

View File

@ -3,7 +3,12 @@ import { createStore } from "vuex"
const store = createStore({
state: {
filterOptions: {},
filterQuery: []
filterQuery: {}
},
getters: {
filterQuery (state) {
return state.filterQuery
}
},
actions: {
setFilterOptions(context, payload) {