mirror of
https://git.proxmox.com/git/proxmox-widget-toolkit
synced 2025-05-29 17:36:24 +00:00
add info widget from pve
we want to reuse that, so copy it here and rename it to pmxInfoWidget Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
This commit is contained in:
parent
98d894d85a
commit
9354dc13a2
@ -37,6 +37,7 @@ JSSRC= \
|
|||||||
grid/PendingObjectGrid.js \
|
grid/PendingObjectGrid.js \
|
||||||
grid/DiskList.js \
|
grid/DiskList.js \
|
||||||
panel/InputPanel.js \
|
panel/InputPanel.js \
|
||||||
|
panel/InfoWidget.js \
|
||||||
panel/LogView.js \
|
panel/LogView.js \
|
||||||
panel/JournalView.js \
|
panel/JournalView.js \
|
||||||
panel/RRDChart.js \
|
panel/RRDChart.js \
|
||||||
|
@ -52,3 +52,20 @@
|
|||||||
left: 0.5em;
|
left: 0.5em;
|
||||||
top: 0.6em;
|
top: 0.6em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* for info widget */
|
||||||
|
div.left-aligned {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.right-aligned {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-progress.critical .x-progress-bar{
|
||||||
|
background-color: #FF8888;
|
||||||
|
}
|
||||||
|
|
||||||
|
.x-progress.warning .x-progress-bar{
|
||||||
|
background-color: #FFCC00;
|
||||||
|
}
|
||||||
|
96
src/panel/InfoWidget.js
Normal file
96
src/panel/InfoWidget.js
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
Ext.define('Proxmox.widget.Info', {
|
||||||
|
extend: 'Ext.container.Container',
|
||||||
|
alias: 'widget.pmxInfoWidget',
|
||||||
|
|
||||||
|
layout: {
|
||||||
|
type: 'vbox',
|
||||||
|
align: 'stretch'
|
||||||
|
},
|
||||||
|
|
||||||
|
value: 0,
|
||||||
|
maximum: 1,
|
||||||
|
printBar: true,
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
xtype: 'component',
|
||||||
|
itemId: 'label',
|
||||||
|
data: {
|
||||||
|
title: '',
|
||||||
|
usage: '',
|
||||||
|
iconCls: undefined
|
||||||
|
},
|
||||||
|
tpl: [
|
||||||
|
'<div class="left-aligned">',
|
||||||
|
'<tpl if="iconCls">',
|
||||||
|
'<i class="{iconCls}"></i> ',
|
||||||
|
'</tpl>',
|
||||||
|
'{title}</div> <div class="right-aligned">{usage}</div>'
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
height: 2,
|
||||||
|
border: 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
xtype: 'progressbar',
|
||||||
|
itemId: 'progress',
|
||||||
|
height: 5,
|
||||||
|
value: 0,
|
||||||
|
animate: true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
warningThreshold: 0.6,
|
||||||
|
criticalThreshold: 0.9,
|
||||||
|
|
||||||
|
setPrintBar: function(enable) {
|
||||||
|
var me = this;
|
||||||
|
me.printBar = enable;
|
||||||
|
me.getComponent('progress').setVisible(enable);
|
||||||
|
},
|
||||||
|
|
||||||
|
setIconCls: function(iconCls) {
|
||||||
|
var me = this;
|
||||||
|
me.getComponent('label').data.iconCls = iconCls;
|
||||||
|
},
|
||||||
|
|
||||||
|
updateValue: function(text, usage) {
|
||||||
|
var me = this;
|
||||||
|
var label = me.getComponent('label');
|
||||||
|
label.update(Ext.apply(label.data, {title: me.title, usage:text}));
|
||||||
|
|
||||||
|
if (usage !== undefined &&
|
||||||
|
me.printBar &&
|
||||||
|
Ext.isNumeric(usage) &&
|
||||||
|
usage >= 0) {
|
||||||
|
var progressBar = me.getComponent('progress');
|
||||||
|
progressBar.updateProgress(usage, '');
|
||||||
|
if (usage > me.criticalThreshold) {
|
||||||
|
progressBar.removeCls('warning');
|
||||||
|
progressBar.addCls('critical');
|
||||||
|
} else if (usage > me.warningThreshold) {
|
||||||
|
progressBar.removeCls('critical');
|
||||||
|
progressBar.addCls('warning');
|
||||||
|
} else {
|
||||||
|
progressBar.removeCls('warning');
|
||||||
|
progressBar.removeCls('critical');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
initComponent: function() {
|
||||||
|
var me = this;
|
||||||
|
|
||||||
|
if (!me.title) {
|
||||||
|
throw "no title defined";
|
||||||
|
}
|
||||||
|
|
||||||
|
me.callParent();
|
||||||
|
|
||||||
|
me.getComponent('progress').setVisible(me.printBar);
|
||||||
|
|
||||||
|
me.updateValue(me.text, me.value);
|
||||||
|
me.setIconCls(me.iconCls);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
Loading…
Reference in New Issue
Block a user