]> git.proxmox.com Git - pve-manager.git/blame - www/manager/qemu/HDMove.js
bump verstion to 3.0-21
[pve-manager.git] / www / manager / qemu / HDMove.js
CommitLineData
93e8c450
AD
1Ext.define('PVE.window.HDMove', {
2 extend: 'Ext.window.Window',
3
4 resizable: false,
5
6
7 move_disk: function(disk, storage, format) {
8 var me = this;
9
10 params = { disk: disk, storage: storage };
11
12 if (format) {
13 params.format = format;
14 }
15
16 PVE.Utils.API2Request({
17 params: params,
18 url: '/nodes/' + me.nodename + '/qemu/' + me.vmid + '/move',
19 waitMsgTarget: me,
d8269080 20 method: 'POST',
93e8c450
AD
21 failure: function(response, opts) {
22 Ext.Msg.alert('Error', response.htmlStatus);
23 },
24 success: function(response, options) {
772a8ffb
DM
25 var upid = response.result.data;
26 var win = Ext.create('PVE.window.TaskViewer', { upid: upid });
27 win.show();
93e8c450
AD
28 me.close();
29 }
30 });
31
32 },
33
34 initComponent : function() {
35 var me = this;
36
37 var diskarray = [];
38
39 if (!me.nodename) {
40 throw "no node name specified";
41 }
42
43 if (!me.vmid) {
44 throw "no VM ID specified";
45 }
46
47 var items = [
48 {
49 xtype: 'displayfield',
50 name: 'disk',
51 value: me.disk,
52 fieldLabel: 'Disk',
53 vtype: 'StorageId',
54 allowBlank: false
55 },
56
57 ];
58
59 me.hdstoragesel = Ext.create('PVE.form.StorageSelector', {
60 name: 'hdstorage',
61 nodename: me.nodename,
62 fieldLabel: 'Target Storage',
63 storageContent: 'images',
64 autoSelect: me.insideWizard,
65 allowBlank: true,
66 disabled: false,
67 hidden: false,
68 listeners: {
69 change: function(f, value) {
70 var rec = f.store.getById(value);
71 if (rec.data.type === 'iscsi') {
72 me.formatsel.setValue('raw');
73 me.formatsel.setDisabled(true);
74 } else if (rec.data.type === 'lvm' ||
75 rec.data.type === 'rbd' ||
76 rec.data.type === 'sheepdog' ||
77 rec.data.type === 'nexenta'
78 ) {
79 me.formatsel.setValue('raw');
80 me.formatsel.setDisabled(true);
81 } else {
82 me.formatsel.setDisabled(false);
83 }
84
85 }
86 }
87
88 });
89
90 me.formatsel = Ext.create('PVE.form.DiskFormatSelector', {
91 name: 'diskformat',
92 fieldLabel: gettext('Format'),
93 value: 'raw',
94 disabled: true,
95 hidden: false,
96 allowBlank: false
97 });
98
99
100 items.push(me.hdstoragesel);
101 items.push(me.formatsel);
102
103 me.formPanel = Ext.create('Ext.form.Panel', {
104 bodyPadding: 10,
105 border: false,
106 fieldDefaults: {
107 labelWidth: 100,
108 anchor: '100%'
109 },
110 items: items
111 });
112
113 var form = me.formPanel.getForm();
114
115 var submitBtn;
116
117 me.title = "Move disk";
118 submitBtn = Ext.create('Ext.Button', {
119 text: gettext('Move'),
120 handler: function() {
121 if (form.isValid()) {
122 var values = form.getValues();
123 me.move_disk(me.disk, values.hdstorage, values.diskformat);
124 }
125 }
126 });
127
128 Ext.apply(me, {
129 modal: true,
130 width: 350,
131 border: false,
132 layout: 'fit',
133 buttons: [ submitBtn ],
134 items: [ me.formPanel ]
135 });
136
137
138 me.callParent();
139
140
141 }
142});