123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293 |
- type = ['','info','success','warning','danger'];
- dashboard = {
- initPickColor: function(){
- $('.pick-class-label').click(function(){
- var new_class = $(this).attr('new-class');
- var old_class = $('#display-buttons').attr('data-class');
- var display_div = $('#display-buttons');
- if(display_div.length) {
- var display_buttons = display_div.find('.btn');
- display_buttons.removeClass(old_class);
- display_buttons.addClass(new_class);
- display_div.attr('data-class', new_class);
- }
- });
- },
- initChartist: function(){
- var getData = $.get('/1/app/usage/trend');
- var appStatus = $.get('/1/app/status?node=apps@seeker-hacker&app=terminal');
- console.log('appstatus...', appStatus)
- console.log('getData...', getData);
- getData.done(function(results) {
- var data = JSON.parse(results)
- console.log('data...', data)
- var app = data['Chrome'];
- console.log('app...', app)
- console.log('cpu', app.cpu)
- console.log('memory', app.memory_used)
- function getCpuUsage (app){
- cpu_usage = []
- for (var i in app){
- cpu_usage.push(app[i].cpu_usage)
- }
- return cpu_usage
- }
- function getMemoryUsage (app){
- memory_usage = []
- for (var i in app){
- memory_usage.push(app[i].memory_usage)
- }
- return memory_usage
- }
- function getStatus (app){
- statusList = []
- for (var i in app){
- statusList.push(app[i].status)
- }
- return statusList
- }
- monitorStatus = function(idle, crash, running){ // TODO: make this async with g.summary at bottom
- return idle, crash, running
- }
- // monitoring apps chart
- var dataChart = {
- labels: ['9:00AM', '12:00AM', '3:00PM', '6:00PM', '9:00PM', '12:00PM', '3:00AM', '6:00AM'],
- series: [app.cpu, app.memory_used, [0.1, 2, 4, 0.8], ] // Add memory available?
- //[287, 385, 490, 562, 594, 626, 698, 895, 952],
- //[67, 152, 193, 240, 387, 435, 535, 642, 744],
- //[23, 113, 67, 108, 190, 239, 307, 410, 410],
- //]
- };
- var optionsChart = {
- lineSmooth: false,
- low: 0,
- high: 100,
- showArea: true,
- height: "245px",
- axisX: {
- showGrid: false,
- },
- lineSmooth: Chartist.Interpolation.simple({
- divisor: 1
- }),
- showLine: true,
- showPoint: false,
- };
- var responsiveChart = [
- ['screen and (max-width: 640px)', {
- axisX: {
- labelInterpolationFnc: function (value) {
- return value[0];
- }
- }
- }]
- ];
- Chartist.Line('#chartHours', dataChart, optionsChart, responsiveChart);
- // cpu and memory --------------------------
- cpu_usage = getCpuUsage(app)
- memory_usage = getMemoryUsage(app)
- var data = {
- labels: ['Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
- series: [app.cpu, app.memory_used
- //cpu_usage,memory_usage
- // [542, 543, 520, 680, 653, 753, 326, 434, 568, 610, 756, 895],
- // [230, 293, 380, 480, 503, 553, 600, 664, 698, 710, 736, 795]
- ]
- };
- var options = {
- seriesBarDistance: 10,
- axisX: {
- showGrid: false
- },
- height: "245px"
- };
- var responsiveOptions = [
- ['screen and (max-width: 640px)', {
- seriesBarDistance: 5,
- axisX: {
- labelInterpolationFnc: function (value) {
- return value[0];
- }
- }
- }]
- ];
- Chartist.Line('#chartActivity', data, options, responsiveOptions);
- var dataPreferences = {
- series: [
- [25, 30, 20, 25]
- ]
- };
- var optionsPreferences = {
- donut: true,
- donutWidth: 40,
- startAngle: 0,
- total: 100,
- showLabel: false,
- axisX: {
- showGrid: false
- }
- };
- Chartist.Pie('#chartPreferences', dataPreferences, optionsPreferences);
- //summary Run|Idle|Crash pie chart
- status = getStatus(app)
- statusList = status.split(',');
- statusByNum = getStatusByType(statusList)
- function getStatusByType(statusList){
- running = 0;
- idle = 0;
- crash = 0;
- for (var n in statusList){
- if (statusList[n] == 'running'){
- running += 1;
- };
- if (statusList[n] == 'idle'){
- idle += 1;
- };
- if (statusList[n] == 'crash'){
- crash += 1;
- };
- }
- statusList = [running, idle, crash];
- return statusList
- }
- percentage = getStatusPercent(statusByNum);
- function getStatusPercent(statusByNum){
- let total = 0
- for (var i in statusByNum){
- total += statusByNum[i];
- }
- percent = []
- for (var i in statusByNum){
- percent.push(total / statusByNum[i])
- }
- total = 100
- let percentage = []
- for (var i in percent){
- percentage.push(total/percent[i])
- }
- for (var i in percentage){
- if (percentage[i] == 0){
- percentage.pop(percentage[i]);
- }
- }
- return percentage
- }
- for (i in percentage){
- percentage[i] = percentage[i].toString()+'%';
- }
- console.log("running", running)
- Chartist.Pie('#chartPreferences', {
- labels: percentage,
- series: [1,2,3]
- });
- })
- },
- // End chartist function
- initGoogleMaps: function(){
- var myLatlng = new google.maps.LatLng(40.748817, -73.985428);
- var mapOptions = {
- zoom: 13,
- center: myLatlng,
- scrollwheel: false, //we disable de scroll over the map, it is a really annoing when you scroll through page
- styles: [{"featureType":"water","stylers":[{"saturation":43},{"lightness":-11},{"hue":"#0088ff"}]},{"featureType":"road","elementType":"geometry.fill","stylers":[{"hue":"#ff0000"},{"saturation":-100},{"lightness":99}]},{"featureType":"road","elementType":"geometry.stroke","stylers":[{"color":"#808080"},{"lightness":54}]},{"featureType":"landscape.man_made","elementType":"geometry.fill","stylers":[{"color":"#ece2d9"}]},{"featureType":"poi.park","elementType":"geometry.fill","stylers":[{"color":"#ccdca1"}]},{"featureType":"road","elementType":"labels.text.fill","stylers":[{"color":"#767676"}]},{"featureType":"road","elementType":"labels.text.stroke","stylers":[{"color":"#ffffff"}]},{"featureType":"poi","stylers":[{"visibility":"off"}]},{"featureType":"landscape.natural","elementType":"geometry.fill","stylers":[{"visibility":"on"},{"color":"#b8cb93"}]},{"featureType":"poi.park","stylers":[{"visibility":"on"}]},{"featureType":"poi.sports_complex","stylers":[{"visibility":"on"}]},{"featureType":"poi.medical","stylers":[{"visibility":"on"}]},{"featureType":"poi.business","stylers":[{"visibility":"simplified"}]}]
- }
- var map = new google.maps.Map(document.getElementById("map"), mapOptions);
- var marker = new google.maps.Marker({
- position: myLatlng,
- title:"Hello World!"
- });
- // To add the marker to the map, call setMap();
- marker.setMap(map);
- },
- showNotification: function(from, align){
- color = Math.floor((Math.random() * 4) + 1);
- $.notify({
- icon: "ti-comment",
- message: "Message."
- },{
- type: type[color],
- timer: 4000,
- placement: {
- from: from,
- align: align
- }
- });
- },
- }
- /**
- * Global information about the dashboard
- * @TODO: Add socket handling ... it would make non-blocking updating information
- */
- var g = {}
- g.summary = {}
- /**
- * Initializing the top section of the dashboard (apps and folders)
- */
- g.summary.factory = function (url,pointer) {
- var object = {}
- object.url = url
- var observer = null
- var TIME_ELLAPSED = 2000 ;
- object.callback = function (r) {
- r = JSON.parse(r.responseText)
- pointer(r)
- console.log(r)
- monitorStatus(r.idle, r.crash, r.running)
- //observer.notify()
- }
- object.init = function (observer) {
- observer = observer
- var httpclient = HttpClient.instance()
- //httpclient.setAsync(false)
- httpclient.get(this.url, this.callback)
- setTimeout(function(){
- observer.notify()
- },TIME_ELLAPSED) ;
- //observer.notify()
- }
- return object
- }
|