Melhora modais e confirmacoes

This commit is contained in:
Tiago
2026-10-09 09:03:22 -03:00
parent 839986a8c8
commit 3d475b72d6
8 changed files with 111 additions and 14 deletions
+2 -2
View File
@@ -9,7 +9,7 @@ function destinatariosLabel(a){return (a.destinatarios||[]).map(x=>x.nome+' ('+x
function diasLabel(v){return String(v||'').split(',').filter(x=>x!=='').map(x=>diasNomes[Number(x)]||x).join(', ')||'-'}
function formHtml(r={}){
const dias=new Set(String(r.dias_semana||'').split(','));
return `<form id="responsavel-form" class="grid cols"><input type="hidden" name="id" value="${r.id||''}"><div class="field"><label>Nome</label><input name="nome" required value="${esc(r.nome||'')}"></div><div class="field"><label>WhatsApp</label><input name="telefone" value="${esc(r.telefone||'')}"></div><div class="field"><label>E-mail</label><input name="email" type="email" value="${esc(r.email||'')}"></div><div class="field"><label>Status</label><select name="status"><option value="ativo" ${r.status==='ativo'||!r.status?'selected':''}>Ativo</option><option value="inativo" ${r.status==='inativo'?'selected':''}>Inativo</option></select></div><div class="field"><label>Dias da semana</label><div class="row compact">${diasNomes.map((d,i)=>`<label><input type="checkbox" name="dias" value="${i}" ${dias.has(String(i))?'checked':''}> ${d}</label>`).join('')}</div></div><div class="row"><button class="btn">${r.id?'Salvar':'Cadastrar'}</button><button class="btn secondary" type="button" onclick="fecharResponsavelModal()">Cancelar</button></div></form>`;
return `<form id="responsavel-form" class="modal-form"><input type="hidden" name="id" value="${r.id||''}"><div class="form-grid"><div class="field"><label>Nome</label><input name="nome" required value="${esc(r.nome||'')}"></div><div class="field"><label>WhatsApp</label><input name="telefone" value="${esc(r.telefone||'')}"></div><div class="field"><label>E-mail</label><input name="email" type="email" value="${esc(r.email||'')}"></div><div class="field"><label>Status</label><select name="status"><option value="ativo" ${r.status==='ativo'||!r.status?'selected':''}>Ativo</option><option value="inativo" ${r.status==='inativo'?'selected':''}>Inativo</option></select></div><div class="field field-wide"><label>Dias da semana</label><div class="check-grid">${diasNomes.map((d,i)=>`<label><input type="checkbox" name="dias" value="${i}" ${dias.has(String(i))?'checked':''}> ${d}</label>`).join('')}</div></div></div><div class="modal-actions"><button class="btn secondary" type="button" onclick="fecharResponsavelModal()">Cancelar</button><button class="btn">${r.id?'Salvar':'Cadastrar'}</button></div></form>`;
}
function renderAssembleias(){
@@ -63,7 +63,7 @@ window.alternarBuscaAssembleias=()=>{
window.abrirNovoResponsavel=()=>abrirResponsavel({});
window.editarResponsavel=id=>{const r=responsaveis.find(x=>Number(x.id)===Number(id));if(r)abrirResponsavel(r)};
window.fecharResponsavelModal=()=>{modal.classList.add('hidden');modalBody.innerHTML=''};
window.excluirResponsavel=async id=>{if(!confirm('Excluir este responsável de assembleia?'))return;try{await Api.request('/api/assembleia-responsaveis/'+id,{method:'DELETE'});Util.toast('Responsável excluído');await loadResponsaveis();await load()}catch(e){Util.toast(e.message,true)}};
window.excluirResponsavel=async id=>{if(!await Util.confirm('Excluir este responsável de assembleia?','Excluir responsável'))return;try{await Api.request('/api/assembleia-responsaveis/'+id,{method:'DELETE'});Util.toast('Responsável excluído');await loadResponsaveis();await load()}catch(e){Util.toast(e.message,true)}};
document.querySelector('#assembleia-search-input')?.addEventListener('input',renderAssembleias);
if(!Auth.isAdminEmpresa())document.querySelector('[onclick="abrirNovoResponsavel()"]')?.classList.add('hidden');