From b2fa6d1bb9a1f18a934a8e5553f199e5ad984e72 Mon Sep 17 00:00:00 2001 From: Tiago Date: Sat, 10 Oct 2026 16:43:15 -0300 Subject: [PATCH] feat(master): abrir formulario de novo cliente em modal popup --- src/main/webapp/master/clientes.html | 46 +++++++++++++++------------- src/main/webapp/master/clientes.js | 24 +++++++++------ 2 files changed, 40 insertions(+), 30 deletions(-) diff --git a/src/main/webapp/master/clientes.html b/src/main/webapp/master/clientes.html index e545c20..0182513 100644 --- a/src/main/webapp/master/clientes.html +++ b/src/main/webapp/master/clientes.html @@ -22,7 +22,7 @@ - @@ -32,26 +32,6 @@ - -
@@ -67,6 +47,30 @@
+ + + diff --git a/src/main/webapp/master/clientes.js b/src/main/webapp/master/clientes.js index a25af14..a0f6fa0 100644 --- a/src/main/webapp/master/clientes.js +++ b/src/main/webapp/master/clientes.js @@ -1,4 +1,4 @@ -const empresaForm=document.querySelector('#empresa-form'),rows=document.querySelector('#rows'),busca=document.querySelector('#busca'),planoSelect=document.querySelector('#plano-select');let empresas=[],planos=[],modo=null,selecionado=null; +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; 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('')} @@ -18,16 +18,22 @@ window.alternarBusca=()=>{ } }; +window.abrirModalCadastro=()=>{ + cadastroModal?.classList.remove('hidden'); + empresaForm.querySelector('input[name="slug"]')?.focus(); +}; + +window.fecharModalCadastro=()=>{ + cadastroModal?.classList.add('hidden'); +}; + window.alternarCadastro=(forcar)=>{ - const wrap=document.querySelector('#cadastro-wrap'); - if(!wrap)return; if(typeof forcar==='boolean'){ - wrap.classList.toggle('hidden',!forcar); + if(forcar) abrirModalCadastro(); + else fecharModalCadastro(); }else{ - wrap.classList.toggle('hidden'); - } - if(!wrap.classList.contains('hidden')){ - empresaForm.querySelector('input[name="slug"]')?.focus(); + if(cadastroModal?.classList.contains('hidden')) abrirModalCadastro(); + else fecharModalCadastro(); } }; @@ -36,7 +42,7 @@ empresaForm.onsubmit=async e=>{ try{ await Api.post('/api/master/empresas',Util.formData(empresaForm)); empresaForm.reset(); - alternarCadastro(false); + fecharModalCadastro(); Util.toast('Cliente cadastrado'); load(); }catch(err){