tBKwtWS před 7 roky
rodič
revize
a6da0c6563

+ 67 - 0
webgui/stats/templates/stats/network.html

@@ -5,6 +5,73 @@
 {% block keywords %}{{ network }},irc network{% endblock %}
 {% block keywords-not %}{% endblock %}
 {% block content %}
+    <article class="ui text container">
+        <header class="ui five statistics">
+            <a class="statistic" href="/">
+                <div class="value">
+                    <i class="hashtag icon"></i> {{ channels|length }}
+                </div>
+                <div class="label">
+                    Channels
+                </div>
+            </a>
+            <a class="statistic" href="/">
+                <div class="value">
+                    <i class="users icon"></i> {{ users|length }}
+                </div>
+                <div class="label">
+                    Users
+                </div>
+            </a>
+            <a class="statistic" href="/">
+                <div class="value">
+                    <i class="comments icon"></i> {{ totalmessages }}
+                </div>
+                <div class="label">
+                    Messages
+                </div>
+            </a>
+            <a class="statistic" href="/">
+                <div class="value">
+                    <i class="cocktail icon"></i> {{ totalactions }}
+                </div>
+                <div class="label">
+                    Actions
+                </div>
+            </a>
+            <a class="statistic" href="/">
+                <div class="value">
+                    <i class="announcement icon"></i> {{ totalnotices }}
+                </div>
+                <div class="label">
+                    Notices
+                </div>
+            </a>
+        </header>
+        <section class="ui basic segment container">
+            <div class="ui basic segment">
+                <div class="ui celled selection link list">
+                    {% for network in networks %}
+                        <a class="item" href="{% url 'stats:network' network.name %}">
+                            <div class="right floated content">
+                                {% if network.password %}<i class="privacy icon" alt="NickServ password saved"></i>{% endif %}
+                                {% if network.use_ssl %}<i class="protect icon" title="Encrypted connection"></i>{% endif %}
+                                </div>
+                            <i class="middle aligned server icon"></i>
+                            <div class="content">
+                                <div class="header">
+                                    <div class="content" href="{% url 'stats:network' network.name %}">{{ network.name }}</div>
+                                </div>
+                                <div class="description">
+                                    {{ network.host }}:{{ network.port }}
+                                </div>
+                            </div>
+                        </a>
+                    {% endfor %}
+                </div>
+            </div>
+        </section>
+    </article>
     <article class="ui container segment">
         <header class="ui icon header">
             <i class="sitemap icon"></i>

+ 7 - 7
webgui/stats/templates/stats/networks.html

@@ -19,30 +19,30 @@
                     Networks
                 </div>
             </div>
-            <div class="statistic">
+            <a class="statistic" href="/">
                 <div class="value">
                     <i class="hashtag icon"></i> {{ channels|length }}
                 </div>
                 <div class="label">
                     Channels
                 </div>
-            </div>
-            <div class="statistic">
+            </a>
+            <a class="statistic" href="/">
                 <div class="value">
                     <i class="users icon"></i> {{ users|length }}
                 </div>
                 <div class="label">
                     Users
                 </div>
-            </div>
-            <div class="statistic">
+            </a>
+            <a class="statistic" href="/">
                 <div class="value">
                     <i class="comments outline icon"></i> {{ totalmessages }}
                 </div>
                 <div class="label">
                     Messages
                 </div>
-            </div>
+            </a>
         </header>
         <section class="ui basic segment container">
             <div class="ui basic segment">
@@ -96,7 +96,7 @@
                 <div class="content">
                     <div class="header">
                         <div>
-                            <i class="ui users icon"></i>
+                            <i class="ui comments icon"></i>
                             /
                             <i class="ui sitemap icon"></i>
                         </div>

+ 4 - 2
webgui/stats/views.py

@@ -1,9 +1,10 @@
 from postgres import Postgres
-from django.shortcuts import render, get_object_or_404
+from django.shortcuts import render, get_list_or_404, get_object_or_404
 from .models import Networks, Channels, Users
+from webgui.common import convert_units
 
 def networks(request):
-    networks = Networks.objects.all()
+    networks = get_list_or_404(Networks.objects.all())
     channels = Channels.objects.all()
     users = Users.objects.all()
     db = Postgres("postgres://pyRot:4h8q(.@localhost/pyRot")
@@ -24,6 +25,7 @@ def networks(request):
     for idx, record in enumerate(messages):
         totalmessages += record[1] + record[2] + record[3]
         networklist[record[0]]['messages'] += record[1] + record[2] + record[3]
+    totalmessages = convert_units.shorten_number(totalmessages)
     
     context = {
         'networks': networks,

+ 16 - 0
webgui/webgui/common/convert_units.py

@@ -0,0 +1,16 @@
+def shorten_number (number):
+    if len(str(number)) > 4:
+        number = str(number /100) + "h"
+    if len(str(number)) > 5:
+        number = str(number /1000) + "K"
+    if len(str(number)) > 8:
+        number = str(number /1000000) +"M"
+    if len(str(number)) > 11:
+        number = str(number /1000000000) +"G"
+    if len(str(number)) > 14:
+        number = str(number /1000000000000) +"T"
+    if len(str(number)) > 17:
+        number = str(number /1000000000000000) +"P"
+    if len(str(number)) > 20:
+        number = str(number /1000000000000000000) +"E"
+    return str(number)

+ 9 - 34
webgui/webgui/templates/base.html

@@ -5,6 +5,11 @@
         <link rel="stylesheet" type="text/css" href="{% static "semantic/dist/semantic.min.css" %}">
         <script src="{% static "javascript/jquery-3.1.1.min.js" %}" integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" crossorigin="anonymous"></script>
         <script src="{% static "semantic/dist/semantic.min.js" %}"></script>
+        <style type="text/css">
+            .main.viewport.padder{
+                padding-bottom: 4em;
+            }
+        </style>
         <meta name="handheldfriendly" content="true">
         <meta name="mobile-web-app-capable" content="true">
         <meta name="mobileoptimized" content="true">
@@ -19,44 +24,14 @@
         <meta name="keywords" content="internet relay chat,irc,robot,bot,irc robot,ircbot,irc bot,{% block keywords %}{% endblock %}">
         <meta name="keywords-not" content="icq,msn,skype,aol,aim,jabber,xmpp,telegram,whatsapp,link,wechat,slack,discord,forum,bbs,blog,{% block keywords-not %}{% endblock %}">
         {% block head %}{% endblock %}
-        <!-- Maak % blokken % voor aantal zoekresultaten per pagina: <meta name="itemsPerPage" content=""> -->
+        {# Maak % blokken % voor aantal zoekresultaten per pagina: <meta name="itemsPerPage" content=""> #}
         <title>{% block title %}{% endblock %}</title>
-        <style>
-        .ui.fluid.container {
-    margin-left: 0 !important;
-    margin-right: 0 !important;
-
-}
-div.stretchy-wrapper {
-        width: 100%;
-        padding-bottom: 56.25%; /* 16:9 */
-        position: relative;
-
-        background: blue;
-}
-
-div.stretchy-wrapper > div {
-        position: absolute;
-        top: 0; bottom: 0; left: 0; right: 0;
-
-        color: white;
-        font-size: 24px;
-        text-align: center;
-}
-
-/* Other aspect ratios to try:
- * 56.25% = 16:9
- * 75% = 4:3
- * 66.66% = 3:2
- * 62.5% = 8:5
- */
-
-
-</style>
     </head>
     <body>
         <div class="ui relaxed menu"></div>
-        {% block content %}{% endblock %}
+        <div class="main viewport padder">
+            {% block content %}{% endblock %}
+        </div>
         <footer class="ui bottom fixed borderless menu">
             <nav class="ui breadcrumb item">
                 {% block breadcrumbs %}{% endblock %}