]> jfr.im git - irc/unrealircd/unrealircd-webpanel.git/blame - settings/add-plugin.php
Run hook HOOKTYPE_PRE_FOOTER a little earlier
[irc/unrealircd/unrealircd-webpanel.git] / settings / add-plugin.php
CommitLineData
e47cb29f
VP
1<?php
2
3require_once "../inc/common.php";
4require_once "../inc/header.php";
5require_once "../Classes/class-plugin-git.php";
6
fae5cd15
VP
7if (!current_user_can(PERMISSION_MANAGE_PLUGINS))
8 die("Access denied");
9
e47cb29f
VP
10$p = new PluginRepo();
11?>
12
13<h2>Add New Plugin</h2>
14<br>
15
16<?php
17 if ($p) {
18 echo "
19 Welcome to our lively plugins hub, where creativity takes center stage.<br>
20 We've got two fantastic plugins to kick things off (one practical, one for a playful twist).<br>
21 Join us on this exciting journey and unlock new possibilities for your website!<br><br>";
22 $p->do_list();
23 } else {
24 echo "Oops! Could not find plugins list. This is an upstream error, which means there is nothing wrong<br>
25 on your panel, it just means we can't check the plugins information webpage for some reason.<br>
26 Nothing to worry about! Try again later!";
27 }
28 require_once "../inc/footer.php";
29
30?>
31
e47cb29f 32<script>
fae5cd15
VP
33
34 const ibtns = document.querySelectorAll(".btn-install-plugin");
35 ibtns.forEach((ib) => {
36 ib.addEventListener('click', (e) => {
fae5cd15
VP
37 if (ib.innerHTML !== "Install" && ib.innerHTML !== "Uninstall") // some point between, don't do anything
38 {}
39 else if (ib.innerHTML == "Install") // install button pressed!
40 {
41 let req = requestInstall(ib.id.slice(0,-7))
42 if (req == true)
43 {
44 ib.classList.replace("btn-primary", "btn-secondary");
45 ib.innerHTML = "Installing...";
46 }
47 else
48 {
49 let uhoh = new bsModal("Error", "Could not install: "+req, "", null, false, true);
50 }
51 }
52 else if (ib.innerHTML == "Uninstall")
53 {
54 let req = requestInstall(ib.id.slice(0,-7), true); // true = uninstall
55 if (req == true)
56 {
57 ib.classList.replace("btn-outline-danger", "btn-secondary");
58 ib.innerHTML = "Uninstalling...";
59 }
60 else
61 {
62 let uhoh = new bsModal("Error", "Could not uninstall: "+req, "", null, false, true);
63 }
64 }
65 });
66 })
67 const installed = document.querySelectorAll(".installed");
68 installed.forEach((el) => {
69 let btn = document.getElementById(el.id + 'install');
70 btn.classList.replace("btn-primary", "btn-outline-danger");
71 btn.innerHTML = "Uninstall";
72 });
73
fae5cd15 74
fae5cd15
VP
75
76 const infoButtons = document.querySelectorAll('.more-info');
77 infoButtons.forEach((el) => {
78 el.addEventListener('click', (event) => {
be5ea960 79 create_plugin_info_modal(el.id);
fae5cd15
VP
80
81 });
82 });
83</script>