diff --git a/client/components/parameter-list.js b/client/components/parameter-list.js index 194fdb0..2f6b540 100644 --- a/client/components/parameter-list.js +++ b/client/components/parameter-list.js @@ -12,19 +12,23 @@ const component = { view: vnode => { const device = vnode.attrs.device; - const rows = Object.values(vnode.attrs.parameters).map(parameter => - m( + const rows = Object.values(vnode.attrs.parameters).map(parameter => { + const p = m( + components.get(parameter.type || "parameter"), + getChildAttrs(parameter, device) + ); + + return m( "tr", + { + onupdate: vn => { + vn.dom.style.display = p.dom ? "" : "none"; + } + }, m("th", parameter.label), - m( - "td", - m( - components.get(parameter.type || "parameter"), - getChildAttrs(parameter, device) - ) - ) - ) - ); + m("td", p) + ); + }); return m("table.parameter-list", rows); } diff --git a/client/components/parameter.js b/client/components/parameter.js index 0871252..4683233 100644 --- a/client/components/parameter.js +++ b/client/components/parameter.js @@ -47,6 +47,8 @@ const component = { store.getTimestamp() ); + if (value == null) return null; + let edit; if (device[parameter] && device[parameter].writable) edit = m(