async function loadConfig() { const response = await fetch('config/services.json', { cache: 'no-store' }); if (!response.ok) throw new Error(`Config load failed: ${response.status}`); return response.json(); } function renderStatus(items) { const grid = document.getElementById('status-grid'); grid.innerHTML = items.map(item => `
${item.name} ${item.label}
${item.value}
${item.detail}
`).join(''); } function renderServices(targetId, items, disabled = false) { const grid = document.getElementById(targetId); grid.innerHTML = items.map(item => { const classes = `service-card${disabled ? ' disabled' : ''}`; const tag = disabled ? 'div' : 'a'; const href = disabled ? '' : ` href="${item.url}"`; return ` <${tag} class="${classes}"${href}>
${item.icon}

${item.name}

${item.description}

${item.category} ${disabled ? 'Pending' : 'Open ↗'}
`; }).join(''); } loadConfig() .then(config => { renderStatus(config.status); renderServices('service-grid', config.services); renderServices('home-grid', config.home, true); }) .catch(error => { console.error(error); document.getElementById('status-grid').innerHTML = '
Configuration
Unavailable
Could not load services.json
'; });