import { User } from '../database/config.js'; import { readFileSync } from 'fs'; // Navbar export async function Navbar (req) { let username = req.session.username; let language = await getLanguage(req); // Check if the user wants to hide their profile name. if (req.session.userID != '00000000-0000-0000-0000-000000000000') { let user = await User.findOne({ where: { userID: req.session.userID }}); let preferences = JSON.parse(user.preferences); if (preferences.hide_profile == true) { username = 'Anon'; } } let navbar = readFileSync('./views/partials/navbar.html', 'utf8'); if (language == 'english') { navbar = navbar.replace(/Username/g, username); navbar = navbar.replace(/Userrole/g, req.session.role); return navbar; } else { let lang = readFileSync(`./languages/${language}.json`, 'utf8'); lang = JSON.parse(lang); navbar = navbar.replace(/Dashboard/g, lang.Dashboard); navbar = navbar.replace(/Images/g, lang.Images); navbar = navbar.replace(/Volumes/g, lang.Volumes); navbar = navbar.replace(/Networks/g, lang.Networks); navbar = navbar.replace(/Apps/g, lang.Apps); navbar = navbar.replace(/Users/g, lang.Users); navbar = navbar.replace(/Syslogs/g, lang.Syslogs); navbar = navbar.replace(/Username/g, username); navbar = navbar.replace(/Userrole/g, req.session.role); return navbar; } } // Header Alert export function Alert (type, message) { return `
`; } export async function getLanguage (req) { // No userID if authentication is disabled. if (req.session.userID == '00000000-0000-0000-0000-000000000000') { let user = await User.findOne({ where: { role: 'admin' }}); let preferences = JSON.parse(user.preferences); return preferences.language; } else { let user = await User.findOne({ where: { userID: req.session.userID }}); let preferences = JSON.parse(user.preferences); return preferences.language; } } export function Capitalize (string) { return string.charAt(0).toUpperCase() + string.slice(1); }