From 86740e0e02b0cf1eec84f89fbeec689153360312 Mon Sep 17 00:00:00 2001 From: Tiago Date: Sat, 10 Oct 2026 16:48:31 -0300 Subject: [PATCH] feat(master): substituir botoes de acao por icones de editar ver e excluir --- src/main/webapp/master/clientes.html | 2 +- src/main/webapp/master/clientes.js | 27 ++++++++++++++++++++++++++- 2 files changed, 27 insertions(+), 2 deletions(-) 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=()=>{