From cf364a7381586e6e3c967674a8d2f6e3aaa8dc27 Mon Sep 17 00:00:00 2001 From: sparks-alec Date: Sun, 11 Jun 2023 22:29:01 -0400 Subject: [PATCH] add traffic indicator to each view --- src/assets/css/index.css | 9 +++++++++ src/assets/img/outline_link_white_18dp.png | Bin 0 -> 236 bytes src/device.js | 6 ++---- src/view.js | 12 +++++++++++- 4 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 src/assets/img/outline_link_white_18dp.png diff --git a/src/assets/css/index.css b/src/assets/css/index.css index 3109ac9..16482e8 100644 --- a/src/assets/css/index.css +++ b/src/assets/css/index.css @@ -199,11 +199,20 @@ a { background-color: rgba(0, 0, 0, 0.3); } .device-pin { + position: absolute; + right: 45px; + top: 4px; + height: 20px; + padding: inherit; +} +.device-traffic-signal { position: absolute; right: 15px; top: 4px; height: 20px; padding: inherit; + opacity: 0.3; + transition: opacity 0.1s ease-in-out; } .device-wrapper { box-sizing: border-box; diff --git a/src/assets/img/outline_link_white_18dp.png b/src/assets/img/outline_link_white_18dp.png new file mode 100644 index 0000000000000000000000000000000000000000..ba63727cc81cb5145432310ccd03bd81b5489ed2 GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8LpW=|K#5Rc=@2@epyZxX1 z|GKgx`-TPv|h0xrDhpYeJ?CcXMTaYF2 z!bNl+ix`iK(8}X{6GK>w#rqUxIZVgABU^ k3@-<5l#m3v@dg7!p*nYWOz64wK<6`fy85}Sb4q9e01Y5u6aWAK literal 0 HcmV?d00001 diff --git a/src/device.js b/src/device.js index 86bdea9..1fe2267 100644 --- a/src/device.js +++ b/src/device.js @@ -47,6 +47,7 @@ function registerDevice(newDevice, discoveryMethod) { sendQueue: [], heartbeatInterval: PLUGINS.all[newDevice.type].heartbeatInterval, heartbeatTimeout: PLUGINS.all[newDevice.type].heartbeatTimeout, + trafficSignal: VIEW.trafficSignal, draw() { VIEW.draw(this); }, @@ -320,10 +321,7 @@ function infoUpdate(device, param, value) { } module.exports.infoUpdate = infoUpdate; -let $networkIndicatorDot; - function heartbeat() { - $networkIndicatorDot = document.getElementById('network-indicator-dot'); Object.keys(devices).forEach((deviceID) => { const d = devices[deviceID]; @@ -356,7 +354,7 @@ function networkTick() { if (d.sendQueue.length > 0 && d.sendNow) { d.sendNow(d.sendQueue[0]); d.sendQueue.shift(); - $networkIndicatorDot.style.background = 'green'; + d.trafficSignal(d); } }); } diff --git a/src/view.js b/src/view.js index c8e5bd0..be510fa 100644 --- a/src/view.js +++ b/src/view.js @@ -171,7 +171,10 @@ function switchDevice(id) { const $deviceWrapper = document.getElementById(`device-${i}`); if (!$deviceWrapper) { - const html = `
`; + let html = `
`; + html += ``; + html += ``; + html += `
`; document.getElementById('all-devices').insertAdjacentHTML('afterbegin', html); } @@ -305,6 +308,13 @@ module.exports.selectNextDevice = function selectNextDevice() { switchDevice(keys[prevIndex]); }; +module.exports.trafficSignal = function trafficSignal(device) { + document.querySelector(`#device-${device.id} .device-traffic-signal`).style.opacity = 1; + setTimeout(() => { + document.querySelector(`#device-${device.id} .device-traffic-signal`).style.opacity = 0.3; + }, 50); +}; + function populatePluginLists() { let typeSelect = ''; let addSelect = '';