2 require_once "common.php";
3 require_once "connection.php";
4 require_once "header.php";
6 $stats = $rpc->stats()->get();
9 <h2
>Network Overview
</h2
>
12 $array_of_stats = (array)$stats;
14 /* What if someone wants to add their own stats... */
15 Hook
::run(HOOKTYPE_PRE_OVERVIEW_CARD
, $array_of_stats);
17 /* This makes sure that a plugin which called the parameter
18 * by reference can add/update the stats for display here.
20 $stats = (object) $array_of_stats;
23 Hook
::run(HOOKTYPE_GET_USER_LIST
, $userlist);
24 $num_of_panel_admins = count($userlist);
27 <div
class="container">
29 <div
class="row mt-3">
30 <div
class="col-sm mb-3">
31 <div
class="card text-center">
32 <div
class="card-header bg-success text-white">
35 <i
class="fa fa-users fa-3x"></i
><span
class="position-absolute badge rounded-pill badge-warning">
36 <?php
echo "Record: ".$stats->user
->record
; ?>
40 <h3 id
="stats_user_total" class="display-4"><?php
echo $stats->user
->total
; ?></h3
>
44 <div
class="card-body">
49 <div
class="col"> <a
class="btn btn-primary" href
="<?php echo get_config("base_url
"); ?>users">View
</a
></div
>
56 <div
class="col-sm mb-3">
57 <div
class="card text-center">
58 <div
class="card-header bg-primary text-white">
61 <i
class="fa fa-hashtag fa-3x"></i
>
64 <h3 id
="stats_channel_total" class="display-4"><?php
echo $stats->channel
->total
; ?></h3
>
68 <div
class="card-body">
73 <div
class="col"><a
class="btn btn-primary" href
="<?php echo get_config("base_url
"); ?>channels">View
</a
></div
>
78 <div
class="col-sm mb-3">
79 <div
class="card text-center">
80 <div
class="card-header bg-warning">
83 <i
class="fa fa-shield-halved fa-3x"></i
>
86 <h3 id
="stats_oper_total" class="display-4"><?php
echo $stats->user
->oper
; ?></h3
>
90 <div
class="card-body">
95 <div
class="col"><a
class="btn btn-primary" href
="<?php echo get_config("base_url
")."users
/?operonly
"; ?>">View
</a
></div
>
101 <div
class="col-sm mb-3">
102 <div
class="card text-center">
103 <div
class="card-header bg-secondary text-white">
106 <i
class="fa fa-network-wired fa-3x"></i
>
109 <h3 id
="stats_server_total" class="display-4"><?php
echo $stats->server
->total
; ?></h3
>
113 <div
class="card-body">
118 <div
class="col"> <a
class="btn btn-primary" href
="<?php echo get_config("base_url
"); ?>servers">View
</a
></div
>
125 <div
class="container mt-3">
128 <div
class="col-sm mb-3">
129 <div
class="card text-center">
130 <div
class="card-header bg-danger text-white">
133 <i
class="fa fa-ban fa-3x"></i
>
136 <h3 id
="num_server_bans" class="display-4"><?php
echo $stats->server_ban
->server_ban
; ?></h3
>
140 <div
class="card-body">
145 <div
class="col"> <a
class="btn btn-primary" href
="<?php echo get_config("base_url
"); ?>server-bans">View
</a
></div
>
150 <div
class="col-sm mb-3">
151 <div
class="card text-center">
152 <div
class="card-header bg-secondary text-white">
155 <i
class="fa fa-filter fa-3x"></i
>
158 <h3 id
="num_spamfilter_entries" class="display-4"><?php
echo $stats->server_ban
->spamfilter
; ?></h3
>
162 <div
class="card-body">
167 <div
class="col"> <a
class="btn btn-primary" href
="<?php echo get_config("base_url
"); ?>spamfilter.php">View
</a
></div
>
172 <div
class="col-sm mb-3">
173 <div
class="card text-center">
174 <div
class="card-header bg-primary text-white">
177 <i
class="fa fa-door-open fa-3x"></i
>
180 <h3 id
="num_ban_exceptions" class="display-4"><?php
echo $stats->server_ban
->server_ban_exception
; ?></h3
>
185 <div
class="card-body">
188 <h6
>Server Ban Exceptions
</h6
>
190 <div
class="col"> <a
class="btn btn-primary" href
="<?php echo get_config("base_url
"); ?>server-bans/ban-exceptions.php">View
</a
></div
>
196 if ($stats->server
->ulined
) {
198 $tooltip = "Users / Servers";
203 <div
class="col-sm mb-3">
204 <div
class="card text-center">
205 <div
class="card-header <?php echo $bg; ?> text-white">
208 <i
class="fa fa-database fa-3x"> </i
>
211 <span data
-toggle
="tooltip" title
="<?php echo $tooltip; ?>" style
="border-bottom: 1px dotted #000000">
212 <h3 id
="stats_uline_total" class="display-4"><?php
echo $stats->user
->ulined
; ?>/<?php
echo $stats->server
->ulined
; ?></h3
>
216 <div
class="card-body">
219 <h6
>Services Online
</h6
>
221 <div
class="col"> <a
class="btn btn-primary" href
="<?php echo get_config("base_url
")."users
/?servicesonly
"; ?>">View
</a
></div
>
232 function updateStats() {
233 var xhttp
= new XMLHttpRequest();
234 xhttp
.onreadystatechange
= function() {
235 if (this
.readyState
== 4 && this
.status
== 200) {
236 var data
= JSON
.parse(this
.responseText
);
237 document
.getElementById("stats_user_total").innerHTML
= data
.user
.total
;
238 document
.getElementById("stats_channel_total").innerHTML
= data
.channel
.total
;
239 document
.getElementById("stats_oper_total").innerHTML
= data
.user
.oper
;
240 document
.getElementById("stats_server_total").innerHTML
= data
.server
.total
;
241 document
.getElementById("num_server_bans").innerHTML
= data
.server_ban
.server_ban
;
242 document
.getElementById("num_spamfilter_entries").innerHTML
= data
.server_ban
.spamfilter
;
243 document
.getElementById("num_ban_exceptions").innerHTML
= data
.server_ban
.server_ban_exception
;
244 document
.getElementById("stats_uline_total").innerHTML
= data
.user
.ulined +
"/" + data
.server
.ulined
;
247 xhttp
.open("GET", "api/overview.php", true);
251 setInterval(updateStats
, 1000); // Update stats every second
254 <div
class="container mt-3">
257 <div
class="col-sm-3">
258 <div
class="card text-center">
259 <div
class="card-header bg-success text-white">
262 <i
class="fa fa-lock-open fa-3x"></i
>
265 <h3
class="display-4"><?php
echo $num_of_panel_admins; ?></h3
>
269 <div
class="card-body">
272 <h6
>Panel Access
</h6
>
274 <div
class="col"> <a
class="btn btn-primary" href
="<?php echo get_config("base_url
"); ?>settings">View
</a
></div
>
283 Hook
::run(HOOKTYPE_OVERVIEW_CARD
, $stats);
285 require_once "footer.php";