]>
Commit | Line | Data |
---|---|---|
9479ebc2 DM |
1 | Ext.define('PVE.window.HDResize', { |
2 | extend: 'Ext.window.Window', | |
3 | ||
4 | resizable: false, | |
5 | ||
6 | resize_disk: function(disk, size) { | |
7 | var me = this; | |
8058410f | 8 | var params = { disk: disk, size: '+' + size + 'G' }; |
9479ebc2 | 9 | |
e7ade592 | 10 | Proxmox.Utils.API2Request({ |
9479ebc2 DM |
11 | params: params, |
12 | url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + '/resize', | |
13 | waitMsgTarget: me, | |
14 | method: 'PUT', | |
15 | failure: function(response, opts) { | |
16 | Ext.Msg.alert(gettext('Error'), response.htmlStatus); | |
17 | }, | |
18 | success: function(response, options) { | |
e7fc4411 FE |
19 | Ext.create('Proxmox.window.TaskProgress', { |
20 | autoShow: true, | |
21 | upid: response.result.data, | |
22 | }); | |
9479ebc2 | 23 | me.close(); |
f6710aac | 24 | }, |
9479ebc2 DM |
25 | }); |
26 | }, | |
27 | ||
8058410f | 28 | initComponent: function() { |
9479ebc2 DM |
29 | var me = this; |
30 | ||
31 | if (!me.nodename) { | |
32 | throw "no node name specified"; | |
33 | } | |
34 | ||
35 | if (!me.vmid) { | |
36 | throw "no VM ID specified"; | |
37 | } | |
38 | ||
39 | var items = [ | |
40 | { | |
41 | xtype: 'displayfield', | |
42 | name: 'disk', | |
43 | value: me.disk, | |
44 | fieldLabel: gettext('Disk'), | |
45 | vtype: 'StorageId', | |
f6710aac TL |
46 | allowBlank: false, |
47 | }, | |
9479ebc2 DM |
48 | ]; |
49 | ||
50 | me.hdsizesel = Ext.createWidget('numberfield', { | |
51 | name: 'size', | |
52 | minValue: 0, | |
53 | maxValue: 128*1024, | |
54 | decimalPrecision: 3, | |
55 | value: '0', | |
f9b888b0 | 56 | fieldLabel: `${gettext('Size Increment')} (${gettext('GiB')})`, |
f6710aac | 57 | allowBlank: false, |
9479ebc2 DM |
58 | }); |
59 | ||
60 | items.push(me.hdsizesel); | |
61 | ||
62 | me.formPanel = Ext.create('Ext.form.Panel', { | |
63 | bodyPadding: 10, | |
64 | border: false, | |
65 | fieldDefaults: { | |
2e52404d | 66 | labelWidth: 140, |
f6710aac | 67 | anchor: '100%', |
9479ebc2 | 68 | }, |
f6710aac | 69 | items: items, |
9479ebc2 DM |
70 | }); |
71 | ||
72 | var form = me.formPanel.getForm(); | |
73 | ||
74 | var submitBtn; | |
75 | ||
76 | me.title = gettext('Resize disk'); | |
77 | submitBtn = Ext.create('Ext.Button', { | |
78 | text: gettext('Resize disk'), | |
79 | handler: function() { | |
80 | if (form.isValid()) { | |
81 | var values = form.getValues(); | |
82 | me.resize_disk(me.disk, values.size); | |
83 | } | |
f6710aac | 84 | }, |
9479ebc2 DM |
85 | }); |
86 | ||
87 | Ext.apply(me, { | |
88 | modal: true, | |
89 | width: 250, | |
90 | height: 150, | |
91 | border: false, | |
92 | layout: 'fit', | |
8058410f TL |
93 | buttons: [submitBtn], |
94 | items: [me.formPanel], | |
9479ebc2 DM |
95 | }); |
96 | ||
97 | ||
98 | me.callParent(); | |
f6710aac | 99 | }, |
9479ebc2 | 100 | }); |