git commit -m "feat: improve wheel UI with gold pointer and center circle sync"
103 lines
2.2 KiB
JavaScript
103 lines
2.2 KiB
JavaScript
import {
|
|
adminGetItems,
|
|
createItem,
|
|
deleteItem,
|
|
updateItem // 👈 باید اینو هم به api.js اضافه کنی
|
|
} from './api.js';
|
|
|
|
const tableBody = document.getElementById('items-table-body');
|
|
const titleInput = document.getElementById('title-input');
|
|
const valueInput = document.getElementById('value-input');
|
|
const addBtn = document.getElementById('add-btn');
|
|
|
|
let editId = null; // 👈 حالت ویرایش
|
|
|
|
// -------------------- Render --------------------
|
|
async function renderItems() {
|
|
const items = await adminGetItems();
|
|
|
|
tableBody.innerHTML = '';
|
|
|
|
items.forEach((item, index) => {
|
|
const row = document.createElement('tr');
|
|
|
|
row.innerHTML = `
|
|
<td>${index + 1}</td>
|
|
<td>${item.title}</td>
|
|
<td>${item.value}</td>
|
|
<td class="actions">
|
|
|
|
<button
|
|
class="edit-btn"
|
|
onclick="editItem(${item.id}, '${item.title}', ${item.value})"
|
|
>
|
|
✏️ ویرایش
|
|
</button>
|
|
|
|
<button
|
|
class="delete-btn"
|
|
onclick="removeItem(${item.id})"
|
|
>
|
|
🗑 حذف
|
|
</button>
|
|
|
|
</td>
|
|
`;
|
|
|
|
tableBody.appendChild(row);
|
|
});
|
|
}
|
|
|
|
// -------------------- Delete --------------------
|
|
window.removeItem = async (id) => {
|
|
await deleteItem(id);
|
|
renderItems();
|
|
};
|
|
|
|
// -------------------- Edit --------------------
|
|
window.editItem = (id, title, value) => {
|
|
titleInput.value = title;
|
|
valueInput.value = value;
|
|
|
|
editId = id;
|
|
|
|
addBtn.textContent = 'آپدیت ✏️';
|
|
};
|
|
|
|
// -------------------- Add / Update --------------------
|
|
addBtn.onclick = async () => {
|
|
const title = titleInput.value.trim();
|
|
const value = valueInput.value.trim();
|
|
|
|
if (!title || !value) {
|
|
alert('همه فیلدها را پر کن');
|
|
return;
|
|
}
|
|
|
|
// حالت ویرایش
|
|
if (editId) {
|
|
await updateItem(editId, {
|
|
title,
|
|
value: parseInt(value)
|
|
});
|
|
|
|
editId = null;
|
|
addBtn.textContent = 'افزودن';
|
|
}
|
|
|
|
// حالت افزودن
|
|
else {
|
|
await createItem({
|
|
title,
|
|
value: parseInt(value)
|
|
});
|
|
}
|
|
|
|
titleInput.value = '';
|
|
valueInput.value = '';
|
|
|
|
renderItems();
|
|
};
|
|
|
|
// -------------------- Init --------------------
|
|
renderItems(); |