diff --git a/glances/outputs/static/bower.json b/glances/outputs/static/bower.json index 93c7c550fb85dc1b0b33c14d176d7ec9c3b15717..2424d373ce54b85fa357715cec1fa271b2aac655 100644 --- a/glances/outputs/static/bower.json +++ b/glances/outputs/static/bower.json @@ -5,6 +5,7 @@ "angular": "^1.5.8", "angular-route": "^1.5.8", "lodash": "^4.13.1", - "favico.js": "^0.3.10" + "favico.js": "^0.3.10", + "angular-hotkeys-light": "^1.1.1" } } diff --git a/glances/outputs/static/js/app.js b/glances/outputs/static/js/app.js index fab82a0e0d7c934fe8df5ff7173ce64ad4f8523f..3d99d353a567b5f8d65bf894ec074f17783c076b 100644 --- a/glances/outputs/static/js/app.js +++ b/glances/outputs/static/js/app.js @@ -1,4 +1,4 @@ -var glancesApp = angular.module('glancesApp', ['ngRoute', 'glances.config']) +var glancesApp = angular.module('glancesApp', ['ngRoute', 'glances.config', 'fps.hotkeys']) .config(function($routeProvider, $locationProvider) { $routeProvider.when('/', { diff --git a/glances/outputs/static/js/components/glances/controller.js b/glances/outputs/static/js/components/glances/controller.js index 94a0c4209d051c1c5f6b7243c48d7bc532f20a1e..e90e3156068c9d3158276c958bde0a62b2325dcd 100644 --- a/glances/outputs/static/js/components/glances/controller.js +++ b/glances/outputs/static/js/components/glances/controller.js @@ -1,6 +1,6 @@ 'use strict'; -function GlancesController($interval, GlancesStats, REFRESH_TIME) { +function GlancesController($interval, GlancesStats, REFRESH_TIME, Hotkeys) { var vm = this; vm.dataLoaded = false; @@ -25,4 +25,13 @@ function GlancesController($interval, GlancesStats, REFRESH_TIME) { $interval(function () { vm.refreshData(); }, REFRESH_TIME * 1000); // in milliseconds + + Hotkeys.registerHotkey(Hotkeys.createHotkey({ + key: 'm', + callback: function () { + console.log('Sort processes by MEM%'); + } + })); + + Hotkeys.registerHotkey( hotkey); } diff --git a/glances/outputs/static/public/js/main.min.js b/glances/outputs/static/public/js/main.min.js index 0dce27191ee30354b57c380ce7c25b88dba060d0..d9b955d38424d683f31d950f8028b668cb76ea7c 100644 --- a/glances/outputs/static/public/js/main.min.js +++ b/glances/outputs/static/public/js/main.min.js @@ -1,4 +1,4 @@ -var glancesApp = angular.module('glancesApp', ['ngRoute', 'glances.config']) +var glancesApp = angular.module('glancesApp', ['ngRoute', 'glances.config', 'fps.hotkeys']) .config(["$routeProvider", "$locationProvider", function($routeProvider, $locationProvider) { $routeProvider.when('/', { @@ -315,7 +315,7 @@ glancesApp.component('glances', { 'use strict'; -function GlancesController($interval, GlancesStats, REFRESH_TIME) { +function GlancesController($interval, GlancesStats, REFRESH_TIME, Hotkeys) { var vm = this; vm.dataLoaded = false; @@ -340,26 +340,15 @@ function GlancesController($interval, GlancesStats, REFRESH_TIME) { $interval(function () { vm.refreshData(); }, REFRESH_TIME * 1000); // in milliseconds -} - -'use strict'; - -glancesApp.component('glancesHelp', { - controller: GlancesHelpController, - controllerAs: 'vm', - bindings: { - }, - templateUrl: 'components/help/view.html' -}); -'use strict'; - -function GlancesHelpController(GlancesStats) { - var vm = this; + Hotkeys.registerHotkey(Hotkeys.createHotkey({ + key: 'm', + callback: function () { + console.log('Sort processes by MEM%'); + } + })); - GlancesStats.getHelp().then(function(help) { - vm.help = help; - }); + Hotkeys.registerHotkey( hotkey); } 'use strict'; @@ -449,38 +438,22 @@ function GlancesPluginAlertController(favicoService) { 'use strict'; -glancesApp.component('glancesPluginCloud', { - controller: GlancesPluginCloudController, +glancesApp.component('glancesHelp', { + controller: GlancesHelpController, controllerAs: 'vm', bindings: { - stats: '<' }, - templateUrl: 'components/plugin-cloud/view.html' + templateUrl: 'components/help/view.html' }); 'use strict'; -function GlancesPluginCloudController() { +function GlancesHelpController(GlancesStats) { var vm = this; - vm.provider = null; - vm.instance = null; - - vm.$onChanges = function (changes) { - var stats = changes.stats.currentValue; - if (stats === undefined || stats.stats === undefined) { - return; - } - - var data = stats.stats['cloud']; - - if (data['ami-id'] !== undefined) { - vm.provider = 'AWS EC2'; - vm.instance = data['instance-type'] + ' instance ' + data['instance-id'] + ' (' + data['region'] + ')'; - } - - data = undefined; - }; + GlancesStats.getHelp().then(function(help) { + vm.help = help; + }); } 'use strict'; @@ -613,6 +586,42 @@ function GlancesPluginDiskioController($filter) { 'use strict'; +glancesApp.component('glancesPluginCloud', { + controller: GlancesPluginCloudController, + controllerAs: 'vm', + bindings: { + stats: '<' + }, + templateUrl: 'components/plugin-cloud/view.html' +}); + +'use strict'; + +function GlancesPluginCloudController() { + var vm = this; + + vm.provider = null; + vm.instance = null; + + vm.$onChanges = function (changes) { + var stats = changes.stats.currentValue; + if (stats === undefined || stats.stats === undefined) { + return; + } + + var data = stats.stats['cloud']; + + if (data['ami-id'] !== undefined) { + vm.provider = 'AWS EC2'; + vm.instance = data['instance-type'] + ' instance ' + data['instance-id'] + ' (' + data['region'] + ')'; + } + + data = undefined; + }; +} + +'use strict'; + glancesApp.component('glancesPluginFs', { controller: GlancesPluginFsController, controllerAs: 'vm', @@ -851,25 +860,22 @@ function GlancesPluginMemMoreController() { 'use strict'; -glancesApp.component('glancesPluginMemswap', { - controller: GlancesPluginMemswapController, +glancesApp.component('glancesPluginNetwork', { + controller: GlancesPluginNetworkController, controllerAs: 'vm', bindings: { - stats: '<' + stats: '<', + arguments: '<' }, - templateUrl: 'components/plugin-memswap/view.html' + templateUrl: 'components/plugin-network/view.html' }); 'use strict'; -function GlancesPluginMemswapController() { +function GlancesPluginNetworkController($filter) { var vm = this; - var _view = {}; - vm.percent = null; - vm.total = null; - vm.used = null; - vm.free = null; + vm.networks = []; vm.$onChanges = function (changes) { var stats = changes.stats.currentValue; @@ -877,44 +883,53 @@ function GlancesPluginMemswapController() { return; } - var data = stats.stats['memswap']; - _view = stats.view['memswap']; + var data = stats.stats['network']; - vm.percent = data['percent']; - vm.total = data['total']; - vm.used = data['used']; - vm.free = data['free']; + vm.networks = []; + for (var i = 0; i < data.length; i++) { + var networkData = data[i]; - data = undefined; - }; + var network = { + 'interfaceName': networkData['interface_name'], + 'rx': networkData['rx'], + 'tx': networkData['tx'], + 'cx': networkData['cx'], + 'time_since_update': networkData['time_since_update'], + 'cumulativeRx': networkData['cumulative_rx'], + 'cumulativeTx': networkData['cumulative_tx'], + 'cumulativeCx': networkData['cumulative_cx'] + }; - this.getDecoration = function (value) { - if (_view[value] === undefined) { - return; + vm.networks.push(network); } - return _view[value].decoration.toLowerCase(); + vm.networks = $filter('orderBy')(vm.networks, 'interfaceName'); + + data = undefined; }; } 'use strict'; -glancesApp.component('glancesPluginNetwork', { - controller: GlancesPluginNetworkController, +glancesApp.component('glancesPluginMemswap', { + controller: GlancesPluginMemswapController, controllerAs: 'vm', bindings: { - stats: '<', - arguments: '<' + stats: '<' }, - templateUrl: 'components/plugin-network/view.html' + templateUrl: 'components/plugin-memswap/view.html' }); 'use strict'; -function GlancesPluginNetworkController($filter) { +function GlancesPluginMemswapController() { var vm = this; + var _view = {}; - vm.networks = []; + vm.percent = null; + vm.total = null; + vm.used = null; + vm.free = null; vm.$onChanges = function (changes) { var stats = changes.stats.currentValue; @@ -922,29 +937,23 @@ function GlancesPluginNetworkController($filter) { return; } - var data = stats.stats['network']; + var data = stats.stats['memswap']; + _view = stats.view['memswap']; - vm.networks = []; - for (var i = 0; i < data.length; i++) { - var networkData = data[i]; + vm.percent = data['percent']; + vm.total = data['total']; + vm.used = data['used']; + vm.free = data['free']; - var network = { - 'interfaceName': networkData['interface_name'], - 'rx': networkData['rx'], - 'tx': networkData['tx'], - 'cx': networkData['cx'], - 'time_since_update': networkData['time_since_update'], - 'cumulativeRx': networkData['cumulative_rx'], - 'cumulativeTx': networkData['cumulative_tx'], - 'cumulativeCx': networkData['cumulative_cx'] - }; + data = undefined; + }; - vm.networks.push(network); + this.getDecoration = function (value) { + if (_view[value] === undefined) { + return; } - vm.networks = $filter('orderBy')(vm.networks, 'interfaceName'); - - data = undefined; + return _view[value].decoration.toLowerCase(); }; } @@ -1053,39 +1062,6 @@ function GlancesPluginPortsController() { 'use strict'; -glancesApp.component('glancesPluginProcess', { - controller: GlancesPluginProcessController, - controllerAs: 'vm', - bindings: { - stats: '<', - arguments: '<' - }, - templateUrl: 'components/plugin-process/view.html' -}); - -'use strict'; - -function GlancesPluginProcessController() { - var vm = this; - - vm.sorter = { - column: "cpu_percent", - auto: true, - isReverseColumn: function (column) { - return !(column === 'username' || column === 'name'); - }, - getColumnLabel: function (column) { - if (_.isEqual(column, ['io_read', 'io_write'])) { - return 'io_counters'; - } else { - return column; - } - } - }; -} - -'use strict'; - glancesApp.component('glancesPluginProcesscount', { controller: GlancesPluginProcesscountController, controllerAs: 'vm', @@ -1127,6 +1103,39 @@ function GlancesPluginProcesscountController() { 'use strict'; +glancesApp.component('glancesPluginProcess', { + controller: GlancesPluginProcessController, + controllerAs: 'vm', + bindings: { + stats: '<', + arguments: '<' + }, + templateUrl: 'components/plugin-process/view.html' +}); + +'use strict'; + +function GlancesPluginProcessController() { + var vm = this; + + vm.sorter = { + column: "cpu_percent", + auto: true, + isReverseColumn: function (column) { + return !(column === 'username' || column === 'name'); + }, + getColumnLabel: function (column) { + if (_.isEqual(column, ['io_read', 'io_write'])) { + return 'io_counters'; + } else { + return column; + } + } + }; +} + +'use strict'; + glancesApp.component('glancesPluginProcesslist', { controller: GlancesPluginProcesslistController, controllerAs: 'vm', @@ -1278,6 +1287,34 @@ function GlancesPluginQuicklookController() { 'use strict'; +glancesApp.component('glancesPluginUptime', { + controller: GlancesPluginUptimeController, + controllerAs: 'vm', + bindings: { + stats: '<' + }, + templateUrl: 'components/plugin-uptime/view.html' +}); + +'use strict'; + +function GlancesPluginUptimeController() { + var vm = this; + + vm.value = null; + + vm.$onChanges = function (changes) { + var stats = changes.stats.currentValue; + if (stats === undefined || stats.stats === undefined) { + return; + } + + vm.value = stats.stats['uptime']; + }; +} + +'use strict'; + glancesApp.component('glancesPluginSystem', { controller: GlancesPluginSystemController, controllerAs: 'vm', @@ -1321,34 +1358,6 @@ function GlancesPluginSystemController() { 'use strict'; -glancesApp.component('glancesPluginUptime', { - controller: GlancesPluginUptimeController, - controllerAs: 'vm', - bindings: { - stats: '<' - }, - templateUrl: 'components/plugin-uptime/view.html' -}); - -'use strict'; - -function GlancesPluginUptimeController() { - var vm = this; - - vm.value = null; - - vm.$onChanges = function (changes) { - var stats = changes.stats.currentValue; - if (stats === undefined || stats.stats === undefined) { - return; - } - - vm.value = stats.stats['uptime']; - }; -} - -'use strict'; - glancesApp.component('glancesPluginWifi', { controller: GlancesPluginWifiController, controllerAs: 'vm', @@ -1404,68 +1413,3 @@ function GlancesPluginWifiController($filter) { return _view[hotpost.ssid][field].decoration.toLowerCase(); }; } - -glancesApp.service('GlancesPluginProcessList', ["$filter", "GlancesPlugin", function($filter, GlancesPlugin) { - var _pluginName = "processlist"; - var _maxProcessesToDisplay = undefined; - this.processes = []; - this.ioReadWritePresent = false; - - this.setData = function(data, views, config) { - this.processes = []; - this.ioReadWritePresent = false; - _maxProcessesToDisplay = config.outputs !== undefined ? config.outputs.max_processes_display : undefined;; - - for (var i = 0; i < data[_pluginName].length; i++) { - var process = data[_pluginName][i]; - - process.memvirt = process.memory_info[1]; - process.memres = process.memory_info[0]; - process.timeplus = $filter('timedelta')(process.cpu_times); - process.timemillis = $filter('timemillis')(process.cpu_times); - - process.ioRead = null; - process.ioWrite = null; - - if (process.io_counters) { - this.ioReadWritePresent = true; - - process.ioRead = (process.io_counters[0] - process.io_counters[2]) / process.time_since_update; - - if (process.ioRead != 0) { - process.ioRead = $filter('bytes')(process.ioRead); - } - - process.ioWrite = (process.io_counters[1] - process.io_counters[3]) / process.time_since_update; - - if (process.ioWrite != 0) { - process.ioWrite = $filter('bytes')(process.ioWrite); - } - } - - process.isNice = process.nice !== undefined && ((data['system'].os_name === 'Windows' && process.nice != 32) || (data['system'].os_name !== 'Windows' && process.nice != 0)); - - if (Array.isArray(process.cmdline)) { - process.cmdline = process.cmdline.join(' '); - } - - if (data['system'].os_name === 'Windows') { - process.username = _.last(process.username.split('\\')); - } - - this.processes.push(process); - } - }; - - this.getCpuPercentAlert = function(process) { - return GlancesPlugin.getAlert(_pluginName, 'processlist_cpu_', process.cpu_percent); - }; - - this.getMemoryPercentAlert = function(process) { - return GlancesPlugin.getAlert(_pluginName, 'processlist_mem_', process.cpu_percent); - }; - - this.getLimit = function() { - return _maxProcessesToDisplay; - }; -}]); diff --git a/glances/outputs/static/public/js/templates.min.js b/glances/outputs/static/public/js/templates.min.js index 6c59e67f5dc4e9f735713c4bd464a922f1e2640e..f7263e1332a638e734f15c238a13de6bf94c6b38 100644 --- a/glances/outputs/static/public/js/templates.min.js +++ b/glances/outputs/static/public/js/templates.min.js @@ -1,22 +1,22 @@ angular.module('glancesApp').run(['$templateCache', function($templateCache) {$templateCache.put('components/glances/view.html','
\n
\n \n
Loading...
\n
\n\n \n\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n\n
\n \n
\n \n
\n
\n \n
\n \n
\n \n
\n \n
\n \n
\n
\n \n
\n
\n
\n \n
\n \n \n \n
\n
\n
\n
\n\n'); -$templateCache.put('components/help/view.html','
\n
\n
{{vm.help.version}} {{vm.help.psutil_version}}
\n
\n
 
\n
\n
{{vm.help.configuration_file}}
\n
\n
 
\n
\n
{{vm.help.sort_auto}}
\n
{{vm.help.sort_network}}
\n
\n
\n
{{vm.help.sort_cpu}}
\n
{{vm.help.show_hide_alert}}
\n
\n
\n
{{vm.help.sort_mem}}
\n
{{vm.help.percpu}}
\n
\n
\n
{{vm.help.sort_user}}
\n
{{vm.help.show_hide_ip}}
\n
\n
\n
{{vm.help.sort_proc}}
\n
{{vm.help.enable_disable_docker}}
\n
\n
\n
{{vm.help.sort_io}}
\n
{{vm.help.view_network_io_combination}}
\n
\n
\n
{{vm.help.sort_cpu_times}}
\n
{{vm.help.view_cumulative_network}}
\n
\n
\n
{{vm.help.show_hide_diskio}}
\n
{{vm.help.show_hide_filesytem_freespace}}
\n
\n
\n
{{vm.help.show_hide_filesystem}}
\n
{{vm.help.show_hide_vm.help}}
\n
\n
\n
{{vm.help.show_hide_network}}
\n
{{vm.help.diskio_iops}}
\n
\n
\n
{{vm.help.show_hide_sensors}}
\n
{{vm.help.show_hide_top_menu}}
\n
\n
\n
{{vm.help.show_hide_left_sidebar}}
\n
{{vm.help.show_hide_amp}}
\n
\n
\n
{{vm.help.enable_disable_process_stats}}
\n
{{vm.help.show_hide_irq}}
\n
\n
\n
{{vm.help.enable_disable_gpu}}
\n
{{vm.help.enable_disable_mean_gpu}}
\n
\n
\n
{{vm.help.enable_disable_quick_look}}
\n
\n
\n
\n
{{vm.help.enable_disable_short_processname}}
\n
\n
\n
\n
{{vm.help.enable_disable_ports}}
\n
\n
\n\n
\n'); $templateCache.put('components/plugin-alert/view.html','
\n No warning or critical alert detected\n Warning or critical alerts (lasts {{vm.count()}} entries)\n
\n
\n
\n
\n
\n {{alert.begin | date : \'yyyy-MM-dd H:mm:ss\'}} ({{ alert.ongoing ? \'ongoing\' : alert.duration }}) - {{alert.level}} on {{alert.name}} ({{alert.max}})\n
\n
\n
\n
\n'); -$templateCache.put('components/plugin-cloud/view.html','
\n {{ vm.provider }} {{ vm.instance }}\n
\n'); +$templateCache.put('components/help/view.html','
\n
\n
{{vm.help.version}} {{vm.help.psutil_version}}
\n
\n
 
\n
\n
{{vm.help.configuration_file}}
\n
\n
 
\n
\n
{{vm.help.sort_auto}}
\n
{{vm.help.sort_network}}
\n
\n
\n
{{vm.help.sort_cpu}}
\n
{{vm.help.show_hide_alert}}
\n
\n
\n
{{vm.help.sort_mem}}
\n
{{vm.help.percpu}}
\n
\n
\n
{{vm.help.sort_user}}
\n
{{vm.help.show_hide_ip}}
\n
\n
\n
{{vm.help.sort_proc}}
\n
{{vm.help.enable_disable_docker}}
\n
\n
\n
{{vm.help.sort_io}}
\n
{{vm.help.view_network_io_combination}}
\n
\n
\n
{{vm.help.sort_cpu_times}}
\n
{{vm.help.view_cumulative_network}}
\n
\n
\n
{{vm.help.show_hide_diskio}}
\n
{{vm.help.show_hide_filesytem_freespace}}
\n
\n
\n
{{vm.help.show_hide_filesystem}}
\n
{{vm.help.show_hide_vm.help}}
\n
\n
\n
{{vm.help.show_hide_network}}
\n
{{vm.help.diskio_iops}}
\n
\n
\n
{{vm.help.show_hide_sensors}}
\n
{{vm.help.show_hide_top_menu}}
\n
\n
\n
{{vm.help.show_hide_left_sidebar}}
\n
{{vm.help.show_hide_amp}}
\n
\n
\n
{{vm.help.enable_disable_process_stats}}
\n
{{vm.help.show_hide_irq}}
\n
\n
\n
{{vm.help.enable_disable_gpu}}
\n
{{vm.help.enable_disable_mean_gpu}}
\n
\n
\n
{{vm.help.enable_disable_quick_look}}
\n
\n
\n
\n
{{vm.help.enable_disable_short_processname}}
\n
\n
\n
\n
{{vm.help.enable_disable_ports}}
\n
\n
\n\n
\n'); $templateCache.put('components/plugin-cpu/view.html','
\n
\n
\n
\n
\n
CPU
\n
{{ vm.total }}%
\n
\n
\n
user:
\n
\n {{ vm.user }}%\n
\n
\n
\n
system:
\n
\n {{ vm.system }}%\n
\n
\n
\n
idle:
\n
{{ vm.idle }}%
\n
\n
\n
\n \n \n
\n
\n'); $templateCache.put('components/plugin-diskio/view.html','
\n
DISK I/O
\n
R/s
\n
W/s
\n\n
IOR/s
\n
IOW/s
\n
\n
\n
{{(disk.alias ? disk.alias : disk.name) | min_size}}
\n
{{disk.bitrate.txps }}
\n
{{disk.bitrate.rxps }}
\n\n
{{disk.count.txps }}
\n
{{disk.count.rxps }}
\n
'); +$templateCache.put('components/plugin-cloud/view.html','
\n {{ vm.provider }} {{ vm.instance }}\n
\n'); $templateCache.put('components/plugin-fs/view.html','
\n
FILE SYS
\n
\n Used\n Free\n
\n
Total
\n
\n
\n
{{ fs.shortMountPoint }} ({{ fs.name }})
\n
\n {{ fs.used | bytes }}\n {{ fs.free | bytes }}\n
\n
{{ fs.size | bytes }}
\n
'); $templateCache.put('components/plugin-ip/view.html','
\n  - IP {{ vm.address }}/{{ vm.maskCidr }} Pub {{ vm.publicAddress }}\n
\n'); $templateCache.put('components/plugin-load/view.html','
\n
\n
\n
LOAD
\n
{{ vm.cpucore }}-core
\n
\n
\n
1 min:
\n
\n {{ vm.min1 | number : 2}}\n
\n
\n
\n
5 min:
\n
\n {{ vm.min5 | number : 2}}\n
\n
\n
\n
15 min:
\n
\n {{ vm.min15 | number : 2}}\n
\n
\n
\n
\n'); $templateCache.put('components/plugin-mem/view.html','
\n
\n
\n
MEM
\n
{{ vm.percent }}%
\n
\n
\n
total:
\n
{{ vm.total | bytes }}
\n
\n
\n
used:
\n
\n {{ vm.used | bytes:2 }}\n
\n
\n
\n
free:
\n
{{ vm.free | bytes }}
\n
\n
\n
\n'); $templateCache.put('components/plugin-mem-more/view.html','
\n
\n
\n
active:
\n
{{ vm.active | bytes }}
\n
\n
\n
inactive:
\n
{{ vm.inactive | bytes }}
\n
\n
\n
buffers:
\n
{{ vm.buffers | bytes }}
\n
\n
\n
cached:
\n
{{ vm.cached | bytes }}
\n
\n
\n
\n'); -$templateCache.put('components/plugin-memswap/view.html','
\n
\n
\n
SWAP
\n
{{ vm.percent }}%
\n
\n
\n
total:
\n
{{ vm.total | bytes }}
\n
\n
\n
used:
\n
\n {{ vm.used | bytes }}\n
\n
\n
\n
free:
\n
{{ vm.free | bytes }}
\n
\n
\n
\n'); $templateCache.put('components/plugin-network/view.html','
\n
NETWORK
\n
Rx/s
\n
Tx/s
\n\n
\n
Rx+Tx/s
\n\n
Rx
\n
Tx
\n\n
\n
Rx+Tx
\n
\n
\n
{{ network.interfaceName | min_size }}
\n
{{ vm.arguments.byte ? (network.rx / network.time_since_update | bytes) : (network.rx / network.time_since_update | bits) }}
\n
{{ vm.arguments.byte ? (network.tx / network.time_since_update | bytes) : (network.tx / network.time_since_update | bits) }}
\n\n
\n
{{ vm.arguments.byte ? (network.cx / network.time_since_update | bytes) : (network.cx / network.time_since_update | bits) }}
\n\n
{{ vm.arguments.byte ? (network.cumulativeRx | bytes) : (network.cumulativeRx | bits) }}
\n
{{ vm.arguments.byte ? (network.cumulativeTx | bytes) : (network.cumulativeTx | bits) }}
\n\n
\n
{{ vm.arguments.byte ? (network.cumulativeCx | bytes) : (network.cumulativeCx | bits) }}
\n
'); +$templateCache.put('components/plugin-memswap/view.html','
\n
\n
\n
SWAP
\n
{{ vm.percent }}%
\n
\n
\n
total:
\n
{{ vm.total | bytes }}
\n
\n
\n
used:
\n
\n {{ vm.used | bytes }}\n
\n
\n
\n
free:
\n
{{ vm.free | bytes }}
\n
\n
\n
\n'); $templateCache.put('components/plugin-percpu/view.html','
\n
\n
\n
PER CPU
\n
{{ percpu.total }}%
\n
\n
\n
user:
\n
\n {{ percpu.user }}%\n
\n
\n
\n
system:
\n
\n {{ percpu.system }}%\n
\n
\n
\n
idle:
\n
{{ percpu.idle }}%
\n
\n
\n
iowait:
\n
\n {{ percpu.iowait }}%\n
\n
\n
\n
steal:
\n
\n {{ percpu.steal }}%\n
\n
\n
\n
\n'); $templateCache.put('components/plugin-ports/view.html','
\n
{{(port.description ? port.description : port.host + \' \' + port.port) | min_size: 20}}
\n
\n
\n Scanning\n Timeout\n Open\n {{port.status * 1000.0 | number:0}}ms\n
\n
'); -$templateCache.put('components/plugin-process/view.html','
\n \n \n \n
\n
PROCESSES DISABLED (press \'z\' to display)
'); $templateCache.put('components/plugin-processcount/view.html','
\n TASKS\n {{ vm.total }} ({{ vm.thread }} thr),\n {{ vm.running }} run,\n {{ vm.sleeping }} slp,\n {{ vm.stopped }} oth\n sorted {{ vm.sorter.auto ? \'automatically\' : \'\' }} by {{ vm.sorter.getColumnLabel(vm.sorter.column) }}, flat view\n
'); +$templateCache.put('components/plugin-process/view.html','
\n \n \n \n
\n
PROCESSES DISABLED (press \'z\' to display)
'); $templateCache.put('components/plugin-processlist/view.html','
\n
\n
\n
CPU%
\n
MEM%
\n \n \n
PID
\n
USER
\n
NI
\n
S
\n \n \n \n
Command
\n
\n
\n
{{process.cpu_percent | number:1}}
\n
{{process.memory_percent | number:1}}
\n \n \n
{{process.pid}}
\n
{{process.username}}
\n
{{process.nice | exclamation}}
\n
{{process.status}}
\n \n \n \n
{{process.name}}
\n
{{process.cmdline}}
\n
\n
\n
\n'); $templateCache.put('components/plugin-quicklook/view.html','
\n
\n {{ vm.cpu_name }}\n
\n
\n
\n
CPU
\n
\n
\n
\n  \n
\n
\n
\n
\n {{ vm.cpu }}%\n
\n
\n
\n
CPU{{ percpu.number }}
\n
\n
\n
\n  \n
\n
\n
\n
\n {{ percpu.total }}%\n
\n
\n
\n
MEM
\n
\n
\n
\n  \n
\n
\n
\n
\n {{ vm.mem }}%\n
\n
\n
\n
SWAP
\n
\n
\n
\n  \n
\n
\n
\n
\n {{ vm.swap }}%\n
\n
\n
\n
\n'); -$templateCache.put('components/plugin-system/view.html','
\n Disconnected from\n {{ vm.hostname }}\n \n \n
\n'); $templateCache.put('components/plugin-uptime/view.html','
\n Uptime: {{ vm.value }}\n
\n'); +$templateCache.put('components/plugin-system/view.html','
\n Disconnected from\n {{ vm.hostname }}\n \n \n
\n'); $templateCache.put('components/plugin-wifi/view.html','
\n
\n
WIFI
\n
\n
dBm
\n
\n
\n
{{ hotspot.ssid|limitTo:20 }} {{ hotspot.encryption_type }}
\n
\n
{{ hotspot.signal }}
\n
\n
');}]); \ No newline at end of file diff --git a/glances/outputs/static/public/js/vendor.min.js b/glances/outputs/static/public/js/vendor.min.js index 7c1b5af7496b5cb3f043f7c1228927126e41d1f4..98f90b17b5b6a011e74c5a8bd28de3be5a77fcd5 100644 --- a/glances/outputs/static/public/js/vendor.min.js +++ b/glances/outputs/static/public/js/vendor.min.js @@ -52139,3 +52139,6 @@ function ngViewFillContentFactory($compile, $controller, $route) { } })(); + +!function(a){!function(a){a.module("fps.hotkeys",[]).service("Hotkeys",["$Hotkeys",function(a){return new a}]).provider("$Hotkeys",function(){function a(){function a(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()}var b=Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)},c=function(a){for(var b={},c=[],d=0;d=0;d--){var e=a.clone();e.key=a.key[d];var f=this._deregisterHotkey(e);void 0!==f&&c.push(f[0])}else c.push(this._deregisterHotkey(a));return c}}),Object.defineProperty(i.prototype,"_validateHotkey",{value:function(a){if(!(a instanceof h))throw new TypeError("Hotkeys: Expected a hotkey object be instance of HotKey")}}),Object.defineProperty(i.prototype,"_registerKey",{value:function(a){var b=this._hotkeys;return a.onKeyUp&&(b=this._hotkeysUp),b[a.key]=b[a.key]||[],b[a.key].push(a),a}}),Object.defineProperty(i.prototype,"_registerKeys",{value:function(c){var d=[];if(b(c.key))for(var e=c.key.length-1;e>=0;e--){var f=c.clone();f.id=a(),f.key=c.key[e],d.push(this._registerKey(f))}else d.push(this._registerKey(c));return d}}),Object.defineProperty(i.prototype,"registerHotkey",{value:function(a){return this._validateHotkey(a),this._registerKeys(a)}}),Object.defineProperty(i.prototype,"registerHotkeyUp",{value:function(a){this._validateHotkey(a),a.onKeyUp=!0,this._registerKeys(a)}}),Object.defineProperty(i.prototype,"createHotkey",{value:function(a){if(null===a.key||void 0===a.key)throw new TypeError('HotKeys: Argument "key" is required');if(null===a.callback||void 0===a.callback)throw new TypeError('HotKeys: Argument "callback" is required');return a.callback=g(a.callback),new h(a)}}),Object.defineProperty(i.prototype,"match",{value:function(a,c){b(c)||(c=[c]);var d=this.keyStringFromEvent(a);return Boolean(~c.indexOf(d))}}),i}]})}(window.angular)}(angular); +//# sourceMappingURL=angular-hotkeys-light.map.js \ No newline at end of file