From: Martin Pecka Date: Wed, 10 Apr 2024 12:22:53 +0000 (+0200) Subject: luci-mod-dashboard: Fill gateway info with the connection with lowest metric. X-Git-Url: http://git.openwrt.org/?a=commitdiff_plain;h=c75232d8d29ba5a9cc5c07c3fff65248f12f1b08;p=project%2Fluci.git luci-mod-dashboard: Fill gateway info with the connection with lowest metric. Signed-off-by: Martin Pecka --- diff --git a/modules/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/include/10_router.js b/modules/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/include/10_router.js index c43e2ca544..1667eca6ff 100644 --- a/modules/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/include/10_router.js +++ b/modules/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/include/10_router.js @@ -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]; - - 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 metric = data[i].getMetric(); + if (metric < min_metric) { + min_metric = metric; + min_metric_i = i; + } + } + + 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() || [ '-' ]; } },