]> git.proxmox.com Git - pve-manager.git/blame - www/manager6/panel/NotesView.js
ui: panel/NotesView: eslint fixes
[pve-manager.git] / www / manager6 / panel / NotesView.js
CommitLineData
b49fb084
DM
1Ext.define('PVE.panel.NotesView', {
2 extend: 'Ext.panel.Panel',
ade55c15 3 xtype: 'pveNotesView',
b49fb084 4
6f68dcbe 5 title: gettext("Notes"),
6f68dcbe
EK
6 bodyStyle: 'white-space:pre',
7 bodyPadding: 10,
8 scrollable: true,
300c0f73 9 animCollapse: false,
6f68dcbe 10
9db54b1f
DC
11 tbar: {
12 itemId: 'tbar',
13 hidden: true,
14 items: [
15 {
16 text: gettext('Edit'),
17 handler: function() {
193df2f3
DJ
18 let view = this.up('panel');
19 view.run_editor();
f6710aac
TL
20 },
21 },
22 ],
9db54b1f
DC
23 },
24
25 run_editor: function() {
26 var me = this;
27 var win = Ext.create('PVE.window.NotesEdit', {
28 pveSelNode: me.pveSelNode,
f6710aac 29 url: me.url,
9db54b1f
DC
30 });
31 win.show();
32 win.on('destroy', me.load, me);
33 },
34
b49fb084
DM
35 load: function() {
36 var me = this;
9db54b1f 37
e7ade592 38 Proxmox.Utils.API2Request({
b49fb084
DM
39 url: me.url,
40 waitMsgTarget: me,
41 failure: function(response, opts) {
42 me.update(gettext('Error') + " " + response.htmlStatus);
300c0f73 43 me.setCollapsed(false);
b49fb084
DM
44 },
45 success: function(response, opts) {
46 var data = response.result.data.description || '';
47 me.update(Ext.htmlEncode(data));
300c0f73
TL
48
49 if (me.collapsible && me.collapseMode === 'auto') {
50 me.setCollapsed(data === '');
51 }
f6710aac 52 },
b49fb084
DM
53 });
54 },
55
9db54b1f
DC
56 listeners: {
57 render: function(c) {
58 var me = this;
59 me.getEl().on('dblclick', me.run_editor, me);
300c0f73
TL
60 },
61 afterlayout: function() {
62 let me = this;
63 if (me.collapsible && !me.getCollapsed() && me.collapseMode === 'always') {
64 me.setCollapsed(true);
65 me.collapseMode = ''; // only once, on initial load!
66 }
67 },
9db54b1f
DC
68 },
69
70 tools: [{
71 type: 'gear',
72 handler: function() {
193df2f3
DJ
73 let view = this.up('panel');
74 view.run_editor();
f6710aac 75 },
9db54b1f
DC
76 }],
77
8058410f 78 initComponent: function() {
b49fb084
DM
79 var me = this;
80
81 var nodename = me.pveSelNode.data.node;
82 if (!nodename) {
83 throw "no node name specified";
84 }
85
9db54b1f
DC
86 var type = me.pveSelNode.data.type;
87 if (!Ext.Array.contains(['node', 'qemu', 'lxc'], type)) {
88 throw 'invalid type specified';
89 }
90
b49fb084 91 var vmid = me.pveSelNode.data.vmid;
9db54b1f 92 if (!vmid && type !== 'node') {
b49fb084
DM
93 throw "no VM ID specified";
94 }
95
9db54b1f 96 me.url = '/api2/extjs/nodes/' + nodename + '/';
b49fb084 97
9db54b1f
DC
98 // add the type specific path if qemu/lxc
99 if (type === 'qemu' || type === 'lxc') {
100 me.url += type + '/' + vmid + '/';
b49fb084
DM
101 }
102
9db54b1f 103 me.url += 'config';
b49fb084
DM
104
105 me.callParent();
9db54b1f
DC
106 if (type === 'node') {
107 me.down('#tbar').setVisible(true);
6751013a 108 } else if (me.pveSelNode.data.template !== 1) {
300c0f73
TL
109 me.setCollapsible(true);
110 me.collapseDirection = 'right';
111
112 let sp = Ext.state.Manager.getProvider();
113 me.collapseMode = sp.get('guest-notes-collapse', 'never');
114
115 if (me.collapseMode === 'auto') {
116 me.setCollapsed(true);
117 }
9db54b1f 118 }
abbf0eb7 119 me.load();
f6710aac 120 },
b49fb084 121});