Admin/Contas
Exibindo 8 contas
Usuário / Domínio Pacote Disco E-mails Bancos DB Criado em Status Ações
Selecionado: 0 conta(s)
function pkgBadge(p) { const map = { Pro:'badge-info', Starter:'badge-neutral', Business:'badge-warning', Unlimited:'badge-success' }; return `${p}`; } function statusBadge(s) { const map = { Ativo:'badge-success', Suspenso:'badge-warning', Cancelado:'badge-danger' }; return ` ${s}`; } function diskBar(used, total) { const pct = total === 999 ? 10 : Math.round(used/total*100); const cls = pct > 85 ? 'warning' : pct > 60 ? '' : 'success'; return `
${used}/${total===999?'∞':total} GB
`; } function renderTable(data) { const tbody = document.getElementById('accounts-body'); tbody.innerHTML = data.map(a => `
${a.user}
${a.domain}
${pkgBadge(a.pkg)} ${diskBar(a.diskUsed, a.diskTotal)} ${a.emails} ${a.dbs} ${a.created} ${statusBadge(a.status)}
${a.status==='Ativo' ? `` : ``}
`).join(''); document.getElementById('count-label').textContent = `Exibindo ${data.length} contas`; } function filterAccounts() { const q = document.getElementById('search-accounts').value.toLowerCase(); const st = document.getElementById('filter-status').value; const pk = document.getElementById('filter-package').value; const filtered = accounts.filter(a => (a.user.includes(q) || a.domain.includes(q)) && (!st || a.status === st) && (!pk || a.pkg === pk) ); renderTable(filtered); } function openEdit(domain) { document.getElementById('edit-domain').value = domain; Panel.openModal('modal-edit-account'); } function addAccount() { Panel.toast('Conta criada com sucesso!','success'); Panel.closeModal('modal-new-account'); } function toggleAll(cb) { document.querySelectorAll('.row-check').forEach(c => c.checked = cb.checked); updateSelected(); } function updateSelected() { const count = document.querySelectorAll('.row-check:checked').length; document.getElementById('selected-count').textContent = count; document.getElementById('bulk-suspend-btn').disabled = count === 0; } function bulkAction(action) { const count = document.querySelectorAll('.row-check:checked').length; Panel.toast(`${count} conta(s) ${action==='suspend'?'suspensas':'processadas'}`, 'warning'); } renderTable(accounts);