You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

324 lines
11 KiB

  1. {% load i18n %}{% load staticfiles %}<!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
  6. <meta name="apple-mobile-web-app-capable" content="yes">
  7. <title>{% block title %}{% endblock %}</title>
  8. <link href="{% static "css/fonts.css" %}" rel="stylesheet">
  9. <link href="{% static "css/font-awesome.css" %}" rel="stylesheet">
  10. <link href="{% static "css/bootstrap.min.css" %}" rel="stylesheet">
  11. <link href="{% static "css/bootstrap-responsive.min.css" %}" rel="stylesheet">
  12. <link href="{% static "css/dashboard.css" %}" rel="stylesheet">
  13. <link href="{% static "css/style.css" %}" rel="stylesheet">
  14. <link href="{% static "css/progressbar.css" %}" rel="stylesheet">
  15. {% block style %}{% endblock %}
  16. </head>
  17. <body>
  18. <div class="navbar navbar-fixed-top" style="">
  19. <div class="navbar-inner">
  20. <div class="container">
  21. <a class="brand" href="/">pyDash</a>
  22. <ul class="btn-group btn">
  23. {% if request.user.is_authenticated or user.is_authenticated %}
  24. <li class="">
  25. <a href="{% url 'logout' %}">{% trans "Sign out" %}</a>
  26. </li>
  27. {% else %}
  28. <li class="">
  29. <a href="{% url 'login' %}">{% trans "Sign in" %}</a>
  30. </li>
  31. {% endif %}
  32. </ul>
  33. </div>
  34. </div>
  35. </div>
  36. <div class="subnavbar visible-desktop visible-tablet">
  37. <div class="subnavbar-inner">
  38. <div class="container">
  39. <ul class="mainnav">
  40. <li><a href="#refresh-os"><i class="icon-dashboard"></i><span>General</span> </a> </li>
  41. <li><a href="#refresh-df"><i class="icon-list-alt"></i><span>Disk</span> </a> </li>
  42. <li><a href="#refresh-ps"><i class="icon-list-alt"></i><span>CPU</span> </a> </li>
  43. <li><a href="#refresh-ram"><i class="icon-list-alt"></i><span>RAM</span> </a> </li>
  44. <li><a href="#refresh-load"><i class="icon-group"></i><span>Users</span> </a> </li>
  45. <li><a href="#refresh-ispeed"><i class="icon-exchange"></i><span>Network</span> </a> </li>
  46. </ul>
  47. </div>
  48. <!-- /container -->
  49. </div>
  50. <!-- /subnavbar-inner -->
  51. </div>
  52. <div class="main">
  53. <div class="main-inner">
  54. <div class="container">
  55. {% block content %}
  56. <div class="row">
  57. <div class="span6">
  58. <div class="widget widget-table action-table">
  59. <div class="widget-header"> <i class="icon-info-sign"></i>
  60. <h3>General Info</h3>
  61. <div id="refresh-os" class="btn btn-mini js-refresh-info">
  62. <i class="icon-refresh"></i> &nbsp;&nbsp;Refresh
  63. </div>
  64. </div>
  65. <!-- /widget-header -->
  66. <div class="widget-content">
  67. <br>
  68. <div style="text-align:center;" id="general">
  69. {% include 'general.html' %}
  70. </div>
  71. </div>
  72. <!-- /widget-content -->
  73. </div>
  74. <!-- /widget -->
  75. </div>
  76. <div class="span6">
  77. <div class="widget widget-nopad">
  78. <div class="widget-header">
  79. <i class="icon-list-alt"></i>
  80. <h3>Memory Usage</h3>
  81. <div id="refresh-ram">
  82. </div>
  83. </div>
  84. <!-- /widget-header -->
  85. <div class="widget-content">
  86. <div class="widget big-stats-container">
  87. <div class="widget-content">
  88. <p></p>
  89. <canvas id="memoryChart" width="700" height="200"></canvas>
  90. </div>
  91. <!-- /widget-content -->
  92. </div>
  93. </div>
  94. </div>
  95. </div>
  96. </div>
  97. <div class="row">
  98. <div class="span6">
  99. <div class="widget">
  100. <div class="widget-header"> <i class="icon-list"></i>
  101. <h3>Disk Usage</h3>
  102. <div id="refresh-df" class="btn btn-mini js-refresh-info">
  103. <i class="icon-refresh"></i> &nbsp;&nbsp;Refresh
  104. </div>
  105. </div>
  106. <!-- /widget-header -->
  107. <div class="widget-content" id="getdisk">
  108. {% include 'disk.html' %}
  109. </div>
  110. <!-- /widget-content -->
  111. </div>
  112. <!-- /widget -->
  113. </div>
  114. <div class="span6">
  115. <div class="widget widget-table action-table">
  116. <div class="widget-header"> <i class="icon-group"></i>
  117. <h3>Load Average</h3>
  118. <div id="refresh-load">
  119. </div>
  120. </div>
  121. <!-- /widget-header -->
  122. <div class="widget-content">
  123. <p></p>
  124. <canvas id="loadChart" width="700" height="200"></canvas>
  125. </div>
  126. <!-- /widget-content -->
  127. </div>
  128. <!-- /widget -->
  129. </div>
  130. <!-- /span6 -->
  131. </div>
  132. <!-- /row -->
  133. <div class="row">
  134. <div class="span6">
  135. <div class="widget">
  136. <div class="widget-header"> <i class="icon-list"></i>
  137. <h3>Software</h3>
  138. <div id="refresh-whereis" class="btn btn-mini js-refresh-info">
  139. <i class="icon-refresh"></i> &nbsp;&nbsp;Refresh
  140. </div>
  141. </div>
  142. <!-- /widget-header -->
  143. <div class="widget-content">
  144. <table id="whereis_dashboard" class="table table-hover table-condensed table-bordered" >
  145. </table>
  146. </div>
  147. <!-- /widget-content -->
  148. </div>
  149. <!-- /widget -->
  150. </div><!-- /span -->
  151. <div class="span3">
  152. <div class="widget">
  153. <div class="widget-header"> <i class="icon-monitor"></i>
  154. <h3>IP</h3>
  155. <div id="refresh-ip">
  156. </div>
  157. </div>
  158. <!-- /widget-header -->
  159. <div class="widget-content">
  160. <table id="ip_dashboard" class="table table-hover table-condensed table-bordered" >
  161. {{ getip }}
  162. </table>
  163. </div>
  164. <!-- /widget-content -->
  165. </div>
  166. <!-- /widget -->
  167. </div><!-- /span -->
  168. <div class="span3">
  169. <div class="widget">
  170. <div class="widget-header"> <i class="icon-monitor"></i>
  171. <h3>Internet Speed</h3>
  172. <div id="refresh-ispeed" class="btn btn-mini js-refresh-info">
  173. <i class="icon-refresh"></i> &nbsp;&nbsp;Refresh
  174. </div>
  175. </div>
  176. <!-- /widget-header -->
  177. <div class="widget-content">
  178. <div align="center" style="padding:10px;">
  179. <span class="lead value odometer" style="margin-top:11px;" id="ispeed-rate">0</span>
  180. <span class="lead">Mbps</span>
  181. </div>
  182. </div>
  183. <!-- /widget-content -->
  184. </div>
  185. <!-- /widget -->
  186. </div><!-- /span -->
  187. <!-- online users widget (breaks DOM pattern) -->
  188. <div class="span6 pull-right">
  189. <div class="widget widget-table action-table">
  190. <div class="widget-header"> <i class="icon-group"></i>
  191. <h3>Online</h3>
  192. <div id="refresh-online" class="btn btn-mini js-refresh-info">
  193. <i class="icon-refresh"></i> &nbsp;&nbsp;Refresh
  194. </div>
  195. </div>
  196. <!-- /widget-header -->
  197. <div class="widget-content">
  198. <table id="online_dashboard" class="table table-hover table-bordered table-condensed" >
  199. </table>
  200. </div>
  201. <!-- /widget-content -->
  202. </div>
  203. <!-- /widget -->
  204. </div><!-- /span6 -->
  205. </div>
  206. <!-- /row -->
  207. <div class="row">
  208. <div class="span12">
  209. <div class="widget">
  210. <div class="widget-header"> <i class="icon-dashboard"></i>
  211. <h3> Processes </h3>
  212. <div id="refresh-ps" class="btn btn-mini js-refresh-info">
  213. <i class="icon-refresh"></i> &nbsp;&nbsp;Refresh
  214. </div>
  215. <div class="pull-right">
  216. <input type="text" id="filter-ps" class="widget-search" placeholder="search..." />
  217. </div>
  218. </div>
  219. <!-- /widget-header -->
  220. <div class="widget-content">
  221. <table id="ps_dashboard" class="table table-hover table-condensed table-bordered" >
  222. </table>
  223. </div>
  224. <!-- /widget-content -->
  225. </div>
  226. <!-- /widget -->
  227. </div>
  228. <!-- /span -->
  229. </div>
  230. <!-- /row -->
  231. </div>
  232. </div>
  233. <!-- /container -->
  234. </div>
  235. <!-- /main-inner -->
  236. </div>
  237. <!-- /main -->
  238. {% endblock %}
  239. {% block script %}
  240. <script src="{% static "js/jquery.js" %}"></script>
  241. <script src="{% static "js/base.js" %}"></script>
  242. <script src="{% static "js/bootstrap.js" %}"></script>
  243. <script src="{% static "js/jquery.dataTables.min.js" %}"></script>
  244. <script src="{% static "js/Chart.min.js" %}"></script>
  245. <script type="text/javascript">
  246. function refresh() {
  247. $.ajax({
  248. url: '{% url "main" %}',
  249. success: function(data) {
  250. var dtr = $("#general", data);
  251. $('#general').html(dtr);
  252. }
  253. });
  254. }
  255. $(function(){
  256. refresh();
  257. window.setInterval('refresh()', {{ time_refresh }});
  258. });
  259. var mem_ctx = $("#memoryChart").get(0).getContext("2d");
  260. var memChart = new Chart(mem_ctx);
  261. function memory_usage(){
  262. $.getJSON('/info/memory/{{ memusage }}', function(data) {
  263. var options = {
  264. animation : false,
  265. pointDotRadius : 2,
  266. scaleLabel : "<%=value%> Mb"
  267. }
  268. memChart.Line(data, options);
  269. });
  270. }
  271. var load_ctx = $("#loadChart").get(0).getContext("2d");
  272. var loadChart = new Chart(load_ctx);
  273. function load_average(){
  274. $.getJSON('/info/loadaverage/{{ loadaverage }}', function(data) {
  275. var options = {
  276. animation : false,
  277. pointDotRadius : 2,
  278. scaleLabel : "<%=value%>"
  279. }
  280. loadChart.Line(data, options);
  281. });
  282. }
  283. $(function() {
  284. window.setInterval('memory_usage()', {{ time_refresh }});
  285. window.setInterval('load_average()', {{ time_refresh }});
  286. });
  287. </script>
  288. {% endblock %}
  289. </body>
  290. </html>