]> git.proxmox.com Git - pve-manager.git/blame - www/manager6/qemu/HDResize.js
update shipped appliance info index
[pve-manager.git] / www / manager6 / qemu / HDResize.js
CommitLineData
9479ebc2
DM
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;
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});