]> git.proxmox.com Git - pve-manager.git/blame - www/manager/qemu/HDResize.js
add : HDResize form
[pve-manager.git] / www / manager / qemu / HDResize.js
CommitLineData
59b0923f
AD
1Ext.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 PVE.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('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: 'Disk',
41 vtype: 'StorageId',
42 allowBlank: false
43 },
44
45 ];
46
47 me.hdsizesel = Ext.createWidget('numberfield', {
48 name: 'size',
49 minValue: 0,
50 maxValue: 128*1024,
51 decimalPrecision: 3,
52 value: '0',
53 fieldLabel: gettext('Size Increment') + ' (GB)',
54 allowBlank: false
55 });
56
57 items.push(me.hdsizesel);
58
59 me.formPanel = Ext.create('Ext.form.Panel', {
60 bodyPadding: 10,
61 border: false,
62 fieldDefaults: {
63 labelWidth: 120,
64 anchor: '100%'
65 },
66 items: items
67 });
68
69 var form = me.formPanel.getForm();
70
71 var submitBtn;
72
73 me.title = 'Resize Disk';
74 submitBtn = Ext.create('Ext.Button', {
75 text: gettext('Resize'),
76 handler: function() {
77 if (form.isValid()) {
78 var values = form.getValues();
79 me.resize_disk(me.disk, values.size);
80 }
81 }
82 });
83
84 Ext.apply(me, {
85 modal: true,
86 width: 250,
87 height: 150,
88 border: false,
89 layout: 'fit',
90 buttons: [ submitBtn ],
91 items: [ me.formPanel ]
92 });
93
94
95 me.callParent();
96
97 if (!me.disk) {
98 return;
99 }
100
101 }
102});