index.eta 4.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <% layout("/sk/layout") %>
  2. <%~ include("/sk/partials/topbar") %>
  3. <% const tickIcon = `
  4. <svg class="icon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
  5. <g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2">
  6. <circle cx="12" cy="12" r="10" />
  7. <path d="m9 12l2 2l4-4" />
  8. </g>
  9. </svg>
  10. ` %>
  11. <% const xIcon = `
  12. <svg class="icon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
  13. <g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2">
  14. <circle cx="12" cy="12" r="10" />
  15. <path d="m15 9l-6 6m0-6l6 6" />
  16. </g>
  17. </svg>
  18. ` %>
  19. <div id="mainStats">
  20. <% /* <div class="message error">
  21. <p><%~ tempIcon %> Bola zistená vysoká vnútorná teplota!</p>
  22. <p><%~ pressureIcon %> Bol zistený vysoký vnútorný tlak!</p>
  23. <p><%~ humidityIcon %> Bola zistená vysoká vnútorná vlhkosť!</p>
  24. </div> */ %>
  25. <div class="stats">
  26. <div class="wrapper">
  27. <h2>vnútorné</h2>
  28. <div class="values indoor">
  29. <p><a role="button" href="/history/indoorTemp"><%~ it.lang.icons.tempIcon() %></a> <span id="indoorTemp"><%= it.data?.[0]?.indoorTemp / 100 %></span> °C</p>
  30. <p><a role="button" href="/history/indoorPressure"><%~ it.lang.icons.pressureIcon() %></a> <span id="indoorPressure"><%= it.data?.[0]?.indoorPressure / 100 %></span> hPa</p>
  31. <p><a role="button" href="/history/indoorHumidity"><%~ it.lang.icons.humidityIcon() %></a> <span id="indoorHumidity"><%= it.data?.[0]?.indoorHumidity / 100 %></span> %</p>
  32. </div>
  33. </div>
  34. <div class="wrapper">
  35. <h2>vonkajšie</h2>
  36. <div class="values outdoor">
  37. <p><a role="button" href="/history/outdoorConnected" id="outdoorConnectedIcon"><%~ it.data?.[0]?.outdoorConnected ? tickIcon : xIcon %></a> <span id="outdoorConnectedText"><%= it.data?.[0]?.outdoorConnected ? `pripojené` : `odpojené` %></span></p>
  38. <p><a role="button" href="/history/outdoorTemp"><%~ it.lang.icons.tempIcon() %></a> <span id="outdoorTemp"><%= it.data?.[0]?.outdoorTemp / 100 %></span> °C</p>
  39. <p><a role="button" href="/history/outdoorPressure"><%~ it.lang.icons.pressureIcon() %></a> <span id="outdoorPressure"><%= it.data?.[0]?.outdoorPressure / 100 %></span> hPa</p>
  40. <p><a role="button" href="/history/outdoorHumidity"><%~ it.lang.icons.humidityIcon() %></a> <span id="outdoorHumidity"><%= it.data?.[0]?.outdoorHumidity / 100 %></span> %</p>
  41. </div>
  42. </div>
  43. </div>
  44. </div>
  45. <script defer>
  46. setInterval(async () => {
  47. const response = await fetch('/currentData')
  48. const data = await response.json()
  49. const indoorTemp = document.querySelector(`#indoorTemp`)
  50. const indoorPressure = document.querySelector(`#indoorPressure`)
  51. const indoorHumidity = document.querySelector(`#indoorHumidity`)
  52. const outdoorConnectedIcon = document.querySelector(`#outdoorConnectedIcon`)
  53. const outdoorConnectedText = document.querySelector(`#outdoorConnectedText`)
  54. const outdoorTemp = document.querySelector(`#outdoorTemp`)
  55. const outdoorPressure = document.querySelector(`#outdoorPressure`)
  56. const outdoorHumidity = document.querySelector(`#outdoorHumidity`)
  57. indoorTemp.textContent = data?.indoorTemp / 100
  58. indoorPressure.textContent = data?.indoorPressure / 100
  59. indoorHumidity.textContent = data?.indoorHumidity / 100
  60. const tickIcon = `<%~ tickIcon %>`
  61. const xIcon = `<%~ xIcon %>`
  62. outdoorConnectedIcon.innerHTML = data?.outdoorConnected ? tickIcon : xIcon
  63. outdoorConnectedText.textContent = data?.outdoorConnected ? `pripojené` : `odpojené`
  64. outdoorTemp.textContent = data?.outdoorTemp / 100
  65. outdoorPressure.textContent = data?.outdoorPressure / 100
  66. outdoorHumidity.textContent = data?.outdoorHumidity / 100
  67. }, 10000)
  68. </script>