49 lines
1.7 KiB
JavaScript
49 lines
1.7 KiB
JavaScript
|
|
/* categories.js — kategori silme + kategori ekleme formu */
|
|||
|
|
|
|||
|
|
(function () {
|
|||
|
|
'use strict';
|
|||
|
|
|
|||
|
|
/* ---- Kategori silme (list sayfası) ---- */
|
|||
|
|
document.querySelectorAll('.delete-category').forEach(function (btn) {
|
|||
|
|
btn.addEventListener('click', function () {
|
|||
|
|
const id = btn.dataset.id;
|
|||
|
|
const name = btn.dataset.name;
|
|||
|
|
if (!confirm('"' + name + '" kategorisini silmek istediğinize emin misiniz?')) return;
|
|||
|
|
fetch('/api/categories/' + id, { method: 'DELETE' })
|
|||
|
|
.then(function (res) {
|
|||
|
|
if (res.status === 204) { window.location.reload(); return; }
|
|||
|
|
return res.json().then(function (d) { throw new Error(d.error || 'Silinemedi'); });
|
|||
|
|
})
|
|||
|
|
.catch(function (err) { alert('Hata: ' + err.message); });
|
|||
|
|
});
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
/* ---- Kategori ekleme formu (new sayfası) ---- */
|
|||
|
|
const catForm = document.getElementById('categoryForm');
|
|||
|
|
if (catForm) {
|
|||
|
|
catForm.addEventListener('submit', function (e) {
|
|||
|
|
e.preventDefault();
|
|||
|
|
const errBox = document.getElementById('categoryError');
|
|||
|
|
errBox.style.display = 'none';
|
|||
|
|
const name = document.getElementById('catName').value;
|
|||
|
|
|
|||
|
|
fetch('/api/categories', {
|
|||
|
|
method: 'POST',
|
|||
|
|
headers: { 'Content-Type': 'application/json' },
|
|||
|
|
body: JSON.stringify({ name: name })
|
|||
|
|
})
|
|||
|
|
.then(function (res) {
|
|||
|
|
return res.json().then(function (d) {
|
|||
|
|
if (!res.ok) throw new Error(d.error || 'Ekleme başarısız');
|
|||
|
|
return d;
|
|||
|
|
});
|
|||
|
|
})
|
|||
|
|
.then(function () { window.location.href = '/api/categories'; })
|
|||
|
|
.catch(function (err) {
|
|||
|
|
errBox.textContent = err.message;
|
|||
|
|
errBox.style.display = 'block';
|
|||
|
|
});
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
})();
|