]>
Commit | Line | Data |
---|---|---|
9ffc5134 | 1 | <?php |
c06c1713 | 2 | require_once "../inc/common.php"; |
c06c1713 | 3 | require_once "../inc/header.php"; |
e38f7458 | 4 | require_once "../inc/connection.php"; |
9ffc5134 | 5 | |
6da56220 | 6 | $can_rehash = current_user_can(PERMISSION_REHASH); |
721db4c3 VP |
7 | $rehash_errors = []; |
8 | $rehash_warnings = []; | |
9 | $rehash_success = []; | |
10 | ||
9c968544 VP |
11 | if (!empty($_POST)) |
12 | { | |
13 | do_log($_POST); | |
6da56220 | 14 | if (isset($_POST['rehash']) && $can_rehash) |
721db4c3 VP |
15 | foreach ($_POST['serverch'] as $servID) |
16 | if ($response = $rpc->server()->rehash($servID)) | |
17 | { | |
18 | $serb = $rpc->server()->get($servID); | |
19 | do_log($servID, $response); | |
20 | if ($response->success || (!isset($response->success) != false && $response == true)) | |
21 | { | |
22 | $rehash_success[] = $serb->name; | |
23 | foreach($response->log as $log) | |
24 | { | |
25 | do_log($log->level); | |
26 | if ($log->level == "warn") | |
27 | $rehash_warnings[$log->log_source][] = $log->msg; | |
28 | } | |
29 | } | |
30 | else if (isset($response->success) && !$response->success) | |
31 | { | |
32 | foreach ($response->log as $log) | |
33 | { | |
34 | if ($log->level == "error") | |
35 | $rehash_errors[$log->log_source][] = $log->msg; | |
36 | } | |
37 | } | |
38 | } | |
9c968544 | 39 | } |
d72d1923 | 40 | $checkforupdates = (isset($_POST['checkforupdates'])) ? true : false; |
9ffc5134 VP |
41 | /* Get the server list */ |
42 | $servers = $rpc->server()->getAll(); | |
d72d1923 VP |
43 | $latest = 0; |
44 | if ($checkforupdates) | |
45 | { | |
46 | $latest = get_unreal_latest_version(); | |
47 | } | |
9ffc5134 VP |
48 | ?> |
49 | <h4>Servers Overview</h4> | |
721db4c3 VP |
50 | <?php |
51 | if (isset($_POST['rehash'])) | |
52 | { | |
1bc2dc2c VP |
53 | if (!empty($rehash_success)) { |
54 | do_log($rehash_success); | |
55 | $servlist_bullet = "<ol>"; | |
56 | ||
57 | foreach ($rehash_success as $serv) { | |
58 | $servlist_bullet .= "<li>$serv</li>"; | |
59 | } | |
60 | $servlist_bullet .= "</ol>"; | |
61 | $servlist_err_bullet = ""; | |
62 | foreach ($rehash_errors as $serv => $err) { | |
63 | $servlist_err_bullet .= "<h6>$serv</h6><ol>"; | |
64 | foreach ($err as $er) | |
65 | $servlist_err_bullet .= "<li>$er</li>"; | |
66 | echo "</ol>"; | |
67 | } | |
68 | $servlist_warn_bullet = ""; foreach ($rehash_warnings as $server => $warning) { | |
69 | $servlist_warn_bullet .= "<h6>$serv</h6><ol>"; | |
70 | foreach ($warning as $w) | |
71 | $servlist_warn_bullet .= "<li>$w</li>"; | |
72 | $servlist_warn_bullet .= "</ol>"; | |
73 | } | |
721db4c3 | 74 | if (!empty($rehash_success)) |
1bc2dc2c VP |
75 | Message::Success( |
76 | "The following server(s) were successfully rehashed:", | |
77 | $servlist_bullet | |
78 | ); | |
79 | if (!empty($rehash_warnings)) | |
80 | Message::Warning( | |
81 | "The following warning(s) were encountered:", | |
82 | $servlist_warn_bullet | |
83 | ); | |
84 | if (!empty($rehash_errors)) | |
85 | Message::Fail( | |
86 | "The following error(s) were encountered and the server(s) failed to rehash:", | |
87 | $servlist_err_bullet | |
88 | ); | |
89 | } | |
721db4c3 VP |
90 | } |
91 | if (isset($_POST['sf_name']) && strlen($_POST['sf_name'])) | |
92 | Message::Info("Listing servers which match name: \"" . $_POST['sf_name'] . "\""); | |
9ffc5134 | 93 | |
721db4c3 | 94 | ?> |
9ffc5134 VP |
95 | Click on a server name to view more information. |
96 | ||
97 | <div id="Servers"> | |
98 | ||
721db4c3 | 99 | |
ce3de101 | 100 | <table class="container-xxl table table-sm table-responsive caption-top table-striped"> |
c69491f1 | 101 | <thead class="table-primary"> |
9ffc5134 VP |
102 | <th scope="col"><h5>Filter:</h5></th> |
103 | <form action="" method="post"> | |
1bad309d | 104 | <th scope="col" colspan="2">Name: <input name="sf_name" type="text" class="short-form-control"> |
ce3de101 | 105 | <th scope="col"> <input class="btn btn-primary btn-sm" type="submit" value="Search"></th></form> |
9ffc5134 | 106 | </thead></table> |
d72d1923 | 107 | <form action="index.php" method="post"> |
6da56220 | 108 | <div class="btn btn-sm btn-warning <?php echo $can_rehash ? "" : "disabled" ?>" data-toggle="modal" data-target="#rehash_modal"><i class="fa-solid fa-arrows-rotate"></i> Rehash Selected</div> |
d72d1923 | 109 | <button name="checkforupdates" type="submit" class="btn btn-sm btn-info"><i class="fa-solid fa-cloud-arrow-down"></i> Check for upgrades</div><br> |
1bc2dc2c VP |
110 | |
111 | <div class="modal fade" id="rehash_modal" tabindex="-1" role="dialog" aria-labelledby="confirmModalCenterTitle" aria-hidden="true"> | |
112 | <div class="modal-dialog modal-dialog-centered" role="document"> | |
113 | <div class="modal-content"> | |
d72d1923 VP |
114 | <div class="modal-header"> |
115 | <h5 class="modal-title" id="myModalLabel">Rehash Selected Servers</h5> | |
116 | <button type="button" class="close" data-dismiss="modal" aria-label="Close"> | |
117 | <span aria-hidden="true">×</span> | |
118 | </button> | |
119 | </div> | |
120 | <div class="modal-body"> | |
121 | Are you sure you want to rehash the selected servers? | |
122 | </div> | |
123 | <div class="modal-footer"> | |
124 | <button id="CloseButton" type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button> | |
125 | <button type="submit" class="btn btn-primary" name="rehash">Rehash Selected</button> | |
126 | </div> | |
1bc2dc2c VP |
127 | </div> |
128 | </div> | |
129 | </div> | |
ce3de101 | 130 | <table class="container-xxl table table-sm table-responsive caption-top table-striped"> |
9ffc5134 VP |
131 | <thead class="table-primary"> |
132 | <th scope="col"><input type="checkbox" label='selectall' onClick="toggle_server(this)" /></th> | |
133 | <th scope="col">Name</th> | |
11475e36 BM |
134 | <th scope="col">Users</th> |
135 | <th scope="col">Version</th> | |
9ffc5134 | 136 | <th scope="col">Connected to</th> |
11475e36 | 137 | <th scope="col">Up since</th> |
9ffc5134 VP |
138 | </thead> |
139 | ||
140 | <tbody> | |
9ffc5134 VP |
141 | <?php |
142 | ||
143 | foreach($servers as $server) | |
144 | { | |
145 | ||
146 | ||
147 | /* Some basic filtering for NAME */ | |
148 | if (isset($_POST['sf_name']) && strlen($_POST['sf_name']) && | |
149 | strpos(strtolower($server->name), strtolower($_POST['sf_name'])) !== 0 && | |
150 | strpos(strtolower($server->name), strtolower($_POST['sf_name'])) == false) | |
151 | continue; | |
152 | ||
d72d1923 VP |
153 | $update = ""; |
154 | if ($checkforupdates && $latest) | |
155 | { | |
156 | ||
157 | $tok = split($server->server->features->software, "-"); | |
158 | if (!strcasecmp($tok[0],"unrealircd")) | |
159 | { | |
160 | if ($latest > $tok[1]) | |
161 | $update = " <i class=\"fa-solid fa-cloud-arrow-down\" data-toggle=\"tooltip\" data-placement=\"top\" title=\"Upgrade available!\"></i>"; | |
162 | } | |
163 | } | |
9ffc5134 VP |
164 | |
165 | echo "<tr>"; | |
721db4c3 | 166 | echo "<th scope=\"row\"><input type=\"checkbox\" value='$server->id' name=\"serverch[]\"></th>"; |
d72d1923 | 167 | echo "<td><a href=\"details.php?server=".$server->id."\">$server->name</a> $update</td>"; |
11475e36 | 168 | echo "<td>".$server->server->num_users."</td>"; |
9307bb12 | 169 | |
dca62e70 | 170 | $s = sinfo_conv_version_string($server); |
d72d1923 | 171 | |
9307bb12 | 172 | echo "<td>$s</td>"; |
11475e36 BM |
173 | if (isset($server->server->uplink)) |
174 | echo "<td>".$server->server->uplink."</td>"; | |
175 | else | |
176 | echo "<td></td>"; /* self */ | |
177 | echo "<td>".$server->server->boot_time."</td>"; | |
9ffc5134 VP |
178 | } |
179 | ?> | |
721db4c3 | 180 | </form> |
9ffc5134 VP |
181 | </tbody></table> |
182 | </div> | |
183 | ||
c06c1713 | 184 | <?php require_once UPATH.'/inc/footer.php'; ?> |