diff --git a/src/main/webapp/master/clientes.html b/src/main/webapp/master/clientes.html
index 0182513..64388c5 100644
--- a/src/main/webapp/master/clientes.html
+++ b/src/main/webapp/master/clientes.html
@@ -40,7 +40,7 @@
Nome |
Status |
Plano |
- Editar |
+ Ações |
diff --git a/src/main/webapp/master/clientes.js b/src/main/webapp/master/clientes.js
index a0f6fa0..365a016 100644
--- a/src/main/webapp/master/clientes.js
+++ b/src/main/webapp/master/clientes.js
@@ -1,4 +1,11 @@
const empresaForm=document.querySelector('#empresa-form'),rows=document.querySelector('#rows'),busca=document.querySelector('#busca'),planoSelect=document.querySelector('#plano-select'),cadastroModal=document.querySelector('#cadastro-modal');let empresas=[],planos=[],modo=null,selecionado=null;
+
+const Icons = {
+ edit: '',
+ eye: '',
+ trash: ''
+};
+
function esc(v){return String(v??'').replace(/[&<>'"]/g,c=>({'&':'&','<':'<','>':'>',"'":''','"':'"'}[c]))}
function planoLabel(p){return `${p.nome} - ${Util.money(p.valor_mensal_centavos)}`}
function planoOptions(valor){return ''+planos.map(p=>``).join('')}
@@ -6,7 +13,25 @@ function renderPlanos(){planoSelect.innerHTML=planoOptions('')}
function match(e,q){if(!q)return true;return [e.slug,e.nome,e.cnpj,e.status,e.plano,e.api_key].join(' ').toLowerCase().includes(q.toLowerCase())}
function statusAction(e){const acao=e.status==='ativa'?'Bloquear':'Ativar';return ``}
function detalheRow(e){if(selecionado!==e.id||!modo)return'';if(modo==='ver')return `${esc(e.nome)}Slug: ${esc(e.slug)} CNPJ: ${esc(e.cnpj||'-')} Status: ${esc(e.status)} Plano: ${e.plano?`${esc(e.plano)} ${e.plano_valor_centavos?'- '+Util.money(e.plano_valor_centavos):''}`:'-'} Conta principal: abra Editar para alterar dados da empresa; funcionarios ficam no acesso da empresa. |
`;return ` |
`}
-function render(){const q=busca.value.trim();const lista=empresas.filter(e=>match(e,q));rows.innerHTML=lista.length?lista.map(e=>`| ${e.slug} | ${e.nome} | ${statusAction(e)} | ${e.plano?`${e.plano} ${e.plano_valor_centavos?'- '+Util.money(e.plano_valor_centavos):''}`:'-'} | |
${detalheRow(e)}`).join(''):'| Nenhum cliente encontrado. |
'}
+
+function render(){
+ const q=busca.value.trim();
+ const lista=empresas.filter(e=>match(e,q));
+ rows.innerHTML=lista.length?lista.map(e=>`
+ | ${e.slug} |
+ ${e.nome} |
+ ${statusAction(e)} |
+ ${e.plano?`${e.plano} ${e.plano_valor_centavos?'- '+Util.money(e.plano_valor_centavos):''}`:'-'} |
+
+
+
+
+
+
+ |
+
${detalheRow(e)}`).join(''):'| Nenhum cliente encontrado. |
';
+}
+
async function load(){try{const [pe,de]=await Promise.all([Api.get('/api/master/planos'),Api.get('/api/master/empresas')]);planos=pe.planos||[];empresas=de.empresas||[];renderPlanos();render()}catch(e){Util.toast(e.message,true)}}
window.alternarBusca=()=>{