File size: 1,841 Bytes
a6db6a6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
document.addEventListener("DOMContentLoaded", () => {
  const userAccounts = document.getElementById("user-accounts");

  userAccounts.addEventListener("click", async (e) => {
    const username = e.target.dataset.username;

    if (e.target.classList.contains("update-storage")) {
      const newLimit = prompt("Enter new storage limit in GB:");
      if (newLimit) {
        try {
          const response = await axios.post("/admin/update_storage", {
            username: username,
            new_limit: newLimit,
          });
          alert(response.data.message);
          location.reload();
        } catch (error) {
          alert(
            "Failed to update storage: " +
              (error.response?.data?.error || error.message),
          );
        }
      }
    } else if (e.target.classList.contains("toggle-ban")) {
      const currentStatus = e.target.dataset.banned === "true";
      const newStatus = !currentStatus;
      try {
        const response = await axios.post("/admin/ban_user", {
          username: username,
          ban_status: newStatus,
        });
        alert(response.data.message);
        location.reload();
      } catch (error) {
        alert(
          "Failed to update ban status: " +
            (error.response?.data?.error || error.message),
        );
      }
    } else if (e.target.classList.contains("delete-account")) {
      if (
        confirm(`Are you sure you want to delete the account for ${username}?`)
      ) {
        try {
          const response = await axios.delete(`/admin/delete/${username}`);
          alert(response.data.message);
          location.reload();
        } catch (error) {
          alert(
            "Failed to delete account: " +
              (error.response?.data?.error || error.message),
          );
        }
      }
    }
  });
});