luci-mod-dashboard: Fill gateway info with the connection with lowest metric.

Signed-off-by: Martin Pecka <peckama2@fel.cvut.cz>
This commit is contained in:
Martin Pecka 2024-04-10 14:22:53 +02:00 committed by Paul Donald
parent 1661b210c8
commit c75232d8d2

View File

@ -142,27 +142,35 @@ return baseclass.extend({
renderUpdateWanData: function(data, v6) {
var min_metric = 2000000000;
var min_metric_i = 0;
for (var i = 0; i < data.length; i++) {
var ifc = data[i];
var metric = data[i].getMetric();
if (metric < min_metric) {
min_metric = metric;
min_metric_i = i;
}
}
if (v6) {
var uptime = ifc.getUptime();
this.params.internet.v6.uptime.value = (uptime > 0) ? '%t'.format(uptime) : '-';
this.params.internet.v6.ipprefixv6.value = ifc.getIP6Prefix() || '-';
this.params.internet.v6.gatewayv6.value = ifc.getGateway6Addr() || '-';
this.params.internet.v6.protocol.value= ifc.getI18n() || E('em', _('Not connected'));
this.params.internet.v6.addrsv6.value = ifc.getIP6Addrs() || [ '-' ];
this.params.internet.v6.dnsv6.value = ifc.getDNS6Addrs() || [ '-' ];
this.params.internet.v6.connected.value = ifc.isUp();
} else {
var uptime = ifc.getUptime();
this.params.internet.v4.uptime.value = (uptime > 0) ? '%t'.format(uptime) : '-';
this.params.internet.v4.protocol.value= ifc.getI18n() || E('em', _('Not connected'));
this.params.internet.v4.gatewayv4.value = ifc.getGatewayAddr() || '0.0.0.0';
this.params.internet.v4.connected.value = ifc.isUp();
this.params.internet.v4.addrsv4.value = ifc.getIPAddrs() || [ '-'];
this.params.internet.v4.dnsv4.value = ifc.getDNSAddrs() || [ '-' ];
}
var ifc = data[min_metric_i];
if (v6) {
var uptime = ifc.getUptime();
this.params.internet.v6.uptime.value = (uptime > 0) ? '%t'.format(uptime) : '-';
this.params.internet.v6.ipprefixv6.value = ifc.getIP6Prefix() || '-';
this.params.internet.v6.gatewayv6.value = ifc.getGateway6Addr() || '-';
this.params.internet.v6.protocol.value= ifc.getI18n() || E('em', _('Not connected'));
this.params.internet.v6.addrsv6.value = ifc.getIP6Addrs() || [ '-' ];
this.params.internet.v6.dnsv6.value = ifc.getDNS6Addrs() || [ '-' ];
this.params.internet.v6.connected.value = ifc.isUp();
} else {
var uptime = ifc.getUptime();
this.params.internet.v4.uptime.value = (uptime > 0) ? '%t'.format(uptime) : '-';
this.params.internet.v4.protocol.value= ifc.getI18n() || E('em', _('Not connected'));
this.params.internet.v4.gatewayv4.value = ifc.getGatewayAddr() || '0.0.0.0';
this.params.internet.v4.connected.value = ifc.isUp();
this.params.internet.v4.addrsv4.value = ifc.getIPAddrs() || [ '-'];
this.params.internet.v4.dnsv4.value = ifc.getDNSAddrs() || [ '-' ];
}
},