diff --git a/public/admin.js b/public/admin.js new file mode 100644 index 0000000..5fbfb14 --- /dev/null +++ b/public/admin.js @@ -0,0 +1,99 @@ +// admin.js — Admin paneli günlük liste mantığı +(function () { + const filterDate = document.getElementById('filterDate'); + const refreshBtn = document.getElementById('refreshBtn'); + const listEl = document.getElementById('appointmentList'); + const summaryEl = document.getElementById('summary'); + + function todayISO() { + return new Date().toISOString().split('T')[0]; + } + + // Günün randevularını yükle + async function loadAppointments(date) { + listEl.innerHTML = '
Yükleniyor...
'; + try { + const res = await fetch(`/api/appointments?date=${encodeURIComponent(date)}`); + const list = await res.json(); + renderList(list, date); + } catch (err) { + listEl.innerHTML = 'Liste yüklenemedi.
'; + summaryEl.textContent = ''; + } + } + + function renderList(list, date) { + if (!Array.isArray(list) || list.length === 0) { + listEl.innerHTML = 'Bu gün için randevu bulunmuyor. 🎉
'; + summaryEl.textContent = `${date} — toplam 0 randevu`; + return; + } + + summaryEl.textContent = `${date} — toplam ${list.length} randevu`; + + listEl.innerHTML = ''; + list.forEach(a => { + const item = document.createElement('div'); + item.className = 'appointment-item'; + + const timeBadge = document.createElement('span'); + timeBadge.className = 'time-badge'; + timeBadge.textContent = a.time; + + const info = document.createElement('div'); + info.className = 'info'; + info.innerHTML = ` +