function swalFireMessage(icon, title, button, text, timer, showLoading = false) { const swalOptions = { icon: icon, title: title, imageUrl: '/static/imgs/Siac.png', imageWidth: 200, imageHeight: 55, imageAlt: 'Notificaciones SIAC', showConfirmButton: button, text: text, timer: timer, timerProgressBar: true, }; if (showLoading) { swalOptions.showConfirmButton = false; swalOptions.allowOutsideClick = false; swalOptions.didOpen = () => Swal.showLoading(); } return Swal.fire(swalOptions); } function manejarError(xhr) { let data = xhr.responseJSON || {}; if (xhr.status === 400) { swalFireMessage("warning", data["message"] || "Datos inválidos.", true, data["error"] || "", 20000); } else if (xhr.status === 401) { swalFireMessage("warning", data["message"] || "Su sesión ha caducado.", true, "Su sesión ha caducado", 20000); } else if (xhr.status === 403) { swalFireMessage("warning", data["message"] || "No tiene permisos.", true, "No cuenta con permisos para acceder al servicio", 20000); } else if (xhr.status === 404) { swalFireMessage("warning", data["message"] || "Recurso no encontrado.", true, data["error"] || "Recurso no encontrado", 20000); } else if (xhr.status === 409) { swalFireMessage("warning", data["message"] || "Conflicto en la solicitud.", true, data["error"] || "", 20000); } else if (xhr.status === 500) { swalFireMessage("warning", data["message"] || "Error interno del servidor.", true, data["error"] || "Contacte al administrador", 20000); } else if (xhr.status === 504) { swalFireMessage("warning", data["message"] || "Error interno del servidor.", true, data["error"] || "El servidor no recibió una respuesta a tiempo.", 20000); } else { swalFireMessage("error", "Comunicación interrumpida", true, "Contacte al administrador", 20000); } }