/** * Editorial Guidelines Manager * Displays publication targets with submission requirements */ let allTargets = []; let filteredTargets = []; // Initialize page document.addEventListener('DOMContentLoaded', async () => { await loadPublicationTargets(); setupFilters(); }); async function loadPublicationTargets() { try { const response = await fetch('/api/publications/targets'); if (!response.ok) throw new Error('Failed to load publication targets'); const data = await response.json(); allTargets = data.targets; filteredTargets = [...allTargets]; updateStats(); renderPublications(); } catch (error) { console.error('Error loading publication targets:', error); showError('Failed to load publication targets'); } } function updateStats() { const stats = { total: allTargets.length, premier: allTargets.filter(t => t.tier === 'premier').length, highValue: allTargets.filter(t => t.tier === 'high-value').length, strategic: allTargets.filter(t => t.tier === 'strategic').length }; document.getElementById('stat-total').textContent = stats.total; document.getElementById('stat-premier').textContent = stats.premier; document.getElementById('stat-high-value').textContent = stats.highValue; document.getElementById('stat-strategic').textContent = stats.strategic; } function setupFilters() { const filters = ['tier', 'type', 'language', 'region']; filters.forEach(filterId => { document.getElementById(`filter-${filterId}`).addEventListener('change', applyFilters); }); } function applyFilters() { const tierFilter = document.getElementById('filter-tier').value; const typeFilter = document.getElementById('filter-type').value; const languageFilter = document.getElementById('filter-language').value; const regionFilter = document.getElementById('filter-region').value; filteredTargets = allTargets.filter(target => { if (tierFilter && target.tier !== tierFilter) return false; if (typeFilter && target.type !== typeFilter) return false; if (languageFilter && target.requirements?.language !== languageFilter) return false; if (regionFilter && target.country !== regionFilter) return false; return true; }); renderPublications(); } function renderPublications() { const container = document.getElementById('publications-container'); if (filteredTargets.length === 0) { container.innerHTML = `
No publications match the selected filters.
${target.country} | Rank #${target.rank} | Score: ${target.score}
${message}