index.html 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <!DOCTYPE html>
  2. <html ng-app="App">
  3. <head>
  4. <title>System Info</title>
  5. <meta charset="UTF-8">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0 user-scalable=no">
  7. <link rel="stylesheet" href="../../script/semantic/semantic.min.css">
  8. <script type="text/javascript" src="../../script/jquery.min.js"></script>
  9. <script type="text/javascript" src="../../script/semantic/semantic.min.js"></script>
  10. </head>
  11. <body>
  12. <div class="ui vertical masthead left aligned segment">
  13. <div class="ui container">
  14. <div>
  15. <h1 id="modelname"></h1>
  16. </div>
  17. <div>
  18. <div style="display:inline-block;" id="build"></div>
  19. <div style="float:right !important;" id="manufacturer"></div>
  20. </div>
  21. </div>
  22. </div>
  23. <div class="ui container">
  24. <br>
  25. <h3 class="ui header">Specifications</h3>
  26. <div class="ui grid">
  27. <div class="six wide column">
  28. Model :
  29. </div>
  30. <div class="ten wide column" id="model">
  31. Loading...
  32. </div>
  33. <div class="six wide column">
  34. Frequency :
  35. </div>
  36. <div class="ten wide column" id="freq">
  37. Loading...
  38. </div>
  39. <div class="six wide column">
  40. Instruction :
  41. </div>
  42. <div class="ten wide column" id="instruction">
  43. Loading...
  44. </div>
  45. <div class="six wide column">
  46. Hardware :
  47. </div>
  48. <div class="ten wide column" id="hardware">
  49. Loading...
  50. </div>
  51. <div class="six wide column">
  52. Revision :
  53. </div>
  54. <div class="ten wide column" id="revision">
  55. Loading...
  56. </div>
  57. <div class="six wide column">
  58. Memory :
  59. </div>
  60. <div class="ten wide column" id="ram">
  61. Loading...
  62. </div>
  63. <div class="six wide column">
  64. NIC :
  65. </div>
  66. <div class="ten wide column" id="nic">
  67. Loading...
  68. </div>
  69. <div class="six wide column">
  70. Drive :
  71. </div>
  72. <div class="ten wide column" id="drive">
  73. Loading...
  74. </div>
  75. <div class="six wide column">
  76. USB :
  77. </div>
  78. <div class="ten wide column" id="usb">
  79. Loading...
  80. </div>
  81. </div>
  82. </div>
  83. <div class="ui divider"></div>
  84. <img class="ui small image" id="icon"></img>
  85. <br>
  86. </body>
  87. <script>
  88. $(document).ready(function() {
  89. initSystemInfo();
  90. });
  91. function initSystemInfo() {
  92. $.getJSON("../../system/info/getArOZInfo", function(data) {
  93. $("#modelname").html(data["DeviceModel"]);
  94. $("#icon").attr("src", "/SystemAO/info/" + data["VendorIcon"]);
  95. $("#build").html(data["BuildVersion"]);
  96. $("#manufacturer").html(data["DeviceVendor"]);
  97. });
  98. $.getJSON("../../system/info/getCPUinfo", function(data) {
  99. $("#model").html(data["Model"]);
  100. $("#freq").html(data["Freq"] + "MHz");
  101. $("#instruction").html(data["Instruction"]);
  102. $("#hardware").html(data["Hardware"]);
  103. $("#revision").html(data["Revision"]);
  104. });
  105. $.get("../../system/info/getRAMinfo", function(data) {
  106. $("#ram").html(humanFileSize(data, false));
  107. });
  108. $.getJSON("../../system/info/ifconfig", function(data) {
  109. $("#nic").html("");
  110. $(data).each(function(index, item) {
  111. $("#nic").append(item + "<br>");
  112. });
  113. });
  114. $.getJSON("../../system/info/getDriveStat", function(data) {
  115. $("#drive").html("");
  116. $(data).each(function(index, item) {
  117. $("#drive").append(item["DriveLetter"] + " (" + item["FileSystem"] + ") " + humanFileSize(item["FreeSpace"], true) + "<br>");
  118. });
  119. });
  120. $.getJSON("../../system/info/usbPorts", function(data) {
  121. $("#usb").html("");
  122. $(data).each(function(index, item) {
  123. $("#usb").append(item + "<br>");
  124. });
  125. });
  126. }
  127. //https://stackoverflow.com/questions/10420352/converting-file-size-in-bytes-to-human-readable-string/10420404
  128. function humanFileSize(bytes, si) {
  129. var thresh = si ? 1000 : 1024;
  130. if (Math.abs(bytes) < thresh) {
  131. return bytes + ' B';
  132. }
  133. var units = si ? ['kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'] : ['KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB'];
  134. var u = -1;
  135. do {
  136. bytes /= thresh;
  137. ++u;
  138. } while (Math.abs(bytes) >= thresh && u < units.length - 1);
  139. return bytes.toFixed(1) + ' ' + units[u];
  140. }
  141. </script>
  142. </html>