]>
Commit | Line | Data |
---|---|---|
fccec7c6 DM |
1 | Ext.define('Proxmox.form.Checkbox', { |
2 | extend: 'Ext.form.field.Checkbox', | |
3 | alias: ['widget.proxmoxcheckbox'], | |
4 | ||
f0372135 DM |
5 | config: { |
6 | defaultValue: undefined, | |
7 | deleteDefaultValue: false, | |
01031528 | 8 | deleteEmpty: false, |
4ec859d9 | 9 | clearOnDisable: false, |
f0372135 | 10 | }, |
fccec7c6 DM |
11 | |
12 | inputValue: '1', | |
13 | ||
14 | getSubmitData: function() { | |
05a977a2 | 15 | let me = this, |
fccec7c6 DM |
16 | data = null, |
17 | val; | |
18 | if (!me.disabled && me.submitValue) { | |
19 | val = me.getSubmitValue(); | |
20 | if (val !== null) { | |
21 | data = {}; | |
05a977a2 | 22 | if (val === me.getDefaultValue() && me.getDeleteDefaultValue()) { |
01031528 | 23 | data.delete = me.getName(); |
fccec7c6 DM |
24 | } else { |
25 | data[me.getName()] = val; | |
26 | } | |
f0372135 | 27 | } else if (me.getDeleteEmpty()) { |
fccec7c6 | 28 | data = {}; |
01031528 | 29 | data.delete = me.getName(); |
fccec7c6 DM |
30 | } |
31 | } | |
32 | return data; | |
33 | }, | |
34 | ||
4ec859d9 TL |
35 | setDisabled: function(disabled) { |
36 | let me = this; | |
37 | ||
38 | // only clear on actual transition | |
39 | let toClearValue = me.clearOnDisable && !me.disabled && disabled; | |
40 | ||
41 | me.callParent(arguments); | |
42 | ||
43 | if (toClearValue) { | |
44 | me.setValue(false); // TODO: could support other "reset value" or use originalValue? | |
45 | } | |
46 | }, | |
47 | ||
fccec7c6 DM |
48 | // also accept integer 1 as true |
49 | setRawValue: function(value) { | |
05a977a2 | 50 | let me = this; |
fccec7c6 DM |
51 | |
52 | if (value === 1) { | |
53 | me.callParent([true]); | |
54 | } else { | |
55 | me.callParent([value]); | |
56 | } | |
01031528 | 57 | }, |
fccec7c6 DM |
58 | |
59 | }); |