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.

317 lines
10 KiB

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