diff --git a/static/js/logs.js b/static/js/logs.js index 4ccc8de..9b574c2 100644 --- a/static/js/logs.js +++ b/static/js/logs.js @@ -1,8 +1,12 @@ +/** + * HAProxy Logs Management + * Pagination and dynamic loading of logs + */ + document.addEventListener('DOMContentLoaded', function() { let currentPage = 1; let perPage = 50; let totalLogs = parseInt(document.getElementById('total_count').textContent); - let allLogs = []; const logsContainer = document.getElementById('logs_container'); const perPageSelect = document.getElementById('logs_per_page'); @@ -14,6 +18,7 @@ document.addEventListener('DOMContentLoaded', function() { const currentPageSpan = document.getElementById('current_page'); const totalPagesSpan = document.getElementById('total_pages'); + // Event Listeners perPageSelect.addEventListener('change', function(e) { perPage = parseInt(e.target.value); currentPage = 1; @@ -43,11 +48,18 @@ document.addEventListener('DOMContentLoaded', function() { loadAllBtn.addEventListener('click', function() { perPage = totalLogs; currentPage = 1; - perPageSelect.value = totalLogs; + if (perPageSelect.querySelector(`option[value="${totalLogs}"]`)) { + perPageSelect.value = totalLogs; + } loadLogs(); }); + /** + * Load logs from API with pagination + */ function loadLogs() { + console.log(`[Logs] Loading page ${currentPage} with ${perPage} per page`); + fetch('/api/logs', { method: 'POST', headers: { @@ -63,18 +75,23 @@ document.addEventListener('DOMContentLoaded', function() { if (data.success) { renderLogs(data.logs); updatePagination(data); - console.log(`[Logs] Załadowano page ${data.page}/${Math.ceil(data.total / data.per_page)}`); + console.log(`[Logs] Successfully loaded page ${data.page}/${Math.ceil(data.total / data.per_page)}`); + } else { + showError(data.error || 'Unknown error'); } }) .catch(error => { - console.error('Error loading logs:', error); - logsContainer.innerHTML = `
- ${entry.message || 'N/A'}
+ ${escapeHtml(entry.message || 'N/A')}