statusService.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. angular.module("robware").service('statusService', ["$http", function($http) {
  2. function parseProcessData(data) {
  3. var headers = data.shift();
  4. var cpuIndex = -1;
  5. var ignoreColNames = ["user", "pid", "vsz", "rss", "tty", "stat"];
  6. var ignoreCols = [];
  7. var processHeaders = []
  8. for (var col in headers) {
  9. if (headers[col].toLowerCase() === "%cpu")
  10. cpuIndex = col;
  11. if (ignoreColNames.indexOf(headers[col].toLowerCase()) > -1)
  12. ignoreCols.push(col);
  13. else
  14. processHeaders.push(headers[col]);
  15. }
  16. data.sort(function (a, b) {
  17. cpuA = parseFloat(a[cpuIndex]);
  18. cpuB = parseFloat(b[cpuIndex]);
  19. if (cpuA > cpuB)
  20. return -1;
  21. if (cpuA < cpuB)
  22. return 1
  23. return 0;
  24. });
  25. var processData = [];
  26. for (var row in data) {
  27. var obj = {};
  28. for (var col in data[row]) {
  29. if (ignoreCols.indexOf(col) === -1)
  30. obj[headers[col]] = data[row][col];
  31. }
  32. processData.push(obj);
  33. }
  34. return [processHeaders, processData];
  35. }
  36. this.getProcesses = function() {
  37. return $http.get('/status/getprocesses').then(function(response) {
  38. parsedData = parseProcessData(response.data);
  39. return {headers: parsedData[0], data: parsedData[1]};
  40. });
  41. };
  42. this.getSystemInfo=function(){
  43. return $http.get('/status/getsysteminfo').then(function(response){
  44. return response.data;
  45. });
  46. };
  47. this.getUptime=function(){
  48. return $http.get('/status/getuptime').then(function(response){
  49. return response.data;
  50. })
  51. };
  52. }]);