luci2: split into submodules
[project/luci2/ui.git] / luci2 / htdocs / luci2 / firewall.js
1 Class.extend({
2 getZoneColor: function(zone)
3 {
4 if ($.isPlainObject(zone))
5 zone = zone.name;
6
7 if (zone == 'lan')
8 return '#90f090';
9 else if (zone == 'wan')
10 return '#f09090';
11
12 for (var i = 0, hash = 0;
13 i < zone.length;
14 hash = zone.charCodeAt(i++) + ((hash << 5) - hash));
15
16 for (var i = 0, color = '#';
17 i < 3;
18 color += ('00' + ((hash >> i++ * 8) & 0xFF).tostring(16)).slice(-2));
19
20 return color;
21 },
22
23 findZoneByNetwork: function(network)
24 {
25 var self = this;
26 var zone = undefined;
27
28 return L.uci.sections('firewall', 'zone', function(z) {
29 if (!z.name || !z.network)
30 return;
31
32 if (!$.isArray(z.network))
33 z.network = z.network.split(/\s+/);
34
35 for (var i = 0; i < z.network.length; i++)
36 {
37 if (z.network[i] == network)
38 {
39 zone = z;
40 break;
41 }
42 }
43 }).then(function() {
44 if (zone)
45 zone.color = self.getZoneColor(zone);
46
47 return zone;
48 });
49 }
50 });