diff --git a/src/fgai/dashboard.py b/src/fgai/dashboard.py index de4a635..279642a 100644 --- a/src/fgai/dashboard.py +++ b/src/fgai/dashboard.py @@ -184,6 +184,7 @@ async function loadSettings() { } const token = form.elements.namedItem('graylog_mcp_token'); token.placeholder = config.graylog_mcp_token_configured ? 'Token configured; leave blank to keep it' : 'Paste a read-only token'; + if (config.graylog_mcp_token_configured && config.graylog_mcp_url) loadStreams(); } async function loadStreams() { const response = await fetch('/api/graylog/streams'); @@ -194,7 +195,7 @@ async function loadStreams() { document.getElementById('loadStreams').addEventListener('click', loadStreams); document.getElementById('loadFields').addEventListener('click', async () => { const selected = document.querySelector('.graylog-stream:checked'); - if (!selected) { document.getElementById('fieldPicker').textContent = 'Select and save one stream first.'; return; } + if (!selected) { document.getElementById('fieldPicker').textContent = 'Load streams, tick one stream, then load its fields.'; return; } const payload = await (await fetch(`/api/graylog/fields?stream_id=${encodeURIComponent(selected.dataset.id)}`)).json(); document.getElementById('fieldPicker').innerHTML = (payload.fields || []).map(field => `
${esc(field.name || field.field)} ${esc(field.type || '')} ${esc((field.capabilities || []).join(', '))}
`).join('') || esc(payload.error || 'No fields found.'); });