Some refactoring

This commit is contained in:
Zaid Abdulla committed 2018-12-26 00:22:07 -08:00
1 parent 3cfac28fb1
commit 957417837e
10 files changed
+142 -58

No files matched your search

+27 -13
View File
@@ -2,27 +2,41 @@
import m from "mithril";
import * as components from "../components";
import * as store from "../store";
import * as filterParser from "../../common/filter-parser";
const component = {
oninit: vnode => {
vnode.state.parameters = Object.values(vnode.attrs.parameters).map(
parameter =>
Object.assign({}, parameter, {
parameter: filterParser.parseParameter(parameter.parameter)
})
);
},
view: vnode => {
const device = vnode.attrs.device;
const parameters = vnode.attrs.parameters;
const filtered = Object.values(parameters).filter(
p => p.parameter in device
);
const rows = filtered.map(p =>
m(
"tr",
m("th", p.label),
const rows = [];
for (let parameter of vnode.state.parameters) {
let p = store.evaluateExpression(parameter.parameter, device);
if (!(p in device)) continue;
rows.push(
m(
"td",
"tr",
m("th", parameter.label),
m(
components.get(p.type || "parameter"),
Object.assign({ device: device }, p)
"td",
m(
components.get(parameter.type || "parameter"),
Object.assign({}, parameter, { device: device, parameter: p })
)
)
)
)
);
);
}
return m("table.parameter-list", rows);
}
};
+23 -6
View File
@@ -3,12 +3,23 @@
import m from "mithril";
import * as components from "../components";
import * as taskQueue from "../task-queue";
import * as store from "../store";
import * as filterParser from "../../common/filter-parser";
const component = {
oninit: vnode => {
vnode.state.object = filterParser.parseParameter(vnode.attrs.object);
vnode.state.parameters = Object.values(vnode.attrs.parameters).map(
parameter => {
let p = filterParser.parseParameter(parameter.parameter);
return Object.assign({}, parameter, { parameter: p });
}
);
},
view: vnode => {
const device = vnode.attrs.device;
const object = vnode.attrs.object;
const parameters = vnode.attrs.parameters;
const object = store.evaluateExpression(vnode.state.object, device);
const parameters = vnode.state.parameters;
if (!device[object]) return null;
@@ -27,17 +38,19 @@ const component = {
const rows = [];
for (let i of instances) {
const row = Object.values(parameters).map(p =>
const row = parameters.map(p =>
m(
"td",
m(
components.get("parameter"),
Object.assign({ device: device }, p, {
parameter: `${i}.${p.parameter}`
Object.assign({}, p, {
device: device,
parameter: `${i}.${store.evaluateExpression(p.parameter, device)}`
})
)
)
);
if (device[i].writable === true)
row.push(
m(
@@ -90,7 +103,11 @@ const component = {
)
)
);
return m("table.table", thead, m("tbody", rows));
let label;
if (vnode.attrs.label) label = m("h2", vnode.attrs.label);
return [label, m("table.table", thead, m("tbody", rows))];
}
};
+5 -5
View File
@@ -5,7 +5,9 @@ import * as taskQueue from "../task-queue";
const component = {
view: vnode => {
const param = vnode.attrs.device[vnode.attrs.parameter];
const device = vnode.attrs.device;
const parameter = vnode.attrs.parameter;
const param = device[parameter];
if (!param || !param.value) return m("span.na", "N/A");
let value = param.value[0];
if (param.value[1] === "xsd:dateTime")
@@ -20,10 +22,8 @@ const component = {
onclick: () => {
taskQueue.stageSpv({
name: "setParameterValues",
device: vnode.attrs.device["DeviceID.ID"].value[0],
parameterValues: [
[vnode.attrs.parameter, param.value[0], param.value[1]]
]
device: device["DeviceID.ID"].value[0],
parameterValues: [[parameter, param.value[0], param.value[1]]]
});
}
},
+12 -2
View File
@@ -4,20 +4,30 @@ import m from "mithril";
import * as taskQueue from "../task-queue";
import * as store from "../store";
import * as notifications from "../notifications";
import * as filterParser from "../../common/filter-parser";
const component = {
oninit: vnode => {
vnode.state.parameters = Object.values(vnode.attrs.parameters).map(
parameter => filterParser.parseParameter(parameter)
);
},
view: vnode => {
const device = vnode.attrs.device;
return m(
"button.primary",
{
title: "Initiate session and refresh basic parameters",
onclick: e => {
e.target.disabled = true;
const params = Object.values(vnode.attrs.parameters);
const params = vnode.state.parameters.map(p =>
store.evaluateExpression(p, device)
);
const task = {
name: "getParameterValues",
parameterNames: params,
device: vnode.attrs.device["DeviceID.ID"].value[0]
device: device["DeviceID.ID"].value[0]
};
taskQueue