const resultEl = document.getElementById('result'); const espIn = document.getElementById('espId'); const sensorIn = document.getElementById('sensorNumber'); document.getElementById('saveBtn').addEventListener('click', async () => { const espId = espIn.value.trim(); const sensorNumber = sensorIn.value.trim(); if (!espId || !sensorNumber) { resultEl.innerText = 'Bitte ESP-ID und Sensornummer eingeben.'; return; } resultEl.innerText = 'Speichere...'; try { const r = await fetch('/api/save', { method: 'POST', headers: {'Content-Type':'application/json'}, body: JSON.stringify({ espId, sensorNumber }) }); const j = await r.json(); if (j.ok) { resultEl.innerHTML = `Gespeichert: ESP-ID = ${j.entry.espId}, Sensor = ${j.entry.sensorNumber}`; espIn.value = ''; sensorIn.value = ''; loadList(); } else { resultEl.innerText = 'Fehler: ' + (j.error || 'Unbekannt'); } } catch { resultEl.innerText = 'Netzwerkfehler'; } }); async function loadList() { const page = document.getElementById('page').value || 1; const limit = document.getElementById('limit').value || 25; const listEl = document.getElementById('list'); listEl.innerText = 'Lade...'; try { const r = await fetch(`/api/list?page=${encodeURIComponent(page)}&limit=${encodeURIComponent(limit)}`); const j = await r.json(); if (!j.ok) { listEl.innerText = 'Fehler beim Laden'; return; } if (j.items.length === 0) { listEl.innerText = 'Keine Einträge'; return;} let html = `
Ergebnis: ${j.items.length} von ${j.total} (Seite ${j.page})
`; html += ''; j.items.forEach(it => { html += ``; }); html += '
DatumESP-IDSensor
${it.createdAt} ${it.espId} ${it.sensorNumber}
'; listEl.innerHTML = html; } catch { listEl.innerText = 'Netzwerkfehler beim Laden'; } } async function deleteEntry(id) { if (!confirm('Diesen Eintrag wirklich löschen?')) return; try { const r = await fetch(`/api/entry/${id}`, { method: 'DELETE' }); const j = await r.json(); if (j.ok) { loadList(); } else { alert('Fehler beim Löschen'); } } catch { alert('Netzwerkfehler'); } } document.getElementById('refreshBtn').addEventListener('click', loadList); loadList();