]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/storage/ZFSEdit.js
use windowEdit from widget toolkit
[pve-manager.git] / www / manager6 / storage / ZFSEdit.js
1 Ext.define('PVE.storage.ZFSInputPanel', {
2 extend: 'PVE.panel.InputPanel',
3
4 onGetValues: function(values) {
5 var me = this;
6
7 if (me.isCreate) {
8 values.type = 'zfs';
9 values.content = 'images';
10 } else {
11 delete values.storage;
12 }
13
14 values.disable = values.enable ? 0 : 1;
15 delete values.enable;
16
17 values.nowritecache = values.writecache ? 0 : 1;
18 delete values.writecache;
19
20 return values;
21 },
22
23 initComponent : function() {
24 var me = this;
25
26 me.column1 = [
27 {
28 xtype: me.isCreate ? 'textfield' : 'displayfield',
29 name: 'storage',
30 value: me.storageId || '',
31 fieldLabel: 'ID',
32 vtype: 'StorageId',
33 allowBlank: false
34 },
35 {
36 xtype: me.isCreate ? 'textfield' : 'displayfield',
37 name: 'portal',
38 value: '',
39 fieldLabel: gettext('Portal'),
40 allowBlank: false
41 },
42 {
43 xtype: me.isCreate ? 'textfield' : 'displayfield',
44 name: 'pool',
45 value: '',
46 fieldLabel: gettext('Pool'),
47 allowBlank: false
48 },
49 {
50 xtype: me.isCreate ? 'textfield' : 'displayfield',
51 name: 'blocksize',
52 value: '4k',
53 fieldLabel: gettext('Block Size'),
54 allowBlank: false
55 },
56 {
57 xtype: me.isCreate ? 'textfield' : 'displayfield',
58 name: 'target',
59 value: '',
60 fieldLabel: gettext('Target'),
61 allowBlank: false
62 },
63 {
64 xtype: me.isCreate ? 'textfield' : 'displayfield',
65 name: 'comstar_tg',
66 value: '',
67 fieldLabel: gettext('Target group'),
68 allowBlank: true
69 }
70 ];
71
72 me.column2 = [
73 {
74 xtype: 'proxmoxcheckbox',
75 name: 'enable',
76 checked: true,
77 uncheckedValue: 0,
78 fieldLabel: gettext('Enable')
79 },
80 {
81 xtype: me.isCreate ? 'pveiScsiProviderSelector' : 'displayfield',
82 name: 'iscsiprovider',
83 value: 'comstar',
84 fieldLabel: gettext('iSCSI Provider'),
85 allowBlank: false
86 },
87 {
88 xtype: 'proxmoxcheckbox',
89 name: 'sparse',
90 checked: false,
91 uncheckedValue: 0,
92 fieldLabel: gettext('Thin provision')
93 },
94 {
95 xtype: 'proxmoxcheckbox',
96 name: 'writecache',
97 checked: true,
98 uncheckedValue: 0,
99 fieldLabel: gettext('Write cache')
100 },
101 {
102 xtype: me.isCreate ? 'textfield' : 'displayfield',
103 name: 'comstar_hg',
104 value: '',
105 fieldLabel: gettext('Host group'),
106 allowBlank: true
107 }
108 ];
109
110 if (me.isCreate || me.storageId !== 'local') {
111 me.column2.unshift({
112 xtype: 'pveNodeSelector',
113 name: 'nodes',
114 fieldLabel: gettext('Nodes'),
115 emptyText: gettext('All') + ' (' +
116 gettext('No restrictions') +')',
117 multiSelect: true,
118 autoSelect: false
119 });
120 }
121
122 me.callParent();
123 }
124 });
125
126 Ext.define('PVE.storage.ZFSEdit', {
127 extend: 'Proxmox.window.Edit',
128
129 initComponent : function() {
130 var me = this;
131
132 me.isCreate = !me.storageId;
133
134 if (me.isCreate) {
135 me.url = '/api2/extjs/storage';
136 me.method = 'POST';
137 } else {
138 me.url = '/api2/extjs/storage/' + me.storageId;
139 me.method = 'PUT';
140 }
141
142 var ipanel = Ext.create('PVE.storage.ZFSInputPanel', {
143 isCreate: me.isCreate,
144 storageId: me.storageId
145 });
146
147 Ext.apply(me, {
148 subject: 'ZFS Storage',
149 isAdd: true,
150 items: [ ipanel ]
151 });
152
153 me.callParent();
154
155 if (!me.isCreate) {
156 me.load({
157 success: function(response, options) {
158 var values = response.result.data;
159 if (values.nodes) {
160 values.nodes = values.nodes.split(',');
161 }
162 values.enable = values.disable ? 0 : 1;
163 values.writecache = values.nowritecache ? 0 : 1;
164 ipanel.setValues(values);
165 }
166 });
167 }
168 }
169 });