-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
55 lines (49 loc) · 2.08 KB
/
Copy pathapp.js
File metadata and controls
55 lines (49 loc) · 2.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
const I=n=>`<i class="ti ti-${n}"></i>`;
const d=JSON.parse(document.getElementById("data").textContent);
const tabs=[["layout-dashboard","Дашборд"],["users","Люди"],["key","Доступ"],["door","Двери"],["camera","Камеры"],["cpu","Устройства"],["report","Отчёты"]];
document.querySelector("#app").innerHTML=`
<div class="topbar">
<div class="tb-brand">${I("shield-lock")} ${d.brand}</div>
<div class="tb-tabs">${tabs.map((x,i)=>`<a class="${i?"":"active"}">${I(x[0])}${x[1]}</a>`).join("")}</div>
<div class="tb-right">
<span class="tb-status">${I("point-filled")} онлайн</span>
<b class="tb-avatar">${d.initials}</b>
</div>
</div>
<div class="wrap">
<div class="ticker">
${d.stats.map(s=>`<div>${I(s.icon)}<small>${s.label}</small><b class="mono">${s.value}</b><em>${s.trend}</em></div>`).join("")}
</div>
<div class="title-row">
<div><h1>${d.building}</h1><span>Живой мониторинг · обновляется автоматически</span></div>
<button>${I("player-play")} Открыть живой поток</button>
</div>
<div class="split">
<div class="timeline-card">
<h2>${I("activity-heartbeat")} Лента событий</h2>
<div class="tl">
${d.events.map(e=>`
<div class="tl-item ${e.kind}">
<span class="tl-dot"></span>
<div class="tl-row"><b>${e.name}</b><time class="mono">${e.time}</time></div>
<div class="tl-meta">${e.meta}</div>
<span class="tl-tag">${e.status}</span>
</div>
`).join("")}
</div>
</div>
<div class="tiles-card">
<h2>${I("cpu")} Устройства</h2>
<div class="tiles">
${d.devices.map(x=>`
<div class="tile ${x.kind}">
<div class="tile-top"><span class="tile-led"></span>${I("router")}</div>
<div class="tile-name">${x.name}</div>
<div class="tile-ip mono">${x.ip}</div>
<div class="tile-status">${x.status}</div>
</div>
`).join("")}
</div>
</div>
</div>
</div>`;