]> git.proxmox.com Git - pve-manager.git/blame - www/manager6/storage/LvmThinEdit.js
ui: storage/cephfs: fix maxfiles default enable
[pve-manager.git] / www / manager6 / storage / LvmThinEdit.js
CommitLineData
cbebb721
DM
1Ext.define('PVE.storage.TPoolSelector', {
2 extend: 'Ext.form.field.ComboBox',
3 alias: 'widget.pveTPSelector',
4
5 queryParam: 'vg',
c2317525
DC
6 valueField: 'lv',
7 displayField: 'lv',
8 editable: false,
cbebb721
DM
9
10 doRawQuery: function() {
11 },
12
13 onTriggerClick: function() {
14 var me = this;
15
16 if (!me.queryCaching || me.lastQuery !== me.vg) {
17 me.store.removeAll();
18 }
19
20 me.allQuery = me.vg;
21
22 me.callParent();
23 },
24
25 setVG: function(myvg) {
26 var me = this;
27
28 me.vg = myvg;
29 },
30
31 initComponent : function() {
32 var me = this;
33
34 if (!me.nodename) {
35 me.nodename = 'localhost';
36 }
37
38 var store = Ext.create('Ext.data.Store', {
39 fields: [ 'lv' ],
40 proxy: {
56a353b9 41 type: 'proxmox',
cbebb721
DM
42 url: '/api2/json/nodes/' + me.nodename + '/scan/lvmthin'
43 }
44 });
45
9e9ab96f
WL
46 store.sort('lv', 'ASC');
47
cbebb721
DM
48 Ext.apply(me, {
49 store: store,
cbebb721 50 listConfig: {
22f2f9d6 51 loadingText: gettext('Scanning...')
cbebb721
DM
52 }
53 });
54
55 me.callParent();
56 }
57});
58
59Ext.define('PVE.storage.BaseVGSelector', {
60 extend: 'Ext.form.field.ComboBox',
61 alias: 'widget.pveBaseVGSelector',
62
c2317525
DC
63 valueField: 'vg',
64 displayField: 'vg',
65 queryMode: 'local',
66 editable: false,
cbebb721
DM
67 initComponent : function() {
68 var me = this;
69
70 if (!me.nodename) {
71 me.nodename = 'localhost';
72 }
73
74 var store = Ext.create('Ext.data.Store', {
75 autoLoad: {},
76 fields: [ 'vg', 'size', 'free'],
77 proxy: {
56a353b9 78 type: 'proxmox',
cbebb721
DM
79 url: '/api2/json/nodes/' + me.nodename + '/scan/lvm'
80 }
81 });
82
83 Ext.apply(me, {
84 store: store,
cbebb721 85 listConfig: {
22f2f9d6 86 loadingText: gettext('Scanning...')
cbebb721
DM
87 }
88 });
89
90 me.callParent();
91 }
92});
93
94Ext.define('PVE.storage.LvmThinInputPanel', {
f28ec3e4 95 extend: 'PVE.panel.StorageBase',
cbebb721
DM
96
97 initComponent : function() {
98 var me = this;
99
f28ec3e4 100 me.column1 = [];
cbebb721 101
d5e771ce 102 var vgnameField = Ext.createWidget(me.isCreate ? 'textfield' : 'displayfield', {
cbebb721 103 name: 'vgname',
d5e771ce
EK
104 hidden: !!me.isCreate,
105 disabled: !!me.isCreate,
cbebb721
DM
106 value: '',
107 fieldLabel: gettext('Volume group'),
108 allowBlank: false
109 });
110
d5e771ce 111 var thinpoolField = Ext.createWidget(me.isCreate ? 'textfield' : 'displayfield', {
cbebb721 112 name: 'thinpool',
d5e771ce
EK
113 hidden: !!me.isCreate,
114 disabled: !!me.isCreate,
cbebb721
DM
115 value: '',
116 fieldLabel: gettext('Thin Pool'),
117 allowBlank: false
118 });
119
d5e771ce 120 if (me.isCreate) {
cbebb721
DM
121 var vgField = Ext.create('PVE.storage.TPoolSelector', {
122 name: 'thinpool',
123 fieldLabel: gettext('Thin Pool'),
124 allowBlank: false
125 });
126
127 me.column1.push({
128 xtype: 'pveBaseVGSelector',
129 name: 'vgname',
16152937 130 fieldLabel: gettext('Volume group'),
cbebb721
DM
131 listeners: {
132 change: function(f, value) {
d5e771ce 133 if (me.isCreate) {
cbebb721
DM
134 vgField.setVG(value);
135 vgField.setValue('');
136 }
137 }
138 }
139 });
140
141 me.column1.push(vgField);
142 }
143
144 me.column1.push(vgnameField);
145
146 me.column1.push(thinpoolField);
147
ec0bd652
DC
148 // here value is an array,
149 // while before it was a string
150 /*jslint confusion: true*/
cbebb721
DM
151 me.column1.push({
152 xtype: 'pveContentTypeSelector',
153 cts: ['images', 'rootdir'],
154 fieldLabel: gettext('Content'),
155 name: 'content',
156 value: ['images', 'rootdir'],
157 multiSelect: true,
158 allowBlank: false
159 });
ec0bd652 160 /*jslint confusion: false*/
cbebb721 161
f28ec3e4 162 me.column2 = [];
cbebb721
DM
163
164 me.callParent();
165 }
166});