index.js 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. import express from "express";
  2. export const router = express.Router();
  3. // Permissions middleware
  4. import { adminOnly, sessionCheck, permissionCheck } from "../utils/permissions.js";
  5. // Controllers
  6. import { Login, submitLogin, Logout } from "../controllers/login.js";
  7. import { Register, submitRegister } from "../controllers/register.js";
  8. import { Dashboard, DashboardAction, Stats, Chart, SSE, UpdatePermissions } from "../controllers/dashboard.js";
  9. import { Apps, appSearch, InstallModal, ImportModal, LearnMore, Upload, removeTemplate } from "../controllers/apps.js";
  10. import { Users } from "../controllers/users.js";
  11. import { Images } from "../controllers/images.js";
  12. import { Networks, removeNetwork } from "../controllers/networks.js";
  13. import { Volumes, addVolume, removeVolume } from "../controllers/volumes.js";
  14. import { Account } from "../controllers/account.js";
  15. import { Settings, updateSettings } from "../controllers/settings.js";
  16. import { Supporters, Thanks } from "../controllers/supporters.js";
  17. import { Syslogs } from "../controllers/syslogs.js";
  18. import { Install } from "../utils/install.js"
  19. import { Uninstall } from "../utils/uninstall.js"
  20. // Routes
  21. router.get("/login", Login);
  22. router.post("/login", submitLogin);
  23. router.get("/logout", Logout);
  24. router.get("/register", Register);
  25. router.post("/register", submitRegister);
  26. router.get("/", sessionCheck, Dashboard);
  27. router.get("/dashboard", sessionCheck, Dashboard);
  28. router.post("/dashboard/:action", sessionCheck, permissionCheck, DashboardAction);
  29. router.get("/sse", sessionCheck, SSE);
  30. router.post("/updatePermissions", adminOnly, UpdatePermissions);
  31. router.get("/stats", sessionCheck, Stats);
  32. router.get("/chart", sessionCheck, Chart);
  33. router.get("/images", adminOnly, Images);
  34. router.post("/images/:action", adminOnly, Images);
  35. router.get("/volumes", adminOnly, Volumes);
  36. router.post("/volumes", adminOnly, Volumes);
  37. router.post("/addVolume", adminOnly, addVolume);
  38. router.post("/removeVolume", adminOnly, removeVolume);
  39. router.get("/networks", adminOnly, Networks);
  40. router.post("/networks", adminOnly, Networks);
  41. router.post("/removeNetwork", adminOnly, removeNetwork);
  42. router.get("/apps/:page?/:template?", adminOnly, Apps);
  43. router.post("/apps", adminOnly, appSearch);
  44. router.get("/remove_template/:template", adminOnly, removeTemplate);
  45. router.get("/install_modal", adminOnly, InstallModal)
  46. router.get("/import_modal", adminOnly, ImportModal)
  47. router.get("/learn_more", adminOnly, LearnMore)
  48. router.post("/upload", adminOnly, Upload);
  49. router.get("/users", adminOnly, Users);
  50. router.get("/syslogs", adminOnly, Syslogs);
  51. router.get("/settings", adminOnly, Settings);
  52. router.post("/settings", adminOnly, updateSettings);
  53. router.get("/account", sessionCheck, Account);
  54. router.get("/supporters", sessionCheck, Supporters);
  55. router.post("/thank", sessionCheck, Thanks);
  56. // Utils
  57. router.post("/install", adminOnly, Install);
  58. router.post("/uninstall", adminOnly, Uninstall);
  59. // Search
  60. router.post("/search", function (req, res) {
  61. // Check which page your searching from
  62. let page = (req.header('hx-current-url')).split("/").pop();
  63. // Redirect to the controller
  64. switch(page) {
  65. case "dashboard":
  66. DashboardAction(req, res);
  67. break;
  68. case "images":
  69. Images(req, res);
  70. break;
  71. case "volumes":
  72. Volumes(req, res);
  73. break;
  74. case "networks":
  75. Networks(req, res);
  76. break;
  77. case "apps":
  78. appSearch(req, res);
  79. break;
  80. default:
  81. res.send("Invalid search");
  82. }
  83. });