提交 6d8521fb 编写于 作者: N nicolargo

Merge branch 'develop' of https://github.com/nicolargo/glances into develop

......@@ -5,19 +5,19 @@
{{result["cpu"].nice}}%
</div>
</div>
<div class="table-row">
<div class="table-row" ng-if="result['cpu'].irq != undefined">
<div class="table-cell text-left">irq:</div>
<div class="table-cell">
{{result["cpu"].irq}}%
</div>
</div>
<div class="table-row">
<div class="table-row" ng-if="result['cpu'].iowait != undefined">
<div class="table-cell text-left">iowait:</div>
<div class="table-cell" ng-class="getClass('cpu', 'cpu_iowait_', result['cpu'].iowait, 1)">
{{result["cpu"].iowait}}%
</div>
</div>
<div class="table-row">
<div class="table-row" ng-if="result['cpu'].steal != undefined">
<div class="table-cell text-left">steal:</div>
<div class="table-cell" ng-class="getClass('cpu', 'cpu_steal_', result['cpu'].steal, 0)">
{{result["cpu"].steal}}%
......
......@@ -3,7 +3,7 @@
<div class="table-cell">R/s</div>
<div class="table-cell">W/s</div>
</div>
<div class="table-row" ng-repeat="disk in result['diskio']">
<div class="table-row" ng-repeat="disk in result['diskio'] | orderBy: 'disk_name'">
<div class="table-cell text-left">{{disk.disk_name | min_size}}</div>
<div class="table-cell">{{disk.read_bytes | bytes}}</div>
<div class="table-cell">{{disk.write_bytes | bytes}}</div>
......
......@@ -3,7 +3,7 @@
<div class="table-cell">Used</div>
<div class="table-cell">Total</div>
</div>
<div class="table-row" ng-repeat="fs in result['fs']">
<div class="table-row" ng-repeat="fs in result['fs'] | orderBy: 'mnt_point'">
<div class="table-cell text-left">{{fs.mnt_point}} ({{fs.device_name}})</div>
<div class="table-cell" ng-class="getClass('fs', 'fs_', fs.percent, 0)">
{{fs.size - fs.free | bytes}}
......
......@@ -6,19 +6,19 @@
<div class="table-row">
<div class="table-cell text-left">1 min:</div>
<div class="table-cell">
{{result["load"].min1}}
{{result["load"].min1 | number : 2}}
</div>
</div>
<div class="table-row">
<div class="table-cell text-left">5 min:</div>
<div class="table-cell" ng-class="getClass('load', 'load_', result['load'].min5, 0)">
{{result["load"].min5}}
{{result["load"].min5 | number : 2}}
</div>
</div>
<div class="table-row">
<div class="table-cell text-left">15 min:</div>
<div class="table-cell" ng-class="getClass('load', 'load_', result['load'].min15, 1)">
{{result["load"].min15}}
{{result["load"].min15 | number : 2}}
</div>
</div>
</div>
......@@ -5,7 +5,7 @@
</div>
<div class="table-row">
<div class="table-cell text-left">total:</div>
<div class="table-cell">{{result["mem"].total | bytes:2}}</div>
<div class="table-cell">{{result["mem"].total | bytes}}</div>
</div>
<div class="table-row">
<div class="table-cell text-left">used:</div>
......@@ -15,6 +15,6 @@
</div>
<div class="table-row">
<div class="table-cell text-left">free:</div>
<div class="table-cell">{{result["mem"].free | bytes:2}}</div>
<div class="table-cell">{{result["mem"].free | bytes}}</div>
</div>
</div>
<div class="table">
<div class="table-row">
<div class="table-cell text-left">active:</div>
<div class="table-cell">{{result["mem"].active | bytes:2}}</div>
<div class="table-cell">{{result["mem"].active | bytes}}</div>
</div>
<div class="table-row">
<div class="table-cell text-left">inactive:</div>
<div class="table-cell">{{result["mem"].inactive | bytes:2}}</div>
<div class="table-cell">{{result["mem"].inactive | bytes}}</div>
</div>
<div class="table-row">
<div class="table-row" ng-if="result['mem'].buffer != undefined">
<div class="table-cell text-left">buffers:</div>
<div class="table-cell">{{result["mem"].buffers | bytes:2}}</div>
<div class="table-cell">{{result["mem"].buffers | bytes}}</div>
</div>
<div class="table-row">
<div class="table-row" ng-if="result['mem'].cached != undefined">
<div class="table-cell text-left">cached:</div>
<div class="table-cell">{{result["mem"].cached | bytes:2}}</div>
<div class="table-cell">{{result["mem"].cached | bytes}}</div>
</div>
</div>
......@@ -5,16 +5,16 @@
</div>
<div class="table-row">
<div class="table-cell text-left">total:</div>
<div class="table-cell">{{result["memswap"].total | bytes:2}}</div>
<div class="table-cell">{{result["memswap"].total | bytes}}</div>
</div>
<div class="table-row">
<div class="table-cell text-left">used:</div>
<div class="table-cell" ng-class="getClass('memswap', 'memswap_', result['memswap'].percent, 1)">
{{result["memswap"].used | bytes:2}}
{{result["memswap"].used | bytes}}
</div>
</div>
<div class="table-row">
<div class="table-cell text-left">free:</div>
<div class="table-cell">{{result["memswap"].free | bytes:2}}</div>
<div class="table-cell">{{result["memswap"].free | bytes}}</div>
</div>
</div>
......@@ -3,7 +3,7 @@
<div class="table-cell">Rx/s</div>
<div class="table-cell">Tx/s</div>
</div>
<div class="table-row" ng-repeat="network in result['network'] | orderBy: network.interface_name">
<div class="table-row" ng-repeat="network in result['network'] | orderBy: 'interface_name'">
<div class="table-cell text-left">{{network.interface_name | min_size}}</div>
<div class="table-cell" ng-if="show.network_by_bytes">{{network.rx | bytes}}</div>
<div class="table-cell" ng-if="show.network_by_bytes">{{network.tx | bytes}}</div>
......
......@@ -16,8 +16,8 @@
<div class="table-row" ng-repeat="process in result['processlist'] | orderBy:sorter.column:sorter.isReverseColumn(sorter.column)">
<div class="table-cell" ng-class="getClass('processlist', 'processlist_cpu_', process.cpu_percent, 0)">{{process.cpu_percent | number:1}}</div>
<div class="table-cell" ng-class="getClass('processlist', 'processlist_mem_', process.memory_percent, 0)">{{process.memory_percent | number:1}}</div>
<div class="table-cell hidden-xs hidden-sm">{{process.memvirt | bytes:1}}</div>
<div class="table-cell hidden-xs hidden-sm">{{process.memres | bytes:1}}</div>
<div class="table-cell hidden-xs hidden-sm">{{process.memvirt | bytes}}</div>
<div class="table-cell hidden-xs hidden-sm">{{process.memres | bytes}}</div>
<div class="table-cell">{{process.pid}}</div>
<div class="table-cell text-left">{{process.username}}</div>
<div class="table-cell">{{process.nice | exclamation}}</div>
......
<!--<span class="title">Refresh time&nbsp;</span> <span class="hidden-xs hidden-sm">{{refreshTime}}s
<button ng-click="refreshTime = refreshTime - 1" ng-disabled="refreshTime <= 1">-</button>
<button ng-click="refreshTime = refreshTime + 1">+</button>
</span> -->
<span class="title">{{result["system"].hostname}}&nbsp;</span> <span class="hidden-xs hidden-sm">({{result["system"].hr_name}} / {{result["system"].os_name}} {{result["system"].os_version}})</span>
<span class="title">
{{ result["system"].hostname }}
</span>
<span ng-if="result['os_name'] == 'Linux'" class="hidden-xs hidden-sm">({{ result["system"].hr_name }} / {{ result["system"].os_name }} {{ result["system"].os_version }})</span>
<span ng-if="result['os_name'] != 'Linux'" class="hidden-xs hidden-sm">({{ result["system"].os_name }} {{ result["system"].os_version }} {{ result["system"].platform }})</span>
......@@ -12,7 +12,7 @@
<section id="system" class="plugin" ng-include src="'plugins/system.html'"></section>
</div>
<div class="pull-left">
<section id="ip" class="plugin" ng-include src="'plugins/ip.html'"></section>
<section id="ip" class="plugin" ng-if="result['ip'].address != undefined" ng-include src="'plugins/ip.html'"></section>
</div>
<div class="pull-right">
<section id="uptime" class="plugin" ng-include src="'plugins/uptime.html'"></section>
......
......@@ -16,29 +16,63 @@ glancesApp.filter('exclamation', function() {
};
});
/**
* Fork from https://gist.github.com/thomseddon/3511330
* &nbsp; => \u00A0
* WARNING : kilobyte (kB) != kibibyte (KiB) (more info here : http://en.wikipedia.org/wiki/Byte )
**/
glancesApp.filter('bytes', function() {
return function (bytes, precision) {
return function (bytes, low_precision) {
low_precision = low_precision || false;
if (isNaN(parseFloat(bytes)) || !isFinite(bytes) || bytes == 0){
return '0B';
return '0';
}
var units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB'],
number = Math.floor(Math.log(bytes) / Math.log(1000));
return (bytes / Math.pow(1000, Math.floor(number))).toFixed(precision) + units[number];
var symbols = ['K', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y'];
var prefix = {
'Y': 1208925819614629174706176,
'Z': 1180591620717411303424,
'E': 1152921504606846976,
'P': 1125899906842624,
'T': 1099511627776,
'G': 1073741824,
'M': 1048576,
'K': 1024
};
var reverseSymbols = _(symbols).reverse().value();
for (var i = 0; i < reverseSymbols.length; i++) {
var symbol = reverseSymbols[i];
var value = bytes / prefix[symbol];
if(value > 1) {
var decimal_precision = 0;
if(value < 10) {
decimal_precision = 2;
}
else if(value < 100) {
decimal_precision = 1;
}
if(low_precision) {
if(symbol == 'MK') {
decimal_precision = 0;
}
else {
decimal_precision = _.min([1, decimal_precision]);
}
}
else if(symbol == 'K') {
decimal_precision = 0;
}
return parseFloat(value).toFixed(decimal_precision) + symbol;
}
}
return bytes;
}
});
glancesApp.filter('bits', function() {
return function (bits, precision) {
if (isNaN(parseFloat(bits)) || !isFinite(bits) || bits == 0){
return '0b';
}
var units = ['b', 'kb', 'Mb', 'Gb', 'Tb', 'Pb'],
number = Math.floor(Math.log(bits) / Math.log(1000));
return (bits / Math.pow(1000, Math.floor(number))).toFixed(precision) + units[number];
glancesApp.filter('bits', function($filter) {
return function (bits, low_precision) {
bits = Math.round(bits) * 8;
return $filter('bytes')(bits, low_precision) + 'b';
}
});
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册