]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/qemu/HDMove.js
use Proxmox.Utils instead of PVE.Utils
[pve-manager.git] / www / manager6 / qemu / HDMove.js
1 Ext.define('PVE.window.HDMove', {
2 extend: 'Ext.window.Window',
3
4 resizable: false,
5
6
7 move_disk: function(disk, storage, format, delete_disk) {
8 var me = this;
9
10 var params = { disk: disk, storage: storage };
11
12 if (format) {
13 params.format = format;
14 }
15
16 if (delete_disk) {
17 params['delete'] = 1;
18 }
19
20 Proxmox.Utils.API2Request({
21 params: params,
22 url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + '/move_disk',
23 waitMsgTarget: me,
24 method: 'POST',
25 failure: function(response, opts) {
26 Ext.Msg.alert('Error', response.htmlStatus);
27 },
28 success: function(response, options) {
29 var upid = response.result.data;
30 var win = Ext.create('PVE.window.TaskViewer', { upid: upid });
31 win.show();
32 me.close();
33 }
34 });
35
36 },
37
38 initComponent : function() {
39 var me = this;
40
41 var diskarray = [];
42
43 if (!me.nodename) {
44 throw "no node name specified";
45 }
46
47 if (!me.vmid) {
48 throw "no VM ID specified";
49 }
50
51 var items = [
52 {
53 xtype: 'displayfield',
54 name: 'disk',
55 value: me.disk,
56 fieldLabel: gettext('Disk'),
57 vtype: 'StorageId',
58 allowBlank: false
59 }
60 ];
61
62 items.push({
63 xtype: 'pveDiskStorageSelector',
64 storageLabel: gettext('Target Storage'),
65 nodename: me.nodename,
66 storageContent: 'images',
67 hideSize: true
68 });
69
70 items.push({
71 xtype: 'pvecheckbox',
72 fieldLabel: gettext('Delete source'),
73 name: 'deleteDisk',
74 uncheckedValue: 0,
75 checked: false
76 });
77
78 me.formPanel = Ext.create('Ext.form.Panel', {
79 bodyPadding: 10,
80 border: false,
81 fieldDefaults: {
82 labelWidth: 100,
83 anchor: '100%'
84 },
85 items: items
86 });
87
88 var form = me.formPanel.getForm();
89
90 var submitBtn;
91
92 me.title = gettext("Move disk");
93 submitBtn = Ext.create('Ext.Button', {
94 text: gettext('Move disk'),
95 handler: function() {
96 if (form.isValid()) {
97 var values = form.getValues();
98 me.move_disk(me.disk, values.hdstorage, values.diskformat,
99 values.deleteDisk);
100 }
101 }
102 });
103
104 Ext.apply(me, {
105 modal: true,
106 width: 350,
107 border: false,
108 layout: 'fit',
109 buttons: [ submitBtn ],
110 items: [ me.formPanel ]
111 });
112
113
114 me.callParent();
115
116 me.mon(me.formPanel, 'validitychange', function(fp, isValid) {
117 submitBtn.setDisabled(!isValid);
118 });
119
120 me.formPanel.isValid();
121 }
122 });