networks.html 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. {% extends "base.html" %}
  2. {% load static %}
  3. {% block head %}
  4. <meta name="nonfiction" content="true">
  5. <script type="text/javascript" src="{% static "javascript/loader.js" %}"></script>
  6. {% endblock %}
  7. {% block title %}Networks{% endblock %}
  8. {% block description %}Configred networks{% endblock %}
  9. {% block keywords %}irc networks{% endblock %}
  10. {% block keywords-not %}{% endblock %}
  11. {% block content %}
  12. <article class="ui text container">
  13. <header class="ui four statistics">
  14. <div class="statistic">
  15. <div class="value">
  16. <i class="sitemap icon"></i> {{ networks|length }}
  17. </div>
  18. <div class="label">
  19. Networks
  20. </div>
  21. </div>
  22. <a class="statistic" href="/">
  23. <div class="value">
  24. <i class="hashtag icon"></i> {{ channels|length }}
  25. </div>
  26. <div class="label">
  27. Channels
  28. </div>
  29. </a>
  30. <a class="statistic" href="/">
  31. <div class="value">
  32. <i class="users icon"></i> {{ users|length }}
  33. </div>
  34. <div class="label">
  35. Users
  36. </div>
  37. </a>
  38. <a class="statistic" href="/">
  39. <div class="value">
  40. <i class="comments outline icon"></i> {{ totalmessages }}
  41. </div>
  42. <div class="label">
  43. Messages
  44. </div>
  45. </a>
  46. </header>
  47. <section class="ui basic segment container">
  48. <div class="ui basic segment">
  49. <div class="ui celled selection link list">
  50. {% for network in networks %}
  51. <a class="item" href="{% url 'stats:network' network.name %}">
  52. <div class="right floated content">
  53. {% if network.password %}<i class="privacy icon" alt="NickServ password saved"></i>{% endif %}
  54. {% if network.use_ssl %}<i class="protect icon" title="Encrypted connection"></i>{% endif %}
  55. </div>
  56. <i class="middle aligned server icon"></i>
  57. <div class="content">
  58. <div class="header">
  59. <div class="content" href="{% url 'stats:network' network.name %}">{{ network.name }}</div>
  60. </div>
  61. <div class="description">
  62. {{ network.host }}:{{ network.port }}
  63. </div>
  64. </div>
  65. </a>
  66. {% endfor %}
  67. </div>
  68. </div>
  69. </section>
  70. </article>
  71. <section class="ui container">
  72. <div class="ui stackable cards">
  73. <script type="text/javascript">
  74. google.charts.load("current", {packages:["corechart"]});
  75. google.charts.setOnLoadCallback(drawChart0);
  76. function drawChart0() {
  77. var data = google.visualization.arrayToDataTable([
  78. ['Network', 'Messages'],
  79. {% for network in networklist.items %}
  80. ['{{ network.0 }}', {{ network.1.messages }}],
  81. {% endfor %}
  82. ]);
  83. var options = {
  84. legend: 'none',
  85. pieSliceText: 'label',
  86. height: '275',
  87. pieHole: 0.1,
  88. 'chartArea': {'width': '95%', 'height': '100%'},
  89. pieSliceText: 'label',
  90. };
  91. var chart = new google.visualization.PieChart(document.getElementById('messageschart'));
  92. chart.draw(data, options);
  93. }
  94. </script>
  95. <div class="ui card">
  96. <div class="content">
  97. <div class="header">
  98. <div>
  99. <i class="ui comments icon"></i>
  100. /
  101. <i class="ui sitemap icon"></i>
  102. </div>
  103. </div>
  104. </div>
  105. <div class="content">
  106. <div id="messageschart"></div>
  107. </div>
  108. </div>
  109. <script type="text/javascript">
  110. google.charts.load("current", {packages:["corechart"]});
  111. google.charts.setOnLoadCallback(drawChart);
  112. function drawChart() {
  113. var data = google.visualization.arrayToDataTable([
  114. ['Network', 'Users'],
  115. {% for network in networklist.items %}
  116. ['{{ network.0 }}', {{ network.1.users }}],
  117. {% endfor %}
  118. ]);
  119. var options = {
  120. legend: 'none',
  121. pieSliceText: 'label',
  122. height: '275',
  123. pieHole: 0.1,
  124. 'chartArea': {'width': '95%', 'height': '100%'},
  125. };
  126. var chart = new google.visualization.PieChart(document.getElementById('userschart'));
  127. chart.draw(data, options);
  128. }
  129. </script>
  130. <div class="ui card">
  131. <div class="content">
  132. <div class="header">
  133. <div>
  134. <i class="ui users icon"></i>
  135. /
  136. <i class="ui sitemap icon"></i>
  137. </div>
  138. </div>
  139. </div>
  140. <div class="content">
  141. <div id="userschart"></div>
  142. </div>
  143. </div>
  144. <script type="text/javascript">
  145. google.charts.load("current", {packages:["corechart"]});
  146. google.charts.setOnLoadCallback(drawChart1);
  147. function drawChart1() {
  148. var data = google.visualization.arrayToDataTable([
  149. ['Network', 'Channels'],
  150. {% for network in networklist.items %}
  151. ['{{ network.0 }}', {{ network.1.channels }}],
  152. {% endfor %}
  153. ]);
  154. var options = {
  155. legend: 'none',
  156. pieSliceText: 'label',
  157. height: '275',
  158. pieHole: 0.1,
  159. 'chartArea': {'width': '95%', 'height': '100%'},
  160. };
  161. var chart = new google.visualization.PieChart(document.getElementById('networkschart'));
  162. chart.draw(data, options);
  163. }
  164. </script>
  165. <div class="ui card">
  166. <div class="content">
  167. <div class="header">
  168. <div>
  169. <i class="ui hashtag icon"></i>
  170. /
  171. <i class="ui sitemap icon"></i>
  172. </div>
  173. </div>
  174. </div>
  175. <div class="content">
  176. <div id="networkschart"></div>
  177. </div>
  178. </div>
  179. </div>
  180. </section>
  181. {% endblock content %}
  182. {% block breadcrumbs %}
  183. <i class="sitemap icon"></i>
  184. <div class="active section">Networks</div>
  185. {% endblock %}