]> jfr.im git - irc/unrealircd/unrealircd-webpanel.git/blob - index.php
Make a start on filtering for later
[irc/unrealircd/unrealircd-webpanel.git] / index.php
1 <?php
2 require_once "common.php";
3 require_once "header.php";
4
5 $stats = $rpc->query("stats.get", []);
6 ?>
7
8 <h2>Network Overview</h2>
9
10 <?php
11 $array_of_stats = (array)$stats;
12
13 /* What if someone wants to add their own stats... */
14 Hook::run(HOOKTYPE_PRE_OVERVIEW_CARD, $array_of_stats);
15
16 /* This makes sure that a plugin which called the parameter
17 * by reference can add/update the stats for display here.
18 */
19 $stats = (object) $array_of_stats;
20
21
22 ?>
23
24 <div class="container mt-5">
25
26 <div class="row">
27 <div class="col-sm">
28 <div class="card text-center">
29 <div class="card-header bg-success text-white">
30 <div class="row">
31 <div class="col">
32 <i class="fa fa-users fa-3x"></i><span class="position-absolute badge rounded-pill badge-warning">
33 <?php echo "Record: ".$stats->user->record; ?>
34 </span>
35 </div>
36 <div class="col">
37 <h3 class="display-4"><?php echo $stats->user->total; ?></h3>
38 </div>
39 </div>
40 </div>
41 <div class="card-body">
42 <div class="row">
43 <div class="col">
44 <h6>Users Online</h6>
45 </div>
46 <div class="col"> <a class="btn btn-primary" href="<?php echo BASE_URL; ?>users">View</a></div>
47 </div>
48 </div>
49 </div>
50
51
52 </div>
53 <div class="col-sm">
54 <div class="card text-center">
55 <div class="card-header bg-primary text-white">
56 <div class="row">
57 <div class="col">
58 <i class="fa fa-hashtag fa-3x"></i>
59 </div>
60 <div class="col">
61 <h3 class="display-4"><?php echo $stats->channel->total; ?></h3>
62 </div>
63 </div>
64 </div>
65 <div class="card-body">
66 <div class="row">
67 <div class="col">
68 <h6>Channels</h6>
69 </div>
70 <div class="col"><a class="btn btn-primary" href="<?php echo BASE_URL; ?>channels">View</a></div>
71 </div>
72 </div>
73 </div>
74 </div>
75 <div class="col-sm">
76 <div class="card text-center">
77 <div class="card-header bg-warning">
78 <div class="row">
79 <div class="col">
80 <i class="fa fa-shield-halved fa-3x"></i>
81 </div>
82 <div class="col">
83 <h3 class="display-4"><?php echo $stats->user->oper; ?></h3>
84 </div>
85 </div>
86 </div>
87 <div class="card-body">
88 <div class="row">
89 <div class="col">
90 <h6>Opers</h6>
91 </div>
92 <div class="col"><a class="btn btn-primary" href="<?php echo BASE_URL."users/?operonly"; ?>">View</a></div>
93 </div>
94 </div>
95 </div>
96 </div>
97
98 <div class="col-sm">
99 <div class="card text-center">
100 <div class="card-header bg-secondary text-white">
101 <div class="row">
102 <div class="col">
103 <i class="fa fa-network-wired fa-3x"></i>
104 </div>
105 <div class="col">
106 <h3 class="display-4"><?php echo $stats->server->total; ?></h3>
107 </div>
108 </div>
109 </div>
110 <div class="card-body">
111 <div class="row">
112 <div class="col">
113 <h6>Servers</h6>
114 </div>
115 <div class="col"> <a class="btn btn-primary" href="<?php echo BASE_URL; ?>servers">View</a></div>
116 </div>
117 </div>
118 </div>
119 </div>
120 </div>
121 </div>
122 <div class="container mt-3">
123
124 <div class="row">
125 <div class="col-sm">
126 <div class="card text-center">
127 <div class="card-header bg-danger text-white">
128 <div class="row">
129 <div class="col">
130 <i class="fa fa-ban fa-3x"></i>
131 </div>
132 <div class="col">
133 <h3 class="display-4"><?php echo $stats->server_ban->server_ban; ?></h3>
134 </div>
135 </div>
136 </div>
137 <div class="card-body">
138 <div class="row">
139 <div class="col">
140 <h6>Server Bans</h6>
141 </div>
142 <div class="col"> <a class="btn btn-primary" href="<?php echo BASE_URL; ?>server_bans.php">View</a></div>
143 </div>
144 </div>
145 </div>
146 </div>
147 <div class="col-sm">
148 <div class="card text-center">
149 <div class="card-header bg-secondary text-white">
150 <div class="row">
151 <div class="col">
152 <i class="fa fa-filter fa-3x"></i>
153 </div>
154 <div class="col">
155 <h3 class="display-4"><?php echo $stats->server_ban->spamfilter; ?></h3>
156 </div>
157 </div>
158 </div>
159 <div class="card-body">
160 <div class="row">
161 <div class="col">
162 <h6>Spamfilter</h6>
163 </div>
164 <div class="col"> <a class="btn btn-primary" href="<?php echo BASE_URL; ?>spamfilter.php">View</a></div>
165 </div>
166 </div>
167 </div>
168 </div>
169 <div class="col-sm">
170 <div class="card text-center">
171 <div class="card-header bg-primary text-white">
172 <div class="row">
173 <div class="col">
174 <i class="fa fa-door-open fa-3x"></i>
175 </div>
176 <div class="col">
177 <h3 class="display-4"><?php echo $stats->server_ban->server_ban_exception; ?></h3>
178 </div>
179 </div>
180 </div>
181
182 <div class="card-body">
183 <div class="row">
184 <div class="col">
185 <h6>Server Ban Exceptions</h6>
186 </div>
187 <div class="col"> <a class="btn btn-secondary disabled" href="#">View</a></div>
188 </div>
189 </div>
190 </div>
191 </div>
192 <?php
193 if ($stats->server->ulined) {
194 $bg = "bg-success";
195
196 /* 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 =] */
197 $user_noun = ($stats->user->ulined == 1) ? "user" : "users"; // use "users" even if 0, sounds better.
198 $is_are = ($stats->user->ulined == 1) ? "is" : "are";
199 $server_noun = ($stats->server->ulined == 1) ? "server" : "servers";
200 $tooltip = "There $is_are " . $stats->user->ulined . " U-Lined $user_noun over " . $stats->server->ulined . " U-Lined $server_noun";
201 }
202 else
203 $bg = "bg-warning";
204 ?>
205 <div class="col-sm">
206 <div class="card text-center">
207 <div class="card-header <?php echo $bg; ?> text-white">
208 <div class="row">
209 <div class="col">
210 <i class="fa fa-database fa-3x"> </i>
211 </div>
212 <div class="col">
213 <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>
214 </div>
215 </div>
216 </div>
217 <div class="card-body">
218 <div class="row">
219 <div class="col">
220 <h6>Services Online</h6>
221 </div>
222 <div class="col"> <a class="btn btn-primary" href="<?php echo BASE_URL."users/?servicesonly"; ?>">View</a></div>
223 </div>
224 </div>
225
226 </div>
227 </div>
228 </div>
229 </div>
230
231 <?php
232
233 Hook::run(HOOKTYPE_OVERVIEW_CARD, $stats);
234
235 require_once "footer.php";