Numex yayın: public/js/ilan-ac.js
This commit is contained in:
parent
fa22f4d5fa
commit
d5c62c56b4
63
public/js/ilan-ac.js
Normal file
63
public/js/ilan-ac.js
Normal file
|
|
@ -0,0 +1,63 @@
|
||||||
|
// Yeni ilan açma formu
|
||||||
|
ustbariCiz();
|
||||||
|
|
||||||
|
const form = document.getElementById('ilan-formu');
|
||||||
|
const fb = document.getElementById('fb-kutu');
|
||||||
|
|
||||||
|
// Kategorileri doldur
|
||||||
|
(async () => {
|
||||||
|
const kategoriler = await API.kategoriler();
|
||||||
|
const sel = document.getElementById('t-kategori');
|
||||||
|
kategoriler.forEach((k) => {
|
||||||
|
const o = document.createElement('option');
|
||||||
|
o.value = k.id;
|
||||||
|
o.textContent = k.ad;
|
||||||
|
sel.appendChild(o);
|
||||||
|
});
|
||||||
|
sel.value = kategoriler.length ? kategoriler[0].id : '';
|
||||||
|
})();
|
||||||
|
|
||||||
|
// Görsel önizleme
|
||||||
|
const gorselIn = document.getElementById('t-gorsel');
|
||||||
|
const oniz = document.getElementById('onizleme');
|
||||||
|
gorselIn.addEventListener('input', () => {
|
||||||
|
const url = gorselIn.value.trim();
|
||||||
|
if (url) {
|
||||||
|
oniz.src = url;
|
||||||
|
oniz.style.border = url ? '2px solid #16a34a' : '';
|
||||||
|
oniz.onerror = () => {
|
||||||
|
oniz.style.border = '2px dashed var(--tehlike)';
|
||||||
|
oniz.alt = 'Görsel yüklenemedi';
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
oniz.removeAttribute('src');
|
||||||
|
oniz.style.border = '';
|
||||||
|
oniz.alt = 'Görsel önizleme';
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
form.addEventListener('submit', async (e) => {
|
||||||
|
e.preventDefault();
|
||||||
|
const veri = {
|
||||||
|
baslik: document.getElementById('t-baslik').value.trim(),
|
||||||
|
kategoriId: Number(document.getElementById('t-kategori').value),
|
||||||
|
fiyat: document.getElementById('t-fiyat').value,
|
||||||
|
il: document.getElementById('t-il').value.trim(),
|
||||||
|
ilce: document.getElementById('t-ilce').value.trim() || undefined,
|
||||||
|
sahip: document.getElementById('t-sahip').value.trim(),
|
||||||
|
telefon: document.getElementById('t-telefon').value.trim(),
|
||||||
|
aciklama: document.getElementById('t-aciklama').value.trim() || 'Detay yok.',
|
||||||
|
gorsel: gorselIn.value.trim() || undefined,
|
||||||
|
ozellikler: {},
|
||||||
|
};
|
||||||
|
|
||||||
|
const sonuc = await API.ilanEkle(veri);
|
||||||
|
if (sonuc && sonuc.id) {
|
||||||
|
fb.innerHTML = `<div class="fb fb-ok">✅ İlanın yayınlandı! <a href="ilan-detay.html?id=${sonuc.id}" style="font-weight:700">İlanı gör →</a></div>`;
|
||||||
|
form.reset();
|
||||||
|
oniz.removeAttribute('src');
|
||||||
|
window.scrollTo({ top: 0, behavior: 'smooth' });
|
||||||
|
} else {
|
||||||
|
fb.innerHTML = `<div class="fb fb-hata">⚠ Bir sorun oluştu: ${sonuc?.hata || 'bilinmeyen hata'}</div>`;
|
||||||
|
}
|
||||||
|
});
|
||||||
Loading…
Reference in New Issue
Block a user