]> git.proxmox.com Git - pve-manager.git/blob - www/mobile/MenuButton.js
ui: restore: display "Hostname" for container
[pve-manager.git] / www / mobile / MenuButton.js
1 Ext.define('PVE.MenuButton', {
2 extend: 'Ext.Button',
3 alias: 'widget.pveMenuButton',
4
5 menuPanel: undefined,
6
7 createMenuPanel: function() {
8 var me = this;
9
10 var data = me.getMenuItems() || [];
11
12 var addHide = function (fn) {
13 return function () {
14 if (me.menuPanel) {
15 me.menuPanel.hide();
16 Ext.Viewport.remove(me.menuPanel);
17 me.menuPanel.destroy();
18 me.menuPanel = undefined;
19 }
20 return fn.apply(this, arguments);
21 };
22 };
23
24 var items = [];
25
26 if (me.getPveStdMenu()) {
27 items.push({
28 xtype: 'button',
29 ui: 'plain',
30 text: gettext('Datacenter'),
31 handler: addHide(function() {
32 PVE.Workspace.gotoPage('');
33 })
34 });
35 }
36
37 data.forEach(function(el) {
38 items.push(Ext.apply(el, {
39 xtype: 'button',
40 ui: 'plain',
41 handler: addHide(el.handler)
42 }));
43 });
44
45 if (me.getPveStdMenu()) {
46 items.push({
47 xtype: 'button',
48 ui: 'plain',
49 text: gettext('Logout'),
50 handler: addHide(function() {
51 PVE.Workspace.showLogin();
52 })
53 });
54 }
55
56 me.menuPanel = Ext.create('Ext.Panel', {
57 modal: true,
58 hideOnMaskTap: true,
59 visible: false,
60 minWidth: 200,
61 layout: {
62 type:'vbox',
63 align: 'stretch'
64 },
65 items: items
66 });
67
68 PVE.Workspace.history.on('change', function() {
69 if (me.menuPanel) {
70 Ext.Viewport.remove(me.menuPanel);
71 me.menuPanel.destroy();
72 me.menuPanel = undefined;
73 }
74 });
75 },
76
77 config: {
78 menuItems: undefined,
79 pveStdMenu: false, // add LOGOUT
80 handler: function() {
81 var me = this;
82
83 if (!me.menuPanel) {
84 me.createMenuPanel();
85 }
86 me.menuPanel.showBy(me, 'tr-bc?');
87 }
88 },
89
90 initialize: function() {
91 var me = this;
92
93 this.callParent();
94
95 if (me.getPveStdMenu()) {
96 me.setIconCls('more');
97 }
98
99 }
100 });