]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/panel/Firewall.js
rename manager5 to manager6
[pve-manager.git] / www / manager6 / panel / Firewall.js
1 Ext.define('PVE.panel.Firewall', {
2 extend: 'PVE.panel.SubConfig',
3 alias: 'widget.pveFirewallPanel',
4
5 configPrefix: 'firewall',
6
7 fwtype: undefined, // 'dc', 'node' or 'vm'
8
9 base_url: undefined,
10
11 initComponent: function() {
12 /*jslint confusion: true */
13 var me = this;
14
15 if (!me.base_url) {
16 throw "no base_url specified";
17 }
18
19 if (!(me.fwtype === 'dc' || me.fwtype === 'node' || me.fwtype === 'vm')) {
20 throw "unknown firewall panel type";
21 }
22
23 var list_refs_url = me.fwtype === 'vm' ? (me.base_url + '/refs') :
24 '/cluster/firewall/refs';
25
26 var items = [
27 {
28 xtype: 'pveFirewallRules',
29 title: gettext('Rules'),
30 allow_iface: true,
31 base_url: me.base_url + '/rules',
32 list_refs_url: list_refs_url,
33 itemId: 'rules'
34 }
35 ];
36
37 if (me.fwtype === 'dc') {
38 items.push({
39 xtype: 'pveSecurityGroups',
40 title: gettext('Security Group'),
41 itemId: 'sg'
42 });
43 items.push({
44 xtype: 'pveFirewallAliases',
45 base_url: '/cluster/firewall/aliases',
46 itemId: 'aliases'
47 });
48 items.push({
49 xtype: 'pveIPSet',
50 base_url: '/cluster/firewall/ipset',
51 list_refs_url: list_refs_url,
52 itemId: 'ipset'
53 });
54 }
55
56 if (me.fwtype === 'vm') {
57 items.push({
58 xtype: 'pveFirewallAliases',
59 base_url: me.base_url + '/aliases',
60 itemId: 'aliases'
61 });
62 items.push({
63 xtype: 'pveIPSet',
64 base_url: me.base_url + '/ipset',
65 list_refs_url: list_refs_url,
66 itemId: 'ipset'
67 });
68 }
69
70 items.push({
71 xtype: 'pveFirewallOptions',
72 title: gettext('Options'),
73 base_url: me.base_url + '/options',
74 fwtype: me.fwtype,
75 itemId: 'options'
76 });
77
78 if (me.fwtype !== 'dc') {
79 items.push({
80 title: 'Log',
81 itemId: 'fwlog',
82 xtype: 'pveLogView',
83 url: '/api2/extjs' + me.base_url + '/log'
84 });
85 }
86
87 Ext.apply(me, {
88 defaults: {
89 border: false,
90 pveSelNode: me.pveSelNode
91 },
92 items: items
93 });
94
95 me.callParent();
96 }
97 });