/** * Admin Panel - HTML builder for user management */ const { buildHeader, buildFooter, buildHead } = require('./ui-template'); const { PANELS, DEFAULT_PERMISSIONS } = require('./panels'); function buildAdminHTML(agentes, admin) { const now = new Date().toLocaleString('pt-BR'); // Precompute permissions JSON for each agent row const agentesWithPerms = agentes.map(a => { let perms = []; try { perms = JSON.parse(a.permissions || '[]'); } catch(e) {} return { ...a, _perms: perms }; }); const pageCSS = ` `; // Panel label map for badges const panelLabels = {}; PANELS.forEach(p => { panelLabels[p.key] = p.label; }); return `
${buildHead('Usuarios', pageCSS)} ${buildHeader({ role: admin.role || 'admin', userName: admin.nome, activePage: 'users', permissions: admin.permissions || [] })}| ID | Nome | Role | Permissoes | Agente ID | Status | Criado em | Acoes | |
|---|---|---|---|---|---|---|---|---|
| ${a.id} | ${a.nome} | ${a.email} | ${a.role === 'admin' ? 'Admin' : a.role === 'corporate' ? 'Corporate' : 'Agente'} | ${a._perms.map(k => '' + (panelLabels[k] || k) + '').join(' ')} | ${a.agente_id || '-'} | ${a.ativo ? 'Ativo' : 'Inativo'} | ${a.created_at ? new Date(a.created_at).toLocaleDateString('pt-BR') : '-'} | ${a.agente_id ? `Emular` : ''} |