diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2014-02-01 18:29:03 +0000 |
---|---|---|
committer | Jo-Philipp Wich <jow@openwrt.org> | 2014-02-01 18:29:03 +0000 |
commit | b5dc25c09ca938be6f9d82f461873eb69728481f (patch) | |
tree | 525251e72bf8b7ef7c6a2194e49f06c316d5c0d5 /luci2/htdocs/luci2/view/status.overview.js | |
parent | 639d2147af1293101ce10b4d67bde91a42da6926 (diff) | |
download | luci2-ui-b5dc25c09ca938be6f9d82f461873eb69728481f.tar.gz |
luci2: move most RPC proxy function declarations into the views using them to reduce the size of the core luci2.js library
Diffstat (limited to 'luci2/htdocs/luci2/view/status.overview.js')
-rw-r--r-- | luci2/htdocs/luci2/view/status.overview.js | 109 |
1 files changed, 58 insertions, 51 deletions
diff --git a/luci2/htdocs/luci2/view/status.overview.js b/luci2/htdocs/luci2/view/status.overview.js index 7440f8c..909c4c1 100644 --- a/luci2/htdocs/luci2/view/status.overview.js +++ b/luci2/htdocs/luci2/view/status.overview.js @@ -1,10 +1,30 @@ L.ui.view.extend({ title: L.tr('Status'), - execute: function() { + + getConntrackCount: L.rpc.declare({ + object: 'luci2.network', + method: 'conntrack_count', + expect: { '': { count: 0, limit: 0 } } + }), + + getDHCPLeases: L.rpc.declare({ + object: 'luci2.network', + method: 'dhcp_leases', + expect: { leases: [ ] } + }), + + getDHCPv6Leases: L.rpc.declare({ + object: 'luci2.network', + method: 'dhcp6_leases', + expect: { leases: [ ] } + }), + + renderContents: function() { + var self = this; return $.when( - L.network.findWanInterfaces().then(function(wans) { - var wan = wans[0]; - var wan6 = wans[1]; + L.NetworkModel.refreshStatus().then(function() { + var wan = L.NetworkModel.findWAN(); + var wan6 = L.NetworkModel.findWAN6(); if (!wan && !wan6) { @@ -21,57 +41,36 @@ L.ui.view.extend({ width: '146px', align: 'right', format: function(v) { - return new L.ui.devicebadge(v).render(); + var dev = L.NetworkModel.resolveAlias(v.getDevice()); + if (dev) + return $('<span />') + .addClass('badge') + .attr('title', dev.description()) + .append($('<img />').attr('src', dev.icon())) + .append(' %s'.format(dev.name())); + + return ''; } }, { format: function(v, n) { - var format_addr = function() - { - var rv = [ ]; - if (n > 0) - { - for (var i = 0; i < v['ipv6-address'].length; i++) - rv.push('%s/%d'.format(v['ipv6-address'][i].address, v['ipv6-address'][i].mask)); - - for (var i = 0; i < v['ipv6-prefix-assignment'].length; i++) - rv.push('%s1/%d'.format(v['ipv6-prefix-assignment'][i].address, v['ipv6-prefix-assignment'][i].mask)); - } - else - { - for (var i = 0; i < v['ipv4-address'].length; i++) - rv.push('%s/%d'.format(v['ipv4-address'][i].address, v['ipv4-address'][i].mask)); - } - return rv.join(', '); - }; - - var format_dns = function() - { - var rv = [ ]; - for (var i = 0; i < v['dns-server'].length; i++) - { - if ((n > 0 && v['dns-server'][i].indexOf(':') > -1) || - (n == 0 && v['dns-server'][i].indexOf(':') == -1)) - rv.push(v['dns-server'][i]); - } - return rv.join(', '); - }; - var s = '<strong>' + L.tr('Type') + ':</strong> %s | ' + - '<strong>' + L.tr('Connected') + ':</strong> %t<br />' + - '<strong>' + L.tr('Address') + ':</strong> %s<br />'; + '<strong>' + L.tr('Connected') + ':</strong> %t<br />'; - s = s.format(v.proto, v.uptime, format_addr()); + s = s.format(v.getProtocol().description, v.getUptime(), + n ? v.getIPv6Addrs(true).join(', ') + : v.getIPv4Addrs(true).join(', ')); - for (var i = 0; i < v.route.length; i++) - if (v.route[i].mask == 0 && v.route[i].nexthop != '::') - { - s += '<strong>' + L.tr('Gateway') + ':</strong> %s<br />'.format(v.route[i].nexthop); - break; - } + var addr = n ? v.getIPv6Addrs() : v.getIPv4Addrs(); + if (addr.length) + s += '<strong>' + L.tr('Address') + ':</strong> %s<br />'.format(addr.join(', ')); + + var gw = v.getIPv4Gateway(); + if (gw) + s += '<strong>' + L.tr('Gateway') + ':</strong> %s<br />'.format(gw); - var dns = format_dns(); - if (dns) - s += '<strong>' + L.tr('DNS') + ':</strong> %s<br />'.format(dns); + var dns = n ? v.getIPv6DNS() : v.getIPv4DNS(); + if (dns.length) + s += '<strong>' + L.tr('DNS') + ':</strong> %s<br />'.format(dns.join(', ')); return s; } @@ -86,7 +85,7 @@ L.ui.view.extend({ networkTable.insertInto('#network_status_table'); }), - L.network.getConntrackCount().then(function(count) { + self.getConntrackCount().then(function(count) { var conntrackTable = new L.ui.table({ caption: L.tr('Connection Tracking'), columns: [ { @@ -352,7 +351,7 @@ L.ui.view.extend({ assocTable.rows(assoclist); assocTable.insertInto('#wifi_assoc_table'); }), - L.network.getDHCPLeases().then(function(leases) { + self.getDHCPLeases().then(function(leases) { var leaseTable = new L.ui.table({ caption: L.tr('DHCP Leases'), placeholder: L.tr('There are no active leases.'), @@ -378,7 +377,7 @@ L.ui.view.extend({ leaseTable.rows(leases); leaseTable.insertInto('#lease_status_table'); }), - L.network.getDHCPv6Leases().then(function(leases) { + self.getDHCPv6Leases().then(function(leases) { if (!leases.length) return; @@ -407,5 +406,13 @@ L.ui.view.extend({ leaseTable.insertInto('#lease6_status_table'); }) ) + }, + + execute: function() + { + var self = this; + return L.NetworkModel.init().then(function() { + self.repeat(self.renderContents, 5000); + }); } }); |