Move UI configs to DB

This commit is contained in:
Shweelan Samson authored and Zaid Abdulla committed 2019-01-16 05:22:14 -08:00
1 parent 192ed6b034
commit 1cceba3f8b
22 files changed
+337 -448

No files matched your search

+5 -1
View File
@@ -4,6 +4,10 @@ import m from "mithril";
import * as components from "../components";
import * as taskQueue from "../task-queue";
import longTextComponent from "../long-text-component";
import * as expression from "../../lib/common/expression";
import memoize from "../../lib/common/memoize";
const memoizedParse = memoize(expression.parse);
function escapeRegExp(str) {
return str.replace(/[-[\]/{}()*+?.\\^$|]/g, "\\$&");
@@ -47,7 +51,7 @@ const component = {
val.push(
m(
components.get("parameter"),
Object.assign({ device: device, parameter: k })
Object.assign({ device: device, parameter: memoizedParse(k) })
)
);
} else if (p.object && p.writable) {
+2 -6
View File
@@ -3,16 +3,12 @@
import m from "mithril";
import * as components from "../components";
import * as store from "../store";
import * as expression from "../../lib/common/expression";
import memoize from "../../lib/common/memoize";
const memoizedParse = memoize(expression.parse);
const component = {
view: vnode => {
if (vnode.attrs.filter) {
const filter = memoizedParse(vnode.attrs.filter);
if (!store.evaluateExpression(filter, vnode.attrs.device)) return null;
if (!store.evaluateExpression(vnode.attrs.filter, vnode.attrs.device))
return null;
}
const children = Object.values(vnode.attrs.components).map(c => {
+1 -5
View File
@@ -3,10 +3,6 @@
import m from "mithril";
import config from "../config";
import * as store from "../store";
import * as expression from "../../lib/common/expression";
import memoize from "../../lib/common/memoize";
const memoizedParse = memoize(expression.parse);
const CHARTS = config.ui.overview.charts;
@@ -15,7 +11,7 @@ const component = {
const device = vnode.attrs.device;
const chart = CHARTS[vnode.attrs.chart];
for (const slice of Object.values(chart.slices)) {
const filter = memoizedParse(slice.filter);
const filter = slice.filter;
if (store.evaluateExpression(filter, device)) {
const dot = m(
"svg",
+4 -15
View File
@@ -4,25 +4,15 @@ import m from "mithril";
import * as components from "../components";
import * as taskQueue from "../task-queue";
import * as store from "../store";
import * as expression from "../../lib/common/expression";
import * as expressionParser from "../../lib/common/expression-parser";
import memoize from "../../lib/common/memoize";
const memoizeParse = memoize(expression.parse);
const component = {
oninit: vnode => {
const obj = expression.parse(vnode.attrs.parameter);
const obj = vnode.attrs.parameter;
if (!Array.isArray(obj) || !obj[0] === "PARAM")
throw new Error("Object must be a parameter path");
vnode.state.object = obj[1];
vnode.state.parameters = Object.values(vnode.attrs.childParameters).map(
parameter => {
return Object.assign({}, parameter, {
parameter: expression.parse(parameter.parameter)
});
}
);
vnode.state.parameters = Object.values(vnode.attrs.childParameters);
},
view: vnode => {
const device = vnode.attrs.device;
@@ -47,8 +37,7 @@ const component = {
const rows = [];
for (const i of instances) {
let filter =
vnode.attrs.filter != null ? memoizeParse(vnode.attrs.filter) : true;
let filter = vnode.attrs.filter != null ? vnode.attrs.filter : true;
filter = expressionParser.map(filter, e => {
if (Array.isArray(e) && e[0] === "PARAM")
@@ -70,7 +59,7 @@ const component = {
components.get(p.type || "parameter"),
Object.assign({}, p, {
device: device,
parameter: expressionParser.stringify(param),
parameter: param,
label: ""
})
)
+1 -3
View File
@@ -8,12 +8,10 @@ import memoize from "../../lib/common/memoize";
import timeAgo from "../timeago";
import longTextComponent from "../long-text-component";
const memoizedParse = memoize(expression.parse);
const evaluateParam = memoize((exp, obj, now) => {
let timestamp = now;
const params = new Set();
const value = expression.evaluate(memoizedParse(exp), obj, now, e => {
const value = expression.evaluate(exp, obj, now, e => {
if (Array.isArray(e)) {
if (e[0] === "PARAM") {
params.add(e[1]);
+1 -6
View File
@@ -4,10 +4,6 @@ import m from "mithril";
import * as taskQueue from "../task-queue";
import * as store from "../store";
import * as notifications from "../notifications";
import * as expression from "../../lib/common/expression";
import memoize from "../../lib/common/memoize";
const memoizedParse = memoize(expression.parse);
const component = {
view: vnode => {
@@ -20,8 +16,7 @@ const component = {
onclick: e => {
e.target.disabled = true;
const params = Object.values(vnode.attrs.parameters)
.map(p => {
const exp = memoizedParse(p);
.map(exp => {
if (!Array.isArray(exp) || !exp[0] === "PARAM") return null;
return store.evaluateExpression(exp[1], device);
})