Carpeta js

This commit is contained in:
Axel Axt
2026-08-04 19:45:50 -03:00
parent 8bd815f888
commit 15281e9244
34 changed files with 4417 additions and 0 deletions
+113
View File
@@ -0,0 +1,113 @@
// Guarda referencia al form original (si existe)
let formConfirmacion = null;
// Acción dinámica a ejecutar (opt del backend)
let action = null;
// Objeto donde se copian todos los data-* del botón
let dataset = {};
// Recorre todos los botones que disparan el modal
document.querySelectorAll(".btnConfirmar").forEach(boton => {
boton.addEventListener("click", function () {
// Inserta el mensaje en el modal
document.getElementById("modalMensaje").textContent = this.dataset.mensaje;
// Inserta el título en el modal
document.getElementById("modalTitulo").textContent = this.dataset.titulo;
// Busca si el botón pertenece a un form existente
formConfirmacion = this.closest("form");
// Obtiene la acción dinámica (si existe)
action = this.dataset.action || null;
// Copia TODOS los data-* del botón a un objeto JS
dataset = { ...this.dataset };
});
});
// Evento del botón "Confirmar" dentro del modal
document.getElementById("modalBtnConfirmar").addEventListener("click", function (e) {
// Evita el submit automático del botón
e.preventDefault();
// CASO 1: FORM EXISTENTE
// Si hay un form padre y no hay acción dinámica
if (formConfirmacion && !action) {
// Envía directamente ese form
formConfirmacion.submit();
return;
}
// CASO 2: FORM DINÁMICO
if (action) {
// Form global del modal
const form = document.getElementById("formConfirmacionGlobal");
// Contenedor donde se insertan inputs ocultos
const container = document.getElementById("modalDynamicInputs");
// Define la URL de envío con el parámetro opt
form.action = `index.php?opt=${action}`;
// Limpia inputs anteriores para evitar duplicados
container.innerHTML = '';
// Recorre todas las claves del dataset
Object.keys(dataset).forEach(key => {
// Ignora atributos que no deben enviarse
if ([
'action',
'mensaje',
'titulo',
'bsToggle',
'bsTarget'
].includes(key)) return;
// Crea un input hidden por cada data-*
const input = document.createElement('input');
input.type = 'hidden'; // oculto
input.name = key; // nombre (ej: mano_obra, etc)
input.value = dataset[key]; // valor correspondiente
// Lo agrega al form
container.appendChild(input);
});
// Envía el form dinámico
form.submit();
}
});