Files
genieacs/client/device-page.js
T
Zaid Abdulla c2d13e8364 Replace Filter class with expression structure
This is in order to be able to support UPPER() and LOWER() functions in
queries which are needed for case-insensitive search.
2018-12-26 00:22:07 -08:00

44 lines
1.0 KiB
JavaScript

"use strict";
import m from "mithril";
import config from "./config";
import * as store from "./store";
import * as components from "./components";
function init(args) {
if (!window.authorizer.hasAccess("devices", 2))
return Promise.reject(
new Error("You are not authorized to view this page")
);
return Promise.resolve({
deviceId: args.id,
deviceFilter: ["=", ["PARAM", "DeviceID.ID"], args.id]
});
}
const component = {
view: vnode => {
document.title = `${vnode.attrs.deviceId} - Devices - GenieACS`;
let dev = store.fetch("devices", vnode.attrs.deviceFilter).value;
if (!dev.length) return "Loading";
const conf = config.ui.device;
const cmps = [];
for (let c of Object.values(conf))
cmps.push(
m(components.get(c["type"]), Object.assign({ device: dev[0] }, c))
);
return [
m("h1", vnode.attrs.deviceId),
m("span", dev[0]["InternetGatewayDevice.DeviceInfo.SerialNumber"]),
cmps
];
}
};
export { init, component };