]> jfr.im git - irc/unrealircd/unrealircd-webpanel.git/blobdiff - index.php
some SQL for settings
[irc/unrealircd/unrealircd-webpanel.git] / index.php
index b5009ce5369b529b78f23bb00d3e0466b3fe5c84..8bd66ee3242fb9b2b1235816c8ee76cd1d5bf25f 100644 (file)
--- a/index.php
+++ b/index.php
@@ -3,11 +3,14 @@ require_once "common.php";
 require_once "connection.php";
 require_once "header.php";
 
-$stats = $rpc->query("stats.get", []);
+$stats = $rpc->stats()->get();
 ?>
-
-<h2>Network Overview</h2>
-
+<div class="row ml-0">
+<h2>Network Overview</h2><div data-toggle="tooltip" data-placement="top" title="The stats on this page are updated in real-time"
+                                                       class="card text-center row font-weight-bold"
+                                                       style="margin-left:5%;height:26px;width:60px;background-color:red;color:white">
+<small style="margin-left:-40px;padding-top:3px;margin-right:-50px">⚪</small>LIVE</div>
+</div>
 <?php
 $array_of_stats = (array)$stats;
 
@@ -24,7 +27,12 @@ Hook::run(HOOKTYPE_GET_USER_LIST, $userlist);
 $num_of_panel_admins = count($userlist);
 
 ?>
-<div class="container">
+<style>
+       .card {
+               min-height: 100%;
+       }
+       </style>
+<div class="container card-container" style="margin-left:40px;margin-top:30px">
 
        <div class="row mt-3">
                <div class="col-sm mb-3">
@@ -122,7 +130,7 @@ $num_of_panel_admins = count($userlist);
                </div>
        </div>
 </div>
-<div class="container mt-3">
+<div class="container card-container" style="margin-left:40px;margin-top:30px">
 
        <div class="row">
                <div class="col-sm mb-3">
@@ -229,29 +237,56 @@ $num_of_panel_admins = count($userlist);
 
 
 <script>
-    function updateStats() {
-        var xhttp = new XMLHttpRequest();
-        xhttp.onreadystatechange = function() {
-            if (this.readyState == 4 && this.status == 200) {
-                var data = JSON.parse(this.responseText);
-                document.getElementById("stats_user_total").innerHTML = data.user.total;
-                document.getElementById("stats_channel_total").innerHTML = data.channel.total;
-                               document.getElementById("stats_oper_total").innerHTML = data.user.oper;
-                               document.getElementById("stats_server_total").innerHTML = data.server.total;
-                               document.getElementById("num_server_bans").innerHTML = data.server_ban.server_ban;
-                               document.getElementById("num_spamfilter_entries").innerHTML = data.server_ban.spamfilter;
-                               document.getElementById("num_ban_exceptions").innerHTML = data.server_ban.server_ban_exception;
-                               document.getElementById("stats_uline_total").innerHTML = data.user.ulined + "/" + data.server.ulined;
-            }
-        };
-        xhttp.open("GET", "api/overview.php", true);
-        xhttp.send();
-    }
-    updateStats();
-    setInterval(updateStats, 1000); // Update stats every second
+       function updateStats(e)
+       {
+               var data;
+               try {
+                       data = JSON.parse(e.data);
+               } catch(e) {
+                       return;
+               }
+               document.getElementById("stats_user_total").innerHTML = data.user.total;
+               document.getElementById("stats_channel_total").innerHTML = data.channel.total;
+               document.getElementById("stats_oper_total").innerHTML = data.user.oper;
+               document.getElementById("stats_server_total").innerHTML = data.server.total;
+               document.getElementById("num_server_bans").innerHTML = data.server_ban.server_ban;
+               document.getElementById("num_spamfilter_entries").innerHTML = data.server_ban.spamfilter;
+               document.getElementById("num_ban_exceptions").innerHTML = data.server_ban.server_ban_exception;
+               document.getElementById("stats_uline_total").innerHTML = data.user.ulined + "/" + data.server.ulined;
+       }
+       function initStats()
+       {
+               if (!!window.EventSource) {
+                       var source = new EventSource('api/overview.php');
+                       source.addEventListener('message', updateStats, false);
+               }
+       }
+       initStats();
+       //setInterval(updateStats, 1000); // Update stats every second
+       // ^ commented out but may want to restart initStats() when connection is lost.
+
+       
+       window.addEventListener('resize', function() {
+               var containers = document.querySelectorAll('.card-container');
+               var width = window.innerWidth;
+               if (width < 768)
+               {
+                       containers.forEach((container) => {
+                               container.removeAttribute('style');
+
+                       });
+               } else 
+               {
+                       containers.forEach((container) => {
+                               container.style.marginLeft = "40px";
+                               container.style.marginTop = "30px";
+
+                       });
+               }
+       });
 </script>
 
-<div class="container mt-3">
+<div class="container card-container card-container" style="margin-left:40px;margin-top:10px">
 
                        <div class="row">
                                <div class="col-sm-3">
@@ -269,7 +304,7 @@ $num_of_panel_admins = count($userlist);
                                                <div class="card-body">
                                                        <div class="row">
                                                                <div class="col">
-                                                                       <h6>Panel Access</h6>
+                                                                       <h6>Panel Accounts</h6>
                                                                </div>
                                                                <div class="col"> <a class="btn btn-primary" href="<?php echo get_config("base_url"); ?>settings">View</a></div>
                                                        </div>