status.js 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. function generatePartitions(partitions){
  2. var rowTemplate =
  3. '<tr class="partition-info">'+
  4. '<td><span class="strong">'+$.i18n._("Disk")+' #%s</span>'+
  5. '<ul id="watched-dir-list-%s">'+
  6. '</ul>'+
  7. '</td>'+
  8. '<td>%sGB of %sGB</td>'+
  9. '<td colspan="3">'+
  10. '<div class="big">'+
  11. '<div class="diskspace" style="width:%s%%;">'+
  12. '</div>'+
  13. '</div>'+
  14. '<div>%s%% '+$.i18n._("in use")+'</div>'+
  15. '</td>'+
  16. '</tr>';
  17. $(".partition-info").remove();
  18. var lastElement = $('#partitions');
  19. for (var i=0; i<partitions.length; i++){
  20. var spaceUsed = partitions[i].totalSpace-partitions[i].totalFreeSpace;
  21. var totalSpace = partitions[i].totalSpace;
  22. var percUsed = sprintf("%01.1f", spaceUsed/totalSpace*100);
  23. var spaceUsedGb = sprintf("%01.1f", spaceUsed/Math.pow(2, 30));
  24. var totalSpaceGb = sprintf("%01.1f", totalSpace/Math.pow(2, 30));
  25. var row = sprintf(rowTemplate, i+1, i, spaceUsedGb, totalSpaceGb, percUsed, percUsed);
  26. var tr = $(row);
  27. lastElement.after(tr);
  28. if (partitions[i].dirs){
  29. var watched_dirs_ul = $('#watched-dir-list-'+i);
  30. for (var j=0; j<partitions[i].dirs.length; j++){
  31. watched_dirs_ul.append('<li>'+partitions[i].dirs[j]+'</li>');
  32. }
  33. }
  34. lastElement = tr;
  35. }
  36. }
  37. function success(data, textStatus, jqXHR){
  38. var services = data.status.services;
  39. for (var key in services) {
  40. var s = services[key];
  41. if (s) {
  42. var children = $("#"+s.name).children();
  43. $(children[0]).text(s.name);
  44. var status_class = "not-available-icon";
  45. if (s.status == 0){
  46. status_class = "checked-icon";
  47. } else if (s.status == 1) {
  48. status_class = "warning-icon";
  49. }
  50. $($(children[1]).children()[0]).attr("class", status_class);
  51. $(children[2]).text(sprintf('%(days)sd %(hours)sh %(minutes)sm %(seconds)ss', convertSecondsToDaysHoursMinutesSeconds(s.uptime_seconds)));
  52. $(children[3]).text(s.cpu_perc);
  53. $(children[4]).text(sprintf('%01.1fMB (%s)', parseInt(s.memory_kb)/1000, s.memory_perc));
  54. }
  55. }
  56. if (data.status.partitions){
  57. generatePartitions(data.status.partitions);
  58. }
  59. setTimeout(function(){updateStatus(false);}, 5000);
  60. }
  61. function updateStatus(getDiskInfo){
  62. $.getJSON( baseUrl+"api/status/format/json/diskinfo/"+getDiskInfo, null, success);
  63. }
  64. $(document).ready(function() {
  65. updateStatus(true);
  66. });