]> git.proxmox.com Git - proxmox-backup.git/blame - www/DataStoreNotes.js
tools/logrotate: fix compression logic
[proxmox-backup.git] / www / DataStoreNotes.js
CommitLineData
68931742
DC
1Ext.define('PBS.DataStoreNotes', {
2 extend: 'Ext.panel.Panel',
3 xtype: 'pbsDataStoreNotes',
4 mixins: ['Proxmox.Mixin.CBind'],
5
6 title: gettext("Comment"),
7 bodyStyle: 'white-space:pre',
8 bodyPadding: 10,
9 scrollable: true,
10 animCollapse: false,
11
12 cbindData: function(initalConfig) {
13 let me = this;
14 me.url = `/api2/extjs/config/datastore/${me.datastore}`;
15 return { };
16 },
17
18 run_editor: function() {
19 let me = this;
20 let win = Ext.create('Proxmox.window.Edit', {
21 title: gettext('Comment'),
22 width: 600,
23 resizable: true,
24 layout: 'fit',
25 defaultButton: undefined,
26 items: {
27 xtype: 'textfield',
28 name: 'comment',
29 value: '',
30 hideLabel: true,
31 },
32 url: me.url,
33 listeners: {
34 destroy: function() {
35 me.load();
36 },
37 },
38 }).show();
39 win.load();
40 },
41
42 setNotes: function(value) {
43 let me = this;
44 var data = value || '';
45 me.update(Ext.htmlEncode(data));
46
47 if (me.collapsible && me.collapseMode === 'auto') {
48 me.setCollapsed(data === '');
49 }
50 },
51
52 load: function() {
53 var me = this;
54
55 Proxmox.Utils.API2Request({
56 url: me.url,
57 waitMsgTarget: me,
58 failure: function(response, opts) {
59 me.update(gettext('Error') + " " + response.htmlStatus);
60 me.setCollapsed(false);
61 },
62 success: function(response, opts) {
63 me.setNotes(response.result.data.comment);
64 },
65 });
66 },
67
68 listeners: {
69 render: function(c) {
70 var me = this;
71 me.getEl().on('dblclick', me.run_editor, me);
72 },
73 afterlayout: function() {
74 let me = this;
75 if (me.collapsible && !me.getCollapsed() && me.collapseMode === 'always') {
76 me.setCollapsed(true);
77 me.collapseMode = ''; // only once, on initial load!
78 }
79 },
80 },
81
82 tools: [{
83 type: 'gear',
84 handler: function() {
85 this.up('panel').run_editor();
86 },
87 }],
88
89 collapsible: true,
90 collapseDirection: 'right',
91
92 initComponent: function() {
93 var me = this;
94
95 me.callParent();
96
97 let sp = Ext.state.Manager.getProvider();
98 me.collapseMode = sp.get('notes-collapse', 'never');
99
100 if (me.collapseMode === 'auto') {
101 me.setCollapsed(true);
102 }
103 },
104});