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