nodeinfo.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. "use strict"
  2. define(["lib/helper"], function (Helper) {
  3. return function (nodeInfo) {
  4. var el = document.createElement("div")
  5. update(nodeInfo)
  6. function dlEntry(dl, dict, key, prettyName, transform) {
  7. var v = Helper.dictGet(dict, key.split("."))
  8. if (v === null)
  9. return
  10. if (transform) {
  11. v = transform(v)
  12. }
  13. var dt = document.createElement("dt")
  14. var dd = document.createElement("dd")
  15. dt.textContent = prettyName
  16. if (v instanceof Array) {
  17. var tn = v.map(function (d) { return document.createTextNode(d) })
  18. tn.forEach(function (node) {
  19. if (dd.hasChildNodes())
  20. dd.appendChild(document.createElement("br"))
  21. dd.appendChild(node)
  22. })
  23. } else
  24. dd.textContent = v
  25. dl.appendChild(dt)
  26. dl.appendChild(dd)
  27. }
  28. function enabledDisabled(v) {
  29. if (v) {
  30. return Helper._("enabled");
  31. }
  32. return Helper._("disabled");
  33. }
  34. function update(nodeInfo) {
  35. var list = document.createElement("dl")
  36. dlEntry(list, nodeInfo, "hostname", Helper._("Node name"))
  37. dlEntry(list, nodeInfo, "owner.contact", Helper._("Contact"))
  38. dlEntry(list, nodeInfo, "hardware.model", Helper._("Model"))
  39. dlEntry(list, nodeInfo, "network.mac", Helper._("Primary MAC"))
  40. dlEntry(list, nodeInfo, "network.addresses", Helper._("IP Address"))
  41. dlEntry(list, nodeInfo, "software.firmware.release", Helper._("Firmware"))
  42. dlEntry(list, nodeInfo, "software.fastd.enabled", Helper._("Mesh VPN"), enabledDisabled)
  43. dlEntry(list, nodeInfo, "software.autoupdater.enabled", Helper._("Automatic updates"), enabledDisabled)
  44. dlEntry(list, nodeInfo, "software.autoupdater.branch", Helper._("Branch"))
  45. el.appendChild(list)
  46. }
  47. return { title: document.createTextNode(Helper._("Overview"))
  48. , render: function (d) { d.appendChild(el) }
  49. , destroy: function () {}
  50. }
  51. }
  52. })