const API_URL = 'https://edu.std-900.ist.mospolytech.ru/labs/api'; const API_KEY = '358a63a5-52ae-4ab0-800b-90f75ce5a5c2'; let orders = []; let dishes = []; let currentOrderId = null; function loadOrders() { console.log('Загрузка заказов...'); const url = API_URL + '/orders?api_key=' + API_KEY; fetch(url) .then(function(response) { console.log('Ответ получен:', response.status); if (!response.ok) { throw new Error('Ошибка загрузки заказов: ' + response.status); } return response.json(); }) .then(function(data) { console.log('Заказы загружены:', data.length); orders = data; sortOrders(); return loadDishes(); }) .then(function() { displayOrders(); }) .catch(function(error) { console.error('Ошибка при загрузке заказов:', error); showNotification('Не удалось загрузить заказы: ' + error.message, 'error'); }); } function loadDishes() { console.log('Загрузка блюд...'); return fetch(API_URL + '/dishes') .then(function(response) { if (!response.ok) { throw new Error('Ошибка загрузки блюд'); } return response.json(); }) .then(function(data) { console.log('Блюда загружены:', data.length); dishes = data; }); } function sortOrders() { orders.sort(function(a, b) { const dateA = new Date(a.created_at); const dateB = new Date(b.created_at); return dateB - dateA; }); } function displayOrders() { const ordersList = document.getElementById('orders-list'); const emptyOrders = document.getElementById('empty-orders'); if (!ordersList || !emptyOrders) { console.error('Не найдены контейнеры для отображения заказов'); return; } if (orders.length === 0) { ordersList.innerHTML = ''; emptyOrders.classList.remove('hidden'); return; } emptyOrders.classList.add('hidden'); ordersList.innerHTML = ''; orders.forEach(function(order, index) { const orderCard = createOrderCard(order, index + 1); ordersList.insertAdjacentHTML('beforeend', orderCard); }); addOrderActionHandlers(); } function createOrderCard(order, number) { const date = formatDate(order.created_at); const composition = getOrderComposition(order); const price = calculateOrderPrice(order); const deliveryTime = getDeliveryTime(order); return `
Состав: ${composition}
Стоимость: ${price} руб.
Доставка: ${deliveryTime}