]> jfr.im git - irc/unrealircd/unrealircd-webpanel.git/blobdiff - index.php
Move spamfilter.php to server-bans/
[irc/unrealircd/unrealircd-webpanel.git] / index.php
index 57c2213bae93d6d3bc216ca0600390c8b017477c..4d856a23222cd7b2aa362f3d8834a038ecfd9bef 100644 (file)
--- a/index.php
+++ b/index.php
@@ -1,5 +1,6 @@
 <?php
 require_once "inc/common.php";
+require_once "Classes/class-checkup.php";
 if (!isset($config['unrealircd']))
 {
        $redirect = get_config("base_url")."settings/rpc-servers.php";
@@ -12,15 +13,11 @@ require_once "inc/header.php";
 ?>
 <div class="row ml-0">
        <h2>Network Overview</h2>
-       <div id="live_stats" 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;visibility:hidden">
-            <small style="margin-left:-40px;padding-top:3px;margin-right:-45px">⚪</small>LIVE
+       <span class="badge bg-danger text-light ml-4 pl-2 pr-2 rounded-pill" style="height:fit-content">LIVE</span>
+               <?php checkup_widget(); ?>
        </div>
-</div>
 <?php
 $array_of_stats = [];
-
 /* What if someone wants to add their own stats... */
 Hook::run(HOOKTYPE_PRE_OVERVIEW_CARD, $array_of_stats);
 
@@ -28,215 +25,244 @@ Hook::run(HOOKTYPE_PRE_OVERVIEW_CARD, $array_of_stats);
  * by reference can add/update the stats for display here.
 */
 $stats = (object) $array_of_stats;
-
 $userlist = [];
 Hook::run(HOOKTYPE_GET_USER_LIST, $userlist);
 $num_of_panel_admins = count($userlist);
-
+$current_user = unreal_get_current_user();
+if (isset($current_user->user_meta['hibp']))
+{
+       $num = $current_user->user_meta['hibp'];
+       Message::Fail("<h6><strong>Urgent</strong></h6>","Your password was found in a data breach $num time(s).",
+               "Please <strong><a href=\"".get_config("base_url")."settings/user-edit.php\">update your password</a></strong> immediately");
+}
 ?>
 <style>
-       .card {
-               min-height: 100%;
+       .alert {
+               margin-left: 20px;
+               width:94%;
+               max-width: 500px;
+       }
+       #health_banner {
+               margin-left:20px;
+               border-radius: 16px;
+               width:fit-content;
+       }
+       .card-container a.card:hover { opacity: 0.8; transition: opacity 0.2s ease-in-out; }
+       .card-container .card {
+               min-height: 80%;
+               border-radius: 16px;
+       }
+       body {
+               background-image: url('https://cdn.wallpapersafari.com/34/98/yznZmQ.jpg');
+               background-size: cover;
+       }
+       .card-container .card-body i {
+               position: fixed;
+               top: 10px;
+               right: 10px;
+       }
+       .card-container .card:hover {
+               text-decoration: none;
        }
-       </style>
-<div class="container card-container" style="margin-left:40px;margin-top:30px">
 
-       <div class="row mt-3">
-               <div class="col-sm mb-3">
-                       <div class="card text-center">
-                               <div class="card-header bg-success text-white">
-                                       <div class="row">
-                                               <div class="col">
-                                                       <i class="fa fa-users fa-3x"></i><span class="position-absolute badge rounded-pill badge-warning">
-                                                       <?php echo "Record: "; ?>
-                                               </span>
-                                               </div>
-                                               <div class="col">
-                                                       <h3 id="stats_user_total" class="display-4"></h3>
-                                               </div>
-                                       </div>
-                               </div>
-                               <div class="card-body">
-                                       <div class="row">
-                                               <div class="col">
-                                                       <h6>Users Online</h6>
-                                               </div>
-                                               <div class="col"> <a class="btn btn-primary" href="<?php echo get_config("base_url"); ?>users">View</a></div>
-                                       </div>
-                               </div>
-                       </div>
-                       
+       @keyframes rotateEffect {
+               0% { transform: rotateX(0deg); }
+               50% { transform: rotateX(180deg); }
+               100% { transform: rotateX(0deg); }
+       }
 
-               </div>
-               <div class="col-sm mb-3">
-                       <div class="card text-center">
-                               <div class="card-header bg-primary text-white">
-                                       <div class="row">
-                                               <div class="col">
-                                                       <i class="fa fa-hashtag fa-3x"></i>
-                                               </div>
-                                               <div class="col">
-                                                       <h3 id="stats_channel_total" class="display-4"></h3>
-                                               </div>
-                                       </div>
-                               </div>
-                               <div class="card-body">
-                                       <div class="row">
-                                               <div class="col">
-                                                       <h6>Channels</h6>
-                                               </div>
-                                               <div class="col"><a class="btn btn-primary" href="<?php echo get_config("base_url"); ?>channels">View</a></div>
-                                       </div>
-                               </div>
-                       </div>
-               </div>
-               <div class="col-sm mb-3">
-                       <div class="card text-center">
-                               <div class="card-header bg-warning">
-                                       <div class="row">
-                                               <div class="col">
-                                                       <i class="fa fa-shield-halved fa-3x"></i>
-                                               </div>
-                                               <div class="col">
-                                                       <h3 id="stats_oper_total" class="display-4"></h3>
-                                               </div>
-                                       </div>
-                               </div>
-                               <div class="card-body">
-                                       <div class="row">
-                                               <div class="col">
-                                                       <h6>Opers</h6>
-                                               </div>
-                                               <div class="col"><a class="btn btn-primary" href="<?php echo get_config("base_url")."users/?operonly"; ?>">View</a></div>
-                                       </div>
-                               </div>
-                       </div>
-               </div>
+       .numberDisplay {
+               animation: rotateEffect 0.5s ease;
+       }
 
-               <div class="col-sm mb-3">
-                       <div class="card text-center">
-                               <div class="card-header bg-secondary text-white">
-                                       <div class="row">
-                                               <div class="col">
-                                                       <i class="fa fa-network-wired fa-3x"></i>
-                                               </div>
-                                               <div class="col">
-                                                       <h3 id="stats_server_total" class="display-4"></h3>
-                                               </div>
-                                       </div>
-                               </div>
-                               <div class="card-body">
-                                       <div class="row">
-                                               <div class="col">
-                                                       <h6>Servers</h6>
-                                               </div>
-                                               <div class="col"> <a class="btn btn-primary" href="<?php echo get_config("base_url"); ?>servers">View</a></div>
-                                       </div>
-                               </div>
-                       </div>
-               </div>
-       </div>
-</div>
-<div class="container card-container" style="margin-left:40px;margin-top:30px">
+       .frosted-glass-success {
+               /* From https://css.glass */
+               background: rgba(63, 162, 36, 0.73);
+               box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
+               backdrop-filter: blur(9.8px);
+               -webkit-backdrop-filter: blur(9.8px);
+       }
+       .frosted-glass-info {
+               /* From https://css.glass */
+               background: rgba(57, 127, 207, 0.73);
+               box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
+               backdrop-filter: blur(9.8px);
+               -webkit-backdrop-filter: blur(9.8px);
+       }
+       .frosted-glass-danger {
+               /* From https://css.glass */
+               background: rgba(207, 57, 57, 0.73);
+               box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
+               backdrop-filter: blur(9.8px);
+               -webkit-backdrop-filter: blur(9.8px);
+       }
+       .frosted-glass-warning {
+               /* From https://css.glass */
+               background: rgba(207, 194, 57, 0.73);
+               box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
+               backdrop-filter: blur(9.8px);
+               -webkit-backdrop-filter: blur(9.8px);
+       }
+       .frosted-glass-secondary {
+               /* From https://css.glass */
+               background: rgba(75, 75, 75, 0.73);
+               box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
+               backdrop-filter: blur(9.8px);
+               -webkit-backdrop-filter: blur(9.8px);
+       }
 
-       <div class="row">
-               <div class="col-sm mb-3">
-                       <div class="card text-center">
-                               <div class="card-header bg-danger text-white">
-                                       <div class="row">
-                                               <div class="col">
-                                                       <i class="fa fa-ban fa-3x"></i>
-                                               </div>
-                                               <div class="col">
-                                                       <h3 id="num_server_bans" class="display-4"></h3>
+       </style>
+       <div class="container card-container ml-1">
+
+               <div class="row mt-3">
+                       <div class="col-sm mb-3">
+                                       <a class="card frosted-glass-success text-center" href="<?php echo get_config("base_url"); ?>users/">
+                                               <div class="card-body text-white">
+                                                       <div class="row text-center">
+                                                               <span id="userRecord" class="position-absolute badge rounded-pill badge-warning" hidden>
+                                                                       <?php echo "Record: "; ?>
+                                                               </span>
+                                                               <div class="col">
+                                                                       <div class="col">
+                                                                               <i aria-hidden="true" class="fa fa-users fa-2x"></i>
+                                                                       </div>
+                                                                       <div class="col">
+                                                                               <h5 id="stats_user_total" class="display-4 numberDisplay"></h5>
+                                                                               <h5 class="display-5">Users Online</h5>
+                                                                       </div>
+                                                               </div>
+                                                       </div>
                                                </div>
-                                       </div>
+                                       </a>
                                </div>
-                               <div class="card-body">
-                                       <div class="row">
-                                               <div class="col">
-                                                       <h6>Server Bans</h6>
+                               <div class="col-sm mb-3">
+                                       <a class="card frosted-glass-info text-center" href="<?php echo get_config("base_url"); ?>channels/">
+                                               <div class="card-body text-white">
+                                                       <div class="row text-center">
+                                                               <div class="col">
+                                                                       <div class="col">
+                                                                               <i aria-hidden="true" class="fa fa-hashtag fa-2x"></i>
+                                                                       </div>
+                                                                       <div class="col">
+                                                                               <h5 id="stats_channel_total" class="display-4 numberDisplay"></h5>
+                                                                               <h5 class="display-5">Channels</h5>
+                                                                       </div>
+                                                               </div>
+                                                       </div>
                                                </div>
-                                               <div class="col"> <a class="btn btn-primary" href="<?php echo get_config("base_url"); ?>server-bans">View</a></div>
-                                       </div>
+                                       </a>
                                </div>
-                       </div>
-               </div>
-               <div class="col-sm mb-3">
-                       <div class="card text-center">
-                               <div class="card-header bg-secondary text-white">
-                                       <div class="row">
-                                               <div class="col">
-                                                       <i class="fa fa-filter fa-3x"></i>
-                                               </div>
-                                               <div class="col">
-                                                       <h3 id="num_spamfilter_entries" class="display-4"></h3>
+                               <div class="col-sm mb-3">
+                                       <a class="card frosted-glass-warning text-center" href="<?php echo get_config("base_url"); ?>users/">
+                                               <div class="card-body text-dark">
+                                                       <div class="row text-center">
+                                                               <div class="col">
+                                                                       <div class="col">
+                                                                               <i aria-hidden="true" class="fa fa-shield-halved fa-2x"></i>
+                                                                       </div>
+                                                                       <div class="col">
+                                                                               <h5 id="stats_oper_total" class="display-4 numberDisplay"></h5>
+                                                                               <h5 class="display-5" style="margin-top: -3px">Operators</h5>
+                                                                               <h5 style="font-size: 10px; margin-top:-12px">View in Users ></h5>
+                                                                       </div>
+                                                               </div>
+                                                       </div>
                                                </div>
-                                       </div>
+                                       </a>
                                </div>
-                               <div class="card-body">
-                                       <div class="row">
-                                               <div class="col">
-                                                       <h6>Spamfilter</h6>
+                               <div class="col-sm mb-3">
+                                       <a class="card frosted-glass-secondary text-center" href="<?php echo get_config("base_url"); ?>servers/">
+                                               <div class="card-body text-white">
+                                                       <div class="row text-center">
+                                                               <div class="col">
+                                                                       <div class="col">
+                                                                               <i aria-hidden="true" class="fa fa-network-wired fa-2x"></i>
+                                                                       </div>
+                                                                       <div class="col">
+                                                                               <h5 id="stats_server_total" class="display-4 numberDisplay"></h5>
+                                                                               <h5 class="display-5">Servers</h5>
+                                                                       </div>
+                                                               </div>
+                                                       </div>
                                                </div>
-                                               <div class="col"> <a class="btn btn-primary" href="<?php echo get_config("base_url"); ?>spamfilter.php">View</a></div>
-                                       </div>
+                                       </a>
                                </div>
                        </div>
                </div>
-               <div class="col-sm mb-3">
-                       <div class="card text-center">
-                               <div class="card-header bg-primary text-white">
-                                       <div class="row">
-                                               <div class="col">
-                                                       <i class="fa fa-door-open fa-3x"></i>
-                                               </div>
-                                               <div class="col">
-                                                       <h3 id="num_ban_exceptions" class="display-4"></h3>
-                                               </div>
-                                       </div>
-                               </div>
+               <div class="container card-container ml-1">
 
-                               <div class="card-body">
-                                       <div class="row">
-                                               <div class="col">
-                                                       <h6>Server Ban Exceptions</h6>
+                       <div class="row">
+                               <div class="col-sm mb-3">
+                                       <a class="card frosted-glass-danger text-center" href="<?php echo get_config("base_url"); ?>server-bans/">
+                                               <div class="card-body text-white">
+                                                       <div class="row text-center">
+                                                               <div class="col">
+                                                                       <div class="col">
+                                                                               <i aria-hidden="true" class="fa fa-ban fa-2x"></i>
+                                                                       </div>
+                                                                       <div class="col">
+                                                                               <h5 id="num_server_bans" class="display-4 numberDisplay"></h5>
+                                                                               <h5 class="display-5">Server Bans</h5>
+                                                                       </div>
+                                                               </div>
+                                                       </div>
                                                </div>
-                                               <div class="col"> <a class="btn btn-primary" href="<?php echo get_config("base_url"); ?>server-bans/ban-exceptions.php">View</a></div>
-                                       </div>
+                                       </a>
                                </div>
-                       </div>
-               </div>
-               <?php
-               $bg = "bg-success"; // FIXME: this isn't dynamic
-               ?> 
-               <div class="col-sm mb-3">
-                       <div class="card text-center">
-                               <div class="card-header <?php echo $bg; ?> text-white">
-                                       <div class="row">
-                                               <div class="col">
-                                                       <i class="fa fa-database fa-3x"> </i>
+                               <div class="col-sm mb-3">
+                                       <a class="card frosted-glass-secondary text-center" href="<?php echo get_config("base_url"); ?>server-bans/spamfilter.php">
+                                               <div class="card-body text-white">
+                                                       <div class="row text-center">
+                                                               <div class="col">
+                                                                       <div class="col">
+                                                                               <i aria-hidden="true" class="fa fa-filter fa-2x"></i>
+                                                                       </div>
+                                                                       <div class="col">
+                                                                               <h5 id="num_spamfilter_entries" class="display-4 numberDisplay"></h5>
+                                                                               <h5 class="display-5">Spamfilter</h5>
+                                                                       </div>
+                                                               </div>
+                                                       </div>
                                                </div>
-                                               <div class="col">
-                                               <span data-toggle="tooltip" title="" style="border-bottom: 1px dotted #000000">
-                                               <h3 id="stats_uline_total" class="display-4"></h3>
+                                       </a>
+                               </div>
+                               <div class="col-sm mb-3">
+                                       <a class="card frosted-glass-info text-center" href="<?php echo get_config("base_url"); ?>server-bans/ban-exceptions.php">
+                                               <div class="card-body text-white">
+                                                       <div class="row text-center">
+                                                               <div class="col">
+                                                                       <div class="col">
+                                                                               <i aria-hidden="true" class="fa fa-door-open fa-2x"></i>
+                                                                       </div>
+                                                                       <div class="col">
+                                                                               <h5 id="num_ban_exceptions" class="display-4 numberDisplay"></h5>
+                                                                               <h5 class="display-5">Server Ban Exceptions</h5>
+                                                                       </div>
+                                                               </div>
+                                                       </div>
                                                </div>
-                                       </div>
+                                       </a>
                                </div>
-                               <div class="card-body">
-                                       <div class="row">
-                                               <div class="col">
-                                                       <h6>Services Online</h6>
+                               <div class="col-sm mb-3">
+                                       <a class="card frosted-glass-success text-center" href="<?php echo get_config("base_url"); ?>servers">
+                                               <div class="card-body text-white">
+                                                       <div class="row text-center">
+                                                               <div class="col">
+                                                                       <div class="col">
+                                                                               <i aria-hidden="true" class="fa fa-database fa-2x"></i>
+                                                                       </div>
+                                                                       <div class="col">
+                                                                               <h5 id="stats_uline_total" class="display-4 numberDisplay"></h5>
+                                                                               <h5 class="display-5" style="margin-top: -3px">Services Online</h5>
+                                                                               <h5 style="font-size: 10px; margin-top:-12px">View in Servers ></h5>
+                                                                       </div>
+                                                               </div>
+                                                       </div>
                                                </div>
-                                               <div class="col"> <a class="btn btn-primary" href="<?php echo get_config("base_url")."users/?servicesonly"; ?>">View</a></div>
-                                       </div>
+                                       </a>
                                </div>
-                               
                        </div>
                </div>
-       </div>
-</div>
-
 
 <script>
        /* Last time stats were updated */
@@ -251,8 +277,11 @@ $num_of_panel_admins = count($userlist);
                        return;
                }
                stats_tick = Date.now()
-               document.getElementById("live_stats").style.visibility = '';
+               console.log(data);
+               document.getElementById("userRecord").innerHTML = "Record: "+data.user.record;
                document.getElementById("stats_user_total").innerHTML = data.user.total;
+               document.getElementById("stats_user_total").classList.remove('numberDisplay');
+               document.getElementById("stats_user_total").classList.add('numberDisplay');
                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;
@@ -301,30 +330,42 @@ $num_of_panel_admins = count($userlist);
        });
 </script>
 
-<div class="container card-container card-container" style="margin-left:40px;margin-top:10px">
+<div class="container card-container card-container ml-1">
 
                        <div class="row">
-                               <div class="col-sm-3">
-                                       <div class="card text-center">
-                                               <div class="card-header bg-success text-white">
-                                                       <div class="row">
+                               <div class="col-sm mb-3">
+                                       <a class="card frosted-glass-success text-center" href="<?php echo get_config("base_url"); ?>settings">
+                                               <div class="card-body text-white">
+                                                       <div class="row text-center">
                                                                <div class="col">
-                                                                       <i class="fa fa-lock-open fa-3x"></i>
-                                                               </div>
-                                                               <div class="col">
-                                                                       <h3 class="display-4"><?php echo $num_of_panel_admins; ?></h3>
+                                                                       <div class="col">
+                                                                               <i aria-hidden="true" class="fa fa-lock-open fa-2x"></i>
+                                                                       </div>
+                                                                       <div class="col">
+                                                                               <h5 class="display-4 numberDisplay"><?php echo $num_of_panel_admins; ?></h5>
+                                                                               <h5 class="display-5">Panel Accounts</h5>
+                                                                       </div>
                                                                </div>
                                                        </div>
                                                </div>
-                                               <div class="card-body">
-                                                       <div class="row">
+                                       </a>
+                               </div>
+                               <div class="col-sm mb-3">
+                                       <a class="card frosted-glass-info text-center" href="<?php echo get_config("base_url"); ?>settings/plugins.php">
+                                               <div class="card-body text-light">
+                                                       <div class="row text-center">
                                                                <div class="col">
-                                                                       <h6>Panel Accounts</h6>
+                                                                       <div class="col">
+                                                                               <i aria-hidden="true" class="fa fa-plug fa-2x"></i>
+                                                                       </div>
+                                                                       <div class="col">
+                                                                               <h5 class="display-4 numberDisplay"><?php echo count(Plugins::$list); ?></h5>
+                                                                               <h5 class="display-5">Plugins</h5>
+                                                                       </div>
                                                                </div>
-                                                               <div class="col"> <a class="btn btn-primary" href="<?php echo get_config("base_url"); ?>settings">View</a></div>
                                                        </div>
                                                </div>
-                                       </div>
+                                       </a>
                                </div>
                        </div>
                </div>