]> jfr.im git - irc/unrealircd/unrealircd-webpanel.git/blobdiff - settings/rpc-servers.php
fix search results looking awkward from overview page
[irc/unrealircd/unrealircd-webpanel.git] / settings / rpc-servers.php
index 4f32a48d654b5574dfa4741734dcfefba4cc2114..6ab87babedca91b60101c6b283ec12aad8ecc346 100644 (file)
@@ -2,33 +2,13 @@
 require_once "../inc/common.php";
 require_once "../inc/header.php";
 
-/* Ensure at least 1 server is default */
-function set_at_least_one_default_server()
-{
-       GLOBAL $config;
-
-       $has_default_server = false;
-       foreach ($config["unrealircd"] as $name=>$e)
-               if ($e["default"])
-                       $has_default_server = true;
-       if (!$has_default_server)
-       {
-               /* Make first server in the list the default */
-               foreach ($config["unrealircd"] as $name=>$e)
-               {
-                       $config["unrealircd"][$name]["default"] = true;
-                       break;
-               }
-       }
-}
-
 if (isset($_POST['do_del_server']))
 {
-       $server = $_POST['edit_existing'] ?? null;
+       $server = $_POST['del_server_name'] ?? null;
        if (isset($config["unrealircd"][$server]))
        {
                unset($config["unrealircd"][$server]);
-               set_at_least_one_default_server();
+               set_at_least_one_default_rpc_server();
                write_config("unrealircd");
        } else {
                Message::Fail("Delete failed: could not find server");
@@ -78,15 +58,9 @@ if (isset($_POST['do_add_server']))
        }
 
        if ($new_properties["default"])
-       {
-               /* Mark all other servers as non-default */
-               foreach ($config["unrealircd"] as $name=>$e)
-                       if ($name != $opts->rpc_displayname)
-                               $config["unrealircd"][$name]["default"] = false;
-       } else {
-               /* Ensure at least 1 server is default */
-               set_at_least_one_default_server();
-       }
+               set_default_rpc_server($opts->rpc_displayname);
+       else
+               set_at_least_one_default_rpc_server();
 
        /* And write the new config */
        write_config();
@@ -175,7 +149,6 @@ if (empty($config["unrealircd"]))
                                <div class="modal-footer">
                                        <button id="CloseButton" type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
                                        <button type="submit" name="do_add_server" id="do_add_server" class="btn btn-primary">Add Server</button>
-                                       <button type="submit" name="do_del_server" id="do_del_server" class="btn btn-danger">Delete Server</button>
                                </div>
                        </div>
                </form>
@@ -203,10 +176,45 @@ if (empty($config["unrealircd"]))
        </div>
 </div>
 
+<!-- Server delete confirmation modal -->
+<div class="modal" id="server_confirm_del" tabindex="-1" role="dialog" aria-labelledby="confirmModalCenterTitle" aria-hidden="true">
+       <div class="modal-dialog modal-dialog-centered" role="document">
+               <div class="modal-content">
+                       <form method="post">
+                               <input name="del_server_name" type="hidden" id="del_server_name" value="">
+                               <div class="modal-header">
+                                       <h5 class="modal-title">Confirm deletion</h5>
+                                       <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                                               <span aria-hidden="true">&times;</span>
+                                       </button>
+                               </div>
+                               <div class="modal-body">
+                                       Are you sure you want to delete this server?
+                               </div>
+                               <div class="modal-footer">
+                                       <button id="CloseButton" type="button" class="btn btn-primary" data-dismiss="modal">Cancel</button>
+                                       <button type="submit" name="do_del_server" id="do_del_server" class="btn btn-danger">Delete Server</button>
+                               </div>
+                       </form>
+               </div>
+       </div>
+</div>
+
+<!-- Todo figure out why it didnt work in css -->
+<style>
+.btn-group-xs > .btn, .btn-xs {
+padding: 1px 5px;
+font-size: 12px;
+line-height: 1.5;
+border-radius: 3px;
+}
+</style>
+
 <!-- Server list -->
 <form method="post">
 <table class="container-xxl table table-sm table-responsive caption-top table-striped">
        <thead class="table-primary">
+       <th scope="col"></th>
        <th scope="col">Display name</th>
        <th scope="col">Hostname</th>
        <th scope="col">Port</th>
@@ -214,7 +222,10 @@ if (empty($config["unrealircd"]))
        </thead>
        <tbody>
        <?php
-               foreach($config['unrealircd'] as $name=>$e)
+               $servers = get_config('unrealircd');
+               if (!$servers)
+                       $servers = [];
+               foreach($servers as $name=>$e)
                {
                        $primary = "";
                        if (isset($e["default"]) && $e["default"])
@@ -225,9 +236,10 @@ if (empty($config["unrealircd"]))
                         $port = htmlspecialchars($e["port"]);
                         $rpc_user = htmlspecialchars($e["rpc_user"]);
                         $tls_verify_cert = $e["tls_verify_cert"] ? "true" : "false";
-                        $name = "<a href=\"javascript:edit_rpc_server('$name',$default_server,'$host','$port','$rpc_user',$tls_verify_cert)\">$name</a>";
+                        $html_name = "<a href=\"javascript:edit_rpc_server('$name',$default_server,'$host','$port','$rpc_user',$tls_verify_cert)\">$name</a>";
                        echo "<tr>";
-                       echo "<td scope=\"col\">".$name.$primary."</td>";
+                       echo "<td scope=\"col\"><button type=\"button\" class=\"btn btn-xs btn-danger\" onclick=\"confirm_delete('".$name."')\"><i class=\"fa fa-trash fa-1\" aria-hidden=\"true\"></i></button></td>";
+                       echo "<td scope=\"col\">".$html_name.$primary."</td>";
                        echo "<td scope=\"col\"><code>".$host."</code></td>";
                        echo "<td scope=\"col\"><code>".$port."</code></td>";
                        echo "<td scope=\"col\"><code>".$rpc_user."</code></td>";
@@ -258,7 +270,7 @@ if (empty($config["unrealircd"]))
        /* The RPC connection tester! */
        function test_rpc_server()
        {
-               fetch(<?php echo get_config("base_url"); ?> + 'api/test_rpc_server.php', {
+               fetch('<?php echo get_config("base_url"); ?>' + 'api/test_rpc_server.php', {
                      method:'POST',
                      headers: {'Content-Type':'application/x-www-form-urlencoded'},
                      body: 'method=rpc&'+
@@ -326,6 +338,14 @@ if (empty($config["unrealircd"]))
                $('#do_del_server').hide();
                $('#server_add').modal('show');
        }
+
+       function confirm_delete(name)
+       {
+               $('#del_server_name').val(name);
+               $('#server_confirm_del').modal('show');
+       }
+
+
 </script>
 
 <?php