añadida pestaña de traducido

This commit is contained in:
jlimolina 2025-10-13 01:23:35 +02:00
parent a9c1e16bdd
commit 0bfeb610a9
4 changed files with 179 additions and 121 deletions

View file

@ -6,11 +6,8 @@
<h2><i class="fas fa-filter" style="color: var(--secondary-color); margin-right: 10px;"></i>Filtrar Noticias</h2>
<form method="get" action="{{ url_for('home') }}" id="filter-form">
<!-- Campos ocultos para paginación -->
<input type="hidden" name="page" id="page" value="{{ page or 1 }}">
<input type="hidden" name="per_page" id="per_page" value="{{ per_page or 20 }}">
<!-- Idioma/traducción por defecto -->
<input type="hidden" name="lang" id="lang" value="{{ (lang or 'es') }}">
{% if not use_tr %}
<input type="hidden" name="orig" id="orig" value="1">
@ -68,7 +65,6 @@
</form>
</div>
<!-- Barra de estado de traducción -->
<div class="card" style="margin-top: 16px; padding: 12px;">
{% if use_tr %}
<div class="alert alert-info" style="margin:0;">
@ -84,7 +80,6 @@
</div>
<div id="noticias-container" style="margin-top:16px;">
{# El parcial incluye la lista + la paginación #}
{% include '_noticias_list.html' %}
</div>
@ -111,7 +106,6 @@ document.addEventListener('DOMContentLoaded', function() {
}
async function cargarNoticias(keepPage) {
// Si cambiamos filtros manualmente, reiniciamos a página 1
if (!keepPage) pageInput.value = 1;
const formData = new FormData(form);
@ -135,40 +129,17 @@ document.addEventListener('DOMContentLoaded', function() {
}
}
// Envío del formulario (filtrar) -> page = 1
form.addEventListener('submit', function(e) {
e.preventDefault();
cargarNoticias(false);
});
// Clic en enlaces de paginación (delegación)
document.addEventListener('click', function(e) {
const link = e.target.closest('a.page-link');
if (link) {
// soporta data-page o parseo del href
let nextPage = link.dataset.page;
if (!nextPage) {
try {
const u = new URL(link.href);
nextPage = u.searchParams.get('page');
} catch(_) {}
}
if (nextPage) {
e.preventDefault();
pageInput.value = nextPage;
cargarNoticias(true);
}
}
});
// Conmutar traducciones <-> originales manteniendo filtros
const toggleOrig = document.getElementById('toggle-orig');
const toggleTr = document.getElementById('toggle-tr');
if (toggleOrig) {
toggleOrig.addEventListener('click', function(e) {
e.preventDefault();
// orig=1 fuerza originales
origInput.value = '1';
cargarNoticias(false);
});
@ -176,22 +147,18 @@ document.addEventListener('DOMContentLoaded', function() {
if (toggleTr) {
toggleTr.addEventListener('click', function(e) {
e.preventDefault();
// orig vacío => usar traducciones
origInput.value = '';
// asegúrate de tener lang (por si el back usa default)
if (!langInput.value) langInput.value = 'es';
cargarNoticias(false);
});
}
// Inicializaciones
continenteSelect.addEventListener('change', function() {
filtrarPaises();
// al cambiar continente, forzamos recarga desde página 1
cargarNoticias(false);
});
filtrarPaises(); // Ejecutar al inicio
filtrarPaises();
});
</script>
{% endblock %}