Athenaeum/static/js/profile.js
2025-06-01 17:41:00 +02:00

95 lines
3.2 KiB
JavaScript

document.addEventListener('DOMContentLoaded', function() {
loadOrderHistory();
});
async function loadOrderHistory() {
const orderHistoryContainer = document.getElementById('order-history');
if (!orderHistoryContainer) return;
orderHistoryContainer.innerHTML = `
<div class="text-center py-5">
<div class="spinner-border text-primary" role="status">
<span class="visually-hidden">Ładowanie...</span>
</div>
</div>
`;
try {
const response = await fetch('/api/order-history', {
credentials: 'include'
});
if (!response.ok) {
throw new Error('Błąd ładowania historii zamówień');
}
const orders = await response.json();
displayOrderHistory(orders);
} catch (error) {
console.error('Błąd:', error);
orderHistoryContainer.innerHTML = `
<div class="alert alert-danger">Wystąpił błąd podczas ładowania historii zamówień</div>
`;
}
}
function displayOrderHistory(orders) {
const orderHistoryContainer = document.getElementById('order-history');
if (!orderHistoryContainer) return;
if (orders.length === 0) {
orderHistoryContainer.innerHTML = `
<div class="alert alert-info">Brak historii zamówień</div>
`;
return;
}
orderHistoryContainer.innerHTML = '';
orders.forEach(order => {
const orderDate = new Date(order.data_zamowienia).toLocaleDateString();
// Poprawione mapowanie typów dostawy
let deliveryType = order.typ_dostawy || 'shipping';
let deliveryText = '';
if (deliveryType === 'local') {
deliveryText = 'Odbiór lokalny';
} else if (deliveryType === 'shipping') {
deliveryText = 'Dostawa';
} else {
// Dla starych zamówień bez typu
deliveryText = 'Dostawa';
}
const orderElement = `
<div class="card mb-3 order-card">
<div class="card-header">
<h5>Zamówienie #${order.id} - ${orderDate}</h5>
<p class="mb-0">Status: ${order.status || 'W realizacji'}</p>
<p class="mb-0">Suma: ${order.suma_totalna} PLN</p>
<p class="mb-0">Typ: ${deliveryText}</p>
</div>
<div class="card-body">
<h6>Produkty:</h6>
<ul class="list-group">
${order.items.map(item => `
<li class="list-group-item d-flex justify-content-between align-items-center">
<div>
<strong>${item.tytul}</strong> - ${item.autor}
</div>
<div>
${item.ilosc} x ${item.cena} PLN
</div>
</li>
`).join('')}
</ul>
</div>
</div>
`;
orderHistoryContainer.innerHTML += orderElement;
});
}