Ext.define('PBS.SubscriptionKeyEdit', { extend: 'Proxmox.window.Edit', title: gettext('Upload Subscription Key'), width: 300, autoLoad: true, onlineHelp: 'getting_help', items: { xtype: 'textfield', name: 'key', value: '', fieldLabel: gettext('Subscription Key'), }, }); Ext.define('PBS.Subscription', { extend: 'Proxmox.grid.ObjectGrid', xtype: 'pbsSubscription', title: gettext('Subscription'), border: true, onlineHelp: 'getting_help', viewConfig: { enableTextSelection: true, }, initComponent: function() { var me = this; var reload = function() { me.rstore.load(); }; var baseurl = '/nodes/localhost/subscription'; var render_status = function(value) { var message = me.getObjectValue('message'); if (message) { return value + ": " + message; } return value; }; var rows = { productname: { header: gettext('Type'), }, key: { header: gettext('Subscription Key'), }, status: { header: gettext('Status'), renderer: render_status, }, message: { visible: false, }, serverid: { header: gettext('Server ID'), }, sockets: { header: gettext('Sockets'), }, checktime: { header: gettext('Last checked'), renderer: Proxmox.Utils.render_timestamp, }, nextduedate: { header: gettext('Next due date'), }, }; Ext.apply(me, { url: '/api2/json' + baseurl, cwidth1: 170, tbar: [ { text: gettext('Upload Subscription Key'), handler: function() { var win = Ext.create('PBS.SubscriptionKeyEdit', { url: '/api2/extjs/' + baseurl, }); win.show(); win.on('destroy', reload); }, }, { text: gettext('Check'), handler: function() { Proxmox.Utils.API2Request({ params: { force: 1 }, url: baseurl, method: 'POST', waitMsgTarget: me, failure: function(response, opts) { Ext.Msg.alert(gettext('Error'), response.htmlStatus); }, callback: reload, }); }, }, ], rows: rows, }); me.callParent(); reload(); }, });