mirror of
https://git.proxmox.com/git/pve-manager
synced 2025-06-13 00:39:04 +00:00
111 lines
2.2 KiB
JavaScript
111 lines
2.2 KiB
JavaScript
Ext.define('PVE.window.HDMove', {
|
|
extend: 'Proxmox.window.Edit',
|
|
mixins: ['Proxmox.Mixin.CBind'],
|
|
|
|
resizable: false,
|
|
modal: true,
|
|
width: 350,
|
|
border: false,
|
|
layout: 'fit',
|
|
showReset: false,
|
|
showTaskViewer: true,
|
|
method: 'POST',
|
|
|
|
cbindData: function() {
|
|
let me = this;
|
|
return {
|
|
disk: me.disk,
|
|
isQemu: me.type === 'qemu',
|
|
nodename: me.nodename,
|
|
url: () => {
|
|
let endpoint = me.type === 'qemu' ? 'move_disk' : 'move_volume';
|
|
return `/nodes/${me.nodename}/${me.type}/${me.vmid}/${endpoint}`;
|
|
},
|
|
};
|
|
},
|
|
|
|
cbind: {
|
|
title: get => get('isQemu') ? gettext("Move disk") : gettext('Move Volume'),
|
|
submitText: get => get('title'),
|
|
qemu: '{isQemu}',
|
|
url: '{url}',
|
|
},
|
|
|
|
getValues: function() {
|
|
let me = this;
|
|
let values = me.formPanel.getForm().getValues();
|
|
|
|
let params = {
|
|
storage: values.hdstorage,
|
|
};
|
|
params[me.qemu ? 'disk' : 'volume'] = me.disk;
|
|
|
|
if (values.diskformat && me.qemu) {
|
|
params.format = values.diskformat;
|
|
}
|
|
|
|
if (values.deleteDisk) {
|
|
params.delete = 1;
|
|
}
|
|
return params;
|
|
},
|
|
|
|
items: [
|
|
{
|
|
xtype: 'form',
|
|
reference: 'moveFormPanel',
|
|
border: false,
|
|
fieldDefaults: {
|
|
labelWidth: 100,
|
|
anchor: '100%',
|
|
},
|
|
items: [
|
|
{
|
|
xtype: 'displayfield',
|
|
cbind: {
|
|
name: get => get('isQemu') ? 'disk' : 'volume',
|
|
fieldLabel: get => get('isQemu') ? gettext('Disk') : gettext('Mount Point'),
|
|
value: '{disk}',
|
|
},
|
|
allowBlank: false,
|
|
},
|
|
{
|
|
xtype: 'pveDiskStorageSelector',
|
|
storageLabel: gettext('Target Storage'),
|
|
cbind: {
|
|
nodename: '{nodename}',
|
|
storageContent: get => get('isQemu') ? 'images' : 'rootdir',
|
|
hideFormat: get => get('disk') === 'tpmstate0',
|
|
},
|
|
hideSize: true,
|
|
},
|
|
{
|
|
xtype: 'proxmoxcheckbox',
|
|
fieldLabel: gettext('Delete source'),
|
|
name: 'deleteDisk',
|
|
uncheckedValue: 0,
|
|
checked: false,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
|
|
initComponent: function() {
|
|
let me = this;
|
|
|
|
if (!me.nodename) {
|
|
throw "no node name specified";
|
|
}
|
|
|
|
if (!me.vmid) {
|
|
throw "no VM ID specified";
|
|
}
|
|
|
|
if (!me.type) {
|
|
throw "no type specified";
|
|
}
|
|
|
|
me.callParent();
|
|
},
|
|
});
|