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