]> git.proxmox.com Git - pve-manager.git/blame - www/manager6/qemu/HDMove.js
update shipped appliance info index
[pve-manager.git] / www / manager6 / qemu / HDMove.js
CommitLineData
5d485b70 1Ext.define('PVE.window.HDMove', {
1b42be84
AL
2 extend: 'Proxmox.window.Edit',
3 mixins: ['Proxmox.Mixin.CBind'],
5d485b70
DM
4
5 resizable: false,
1b42be84
AL
6 modal: true,
7 width: 350,
8 border: false,
9 layout: 'fit',
10 showReset: false,
c956508c 11 showTaskViewer: true,
1b42be84
AL
12 method: 'POST',
13
14 cbindData: function() {
15 let me = this;
16 return {
17 disk: me.disk,
18 isQemu: me.type === 'qemu',
19 nodename: me.nodename,
20 url: () => {
21 let endpoint = me.type === 'qemu' ? 'move_disk' : 'move_volume';
22 return `/nodes/${me.nodename}/${me.type}/${me.vmid}/${endpoint}`;
23 },
24 };
25 },
26
27 cbind: {
28 title: get => get('isQemu') ? gettext("Move disk") : gettext('Move Volume'),
29 submitText: get => get('title'),
30 qemu: '{isQemu}',
31 url: '{url}',
32 },
5d485b70 33
1b42be84
AL
34 getValues: function() {
35 let me = this;
36 let values = me.formPanel.getForm().getValues();
5d485b70 37
1b42be84
AL
38 let params = {
39 storage: values.hdstorage,
40 };
41 params[me.qemu ? 'disk' : 'volume'] = me.disk;
5d485b70 42
1b42be84
AL
43 if (values.diskformat && me.qemu) {
44 params.format = values.diskformat;
d47512af 45 }
5d485b70 46
1b42be84 47 if (values.deleteDisk) {
399ffa76 48 params.delete = 1;
5d485b70 49 }
1b42be84
AL
50 return params;
51 },
5d485b70 52
1b42be84
AL
53 items: [
54 {
55 xtype: 'form',
56 reference: 'moveFormPanel',
57 border: false,
58 fieldDefaults: {
59 labelWidth: 100,
60 anchor: '100%',
f6710aac 61 },
1b42be84
AL
62 items: [
63 {
64 xtype: 'displayfield',
65 cbind: {
66 name: get => get('isQemu') ? 'disk' : 'volume',
67 fieldLabel: get => get('isQemu') ? gettext('Disk') : gettext('Mount Point'),
68 value: '{disk}',
69 },
70 allowBlank: false,
71 },
72 {
73 xtype: 'pveDiskStorageSelector',
74 storageLabel: gettext('Target Storage'),
75 cbind: {
76 nodename: '{nodename}',
77 storageContent: get => get('isQemu') ? 'images' : 'rootdir',
78 hideFormat: get => get('disk') === 'tpmstate0',
79 },
80 hideSize: true,
81 },
82 {
83 xtype: 'proxmoxcheckbox',
84 fieldLabel: gettext('Delete source'),
85 name: 'deleteDisk',
86 uncheckedValue: 0,
87 checked: false,
88 },
89 ],
90 },
91 ],
5d485b70 92
8058410f 93 initComponent: function() {
1b42be84 94 let me = this;
5d485b70 95
5d485b70
DM
96 if (!me.nodename) {
97 throw "no node name specified";
98 }
99
100 if (!me.vmid) {
101 throw "no VM ID specified";
102 }
103
d47512af 104 if (!me.type) {
1b42be84 105 throw "no type specified";
d47512af
DC
106 }
107
5d485b70 108 me.callParent();
f6710aac 109 },
5d485b70 110});