]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/storage/ZFSPoolEdit.js
ui: storage: move node scan selector inside combobox
[pve-manager.git] / www / manager6 / storage / ZFSPoolEdit.js
1 Ext.define('PVE.storage.ZFSPoolSelector', {
2 extend: 'PVE.form.ComboBoxSetStoreNode',
3 alias: 'widget.pveZFSPoolSelector',
4 valueField: 'pool',
5 displayField: 'pool',
6 queryMode: 'local',
7 editable: false,
8 allowBlank: false,
9
10 listConfig: {
11 columns: [
12 {
13 dataIndex: 'pool',
14 flex: 1,
15 },
16 ],
17 emptyText: gettext('No ZFS Pools found'),
18 },
19
20 config: {
21 apiSuffix: '/scan/zfs',
22 },
23
24 showNodeSelector: true,
25
26 setNodeName: function(value) {
27 let me = this;
28 me.callParent([value]);
29 me.getStore().load();
30 },
31
32 initComponent: function() {
33 let me = this;
34
35 if (!me.nodename) {
36 me.nodename = 'localhost';
37 }
38
39 let store = Ext.create('Ext.data.Store', {
40 autoLoad: {}, // true,
41 fields: ['pool', 'size', 'free'],
42 proxy: {
43 type: 'proxmox',
44 url: `${me.apiBaseUrl}${me.nodename}${me.apiSuffix}`,
45 },
46 });
47 store.sort('pool', 'ASC');
48
49 Ext.apply(me, {
50 store: store,
51 });
52
53 me.callParent();
54 },
55 });
56
57 Ext.define('PVE.storage.ZFSPoolInputPanel', {
58 extend: 'PVE.panel.StorageBase',
59
60 onlineHelp: 'storage_zfspool',
61
62 initComponent: function() {
63 let me = this;
64
65 me.column1 = [];
66
67 if (me.isCreate) {
68 me.column1.push(Ext.create('PVE.storage.ZFSPoolSelector', {
69 name: 'pool',
70 fieldLabel: gettext('ZFS Pool'),
71 reference: 'zfsPoolSelector',
72 allowBlank: false,
73 listeners: {
74 nodechanged: function(value) {
75 me.lookup('storageNodeRestriction').setValue(value);
76 },
77 },
78 }));
79 } else {
80 me.column1.push(Ext.createWidget('displayfield', {
81 name: 'pool',
82 value: '',
83 fieldLabel: gettext('ZFS Pool'),
84 allowBlank: false,
85 }));
86 }
87
88 // value is an array,
89 // while before it was a string
90 me.column1.push({
91 xtype: 'pveContentTypeSelector',
92 cts: ['images', 'rootdir'],
93 fieldLabel: gettext('Content'),
94 name: 'content',
95 value: ['images', 'rootdir'],
96 multiSelect: true,
97 allowBlank: false,
98 });
99 me.column2 = [
100 {
101 xtype: 'proxmoxcheckbox',
102 name: 'sparse',
103 checked: false,
104 uncheckedValue: 0,
105 fieldLabel: gettext('Thin provision'),
106 },
107 {
108 xtype: 'textfield',
109 name: 'blocksize',
110 emptyText: '8k',
111 fieldLabel: gettext('Block Size'),
112 allowBlank: true,
113 },
114 ];
115
116 me.callParent();
117 },
118 });