]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/menu/TemplateMenu.js
ui: guest import: add warning for losing efi state
[pve-manager.git] / www / manager6 / menu / TemplateMenu.js
1 Ext.define('PVE.menu.TemplateMenu', {
2 extend: 'Ext.menu.Menu',
3
4 initComponent: function() {
5 let me = this;
6
7 let info = me.pveSelNode.data;
8 if (!info.node) {
9 throw "no node name specified";
10 }
11 if (!info.vmid) {
12 throw "no VM ID specified";
13 }
14
15 let guestType = me.pveSelNode.data.type;
16 if (guestType !== 'qemu' && guestType !== 'lxc') {
17 throw `invalid guest type ${guestType}`;
18 }
19
20 let template = me.pveSelNode.data.template;
21
22 me.title = (guestType === 'qemu' ? 'VM ' : 'CT ') + info.vmid;
23
24 let caps = Ext.state.Manager.get('GuiCap');
25 let standaloneNode = PVE.Utils.isStandaloneNode();
26
27 me.items = [
28 {
29 text: gettext('Migrate'),
30 iconCls: 'fa fa-fw fa-send-o',
31 hidden: standaloneNode || !caps.vms['VM.Migrate'],
32 handler: function() {
33 Ext.create('PVE.window.Migrate', {
34 vmtype: guestType,
35 nodename: info.node,
36 vmid: info.vmid,
37 autoShow: true,
38 });
39 },
40 },
41 {
42 text: gettext('Clone'),
43 iconCls: 'fa fa-fw fa-clone',
44 hidden: !caps.vms['VM.Clone'],
45 handler: function() {
46 Ext.create('PVE.window.Clone', {
47 nodename: info.node,
48 guestType: guestType,
49 vmid: info.vmid,
50 isTemplate: template,
51 autoShow: true,
52 });
53 },
54 },
55 ];
56
57 me.callParent();
58 },
59 });