Generalize store quering functions

This commit is contained in:
Zaid Abdulla committed 2018-12-26 00:22:07 -08:00
1 parent 93c6a4dfcd
commit 9b827c5f5e
26 files changed
+1362 -321

No files matched your search

+11 -6
View File
@@ -2,18 +2,21 @@
import m from "mithril";
import config from "./config";
import * as config from "./config";
import * as filterParser from "../common/filter-parser";
const component = {
view: vnode => {
let a = m(
"datalist#filters",
config.filter.map(f => m("option", { value: `${f.parameter} = ` }))
Object.values(config.get("ui.filters")).map(f =>
m("option", { value: `${f.parameter} = ` })
)
);
if (!vnode.state.filterList) {
if (vnode.attrs.filter !== vnode.state.filter) {
vnode.state.filterList = [];
vnode.state.filter = vnode.attrs.filter;
if (vnode.attrs.filter)
if (vnode.attrs.filter[0] === "AND")
for (let i = 1; i < vnode.attrs.filter.length; ++i)
@@ -32,16 +35,18 @@ const component = {
vnode.state.filterList = vnode.state.filterList.filter(
f => f && f.trim()
);
let filter = vnode.state.filterList.map((f, idx) => {
let filterAst = vnode.state.filterList.map((f, idx) => {
try {
return filterParser.parse(f);
} catch (err) {
vnode.state.filterInvalid |= 1 << idx;
}
});
if (filterAst.length) filterAst = ["AND"].concat(filterAst);
else filterAst = null;
vnode.state.filterList.push("");
if (!vnode.state.filterInvalid)
vnode.attrs.onChange(["AND"].concat(filter));
if (!vnode.state.filterInvalid) vnode.attrs.onChange(filterAst);
}
return m(