]>
Commit | Line | Data |
---|---|---|
40120a31 CE |
1 | /*jslint confusion: true*/ |
2 | Ext.define('PVE.FirewallLograteInputPanel', { | |
3 | extend: 'Proxmox.panel.InputPanel', | |
4 | xtype: 'pveFirewallLograteInputPanel', | |
5 | ||
6 | viewModel: {}, | |
7 | ||
8 | items: [ | |
9 | { | |
10 | xtype: 'proxmoxcheckbox', | |
11 | name: 'enable', | |
12 | reference: 'enable', | |
13 | fieldLabel: gettext('Enable'), | |
14 | value: false | |
15 | }, | |
16 | { | |
17 | layout: 'hbox', | |
18 | border: false, | |
19 | items: [ | |
20 | { | |
21 | xtype: 'numberfield', | |
22 | name: 'rate', | |
23 | fieldLabel: gettext('Log rate limit'), | |
24 | minValue: 1, | |
25 | maxValue: 99, | |
26 | allowBlank: false, | |
27 | flex: 2, | |
28 | value: 1 | |
29 | }, | |
30 | { | |
31 | html: '<div style="margin: auto; padding: 2.5px;"><b>/</b></div>' | |
32 | }, | |
33 | { | |
34 | xtype: 'proxmoxKVComboBox', | |
35 | name: 'unit', | |
36 | comboItems: [['second', 'second'], ['minute', 'minute'], | |
37 | ['hour', 'hour'], ['day', 'day']], | |
38 | allowBlank: false, | |
39 | flex: 1, | |
40 | value: 'second' | |
41 | } | |
42 | ] | |
43 | }, | |
44 | { | |
45 | xtype: 'numberfield', | |
46 | name: 'burst', | |
47 | fieldLabel: gettext('Log burst limit'), | |
48 | minValue: 1, | |
49 | maxValue: 99, | |
50 | value: 5 | |
51 | } | |
52 | ], | |
53 | ||
54 | onGetValues: function(values) { | |
55 | var me = this; | |
56 | ||
57 | var vals = {}; | |
58 | vals.enable = values.enable !== undefined ? 1 : 0; | |
59 | vals.rate = values.rate + '/' + values.unit; | |
60 | vals.burst = values.burst; | |
61 | var properties = PVE.Parser.printPropertyString(vals, undefined); | |
62 | if (properties == '') { | |
63 | return { 'delete': 'log_ratelimit' }; | |
64 | } | |
65 | return { log_ratelimit: properties }; | |
66 | }, | |
67 | ||
68 | setValues: function(values) { | |
69 | var me = this; | |
70 | ||
71 | var properties = {}; | |
72 | if (values.log_ratelimit !== undefined) { | |
73 | properties = PVE.Parser.parsePropertyString(values.log_ratelimit); | |
74 | var matches = properties.rate.match(/^(\d+)\/(second|minute|hour|day)$/); | |
75 | if (matches) { | |
76 | properties.rate = matches[1]; | |
77 | properties.unit = matches[2]; | |
78 | } | |
79 | } | |
80 | me.callParent([properties]); | |
81 | } | |
82 | }); | |
83 | ||
84 | Ext.define('PVE.FirewallLograteEdit', { | |
85 | extend: 'Proxmox.window.Edit', | |
86 | xtype: 'pveFirewallLograteEdit', | |
87 | ||
88 | subject: gettext('Log rate limit'), | |
89 | ||
90 | items: [{ | |
91 | xtype: 'pveFirewallLograteInputPanel' | |
92 | }], | |
93 | autoLoad: true | |
94 | }); |