1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- import express from 'express';
- export const router = express.Router();
- import { Login, submitLogin, Logout } from './controllers/login.js';
- import { Register, submitRegister } from './controllers/register.js';
- import { Dashboard, submitDashboard, ServerMetrics } from './controllers/dashboard.js';
- import { Settings, submitSettings } from './controllers/settings.js';
- import { Images, submitImages } from './controllers/images.js';
- import { Volumes, submitVolumes } from './controllers/volumes.js';
- import { Networks, submitNetworks } from './controllers/networks.js';
- import { Users, submitUsers } from './controllers/users.js';
- import { Apps, submitApps } from './controllers/apps.js';
- import { Account } from './controllers/account.js';
- import { containerAction } from './utils/docker.js';
- import { Preferences, submitPreferences } from './controllers/preferences.js';
- import { sessionCheck, adminOnly, permissionCheck } from './utils/permissions.js';
- router.get('/login', Login);
- router.post('/login', submitLogin);
- router.get('/logout', Logout);
- router.get('/register', Register);
- router.post('/register', submitRegister);
- router.get("/:host?/dashboard", sessionCheck, Dashboard);
- router.get("/server_metrics", sessionCheck, ServerMetrics);
- router.post("/:host?/container/:action", permissionCheck, containerAction);
- router.get('/images', adminOnly, Images);
- router.post('/images', adminOnly, submitImages);
- router.get('/volumes', adminOnly, Volumes);
- router.post('/volumes', adminOnly, submitVolumes);
- router.get('/networks', adminOnly, Networks);
- router.post('/networks', adminOnly, submitNetworks);
- router.get('/settings', adminOnly, Settings);
- router.post('/settings', adminOnly, submitSettings);
- router.get("/apps/:page?/:template?", adminOnly, Apps);
- router.post('/apps', adminOnly, submitApps);
- router.get('/users', adminOnly, Users);
- router.post('/users', adminOnly, submitUsers);
- router.get('/preferences', sessionCheck, Preferences);
- router.post('/preferences', sessionCheck, submitPreferences);
- router.get('/account', sessionCheck, Account);
- // Search
- router.post("/search", function (req, res) {
- // Check which page you're searching from
- let page = (req.header('hx-current-url')).split("/").pop();
- // Redirect to the controller
- switch(page) {
- case "dashboard":
- submitDashboard(req, res);
- break;
- case "images":
- submitImages(req, res);
- break;
- case "volumes":
- submitsubmitVolumes(req, res);
- break;
- case "networks":
- submitNetworks(req, res);
- break;
- case "apps":
- submitappSearch(req, res);
- break;
- default:
- res.send("Invalid search");
- }
- });
- router.get('*', (req, res) => {
- res.redirect('/1/dashboard');
- });
|