]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/qemu/HDResize.js
update shipped appliance info index
[pve-manager.git] / www / manager6 / qemu / HDResize.js
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;
8 var params = { disk: disk, size: '+' + size + 'G' };
9
10 Proxmox.Utils.API2Request({
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) {
19 me.close();
20 },
21 });
22 },
23
24 initComponent: function() {
25 var me = this;
26
27 if (!me.nodename) {
28 throw "no node name specified";
29 }
30
31 if (!me.vmid) {
32 throw "no VM ID specified";
33 }
34
35 var items = [
36 {
37 xtype: 'displayfield',
38 name: 'disk',
39 value: me.disk,
40 fieldLabel: gettext('Disk'),
41 vtype: 'StorageId',
42 allowBlank: false,
43 },
44 ];
45
46 me.hdsizesel = Ext.createWidget('numberfield', {
47 name: 'size',
48 minValue: 0,
49 maxValue: 128*1024,
50 decimalPrecision: 3,
51 value: '0',
52 fieldLabel: gettext('Size Increment') + ' (GiB)',
53 allowBlank: false,
54 });
55
56 items.push(me.hdsizesel);
57
58 me.formPanel = Ext.create('Ext.form.Panel', {
59 bodyPadding: 10,
60 border: false,
61 fieldDefaults: {
62 labelWidth: 140,
63 anchor: '100%',
64 },
65 items: items,
66 });
67
68 var form = me.formPanel.getForm();
69
70 var submitBtn;
71
72 me.title = gettext('Resize disk');
73 submitBtn = Ext.create('Ext.Button', {
74 text: gettext('Resize disk'),
75 handler: function() {
76 if (form.isValid()) {
77 var values = form.getValues();
78 me.resize_disk(me.disk, values.size);
79 }
80 },
81 });
82
83 Ext.apply(me, {
84 modal: true,
85 width: 250,
86 height: 150,
87 border: false,
88 layout: 'fit',
89 buttons: [submitBtn],
90 items: [me.formPanel],
91 });
92
93
94 me.callParent();
95 },
96 });