proxmox-backup/www/panel/NodeInfo.js
Thomas Lamprecht 8af1fa5477 ui: use base 10 (SI) for all storage related displays
matches what we do for (most) of such things in PVE since 7.0 there
and also what the disk management gui shows, further disks are sold
with SI units for their advertised capacity, so its more fitting
there too.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-05-17 10:21:26 +02:00

187 lines
3.9 KiB
JavaScript

Ext.define('PBS.NodeInfoPanel', {
extend: 'Proxmox.panel.StatusView',
alias: 'widget.pbsNodeInfoPanel',
height: 300,
bodyPadding: '15 5 15 5',
layout: {
type: 'table',
columns: 2,
tableAttrs: {
style: {
width: '100%',
},
},
},
defaults: {
xtype: 'pmxInfoWidget',
padding: '0 10 5 10',
},
controller: {
xclass: 'Ext.app.ViewController',
showFingerPrint: function() {
let me = this;
let view = me.getView();
let fingerprint = view.fingerprint;
Ext.create('Ext.window.Window', {
modal: true,
width: 600,
title: gettext('Fingerprint'),
layout: 'form',
bodyPadding: '10 0',
items: [
{
xtype: 'textfield',
inputId: 'fingerprintField',
value: fingerprint,
editable: false,
},
],
buttons: [
{
xtype: 'button',
iconCls: 'fa fa-clipboard',
handler: function(b) {
var el = document.getElementById('fingerprintField');
el.select();
document.execCommand("copy");
},
text: gettext('Copy'),
},
{
text: gettext('Ok'),
handler: function() {
this.up('window').close();
},
},
],
}).show();
},
},
tools: [
{
xtype: 'button',
reference: 'fpButton',
text: gettext('Show Fingerprint'),
handler: 'showFingerPrint',
disabled: true,
},
],
items: [
{
itemId: 'cpu',
iconCls: 'fa fa-fw pmx-itype-icon-processor pmx-icon',
title: gettext('CPU usage'),
valueField: 'cpu',
maxField: 'cpuinfo',
renderer: Proxmox.Utils.render_node_cpu_usage,
},
{
itemId: 'wait',
iconCls: 'pmx-icon-size fa fa-fw fa-clock-o',
title: gettext('IO delay'),
valueField: 'wait',
},
{
xtype: 'box',
colspan: 2,
padding: '0 0 20 0',
},
{
iconCls: 'fa fa-fw pmx-itype-icon-memory pmx-icon',
itemId: 'memory',
title: gettext('RAM usage'),
valueField: 'memory',
maxField: 'memory',
renderer: Proxmox.Utils.render_node_size_usage,
},
{
itemId: 'load',
iconCls: 'pmx-icon-size fa fa-fw fa-tasks',
title: gettext('Load average'),
printBar: false,
textField: 'loadavg',
},
{
iconCls: 'pmx-icon-size fa fa-fw fa-hdd-o',
itemId: 'rootfs',
title: gettext('HD space') + '(root)',
valueField: 'root',
maxField: 'root',
renderer: ({ used, total }) => Proxmox.Utils.render_size_usage(used, total, true),
},
{
iconCls: 'pmx-icon-size fa fa-fw fa-refresh',
itemId: 'swap',
printSize: true,
title: gettext('SWAP usage'),
valueField: 'swap',
maxField: 'swap',
renderer: Proxmox.Utils.render_node_size_usage,
},
{
xtype: 'box',
colspan: 2,
padding: '0 0 20 0',
},
{
itemId: 'cpus',
colspan: 2,
printBar: false,
title: gettext('CPU(s)'),
textField: 'cpuinfo',
renderer: Proxmox.Utils.render_cpu_model,
value: '',
},
{
itemId: 'kversion',
colspan: 2,
title: gettext('Kernel Version'),
printBar: false,
textField: 'kversion',
value: '',
},
{
xtype: 'pmxNodeInfoRepoStatus',
itemId: 'repositoryStatus',
product: 'Proxmox Bacckup Server',
repoLink: '#pbsServerAdministration:aptrepositories',
},
],
updateTitle: function() {
var me = this;
var uptime = Proxmox.Utils.render_uptime(me.getRecordValue('uptime'));
me.setTitle(Proxmox.NodeName + ' (' + gettext('Uptime') + ': ' + uptime + ')');
},
initComponent: function() {
let me = this;
me.rstore = Ext.create('Proxmox.data.ObjectStore', {
interval: 3000,
url: '/api2/json/nodes/localhost/status',
autoStart: true,
});
me.callParent();
me.mon(me.rstore, 'load', function(store, records, success) {
if (!success) {
return;
}
let info = me.getRecordValue('info');
me.fingerprint = info.fingerprint;
me.lookup('fpButton').setDisabled(!me.fingerprint);
});
me.on('destroy', function() { me.rstore.stopUpdate(); });
},
});