networks.html 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  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 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. <div class="statistic">
  23. <div class="value">
  24. <i class="hashtag icon"></i> {{ channels|length }}
  25. </div>
  26. <div class="label">
  27. Channels
  28. </div>
  29. </div>
  30. <div class="statistic">
  31. <div class="value">
  32. <i class="users icon"></i> {{ users|length }}
  33. </div>
  34. <div class="label">
  35. Users
  36. </div>
  37. </div>
  38. <div class="statistic">
  39. <div class="value">
  40. <i class="comments outline icon"></i> {{ totalmessages }}
  41. </div>
  42. <div class="label">
  43. Messages
  44. </div>
  45. </div>
  46. </header>
  47. <div class="ui basic segment container">
  48. <div class="ui basic segment">
  49. <section 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 padded center aligned equal width grid">
  72. <div class="ui column">
  73. <div class="header">
  74. <i class="users icon"></i>
  75. Messages per network
  76. </div>
  77. <script type="text/javascript">
  78. google.charts.load("current", {packages:["corechart"]});
  79. google.charts.setOnLoadCallback(drawChart1);
  80. function drawChart1() {
  81. var data = google.visualization.arrayToDataTable([
  82. ['Network', 'Users'],
  83. nl{{ networklist }}
  84. nli{{ networklist.items }}
  85. {% for network in networklist.items %}
  86. nw{{ network }}
  87. nwi{{ network.items }}
  88. nw0{{ network.0 }}
  89. nw1{{ network.1 }}
  90. nw1m{{ network.1.messages }}
  91. ['{{ network.0 }}', {{ network.1.messages }}],
  92. {% endfor %}
  93. ]);
  94. var options = {
  95. legend: 'none',
  96. pieSliceText: 'label',
  97. };
  98. var chart = new google.visualization.PieChart(document.getElementById('messageschart'));
  99. chart.draw(data, options);
  100. }
  101. $(window).resize(function(){
  102. drawChart1();
  103. });
  104. </script>
  105. <div id="messageschart" style="width:100%; height: 400px;"></div>
  106. </div>
  107. <div class="ui column">
  108. <div class="header">
  109. <i class="users icon"></i>
  110. Users per network
  111. </div>
  112. <script type="text/javascript">
  113. google.charts.load("current", {packages:["corechart"]});
  114. google.charts.setOnLoadCallback(drawChart);
  115. function drawChart() {
  116. var data = google.visualization.arrayToDataTable([
  117. ['Network', 'Users'],
  118. {% for network in networklist.items %}
  119. ['{{ network.0 }}', {{ network.1.users }}],
  120. {% endfor %}
  121. ]);
  122. var options = {
  123. legend: 'none',
  124. pieSliceText: 'label',
  125. };
  126. var chart = new google.visualization.PieChart(document.getElementById('userschart'));
  127. chart.draw(data, options);
  128. }
  129. $(window).resize(function(){
  130. drawChart();
  131. });
  132. </script>
  133. <div id="userschart" style=height:400px;
  134. "> </div>
  135. </div>
  136. </section>
  137. {% endblock content %}
  138. {% block breadcrumbs %}
  139. <i class="sitemap icon"></i>
  140. <a class="active section">Networks</a>
  141. {% endblock %}