]>
Commit | Line | Data |
---|---|---|
5bf28d89 | 1 | Ext.define('PVE.storage.ZFSInputPanel', { |
f28ec3e4 | 2 | extend: 'PVE.panel.StorageBase', |
5bf28d89 | 3 | |
b4659733 TL |
4 | viewModel: { |
5 | parent: null, | |
6 | data: { | |
03bb5ce9 DC |
7 | isLIO: false, |
8 | isComstar: true, | |
f6710aac TL |
9 | hasWriteCacheOption: true, |
10 | }, | |
b4659733 TL |
11 | }, |
12 | ||
13 | controller: { | |
14 | xclass: 'Ext.app.ViewController', | |
15 | control: { | |
16 | 'field[name=iscsiprovider]': { | |
f6710aac TL |
17 | change: 'changeISCSIProvider', |
18 | }, | |
b4659733 TL |
19 | }, |
20 | changeISCSIProvider: function(f, newVal, oldVal) { | |
21 | var vm = this.getViewModel(); | |
22 | vm.set('isLIO', newVal === 'LIO'); | |
03bb5ce9 DC |
23 | vm.set('isComstar', newVal === 'comstar'); |
24 | vm.set('hasWriteCacheOption', newVal === 'comstar' || newVal === 'istgt'); | |
f6710aac | 25 | }, |
b4659733 TL |
26 | }, |
27 | ||
5bf28d89 DM |
28 | onGetValues: function(values) { |
29 | var me = this; | |
30 | ||
d5e771ce | 31 | if (me.isCreate) { |
5bf28d89 | 32 | values.content = 'images'; |
5bf28d89 DM |
33 | } |
34 | ||
f536f691 DM |
35 | values.nowritecache = values.writecache ? 0 : 1; |
36 | delete values.writecache; | |
37 | ||
f28ec3e4 TL |
38 | return me.callParent([values]); |
39 | }, | |
40 | ||
f09f1c27 | 41 | setValues: function(values) { |
f28ec3e4 TL |
42 | values.writecache = values.nowritecache ? 0 : 1; |
43 | this.callParent([values]); | |
5bf28d89 DM |
44 | }, |
45 | ||
8058410f | 46 | initComponent: function() { |
5bf28d89 DM |
47 | var me = this; |
48 | ||
49 | me.column1 = [ | |
5bf28d89 | 50 | { |
d5e771ce | 51 | xtype: me.isCreate ? 'textfield' : 'displayfield', |
5bf28d89 | 52 | name: 'portal', |
5bf28d89 DM |
53 | value: '', |
54 | fieldLabel: gettext('Portal'), | |
f6710aac | 55 | allowBlank: false, |
5bf28d89 DM |
56 | }, |
57 | { | |
d5e771ce | 58 | xtype: me.isCreate ? 'textfield' : 'displayfield', |
5bf28d89 | 59 | name: 'pool', |
5bf28d89 DM |
60 | value: '', |
61 | fieldLabel: gettext('Pool'), | |
f6710aac | 62 | allowBlank: false, |
5bf28d89 DM |
63 | }, |
64 | { | |
d5e771ce | 65 | xtype: me.isCreate ? 'textfield' : 'displayfield', |
5bf28d89 | 66 | name: 'blocksize', |
5bf28d89 DM |
67 | value: '4k', |
68 | fieldLabel: gettext('Block Size'), | |
f6710aac | 69 | allowBlank: false, |
5bf28d89 DM |
70 | }, |
71 | { | |
d5e771ce | 72 | xtype: me.isCreate ? 'textfield' : 'displayfield', |
5bf28d89 | 73 | name: 'target', |
5bf28d89 DM |
74 | value: '', |
75 | fieldLabel: gettext('Target'), | |
f6710aac | 76 | allowBlank: false, |
5bf28d89 DM |
77 | }, |
78 | { | |
d5e771ce | 79 | xtype: me.isCreate ? 'textfield' : 'displayfield', |
5bf28d89 | 80 | name: 'comstar_tg', |
5bf28d89 DM |
81 | value: '', |
82 | fieldLabel: gettext('Target group'), | |
03bb5ce9 | 83 | bind: me.isCreate ? { disabled: '{!isComstar}' } : { hidden: '{!isComstar}' }, |
f6710aac TL |
84 | allowBlank: true, |
85 | }, | |
5bf28d89 DM |
86 | ]; |
87 | ||
88 | me.column2 = [ | |
5bf28d89 | 89 | { |
d5e771ce | 90 | xtype: me.isCreate ? 'pveiScsiProviderSelector' : 'displayfield', |
5bf28d89 | 91 | name: 'iscsiprovider', |
5bf28d89 DM |
92 | value: 'comstar', |
93 | fieldLabel: gettext('iSCSI Provider'), | |
f6710aac | 94 | allowBlank: false, |
5bf28d89 DM |
95 | }, |
96 | { | |
896c0d50 | 97 | xtype: 'proxmoxcheckbox', |
5bf28d89 DM |
98 | name: 'sparse', |
99 | checked: false, | |
100 | uncheckedValue: 0, | |
f6710aac | 101 | fieldLabel: gettext('Thin provision'), |
5bf28d89 DM |
102 | }, |
103 | { | |
896c0d50 | 104 | xtype: 'proxmoxcheckbox', |
f536f691 | 105 | name: 'writecache', |
5bf28d89 | 106 | checked: true, |
03bb5ce9 | 107 | bind: me.isCreate ? { disabled: '{!hasWriteCacheOption}' } : { hidden: '{!hasWriteCacheOption}' }, |
5bf28d89 | 108 | uncheckedValue: 0, |
f6710aac | 109 | fieldLabel: gettext('Write cache'), |
5bf28d89 DM |
110 | }, |
111 | { | |
d5e771ce | 112 | xtype: me.isCreate ? 'textfield' : 'displayfield', |
5bf28d89 | 113 | name: 'comstar_hg', |
5bf28d89 | 114 | value: '', |
03bb5ce9 | 115 | bind: me.isCreate ? { disabled: '{!isComstar}' } : { hidden: '{!isComstar}' }, |
5bf28d89 | 116 | fieldLabel: gettext('Host group'), |
f6710aac | 117 | allowBlank: true, |
209923b3 UR |
118 | }, |
119 | { | |
120 | xtype: me.isCreate ? 'textfield' : 'displayfield', | |
121 | name: 'lio_tpg', | |
122 | value: '', | |
b4659733 | 123 | bind: me.isCreate ? { disabled: '{!isLIO}' } : { hidden: '{!isLIO}' }, |
af0aca88 | 124 | allowBlank: false, |
f6710aac TL |
125 | fieldLabel: gettext('Target portal group'), |
126 | }, | |
5bf28d89 DM |
127 | ]; |
128 | ||
5bf28d89 | 129 | me.callParent(); |
f6710aac | 130 | }, |
5bf28d89 | 131 | }); |