]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/node/Subscription.js
move onlineHelp into classes from definition
[pve-manager.git] / www / manager6 / node / Subscription.js
1 /*global Blob*/
2 Ext.define('PVE.node.SubscriptionKeyEdit', {
3 extend: 'PVE.window.Edit',
4 title: gettext('Upload Subscription Key'),
5 width: 300,
6 items: {
7 xtype: 'textfield',
8 name: 'key',
9 value: '',
10 fieldLabel: gettext('Subscription Key')
11 },
12 initComponent : function() {
13 var me = this;
14
15 me.callParent();
16
17 me.load();
18 }
19 });
20
21 Ext.define('PVE.node.Subscription', {
22 extend: 'PVE.grid.ObjectGrid',
23
24 alias: ['widget.pveNodeSubscription'],
25
26 onlineHelp: 'getting_help',
27
28 features: [ {ftype: 'selectable'}],
29
30 showReport: function() {
31 var me = this;
32 var nodename = me.pveSelNode.data.node;
33
34 var getReportFileName = function() {
35 var now = Ext.Date.format(new Date(), 'D-d-F-Y-G-i');
36 return me.nodename + '-report-' + now + '.txt';
37 };
38
39 var view = Ext.createWidget('component', {
40 itemId: 'system-report-view',
41 scrollable: true,
42 style: {
43 'background-color': 'white',
44 'white-space': 'pre',
45 'font-family': 'monospace',
46 padding: '5px'
47 }
48 });
49
50 var reportWindow = Ext.create('Ext.window.Window', {
51 title: gettext('System Report'),
52 width: 1024,
53 height: 600,
54 layout: 'fit',
55 modal: true,
56 buttons: [
57 '->',
58 {
59 text: gettext('Download'),
60 handler: function() {
61 var fileContent = reportWindow.getComponent('system-report-view').html;
62 var fileName = getReportFileName();
63
64 // Internet Explorer
65 if (window.navigator.msSaveOrOpenBlob) {
66 navigator.msSaveOrOpenBlob(new Blob([fileContent]), fileName);
67 } else {
68 var element = document.createElement('a');
69 element.setAttribute('href', 'data:text/plain;charset=utf-8,'
70 + encodeURIComponent(fileContent));
71 element.setAttribute('download', fileName);
72 element.style.display = 'none';
73 document.body.appendChild(element);
74 element.click();
75 document.body.removeChild(element);
76 }
77 }
78 }
79 ],
80 items: view
81 });
82
83 PVE.Utils.API2Request({
84 url: '/api2/extjs/nodes/' + me.nodename + '/report',
85 method: 'GET',
86 waitMsgTarget: me,
87 failure: function(response) {
88 Ext.Msg.alert(gettext('Error'), response.htmlStatus);
89 },
90 success: function(response) {
91 var report = Ext.htmlEncode(response.result.data);
92 reportWindow.show();
93 view.update(report);
94 }
95 });
96 },
97
98 initComponent : function() {
99 var me = this;
100
101 if (!me.nodename) {
102 throw "no node name specified";
103 }
104
105 var reload = function() {
106 me.rstore.load();
107 };
108
109 var baseurl = '/nodes/' + me.nodename + '/subscription';
110
111 var render_status = function(value) {
112
113 var message = me.getObjectValue('message');
114
115 if (message) {
116 return value + ": " + message;
117 }
118 return value;
119 };
120
121 var rows = {
122 productname: {
123 header: gettext('Type')
124 },
125 key: {
126 header: gettext('Subscription Key')
127 },
128 status: {
129 header: gettext('Status'),
130 renderer: render_status
131 },
132 message: {
133 visible: false
134 },
135 serverid: {
136 header: gettext('Server ID')
137 },
138 sockets: {
139 header: gettext('Sockets')
140 },
141 checktime: {
142 header: gettext('Last checked'),
143 renderer: PVE.Utils.render_timestamp
144 },
145 nextduedate: {
146 header: gettext('Next due date')
147 }
148 };
149
150 Ext.apply(me, {
151 url: '/api2/json' + baseurl,
152 cwidth1: 170,
153 tbar: [
154 {
155 text: gettext('Upload Subscription Key'),
156 handler: function() {
157 var win = Ext.create('PVE.node.SubscriptionKeyEdit', {
158 url: '/api2/extjs/' + baseurl
159 });
160 win.show();
161 win.on('destroy', reload);
162 }
163 },
164 {
165 text: gettext('Check'),
166 handler: function() {
167 PVE.Utils.API2Request({
168 params: { force: 1 },
169 url: baseurl,
170 method: 'POST',
171 waitMsgTarget: me,
172 failure: function(response, opts) {
173 Ext.Msg.alert(gettext('Error'), response.htmlStatus);
174 },
175 callback: reload
176 });
177 }
178 },
179 {
180 text: gettext('System Report'),
181 handler: function() {
182 PVE.Utils.checked_command(function (){ me.showReport(); });
183 }
184 }
185 ],
186 rows: rows,
187 listeners: {
188 activate: reload
189 }
190 });
191
192 me.callParent();
193 }
194 });