]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/lxc/MPResize.js
f73c5c3fa3727b6d56518b45afceac1749134d6c
[pve-manager.git] / www / manager6 / lxc / MPResize.js
1 Ext.define('PVE.window.MPResize', {
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 + '/lxc/' + 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, opts) {
19 var upid = response.result.data;
20 var win = Ext.create('Proxmox.window.TaskViewer', { upid: upid });
21 win.show();
22 me.close();
23 },
24 });
25 },
26
27 initComponent: function() {
28 var me = this;
29
30 if (!me.nodename) {
31 throw "no node name specified";
32 }
33
34 if (!me.vmid) {
35 throw "no VM ID specified";
36 }
37
38 var items = [
39 {
40 xtype: 'displayfield',
41 name: 'disk',
42 value: me.disk,
43 fieldLabel: gettext('Disk'),
44 vtype: 'StorageId',
45 allowBlank: false,
46 },
47 ];
48
49 me.hdsizesel = Ext.createWidget('numberfield', {
50 name: 'size',
51 minValue: 0,
52 maxValue: 128*1024,
53 decimalPrecision: 3,
54 value: '0',
55 fieldLabel: gettext('Size Increment') + ' (GiB)',
56 allowBlank: false,
57 });
58
59 items.push(me.hdsizesel);
60
61 me.formPanel = Ext.create('Ext.form.Panel', {
62 bodyPadding: 10,
63 border: false,
64 fieldDefaults: {
65 labelWidth: 120,
66 anchor: '100%',
67 },
68 items: items,
69 });
70
71 var form = me.formPanel.getForm();
72
73 var submitBtn;
74
75 me.title = gettext('Resize disk');
76 submitBtn = Ext.create('Ext.Button', {
77 text: gettext('Resize disk'),
78 handler: function() {
79 if (form.isValid()) {
80 var values = form.getValues();
81 me.resize_disk(me.disk, values.size);
82 }
83 },
84 });
85
86 Ext.apply(me, {
87 modal: true,
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 });