const DEFAULT_TRACKER_URL = 'http://localhost:3000'; const input = document.getElementById('trackerUrl'); const statusEl = document.getElementById('status'); function normalize(url) { return (url || '').trim().replace(/\/+$/, ''); } function setStatus(text, cls) { statusEl.textContent = text; statusEl.className = cls || ''; } // Load stored value chrome.storage.sync.get({ trackerUrl: DEFAULT_TRACKER_URL }, (items) => { input.value = items.trackerUrl || DEFAULT_TRACKER_URL; }); document.getElementById('saveBtn').addEventListener('click', () => { const url = normalize(input.value) || DEFAULT_TRACKER_URL; chrome.storage.sync.set({ trackerUrl: url }, () => { input.value = url; setStatus('Gespeichert.', 'ok'); }); }); document.getElementById('testBtn').addEventListener('click', async () => { const url = normalize(input.value) || DEFAULT_TRACKER_URL; setStatus('Teste Verbindung…', ''); try { const res = await fetch(url + '/api/settings', { method: 'GET' }); if (res.ok) { setStatus('Verbindung erfolgreich ✓', 'ok'); } else { setStatus('Erreichbar, aber unerwartete Antwort (' + res.status + ').', 'err'); } } catch (err) { setStatus('Nicht erreichbar: ' + err.message, 'err'); } });