pve-manager/www/mobile/Migrate.js
Dominik Csapak e54ad66e73 use API2Request from Proxmox.Utils in mobile interface
this was missing from the migration to the widget-toolkit

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Reviewed-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Tested-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2018-01-26 10:03:05 +01:00

133 lines
2.5 KiB
JavaScript

Ext.define('PVE.MigrateBase', {
extend: 'PVE.Page',
nodename: undefined,
vmid: undefined,
vmtype: undefined, // qemu or lxc
config: {
items: [
{
xtype: 'pveTitleBar',
pveReloadButton: false
},
{
xtype: 'formpanel',
flex: 1,
padding: 10,
items: [
{
xtype: 'fieldset',
items: [
{
xtype: 'pveNodeSelector',
placeHolder: gettext('Target node'),
name: 'target',
required: true,
},
{
xtype: 'checkboxfield',
name : 'online',
checked: true,
label: gettext('Online')
}
]
},
{
xtype: 'button',
itemId: 'migrate',
ui: 'action',
text: gettext('Migrate')
}
]
}
]
},
initialize: function() {
var me = this;
var btn = me.down('#migrate');
btn.setHandler(function() {
var form = this.up('formpanel');
var values = form.getValues();
if (!values.target) {
Ext.Msg.alert('Error', 'Please select a target node');
return;
}
Proxmox.Utils.API2Request({
params: { target: values.target, online: values.online ? 1 : 0 },
url: '/nodes/' + me.nodename + '/' + me.vmtype + '/' + me.vmid + "/migrate",
method: 'POST',
failure: function(response, opts) {
Ext.Msg.alert('Error', response.htmlStatus);
},
success: function(response, options) {
var upid = response.result.data;
var page = 'nodes/' + me.nodename + '/tasks/' + upid;
PVE.Workspace.gotoPage(page);
}
});
});
}
});
Ext.define('PVE.QemuMigrate', {
extend: 'PVE.MigrateBase',
vmtype: 'qemu',
statics: {
pathMatch: function(loc) {
return loc.match(/^nodes\/([^\s\/]+)\/qemu\/(\d+)\/migrate$/);
}
},
initialize: function() {
var me = this;
var match = me.self.pathMatch(me.getAppUrl());
if (!match) {
throw "pathMatch failed";
}
me.nodename = match[1];
me.vmid = match[2];
me.down('titlebar').setTitle(gettext('Migrate') + ': VM ' + me.vmid);
this.callParent();
}
});
Ext.define('PVE.LXCMigrate', {
extend: 'PVE.MigrateBase',
vmtype: 'lxc',
statics: {
pathMatch: function(loc) {
return loc.match(/^nodes\/([^\s\/]+)\/lxc\/(\d+)\/migrate$/);
}
},
initialize: function() {
var me = this;
var match = me.self.pathMatch(me.getAppUrl());
if (!match) {
throw "pathMatch failed";
}
me.nodename = match[1];
me.vmid = match[2];
me.down('titlebar').setTitle(gettext('Migrate') + ': CT ' + me.vmid);
this.callParent();
}
});