]>
Commit | Line | Data |
---|---|---|
709b97f3 | 1 | <?php |
d3697d8f | 2 | require_once "common.php"; |
e77b1514 | 3 | require_once "connection.php"; |
d3697d8f | 4 | require_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... */ | |
15 | Hook::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 = []; |
23 | Hook::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"> | |
6210ec48 | 279 | <h6>Panel Accounts</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 |
290 | Hook::run(HOOKTYPE_OVERVIEW_CARD, $stats); |
291 | ||
809f7483 | 292 | require_once "footer.php"; |