feat: Añadir soporte para navegación de fragmentos en el panel de control y mejorar la gestión de roles de staff

This commit is contained in:
Shni
2025-10-15 01:24:21 -05:00
parent 6ce7170bd6
commit 7dc556e16f
2 changed files with 100 additions and 2 deletions

View File

@@ -1192,6 +1192,42 @@ export const server = createServer(
// ignore; fallback to no roles
}
// Render dashboard with selected guild context; show dashboard nav
// If caller requested a fragment, render only the page template (no layout)
const fragment =
url.searchParams.get("fragment") || url.searchParams.get("ajax");
if (fragment) {
const pageFile = path.join(viewsDir, "pages", `${page}.ejs`);
const pageLocals = {
appName: pkg.name ?? "Amayo Bot",
user,
guilds,
selectedGuild: guildId,
selectedGuildId: guildId,
selectedGuildName,
guildConfig,
guildRoles,
page,
hideNavbar: false,
useDashboardNav: true,
};
try {
const fragmentHtml = await ejs.renderFile(pageFile, pageLocals, {
async: true,
});
res.writeHead(
200,
applySecurityHeadersForRequest(req, {
"Content-Type": "text/html; charset=utf-8",
})
);
res.end(fragmentHtml);
return;
} catch (err) {
console.warn("Failed rendering page fragment:", err);
// fallthrough to full render
}
}
await renderTemplate(req, res, "dashboard", {
appName: pkg.name ?? "Amayo Bot",
user,