]> jfr.im git - irc/unrealircd/unrealircd-webpanel.git/blame - index.php
Only show leftnav "footer" if we actually have leftnav, and hide on
[irc/unrealircd/unrealircd-webpanel.git] / index.php
CommitLineData
709b97f3 1<?php
d3697d8f 2require_once "common.php";
e77b1514 3require_once "connection.php";
d3697d8f 4require_once "header.php";
26971737 5
9ac271b0 6$stats = $rpc->stats()->get();
709b97f3 7?>
82f5bcbf 8
ce8122f0
VP
9<h2>Network Overview</h2>
10
bdf7619a
VP
11<?php
12$array_of_stats = (array)$stats;
13
14/* What if someone wants to add their own stats... */
15Hook::run(HOOKTYPE_PRE_OVERVIEW_CARD, $array_of_stats);
16
17/* This makes sure that a plugin which called the parameter
18 * by reference can add/update the stats for display here.
19*/
20$stats = (object) $array_of_stats;
21
4fc503d8
VP
22$userlist = [];
23Hook::run(HOOKTYPE_GET_USER_LIST, $userlist);
24$num_of_panel_admins = count($userlist);
bdf7619a
VP
25
26?>
33f512fa 27<div class="container">
440ff671 28
9e2a2ac0 29 <div class="row mt-3">
33f512fa 30 <div class="col-sm mb-3">
ce8122f0
VP
31 <div class="card text-center">
32 <div class="card-header bg-success text-white">
33 <div class="row">
34 <div class="col">
79ed2176
VP
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; ?>
37 </span>
ce8122f0
VP
38 </div>
39 <div class="col">
56164221 40 <h3 id="stats_user_total" class="display-4"><?php echo $stats->user->total; ?></h3>
ce8122f0
VP
41 </div>
42 </div>
43 </div>
75c101fd
VP
44 <div class="card-body">
45 <div class="row">
46 <div class="col">
47 <h6>Users Online</h6>
48 </div>
ea90b321 49 <div class="col"> <a class="btn btn-primary" href="<?php echo get_config("base_url"); ?>users">View</a></div>
75c101fd
VP
50 </div>
51 </div>
ce8122f0 52 </div>
79ed2176
VP
53
54
ce8122f0 55 </div>
33f512fa 56 <div class="col-sm mb-3">
ce8122f0
VP
57 <div class="card text-center">
58 <div class="card-header bg-primary text-white">
59 <div class="row">
60 <div class="col">
61 <i class="fa fa-hashtag fa-3x"></i>
62 </div>
63 <div class="col">
56164221 64 <h3 id="stats_channel_total" class="display-4"><?php echo $stats->channel->total; ?></h3>
75c101fd
VP
65 </div>
66 </div>
67 </div>
68 <div class="card-body">
69 <div class="row">
70 <div class="col">
ce8122f0
VP
71 <h6>Channels</h6>
72 </div>
ea90b321 73 <div class="col"><a class="btn btn-primary" href="<?php echo get_config("base_url"); ?>channels">View</a></div>
ce8122f0
VP
74 </div>
75 </div>
76 </div>
77 </div>
33f512fa 78 <div class="col-sm mb-3">
ce8122f0
VP
79 <div class="card text-center">
80 <div class="card-header bg-warning">
81 <div class="row">
82 <div class="col">
83 <i class="fa fa-shield-halved fa-3x"></i>
84 </div>
85 <div class="col">
56164221 86 <h3 id="stats_oper_total" class="display-4"><?php echo $stats->user->oper; ?></h3>
75c101fd
VP
87 </div>
88 </div>
89 </div>
90 <div class="card-body">
91 <div class="row">
92 <div class="col">
ce8122f0
VP
93 <h6>Opers</h6>
94 </div>
ea90b321 95 <div class="col"><a class="btn btn-primary" href="<?php echo get_config("base_url")."users/?operonly"; ?>">View</a></div>
ce8122f0
VP
96 </div>
97 </div>
98 </div>
99 </div>
75c101fd 100
33f512fa 101 <div class="col-sm mb-3">
ce8122f0 102 <div class="card text-center">
28d5eb87 103 <div class="card-header bg-secondary text-white">
ce8122f0
VP
104 <div class="row">
105 <div class="col">
106 <i class="fa fa-network-wired fa-3x"></i>
107 </div>
108 <div class="col">
56164221 109 <h3 id="stats_server_total" class="display-4"><?php echo $stats->server->total; ?></h3>
75c101fd
VP
110 </div>
111 </div>
112 </div>
113 <div class="card-body">
114 <div class="row">
115 <div class="col">
ce8122f0
VP
116 <h6>Servers</h6>
117 </div>
ea90b321 118 <div class="col"> <a class="btn btn-primary" href="<?php echo get_config("base_url"); ?>servers">View</a></div>
ce8122f0
VP
119 </div>
120 </div>
121 </div>
122 </div>
123 </div>
124</div>
75c101fd 125<div class="container mt-3">
ce8122f0
VP
126
127 <div class="row">
33f512fa 128 <div class="col-sm mb-3">
ce8122f0
VP
129 <div class="card text-center">
130 <div class="card-header bg-danger text-white">
131 <div class="row">
132 <div class="col">
133 <i class="fa fa-ban fa-3x"></i>
134 </div>
135 <div class="col">
56164221 136 <h3 id="num_server_bans" class="display-4"><?php echo $stats->server_ban->server_ban; ?></h3>
75c101fd
VP
137 </div>
138 </div>
139 </div>
140 <div class="card-body">
141 <div class="row">
142 <div class="col">
ce8122f0
VP
143 <h6>Server Bans</h6>
144 </div>
ea90b321 145 <div class="col"> <a class="btn btn-primary" href="<?php echo get_config("base_url"); ?>server-bans">View</a></div>
ce8122f0
VP
146 </div>
147 </div>
148 </div>
149 </div>
33f512fa 150 <div class="col-sm mb-3">
ce8122f0
VP
151 <div class="card text-center">
152 <div class="card-header bg-secondary text-white">
153 <div class="row">
154 <div class="col">
155 <i class="fa fa-filter fa-3x"></i>
156 </div>
157 <div class="col">
56164221 158 <h3 id="num_spamfilter_entries" class="display-4"><?php echo $stats->server_ban->spamfilter; ?></h3>
ce8122f0
VP
159 </div>
160 </div>
161 </div>
75c101fd
VP
162 <div class="card-body">
163 <div class="row">
164 <div class="col">
165 <h6>Spamfilter</h6>
166 </div>
ea90b321 167 <div class="col"> <a class="btn btn-primary" href="<?php echo get_config("base_url"); ?>spamfilter.php">View</a></div>
75c101fd
VP
168 </div>
169 </div>
ce8122f0
VP
170 </div>
171 </div>
33f512fa 172 <div class="col-sm mb-3">
ce8122f0
VP
173 <div class="card text-center">
174 <div class="card-header bg-primary text-white">
175 <div class="row">
176 <div class="col">
177 <i class="fa fa-door-open fa-3x"></i>
178 </div>
179 <div class="col">
56164221 180 <h3 id="num_ban_exceptions" class="display-4"><?php echo $stats->server_ban->server_ban_exception; ?></h3>
ce8122f0
VP
181 </div>
182 </div>
183 </div>
75c101fd
VP
184
185 <div class="card-body">
186 <div class="row">
187 <div class="col">
188 <h6>Server Ban Exceptions</h6>
189 </div>
ea90b321 190 <div class="col"> <a class="btn btn-primary" href="<?php echo get_config("base_url"); ?>server-bans/ban-exceptions.php">View</a></div>
75c101fd
VP
191 </div>
192 </div>
ce8122f0
VP
193 </div>
194 </div>
195 <?php
79ed2176 196 if ($stats->server->ulined) {
ce8122f0 197 $bg = "bg-success";
05f01f6d 198 $tooltip = "Users / Servers";
79ed2176
VP
199 }
200 else
201 $bg = "bg-warning";
202 ?>
33f512fa 203 <div class="col-sm mb-3">
ce8122f0
VP
204 <div class="card text-center">
205 <div class="card-header <?php echo $bg; ?> text-white">
206 <div class="row">
207 <div class="col">
208 <i class="fa fa-database fa-3x"> </i>
209 </div>
210 <div class="col">
56164221
VP
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>
75c101fd
VP
213 </div>
214 </div>
215 </div>
216 <div class="card-body">
217 <div class="row">
218 <div class="col">
ce8122f0
VP
219 <h6>Services Online</h6>
220 </div>
ea90b321 221 <div class="col"> <a class="btn btn-primary" href="<?php echo get_config("base_url")."users/?servicesonly"; ?>">View</a></div>
ce8122f0
VP
222 </div>
223 </div>
224
225 </div>
226 </div>
227 </div>
809f7483 228</div>
56164221
VP
229
230
231<script>
fd4848e4
BM
232 function updateStats(e)
233 {
234 var data;
235 try {
236 data = JSON.parse(e.data);
237 } catch(e) {
238 return;
239 }
240 document.getElementById("stats_user_total").innerHTML = data.user.total;
241 document.getElementById("stats_channel_total").innerHTML = data.channel.total;
242 document.getElementById("stats_oper_total").innerHTML = data.user.oper;
243 document.getElementById("stats_server_total").innerHTML = data.server.total;
244 document.getElementById("num_server_bans").innerHTML = data.server_ban.server_ban;
245 document.getElementById("num_spamfilter_entries").innerHTML = data.server_ban.spamfilter;
246 document.getElementById("num_ban_exceptions").innerHTML = data.server_ban.server_ban_exception;
247 document.getElementById("stats_uline_total").innerHTML = data.user.ulined + "/" + data.server.ulined;
248 }
249 function initStats()
250 {
251 if (!!window.EventSource) {
252 var source = new EventSource('api/overview.php');
253 source.addEventListener('message', updateStats, false);
254 }
255 }
256 initStats();
257 //setInterval(updateStats, 1000); // Update stats every second
258 // ^ commented out but may want to restart initStats() when connection is lost.
56164221
VP
259</script>
260
4fc503d8 261<div class="container mt-3">
fdc0088f
VP
262
263 <div class="row">
264 <div class="col-sm-3">
265 <div class="card text-center">
266 <div class="card-header bg-success text-white">
267 <div class="row">
268 <div class="col">
269 <i class="fa fa-lock-open fa-3x"></i>
270 </div>
271 <div class="col">
272 <h3 class="display-4"><?php echo $num_of_panel_admins; ?></h3>
273 </div>
274 </div>
275 </div>
276 <div class="card-body">
277 <div class="row">
278 <div class="col">
f84a6cd5 279 <h6>Panel Access</h6>
fdc0088f 280 </div>
ea90b321 281 <div class="col"> <a class="btn btn-primary" href="<?php echo get_config("base_url"); ?>settings">View</a></div>
fdc0088f
VP
282 </div>
283 </div>
284 </div>
285 </div>
286 </div>
287 </div>
809f7483
VP
288<?php
289
440ff671
VP
290Hook::run(HOOKTYPE_OVERVIEW_CARD, $stats);
291
809f7483 292require_once "footer.php";