En una reciente declaración para EL Cronista que ha generado gran repercusión, Sergio Sasia, líder de la Unión Ferroviaria, admitió que el sistema laboral actual requiere una modernización urgente. Sasia, reconocido por su firme defensa de los derechos de los trabajadores, sorprendió a muchos al expresar que no ve con malos ojos una reforma de las leyes laborales.
1800 ? ' warning' : '');
});
}
function cargarComentarios() {
var xhr = new XMLHttpRequest();
xhr.open('GET', baseUrl + 'ajax-comentarios.php?accion=listar&id_noticia=' + idNoticia, true);
xhr.onload = function () {
document.getElementById('comments-loading').style.display = 'none';
try {
var data = JSON.parse(xhr.responseText);
if (data.ok) {
document.getElementById('comments-count').textContent = data.total;
if (data.comentarios.length === 0) {
document.getElementById('comments-empty').style.display = 'block';
document.getElementById('comments-list').style.display = 'none';
} else {
document.getElementById('comments-empty').style.display = 'none';
document.getElementById('comments-list').style.display = 'block';
renderComentarios(data.comentarios);
}
}
} catch (e) { console.error('Error parsing comments', e); }
};
xhr.send();
}
function renderComentarios(comentarios) {
var html = '';
for (var i = 0; i < comentarios.length; i++) {
html += renderComentario(comentarios[i]);
}
document.getElementById('comments-list').innerHTML = html;
}
function renderComentario(c) {
var html = '
';
return html;
}
// Publicar comentario principal
window.publicarComentario = function (idPadre) {
var textarea = idPadre ? document.querySelector('#reply-form-' + idPadre + ' textarea') : document.getElementById('comentario-texto');
var texto = textarea ? textarea.value.trim() : '';
if (!texto) { mostrarToast('Escribí un comentario', 'error'); return; }
var btn = idPadre ? document.querySelector('#reply-form-' + idPadre + ' .btn-publicar-reply') : document.getElementById('btn-publicar');
btn.disabled = true;
btn.textContent = 'Publicando...';
var formData = new FormData();
formData.append('accion', 'publicar');
formData.append('id_noticia', idNoticia);
formData.append('comentario', texto);
if (idPadre) formData.append('id_padre', idPadre);
var xhr = new XMLHttpRequest();
xhr.open('POST', baseUrl + 'ajax-comentarios.php', true);
xhr.onload = function () {
btn.disabled = false;
btn.textContent = idPadre ? 'Responder' : 'Publicar';
try {
var data = JSON.parse(xhr.responseText);
if (data.ok) {
mostrarToast('Comentario publicado', 'success');
if (!idPadre && textarea) textarea.value = '';
var counter = document.getElementById('char-count');
if (counter) counter.textContent = '0 / 2000';
cargarComentarios();
} else {
mostrarToast(data.error || 'Error al publicar', 'error');
}
} catch (e) { mostrarToast('Error de conexión', 'error'); }
};
xhr.onerror = function () {
btn.disabled = false;
btn.textContent = idPadre ? 'Responder' : 'Publicar';
mostrarToast('Error de conexión', 'error');
};
xhr.send(formData);
};
// Responder
window.responderA = function (idComentario) {
// Cerrar otros reply forms
var existentes = document.querySelectorAll('.reply-form-inline');
for (var k = 0; k < existentes.length; k++) existentes[k].remove();
var container = document.getElementById('reply-form-' + idComentario);
if (!container) return;
container.innerHTML = '
';
container.querySelector('textarea').focus();
};
// Like / Dislike
var reaccionando = false;
window.reaccionar = function (idComentario, tipo) {
if (reaccionando) return;
var btn = event.currentTarget;
reaccionando = true;
var formData = new FormData();
formData.append('accion', tipo);
formData.append('id_comentario', idComentario);
var xhr = new XMLHttpRequest();
xhr.open('POST', baseUrl + 'ajax-comentarios.php', true);
xhr.onload = function () {
reaccionando = false;
try {
var data = JSON.parse(xhr.responseText);
if (data.ok) {
var elLikes = document.getElementById('likes-' + idComentario);
var elDislikes = document.getElementById('dislikes-' + idComentario);
if (elLikes) elLikes.textContent = data.likes;
if (elDislikes) elDislikes.textContent = data.dislikes;
// Cambiar color
var container = btn.closest('.comment-actions');
var btnLike = container.querySelector('button[onclick*="\'like\'"]');
var btnDislike = container.querySelector('button[onclick*="\'dislike\'"]');
if (data.revertido) {
btnLike.classList.remove('active-like');
btnDislike.classList.remove('active-dislike');
} else {
if (tipo === 'like') {
btnLike.classList.add('active-like');
btnDislike.classList.remove('active-dislike');
} else {
btnDislike.classList.add('active-dislike');
btnLike.classList.remove('active-like');
}
}
} else {
mostrarToast(data.error || 'Error', 'error');
}
} catch (e) { }
};
xhr.onerror = function () {
reaccionando = false;
};
xhr.send(formData);
};
// Denunciar
var idDenunciaPendiente = null;
window.denunciar = function (idComentario) {
idDenunciaPendiente = idComentario;
document.getElementById('modal-denunciar').classList.add('active');
};
window.cerrarModalDenuncia = function () {
document.getElementById('modal-denunciar').classList.remove('active');
idDenunciaPendiente = null;
};
document.getElementById('btn-confirmar-denuncia').onclick = function () {
if (!idDenunciaPendiente) return;
var idComentario = idDenunciaPendiente;
cerrarModalDenuncia();
var formData = new FormData();
formData.append('accion', 'denunciar');
formData.append('id_comentario', idComentario);
var xhr = new XMLHttpRequest();
xhr.open('POST', baseUrl + 'ajax-comentarios.php', true);
xhr.onload = function () {
try {
var data = JSON.parse(xhr.responseText);
mostrarToast(data.ok ? (data.mensaje || 'Denunciado') : (data.error || 'Error'), data.ok ? 'success' : 'error');
} catch (e) { }
};
xhr.send(formData);
};
document.getElementById('modal-denunciar').onclick = function (e) {
if (e.target === this) cerrarModalDenuncia();
};
// Toast
function mostrarToast(msg, tipo) {
var existing = document.querySelector('.comment-toast');
if (existing) existing.remove();
var toast = document.createElement('div');
toast.className = 'comment-toast ' + (tipo || '');
toast.textContent = msg;
document.body.appendChild(toast);
setTimeout(function () { toast.remove(); }, 3500);
}
function escapeHtml(text) {
if (!text) return '';
var d = document.createElement('div');
d.textContent = text;
return d.innerHTML;
}
})();