]> jfr.im git - irc/unrealircd/unrealircd-webpanel.git/blob - index.php
Merge pull request #17 from PeGaSuS-Coder/patch-1
[irc/unrealircd/unrealircd-webpanel.git] / index.php
1 <?php
2 require_once "common.php";
3 require_once "connection.php";
4 require_once "header.php";
5
6 $stats = $rpc->query("stats.get", []);
7 ?>
8
9 <h2>Network Overview</h2>
10
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
22 $userlist = [];
23 Hook::run(HOOKTYPE_GET_USER_LIST, $userlist);
24 $num_of_panel_admins = count($userlist);
25
26 ?>
27 <div class="container">
28
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">
33 <div class="row">
34 <div class="col">
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>
38 </div>
39 <div class="col">
40 <h3 class="display-4"><?php echo $stats->user->total; ?></h3>
41 </div>
42 </div>
43 </div>
44 <div class="card-body">
45 <div class="row">
46 <div class="col">
47 <h6>Users Online</h6>
48 </div>
49 <div class="col"> <a class="btn btn-primary" href="<?php echo BASE_URL; ?>users">View</a></div>
50 </div>
51 </div>
52 </div>
53
54
55 </div>
56 <div class="col-sm mb-3">
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">
64 <h3 class="display-4"><?php echo $stats->channel->total; ?></h3>
65 </div>
66 </div>
67 </div>
68 <div class="card-body">
69 <div class="row">
70 <div class="col">
71 <h6>Channels</h6>
72 </div>
73 <div class="col"><a class="btn btn-primary" href="<?php echo BASE_URL; ?>channels">View</a></div>
74 </div>
75 </div>
76 </div>
77 </div>
78 <div class="col-sm mb-3">
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">
86 <h3 class="display-4"><?php echo $stats->user->oper; ?></h3>
87 </div>
88 </div>
89 </div>
90 <div class="card-body">
91 <div class="row">
92 <div class="col">
93 <h6>Opers</h6>
94 </div>
95 <div class="col"><a class="btn btn-primary" href="<?php echo BASE_URL."users/?operonly"; ?>">View</a></div>
96 </div>
97 </div>
98 </div>
99 </div>
100
101 <div class="col-sm mb-3">
102 <div class="card text-center">
103 <div class="card-header bg-secondary text-white">
104 <div class="row">
105 <div class="col">
106 <i class="fa fa-network-wired fa-3x"></i>
107 </div>
108 <div class="col">
109 <h3 class="display-4"><?php echo $stats->server->total; ?></h3>
110 </div>
111 </div>
112 </div>
113 <div class="card-body">
114 <div class="row">
115 <div class="col">
116 <h6>Servers</h6>
117 </div>
118 <div class="col"> <a class="btn btn-primary" href="<?php echo BASE_URL; ?>servers">View</a></div>
119 </div>
120 </div>
121 </div>
122 </div>
123 </div>
124 </div>
125 <div class="container mt-3">
126
127 <div class="row">
128 <div class="col-sm mb-3">
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">
136 <h3 class="display-4"><?php echo $stats->server_ban->server_ban; ?></h3>
137 </div>
138 </div>
139 </div>
140 <div class="card-body">
141 <div class="row">
142 <div class="col">
143 <h6>Server Bans</h6>
144 </div>
145 <div class="col"> <a class="btn btn-primary" href="<?php echo BASE_URL; ?>server-bans">View</a></div>
146 </div>
147 </div>
148 </div>
149 </div>
150 <div class="col-sm mb-3">
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">
158 <h3 class="display-4"><?php echo $stats->server_ban->spamfilter; ?></h3>
159 </div>
160 </div>
161 </div>
162 <div class="card-body">
163 <div class="row">
164 <div class="col">
165 <h6>Spamfilter</h6>
166 </div>
167 <div class="col"> <a class="btn btn-primary" href="<?php echo BASE_URL; ?>spamfilter.php">View</a></div>
168 </div>
169 </div>
170 </div>
171 </div>
172 <div class="col-sm mb-3">
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">
180 <h3 class="display-4"><?php echo $stats->server_ban->server_ban_exception; ?></h3>
181 </div>
182 </div>
183 </div>
184
185 <div class="card-body">
186 <div class="row">
187 <div class="col">
188 <h6>Server Ban Exceptions</h6>
189 </div>
190 <div class="col"> <a class="btn btn-primary" href="<?php echo BASE_URL; ?>server-bans/ban-exceptions.php">View</a></div>
191 </div>
192 </div>
193 </div>
194 </div>
195 <?php
196 if ($stats->server->ulined) {
197 $bg = "bg-success";
198
199 /* honestly can't think of a case where there would actually be only one uline... but... well here we are, worrying over the small stuff =] */
200 $user_noun = ($stats->user->ulined == 1) ? "user" : "users"; // use "users" even if 0, sounds better.
201 $is_are = ($stats->user->ulined == 1) ? "is" : "are";
202 $server_noun = ($stats->server->ulined == 1) ? "server" : "servers";
203 $tooltip = "There $is_are " . $stats->user->ulined . " U-Lined $user_noun over " . $stats->server->ulined . " U-Lined $server_noun";
204 }
205 else
206 $bg = "bg-warning";
207 ?>
208 <div class="col-sm mb-3">
209 <div class="card text-center">
210 <div class="card-header <?php echo $bg; ?> text-white">
211 <div class="row">
212 <div class="col">
213 <i class="fa fa-database fa-3x"> </i>
214 </div>
215 <div class="col">
216 <span data-toggle="tooltip" title="<?php echo $tooltip; ?>" style="border-bottom: 1px dotted #000000"><h3 class="display-4"><?php echo $stats->user->ulined; ?>/<?php echo $stats->server->ulined; ?></h3>
217 </div>
218 </div>
219 </div>
220 <div class="card-body">
221 <div class="row">
222 <div class="col">
223 <h6>Services Online</h6>
224 </div>
225 <div class="col"> <a class="btn btn-primary" href="<?php echo BASE_URL."users/?servicesonly"; ?>">View</a></div>
226 </div>
227 </div>
228
229 </div>
230 </div>
231 </div>
232 </div>
233 <div class="container mt-3">
234
235 <div class="row">
236 <div class="col-sm-3">
237 <div class="card text-center">
238 <div class="card-header bg-success text-white">
239 <div class="row">
240 <div class="col">
241 <i class="fa fa-lock-open fa-3x"></i>
242 </div>
243 <div class="col">
244 <h3 class="display-4"><?php echo $num_of_panel_admins; ?></h3>
245 </div>
246 </div>
247 </div>
248 <div class="card-body">
249 <div class="row">
250 <div class="col">
251 <h6>Panel Access</h6>
252 </div>
253 <div class="col"> <a class="btn btn-primary" href="<?php echo BASE_URL; ?>settings">View</a></div>
254 </div>
255 </div>
256 </div>
257 </div>
258 </div>
259 </div>
260 <?php
261
262 Hook::run(HOOKTYPE_OVERVIEW_CARD, $stats);
263
264 require_once "footer.php";