]> git.proxmox.com Git - pve-manager.git/blame - www/mobile/Migrate.js
ui: sdn: homogenize the casing of labels
[pve-manager.git] / www / mobile / Migrate.js
CommitLineData
48295db4
DM
1Ext.define('PVE.MigrateBase', {
2 extend: 'PVE.Page',
3
4 nodename: undefined,
5 vmid: undefined,
617c5801 6 vmtype: undefined, // qemu or lxc
48295db4
DM
7
8 config: {
9 items: [
10 {
7853a5ff 11 xtype: 'pveTitleBar',
5ba187c1 12 pveReloadButton: false,
48295db4 13 },
5ba187c1 14 {
48295db4
DM
15 xtype: 'formpanel',
16 flex: 1,
17 padding: 10,
18 items: [
19 {
20 xtype: 'fieldset',
21 items: [
22 {
23 xtype: 'pveNodeSelector',
24 placeHolder: gettext('Target node'),
25 name: 'target',
26 required: true,
27 },
28 {
29 xtype: 'checkboxfield',
5ba187c1 30 name: 'online',
48295db4 31 checked: true,
5ba187c1
TL
32 label: gettext('Online'),
33 },
34 ],
48295db4
DM
35 },
36 {
37 xtype: 'button',
38 itemId: 'migrate',
39 ui: 'action',
5ba187c1
TL
40 text: gettext('Migrate'),
41 },
42 ],
43 },
44 ],
48295db4
DM
45 },
46
47 initialize: function() {
48 var me = this;
49
50 var btn = me.down('#migrate');
51
52 btn.setHandler(function() {
53 var form = this.up('formpanel');
54 var values = form.getValues();
5ba187c1 55
48295db4
DM
56 if (!values.target) {
57 Ext.Msg.alert('Error', 'Please select a target node');
58 return;
59 }
60
e54ad66e 61 Proxmox.Utils.API2Request({
48295db4
DM
62 params: { target: values.target, online: values.online ? 1 : 0 },
63 url: '/nodes/' + me.nodename + '/' + me.vmtype + '/' + me.vmid + "/migrate",
64 method: 'POST',
65 failure: function(response, opts) {
66 Ext.Msg.alert('Error', response.htmlStatus);
67 },
68 success: function(response, options) {
69 var upid = response.result.data;
5ba187c1 70 var page = 'nodes/' + me.nodename + '/tasks/' + upid;
48295db4 71 PVE.Workspace.gotoPage(page);
5ba187c1 72 },
48295db4
DM
73 });
74 });
5ba187c1 75 },
48295db4
DM
76});
77
78Ext.define('PVE.QemuMigrate', {
79 extend: 'PVE.MigrateBase',
80
81 vmtype: 'qemu',
82
83 statics: {
84 pathMatch: function(loc) {
5ba187c1
TL
85 return loc.match(/^nodes\/([^\s/]+)\/qemu\/(\d+)\/migrate$/);
86 },
48295db4
DM
87 },
88
89 initialize: function() {
90 var me = this;
91
92 var match = me.self.pathMatch(me.getAppUrl());
93 if (!match) {
94 throw "pathMatch failed";
95 }
96
97 me.nodename = match[1];
98 me.vmid = match[2];
99
100 me.down('titlebar').setTitle(gettext('Migrate') + ': VM ' + me.vmid);
101
102 this.callParent();
5ba187c1 103 },
48295db4
DM
104});
105
617c5801 106Ext.define('PVE.LXCMigrate', {
48295db4
DM
107 extend: 'PVE.MigrateBase',
108
617c5801 109 vmtype: 'lxc',
48295db4
DM
110
111 statics: {
112 pathMatch: function(loc) {
5ba187c1
TL
113 return loc.match(/^nodes\/([^\s/]+)\/lxc\/(\d+)\/migrate$/);
114 },
48295db4
DM
115 },
116
117 initialize: function() {
118 var me = this;
119
120 var match = me.self.pathMatch(me.getAppUrl());
121 if (!match) {
122 throw "pathMatch failed";
123 }
124
125 me.nodename = match[1];
126 me.vmid = match[2];
127
128 me.down('titlebar').setTitle(gettext('Migrate') + ': CT ' + me.vmid);
129
130 this.callParent();
5ba187c1 131 },
48295db4 132});