Implement button disabling during save operations

Co-authored-by: naielv <109038805+naielv@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-01-21 11:46:16 +00:00
parent 07d657002e
commit 9e7f8ebd1f
8 changed files with 130 additions and 10 deletions

View File

@@ -199,6 +199,13 @@ PAGES.aulas = {
}
})();
document.getElementById(btn_guardar).onclick = () => {
// Disable button to prevent double-clicking
var guardarBtn = document.getElementById(btn_guardar);
if (guardarBtn.disabled) return;
guardarBtn.disabled = true;
guardarBtn.style.opacity = "0.5";
var data = {
Solicitante: document.getElementById(field_autor).value,
Contenido: document.getElementById(field_contenido).value,
@@ -211,7 +218,12 @@ PAGES.aulas = {
document.getElementById("actionStatus").style.display = "none";
setUrlHash("aulas,solicitudes");
}, SAVE_WAIT);
}).catch((e) => { console.warn('DB.put error', e); });
}).catch((e) => {
console.warn('DB.put error', e);
guardarBtn.disabled = false;
guardarBtn.style.opacity = "1";
document.getElementById("actionStatus").style.display = "none";
});
};
document.getElementById(btn_borrar).onclick = () => {
if (confirm("¿Quieres borrar esta solicitud?") == true) {
@@ -330,6 +342,13 @@ PAGES.aulas = {
}
})();
document.getElementById(btn_guardar).onclick = () => {
// Disable button to prevent double-clicking
var guardarBtn = document.getElementById(btn_guardar);
if (guardarBtn.disabled) return;
guardarBtn.disabled = true;
guardarBtn.style.opacity = "0.5";
var data = {
Autor: document.getElementById(field_autor).value,
Contenido: document.getElementById(field_contenido).value,
@@ -343,7 +362,12 @@ PAGES.aulas = {
document.getElementById("actionStatus").style.display = "none";
setUrlHash("aulas,informes");
}, SAVE_WAIT);
}).catch((e) => { console.warn('DB.put error', e); });
}).catch((e) => {
console.warn('DB.put error', e);
guardarBtn.disabled = false;
guardarBtn.style.opacity = "1";
document.getElementById("actionStatus").style.display = "none";
});
};
document.getElementById(btn_borrar).onclick = () => {
if (confirm("¿Quieres borrar este informe?") == true) {

View File

@@ -122,6 +122,10 @@ PAGES.avisos = {
}
})();
document.getElementById(btn_guardar).onclick = () => {
// Disable button to prevent double-clicking
var guardarBtn = document.getElementById(btn_guardar);
if (guardarBtn.disabled) return;
if (document.getElementById(field_origen).value == "") {
alert("¡Hay que elegir una persona de origen!");
return;
@@ -130,6 +134,10 @@ PAGES.avisos = {
alert("¡Hay que elegir una persona de origen!");
return;
}
guardarBtn.disabled = true;
guardarBtn.style.opacity = "0.5";
var data = {
Fecha: document.getElementById(field_fecha).value,
Origen: document.getElementById(field_origen).value,
@@ -148,7 +156,12 @@ PAGES.avisos = {
document.getElementById("actionStatus").style.display = "none";
setUrlHash("avisos");
}, SAVE_WAIT);
}).catch((e) => { console.warn('DB.put error', e); });
}).catch((e) => {
console.warn('DB.put error', e);
guardarBtn.disabled = false;
guardarBtn.style.opacity = "1";
document.getElementById("actionStatus").style.display = "none";
});
};
document.getElementById(btn_borrar).onclick = () => {
if (confirm("¿Quieres borrar esta notificación?") == true) {

View File

@@ -44,6 +44,13 @@ PAGES.comedor = {
}
});
document.getElementById(btn_guardar).onclick = () => {
// Disable button to prevent double-clicking
var guardarBtn = document.getElementById(btn_guardar);
if (guardarBtn.disabled) return;
guardarBtn.disabled = true;
guardarBtn.style.opacity = "0.5";
const newDate = document.getElementById(field_fecha).value;
var data = {
Fecha: newDate,
@@ -62,7 +69,12 @@ PAGES.comedor = {
document.getElementById("actionStatus").style.display = "none";
setUrlHash("comedor");
}, SAVE_WAIT);
}).catch((e) => { console.warn('DB.put error', e); });
}).catch((e) => {
console.warn('DB.put error', e);
guardarBtn.disabled = false;
guardarBtn.style.opacity = "1";
document.getElementById("actionStatus").style.display = "none";
});
};
document.getElementById(btn_borrar).onclick = () => {
if (confirm("¿Quieres borrar esta entrada?") == true) {

View File

@@ -82,6 +82,13 @@ PAGES.materiales = {
}
});
document.getElementById(btn_guardar).onclick = () => {
// Disable button to prevent double-clicking
var guardarBtn = document.getElementById(btn_guardar);
if (guardarBtn.disabled) return;
guardarBtn.disabled = true;
guardarBtn.style.opacity = "0.5";
var data = {
Nombre: document.getElementById(field_nombre).value,
Unidad: document.getElementById(field_unidad).value,
@@ -98,7 +105,12 @@ PAGES.materiales = {
document.getElementById("actionStatus").style.display = "none";
setUrlHash("materiales");
}, SAVE_WAIT);
}).catch((e) => { console.warn('DB.put error', e); });
}).catch((e) => {
console.warn('DB.put error', e);
guardarBtn.disabled = false;
guardarBtn.style.opacity = "1";
document.getElementById("actionStatus").style.display = "none";
});
};
document.getElementById(btn_borrar).onclick = () => {
if (confirm("¿Quieres borrar este material?") == true) {

View File

@@ -136,6 +136,13 @@ PAGES.notas = {
e.target.value = '';
});
document.getElementById(btn_guardar).onclick = () => {
// Disable button to prevent double-clicking
var guardarBtn = document.getElementById(btn_guardar);
if (guardarBtn.disabled) return;
guardarBtn.disabled = true;
guardarBtn.style.opacity = "0.5";
var data = {
Autor: document.getElementById(field_autor).value,
Contenido: document.getElementById(field_contenido).value,
@@ -180,8 +187,18 @@ PAGES.notas = {
document.getElementById("actionStatus").style.display = "none";
setUrlHash("notas");
}, SAVE_WAIT);
}).catch((e) => { console.warn('Attachment upload error', e); document.getElementById("actionStatus").style.display = "none"; });
}).catch((e) => { console.warn('DB.put error', e); document.getElementById("actionStatus").style.display = "none"; });
}).catch((e) => {
console.warn('Attachment upload error', e);
document.getElementById("actionStatus").style.display = "none";
guardarBtn.disabled = false;
guardarBtn.style.opacity = "1";
});
}).catch((e) => {
console.warn('DB.put error', e);
document.getElementById("actionStatus").style.display = "none";
guardarBtn.disabled = false;
guardarBtn.style.opacity = "1";
});
};
document.getElementById(btn_borrar).onclick = () => {
if (confirm("¿Quieres borrar esta nota?") == true) {

View File

@@ -320,6 +320,11 @@ PAGES.pagos = {
// Confirm final transaction button
document.getElementById(btn_confirm + "2").onclick = () => {
// Disable button to prevent double-clicking
var confirmBtn = document.getElementById(btn_confirm + "2");
if (confirmBtn.disabled) return;
confirmBtn.disabled = true;
confirmBtn.style.opacity = "0.5";
processTransaction();
};
@@ -1311,6 +1316,10 @@ PAGES.pagos = {
// Save button
document.getElementById(btn_save).onclick = () => {
// Disable button to prevent double-clicking
var saveBtn = document.getElementById(btn_save);
if (saveBtn.disabled) return;
var tipo = document.getElementById(field_tipo).value;
var monto = parseFloat(document.getElementById(field_monto).value);
var personaId = document.getElementById(field_persona).value;
@@ -1350,6 +1359,9 @@ PAGES.pagos = {
return;
}
saveBtn.disabled = true;
saveBtn.style.opacity = "0.5";
// Update transaction data
var updatedData = {
...originalData,

View File

@@ -147,6 +147,13 @@ PAGES.personas = {
reader.readAsDataURL(file);
});
document.getElementById(btn_guardar).onclick = () => {
// Disable button to prevent double-clicking
var guardarBtn = document.getElementById(btn_guardar);
if (guardarBtn.disabled) return;
guardarBtn.disabled = true;
guardarBtn.style.opacity = "0.5";
var dt = new FormData(pdel);
var data = {
Nombre: document.getElementById(field_nombre).value,
@@ -173,8 +180,18 @@ PAGES.personas = {
document.getElementById("actionStatus").style.display = "none";
setUrlHash("personas");
}, SAVE_WAIT);
}).catch((e) => { console.warn('putAttachment error', e); document.getElementById("actionStatus").style.display = "none"; });
}).catch((e) => { console.warn('DB.put error', e); document.getElementById("actionStatus").style.display = "none"; });
}).catch((e) => {
console.warn('putAttachment error', e);
document.getElementById("actionStatus").style.display = "none";
guardarBtn.disabled = false;
guardarBtn.style.opacity = "1";
});
}).catch((e) => {
console.warn('DB.put error', e);
document.getElementById("actionStatus").style.display = "none";
guardarBtn.disabled = false;
guardarBtn.style.opacity = "1";
});
};
document.getElementById(btn_ver_monedero).onclick = () => {
setUrlHash("pagos"); // Navigate to pagos and show transactions for this person

View File

@@ -99,10 +99,18 @@ PAGES.supercafe = {
}
});
document.getElementById(btn_guardar).onclick = () => {
// Disable button to prevent double-clicking
var guardarBtn = document.getElementById(btn_guardar);
if (guardarBtn.disabled) return;
if (document.getElementById(field_persona).value == "") {
alert("¡Hay que elegir una persona!");
return;
}
guardarBtn.disabled = true;
guardarBtn.style.opacity = "0.5";
var data = {
Fecha: document.getElementById(field_fecha).value,
Persona: document.getElementById(field_persona).value,
@@ -119,7 +127,12 @@ PAGES.supercafe = {
document.getElementById("actionStatus").style.display = "none";
setUrlHash("supercafe");
}, SAVE_WAIT);
}).catch((e) => { console.warn('DB.put error', e); });
}).catch((e) => {
console.warn('DB.put error', e);
guardarBtn.disabled = false;
guardarBtn.style.opacity = "1";
document.getElementById("actionStatus").style.display = "none";
});
};
document.getElementById(btn_borrar).onclick = () => {
if (