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