]>
git.proxmox.com Git - proxmox-widget-toolkit.git/blob - src/panel/NotesView.js
1 Ext
.define('Proxmox.panel.NotesView', {
2 extend
: 'Ext.panel.Panel',
4 mixins
: ['Proxmox.Mixin.CBind'],
6 title
: gettext("Notes"),
12 onlineHelp
: 'markdown_basics',
19 text
: gettext('Edit'),
21 let view
= this.up('panel');
28 cbindData: function(initalConfig
) {
33 me
.url
= `/api2/extjs/nodes/${me.node}/config`;
34 } else if (me
.pveSelNode
?.data
?.id
=== 'root') {
35 me
.url
= '/api2/extjs/cluster/options';
36 type
= me
.pveSelNode
?.data
?.type
;
38 const nodename
= me
.pveSelNode
?.data
?.node
;
39 type
= me
.pveSelNode
?.data
?.type
;
42 throw "no node name specified";
45 if (!Ext
.Array
.contains(['node', 'qemu', 'lxc'], type
)) {
46 throw 'invalid type specified';
49 const vmid
= me
.pveSelNode
?.data
?.vmid
;
51 if (!vmid
&& type
!== 'node') {
52 throw "no VM ID specified";
55 me
.url
= `/api2/extjs/nodes/${nodename}/`;
57 // add the type specific path if qemu/lxc and set the backend's maxLen
58 if (type
=== 'qemu' || type
=== 'lxc') {
59 me
.url
+= `${type}/${vmid}/`;
60 me
.maxLength
= 8 * 1024;
72 run_editor: function() {
74 Ext
.create('Proxmox.window.NotesEdit', {
76 onlineHelp
: me
.onlineHelp
,
78 destroy
: () => me
.load(),
81 }).setMaxLength(me
.maxLength
);
84 setNotes: function(value
= '') {
87 let mdHtml
= Proxmox
.Markdown
.parse(value
);
90 if (me
.collapsible
&& me
.collapseMode
=== 'auto') {
91 me
.setCollapsed(!value
);
98 Proxmox
.Utils
.API2Request({
101 failure
: (response
, opts
) => {
102 me
.update(gettext('Error') + " " + response
.htmlStatus
);
103 me
.setCollapsed(false);
105 success
: ({ result
}) => me
.setNotes(result
.data
.description
),
110 render: function(c
) {
112 me
.getEl().on('dblclick', me
.run_editor
, me
);
114 afterlayout: function() {
116 if (me
.collapsible
&& !me
.getCollapsed() && me
.collapseMode
=== 'always') {
117 me
.setCollapsed(true);
118 me
.collapseMode
= ''; // only once, on initial load!
126 handler: function() {
127 let view
= this.up('panel');
133 initComponent: function() {
137 // '' is for datacenter
138 if (me
.enableTBar
=== true || me
.pveType
=== 'node' || me
.pveType
=== '') {
139 me
.down('#tbar').setVisible(true);
140 } else if (me
.pveSelNode
?.data
?.template
!== 1) {
141 me
.setCollapsible(true);
142 me
.collapseDirection
= 'right';
144 let sp
= Ext
.state
.Manager
.getProvider();
145 me
.collapseMode
= sp
.get('guest-notes-collapse', 'never');
147 if (me
.collapseMode
=== 'auto') {
148 me
.setCollapsed(true);