]> jfr.im git - irc/unrealircd/unrealircd-webpanel.git/blobdiff - settings/add-plugin.php
Run hook HOOKTYPE_PRE_FOOTER a little earlier
[irc/unrealircd/unrealircd-webpanel.git] / settings / add-plugin.php
index 21ecf9018f0a342e26cbf2809d0e797162cf43c8..1b38740f76b844f4968f3d065d856a41227f4fe0 100644 (file)
@@ -4,6 +4,9 @@ require_once "../inc/common.php";
 require_once "../inc/header.php";
 require_once "../Classes/class-plugin-git.php";
 
+if (!current_user_can(PERMISSION_MANAGE_PLUGINS))
+    die("Access denied");
+
 $p = new PluginRepo();
 ?>
 
@@ -26,8 +29,55 @@ $p = new PluginRepo();
 
 ?>
 
-<!-- Remove when page is finished -->
 <script>
-const modal = bsModal("Important", "This is a work in progress.<br><br>Please do not expect anything to work properly on this page",
-"<div class=\"btn btn-primary\" onClick=\"$('#'+modal).modal('hide')\">Ok</div>", size = null, static = true, show = true, closebutton = true);
-</script>
\ No newline at end of file
+
+    const ibtns = document.querySelectorAll(".btn-install-plugin");
+    ibtns.forEach((ib) => {
+        ib.addEventListener('click', (e) => {
+            if (ib.innerHTML !== "Install" && ib.innerHTML !== "Uninstall") // some point between, don't do anything
+            {}
+            else if (ib.innerHTML == "Install") // install button pressed!
+            {
+                let req = requestInstall(ib.id.slice(0,-7))
+                if (req == true)
+                {
+                    ib.classList.replace("btn-primary", "btn-secondary");
+                    ib.innerHTML = "Installing...";
+                }
+                else
+                {
+                    let uhoh = new bsModal("Error", "Could not install: "+req, "", null, false, true);
+                }
+            }
+            else if (ib.innerHTML == "Uninstall")
+            {
+                let req = requestInstall(ib.id.slice(0,-7), true); // true = uninstall
+                if (req == true)
+                {
+                    ib.classList.replace("btn-outline-danger", "btn-secondary");
+                    ib.innerHTML = "Uninstalling...";
+                }
+                else
+                {
+                    let uhoh = new bsModal("Error", "Could not uninstall: "+req, "", null, false, true);
+                }
+            }
+        });
+    })
+    const installed = document.querySelectorAll(".installed");
+    installed.forEach((el) => {
+        let btn = document.getElementById(el.id + 'install');
+        btn.classList.replace("btn-primary", "btn-outline-danger");
+        btn.innerHTML = "Uninstall";
+    });
+
+
+
+    const infoButtons = document.querySelectorAll('.more-info');
+    infoButtons.forEach((el) => {
+        el.addEventListener('click', (event) => {
+            create_plugin_info_modal(el.id);
+            
+        });
+    });
+</script>