// 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 = `
${escapeHtml(a.name)}
${escapeHtml(a.service || 'Genel')} • Tel: ${escapeHtml(a.phone)}
${a.notes ? `
📝 ${escapeHtml(a.notes)}
` : ''} `; const actions = document.createElement('div'); actions.className = 'actions'; const delBtn = document.createElement('button'); delBtn.className = 'btn btn-danger'; delBtn.textContent = 'Sil'; delBtn.addEventListener('click', () => deleteAppointment(a.id)); actions.appendChild(delBtn); item.appendChild(timeBadge); item.appendChild(info); item.appendChild(actions); listEl.appendChild(item); }); } async function deleteAppointment(id) { if (!confirm('Bu randevuyu silmek istediğinize emin misiniz?')) return; try { const res = await fetch(`/api/appointments/${id}`, { method: 'DELETE' }); if (res.ok) { loadAppointments(filterDate.value || todayISO()); } else { alert('Silme sırasında hata oluştu.'); } } catch (err) { alert('Bağlantı hatası.'); } } function escapeHtml(str) { const div = document.createElement('div'); div.textContent = str; return div.innerHTML; } // Varsayılan: bugün filterDate.value = todayISO(); refreshBtn.addEventListener('click', () => { loadAppointments(filterDate.value || todayISO()); }); filterDate.addEventListener('change', () => { loadAppointments(filterDate.value || todayISO()); }); // İlk yükleme loadAppointments(todayISO()); })();