luci-mod-network, luci-mod-status: harmonize wifi signal indicators

Fixes: #3636
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 2cad20e7ea)
This commit is contained in:
Jo-Philipp Wich 2020-02-17 09:49:34 +01:00
parent 4dea7aedd8
commit 85a6f07455
2 changed files with 18 additions and 12 deletions

View file

@ -30,7 +30,7 @@ function render_radio_badge(radioDev) {
}
function render_signal_badge(signalPercent, signalValue, noiseValue, wrap) {
var icon, title;
var icon, title, value;
if (signalPercent < 0)
icon = L.resource('icons/signal-none.png');
@ -45,18 +45,24 @@ function render_signal_badge(signalPercent, signalValue, noiseValue, wrap) {
else
icon = L.resource('icons/signal-75-100.png');
if (signalValue != null && signalValue != 0) {
title = '%s %d %s'.format(_('Signal'), signalValue, _('dBm'));
if (noiseValue != null && noiseValue != 0)
title += ' / %s: %d %s'.format(_('Noise'), noiseValue, _('dBm'));
if (signalValue != null && signalValue != 0 && noiseValue != null && noiseValue != 0) {
value = '%d / %d %s'.format(signalValue, noiseValue, _('dBm'));
title = '%s: %d %s / %s: %d %s / %s %d'.format(
_('Signal'), signalValue, _('dBm'),
_('Noise'), noiseValue, _('dBm'),
_('SNR'), signalValue - noiseValue);
}
else if (signalValue != null && signalValue != 0) {
value = '%d %s'.format(signalValue, _('dBm'));
title = '%s: %d %s'.format(_('Signal'), signalValue, _('dBm'));
}
else {
value = E('em', {}, E('small', {}, [ _('disabled') ]));
title = _('No signal');
}
return E('div', { 'class': wrap ? 'center' : 'ifacebadge', 'title': title },
[ E('img', { 'src': icon }), wrap ? E('br') : ' ', '%d%%'.format(Math.max(signalPercent, 0)) ]);
[ E('img', { 'src': icon }), wrap ? E('br') : ' ', value ]);
}
function render_network_badge(radioNet) {

View file

@ -139,14 +139,14 @@ return L.Class.extend({
ipv6 = hosthints.getIP6AddrByMACAddr(bss.mac);
var icon;
var q = (-1 * (bss.noise - bss.signal)) / 5;
if (q < 1)
var q = Math.min((bss.signal + 110) / 70 * 100, 100);
if (q == 0)
icon = L.resource('icons/signal-0.png');
else if (q < 2)
else if (q < 25)
icon = L.resource('icons/signal-0-25.png');
else if (q < 3)
else if (q < 50)
icon = L.resource('icons/signal-25-50.png');
else if (q < 4)
else if (q < 75)
icon = L.resource('icons/signal-50-75.png');
else
icon = L.resource('icons/signal-75-100.png');