]> git.proxmox.com Git - pve-manager.git/blame - www/manager/qemu/TemplateMenu.js
add template right-click menu
[pve-manager.git] / www / manager / qemu / TemplateMenu.js
CommitLineData
02536b9a
AD
1Ext.define('PVE.qemu.TemplateMenu', {
2 extend: 'Ext.menu.Menu',
3
4 initComponent: function() {
5 var me = this;
6
7 var nodename = me.pveSelNode.data.node;
8 if (!nodename) {
9 throw "no node name specified";
10 }
11
12 var vmid = me.pveSelNode.data.vmid;
13 if (!vmid) {
14 throw "no VM ID specified";
15 }
16
17 var vmname = me.pveSelNode.data.name;
18
19 var template = me.pveSelNode.data.template;
20
21 var vm_command = function(cmd, params) {
22 PVE.Utils.API2Request({
23 params: params,
24 url: '/nodes/' + nodename + '/qemu/' + vmid + "/status/" + cmd,
25 method: 'POST',
26 failure: function(response, opts) {
27 Ext.Msg.alert('Error', response.htmlStatus);
28 }
29 });
30 };
31
32 me.title = "VM " + vmid;
33
34 me.items = [
35 {
36 text: gettext('Migrate'),
37 icon: '/pve2/images/forward.png',
38 handler: function() {
39 var win = Ext.create('PVE.window.Migrate', {
40 vmtype: 'qemu',
41 nodename: nodename,
42 vmid: vmid
43 });
44 win.show();
45 }
46 },
47 {
48 text: gettext('Clone To VM'),
49 icon: '/pve2/images/forward.png',
50 handler: function() {
51 var clonefeature;
52 //check if linked clone feature is available
53 var params = { feature: 'clone' };
54
55 PVE.Utils.API2Request({
56 waitMsgTarget: me,
57 url: '/nodes/' + nodename + '/qemu/' + vmid + '/feature',
58 params: params,
59 method: 'GET',
60 success: function(response, options) {
61 var res = response.result.data;
62 if (res === 1) {
63 clonefeature = 1;
64 }
65 var win = Ext.create('PVE.window.Clone', {
66 snapname: 'current',
67 nodename: nodename,
68 vmid: vmid,
69 istemplate: template,
70 clonefeature: clonefeature
71 });
72 win.show();
73 }
74 });
75 }
76 },
77 ];
78
79 me.callParent();
80 }
81});