]> jfr.im git - irc/unrealircd/unrealircd-webpanel.git/blob - servers/index.php
Fix failure of update on user settings
[irc/unrealircd/unrealircd-webpanel.git] / servers / index.php
1 <?php
2 require_once "../inc/common.php";
3 require_once "../inc/header.php";
4 require_once "../inc/connection.php";
5
6 $can_rehash = current_user_can(PERMISSION_REHASH);
7 $rehash_errors = [];
8 $rehash_warnings = [];
9 $rehash_success = [];
10
11 if (!empty($_POST))
12 {
13 do_log($_POST);
14 if (isset($_POST['rehash']) && $can_rehash)
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 }
39 }
40 $checkforupdates = (isset($_POST['checkforupdates'])) ? true : false;
41 /* Get the server list */
42 $servers = $rpc->server()->getAll();
43 $latest = 0;
44 if ($checkforupdates)
45 {
46 $latest = get_unreal_latest_version();
47 }
48 ?>
49 <h4>Servers Overview</h4>
50 <?php
51 if (isset($_POST['rehash']))
52 {
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 }
74 if (!empty($rehash_success))
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 }
90 }
91 if (isset($_POST['sf_name']) && strlen($_POST['sf_name']))
92 Message::Info("Listing servers which match name: \"" . $_POST['sf_name'] . "\"");
93
94 ?>
95 Click on a server name to view more information.
96
97 <div id="Servers">
98
99
100 <table class="container-xxl table table-sm table-responsive caption-top table-striped">
101 <thead class="table-primary">
102 <th scope="col"><h5>Filter:</h5></th>
103 <form action="" method="post">
104 <th scope="col" colspan="2">Name: <input name="sf_name" type="text" class="short-form-control">
105 <th scope="col"> <input class="btn btn-primary btn-sm" type="submit" value="Search"></th></form>
106 </thead></table>
107 <form action="index.php" method="post">
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>
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>
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">
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">&times;</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>
127 </div>
128 </div>
129 </div>
130 <table class="container-xxl table table-sm table-responsive caption-top table-striped">
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>
134 <th scope="col">Users</th>
135 <th scope="col">Version</th>
136 <th scope="col">Connected to</th>
137 <th scope="col">Up since</th>
138 </thead>
139
140 <tbody>
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
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 }
164
165 echo "<tr>";
166 echo "<th scope=\"row\"><input type=\"checkbox\" value='$server->id' name=\"serverch[]\"></th>";
167 echo "<td><a href=\"details.php?server=".$server->id."\">$server->name</a> $update</td>";
168 echo "<td>".$server->server->num_users."</td>";
169
170 $s = sinfo_conv_version_string($server);
171
172 echo "<td>$s</td>";
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>";
178 }
179 ?>
180 </form>
181 </tbody></table>
182 </div>
183
184 <?php require_once UPATH.'/inc/footer.php'; ?>