luci-base: widgets.js: handle devices or subnets in CBIZoneForwards
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
parent
b63576bbe7
commit
3c332c6075
1 changed files with 35 additions and 9 deletions
|
@ -199,10 +199,16 @@ var CBIZoneForwards = form.DummyValue.extend({
|
||||||
__name__: 'CBI.ZoneForwards',
|
__name__: 'CBI.ZoneForwards',
|
||||||
|
|
||||||
load: function(section_id) {
|
load: function(section_id) {
|
||||||
return Promise.all([ firewall.getDefaults(), firewall.getZones(), network.getNetworks() ]).then(L.bind(function(dzn) {
|
return Promise.all([
|
||||||
this.defaults = dzn[0];
|
firewall.getDefaults(),
|
||||||
this.zones = dzn[1];
|
firewall.getZones(),
|
||||||
this.networks = dzn[2];
|
network.getNetworks(),
|
||||||
|
network.getDevices()
|
||||||
|
]).then(L.bind(function(dznd) {
|
||||||
|
this.defaults = dznd[0];
|
||||||
|
this.zones = dznd[1];
|
||||||
|
this.networks = dznd[2];
|
||||||
|
this.devices = dznd[3];
|
||||||
|
|
||||||
return this.super('load', section_id);
|
return this.super('load', section_id);
|
||||||
}, this));
|
}, this));
|
||||||
|
@ -211,6 +217,8 @@ var CBIZoneForwards = form.DummyValue.extend({
|
||||||
renderZone: function(zone) {
|
renderZone: function(zone) {
|
||||||
var name = zone.getName(),
|
var name = zone.getName(),
|
||||||
networks = zone.getNetworks(),
|
networks = zone.getNetworks(),
|
||||||
|
devices = zone.getDevices(),
|
||||||
|
subnets = zone.getSubnets(),
|
||||||
ifaces = [];
|
ifaces = [];
|
||||||
|
|
||||||
for (var j = 0; j < networks.length; j++) {
|
for (var j = 0; j < networks.length; j++) {
|
||||||
|
@ -223,21 +231,39 @@ var CBIZoneForwards = form.DummyValue.extend({
|
||||||
'class': 'ifacebadge' + (network.getName() == this.network ? ' ifacebadge-active' : '')
|
'class': 'ifacebadge' + (network.getName() == this.network ? ' ifacebadge-active' : '')
|
||||||
}, network.getName() + ': ');
|
}, network.getName() + ': ');
|
||||||
|
|
||||||
var devices = network.isBridge() ? network.getDevices() : L.toArray(network.getDevice());
|
var subdevs = network.isBridge() ? network.getDevices() : L.toArray(network.getDevice());
|
||||||
|
|
||||||
for (var k = 0; k < devices.length && devices[k]; k++) {
|
for (var k = 0; k < subdevs.length && subdevs[k]; k++) {
|
||||||
span.appendChild(E('img', {
|
span.appendChild(E('img', {
|
||||||
'title': devices[k].getI18n(),
|
'title': subdevs[k].getI18n(),
|
||||||
'src': L.resource('icons/%s%s.png'.format(devices[k].getType(), devices[k].isUp() ? '' : '_disabled'))
|
'src': L.resource('icons/%s%s.png'.format(subdevs[k].getType(), subdevs[k].isUp() ? '' : '_disabled'))
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!devices.length)
|
if (!subdevs.length)
|
||||||
span.appendChild(E('em', _('(empty)')));
|
span.appendChild(E('em', _('(empty)')));
|
||||||
|
|
||||||
ifaces.push(span);
|
ifaces.push(span);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (var i = 0; i < devices.length; i++) {
|
||||||
|
var device = this.devices.filter(function(dev) { return dev.getName() == devices[i] })[0],
|
||||||
|
title = device ? device.getI18n() : _('Absent Interface'),
|
||||||
|
type = device ? device.getType() : 'ethernet',
|
||||||
|
up = device ? device.isUp() : false;
|
||||||
|
|
||||||
|
ifaces.push(E('span', { 'class': 'ifacebadge' }, [
|
||||||
|
E('img', {
|
||||||
|
'title': title,
|
||||||
|
'src': L.resource('icons/%s%s.png'.format(type, up ? '' : '_disabled'))
|
||||||
|
}),
|
||||||
|
device ? device.getName() : devices[i]
|
||||||
|
]));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (subnets.length > 0)
|
||||||
|
ifaces.push(E('span', { 'class': 'ifacebadge' }, [ '{ %s }'.format(subnets.join('; ')) ]));
|
||||||
|
|
||||||
if (!ifaces.length)
|
if (!ifaces.length)
|
||||||
ifaces.push(E('span', { 'class': 'ifacebadge' }, E('em', _('(empty)'))));
|
ifaces.push(E('span', { 'class': 'ifacebadge' }, E('em', _('(empty)'))));
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue