diff --git a/public/js/ana.js b/public/js/ana.js new file mode 100644 index 0000000..2e6f76a --- /dev/null +++ b/public/js/ana.js @@ -0,0 +1,72 @@ +// Ana sayfa: kategoriler + öne çıkan ilanlar +ustbariCiz(); + +async function yukle() { + const [kategoriler, ilanlar] = await Promise.all([API.kategoriler(), API.ilanlar()]); + domBosalt('kategoriler'); + domBosalt('ilanlar'); + + // Kategoriler + const kKat = document.getElementById('kategoriler'); + kategoriler.forEach((k) => { + const kart = document.createElement('div'); + kart.className = 'kategori-kart'; + kart.innerHTML = ` +
${k.ikon}
+
${k.ad}
+
${(k.alt || []).join(' · ')}
+ `; + kart.addEventListener('click', () => (location.href = `katalog.html?kategori=${k.id}`)); + kKat.appendChild(kart); + }); + + // İlanlar + const kIlan = document.getElementById('ilanlar'); + const bosEl = document.getElementById('bos'); + if (!ilanlar.length) { + bosEl.style.display = 'block'; + return; + } + ilanlar.forEach((i) => kIlan.appendChild(ilanKarti(i))); +} + +function ilanKarti(i) { + const kart = document.createElement('a'); + kart.className = 'ilan-kart'; + kart.href = `ilan-detay.html?id=${i.id}`; + const gorsel = i.gorsel + ? `${i.baslik}` + : `
🖼️
`; + kart.innerHTML = ` + ${gorsel} +
+
${i.kategori || 'İlan'}
+
${degisken(i.baslik)}
+
${fiyatOzet(i.fiyat)}
+
📍 ${i.il}${i.ilce ? ', ' + i.ilce : ''} · ${i.tarih || ''}
+
+ `; + return kart; +} + +// güvenli metin çıkışı +function degisken(m) { + const d = document.createElement('div'); + d.textContent = m == null ? '' : String(m); + return d.innerHTML; +} + +function domBosalt(id) { + const el = document.getElementById(id); + if (el) el.innerHTML = ''; +} + +// footer'daki "verileri sıfırla" — localStorage favorileri temizler +document.addEventListener('click', (e) => { + if (e.target.matches('[data-sifirla]')) { + localStorage.removeItem('numex_favori'); + alert('Favorileriniz temizlendi.'); + } +}); + +yukle();