formularios: agregar botón Clonar para duplicar plantillas
- save_formulario.php: manejo de {clonar:true} → crea copia con "Copia de [nombre]"
- lab_formularios.php: botón icono copy en cada tarjeta + función clonarFormulario()
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
17703f0157
commit
20146535c7
@@ -445,6 +445,8 @@ function renderFormularios() {
|
||||
<i class="fas fa-paper-plane me-1"></i>Enviar
|
||||
</button>
|
||||
${PUEDE_ESCRIBIR ? `
|
||||
<button class="btn btn-sm btn-outline-secondary" onclick="clonarFormulario(${f.id},'${esc(f.nombre)}')"
|
||||
title="Clonar formulario"><i class="fas fa-copy"></i></button>
|
||||
<button class="btn btn-sm btn-outline-primary" onclick="builder.editar(${f.id})"
|
||||
title="Editar diseño"><i class="fas fa-edit"></i></button>
|
||||
<button class="btn btn-sm btn-outline-danger" onclick="confirmarBorrar(${f.id},'${esc(f.nombre)}')"
|
||||
@@ -456,6 +458,21 @@ function renderFormularios() {
|
||||
`).join('');
|
||||
}
|
||||
|
||||
async function clonarFormulario(id, nombre) {
|
||||
if (!confirm(`¿Clonar el formulario "${nombre}"?\nSe creará una copia con el nombre "Copia de ${nombre}".`)) return;
|
||||
const r = await fetch('api/lab/save_formulario.php', {
|
||||
method:'POST', headers:{'Content-Type':'application/json'},
|
||||
body: JSON.stringify({ id, clonar: true }),
|
||||
});
|
||||
const d = await r.json();
|
||||
if (d.success || d.ok) {
|
||||
showToast('✅ Formulario clonado');
|
||||
cargarFormularios();
|
||||
} else {
|
||||
alert(d.error || 'Error al clonar');
|
||||
}
|
||||
}
|
||||
|
||||
async function confirmarBorrar(id, nombre) {
|
||||
if (!confirm(`¿Eliminar el formulario "${nombre}"?\nLos envíos existentes se conservarán.`)) return;
|
||||
const r = await fetch('api/lab/save_formulario.php', {
|
||||
|
||||
Reference in New Issue
Block a user