Блокировка кнопки 'НА ВИТРИНУ' при наличии витринного комплекта в корзине

- Добавлена проверка наличия витринных комплектов (showcase_kit) в корзине
- Кнопка 'НА ВИТРИНУ' блокируется при наличии витринного букета
- Добавлено визуальное оформление: opacity 0.5, disabled state, tooltip
- Показывается предупреждение при попытке создать новый букет
- Функция updateShowcaseButtonState() вызывается при каждом изменении корзины
This commit is contained in:
2025-12-11 22:01:32 +03:00
parent 8d7869e9e7
commit 65ffed2f9b

View File

@@ -859,6 +859,7 @@ function renderCart() {
if (cart.size === 0) { if (cart.size === 0) {
list.innerHTML = '<p class="text-muted text-center py-4 small">Корзина пуста</p>'; list.innerHTML = '<p class="text-muted text-center py-4 small">Корзина пуста</p>';
document.getElementById('cartTotal').textContent = '0.00'; document.getElementById('cartTotal').textContent = '0.00';
updateShowcaseButtonState(); // Обновляем состояние кнопки
return; return;
} }
@@ -974,6 +975,9 @@ function renderCart() {
}); });
document.getElementById('cartTotal').textContent = formatMoney(total); document.getElementById('cartTotal').textContent = formatMoney(total);
// Обновляем состояние кнопки "НА ВИТРИНУ"
updateShowcaseButtonState();
} }
async function removeFromCart(cartKey) { async function removeFromCart(cartKey) {
@@ -1051,6 +1055,40 @@ async function clearCart() {
document.getElementById('clearCart').onclick = clearCart; document.getElementById('clearCart').onclick = clearCart;
/**
* Обновляет состояние кнопки "НА ВИТРИНУ"
* Блокирует кнопку если в корзине есть витринный комплект
*/
function updateShowcaseButtonState() {
const showcaseBtn = document.getElementById('addToShowcaseBtn');
if (!showcaseBtn) return;
// Проверяем наличие витринных комплектов в корзине
let hasShowcaseKit = false;
for (const [cartKey, item] of cart) {
if (item.type === 'showcase_kit') {
hasShowcaseKit = true;
break;
}
}
if (hasShowcaseKit) {
// Блокируем кнопку
showcaseBtn.disabled = true;
showcaseBtn.classList.add('disabled');
showcaseBtn.style.opacity = '0.5';
showcaseBtn.style.cursor = 'not-allowed';
showcaseBtn.title = '⚠️ В корзине уже есть витринный комплект. Удалите его перед созданием нового';
} else {
// Разблокируем кнопку
showcaseBtn.disabled = false;
showcaseBtn.classList.remove('disabled');
showcaseBtn.style.opacity = '1';
showcaseBtn.style.cursor = 'pointer';
showcaseBtn.title = 'Создать букет на витрину из текущей корзины';
}
}
// Кнопка "На витрину" - функционал будет добавлен позже // Кнопка "На витрину" - функционал будет добавлен позже
document.getElementById('addToShowcaseBtn').onclick = () => { document.getElementById('addToShowcaseBtn').onclick = () => {
openCreateTempKitModal(); openCreateTempKitModal();
@@ -1064,7 +1102,21 @@ async function openCreateTempKitModal() {
return; return;
} }
// Проверяем что в корзине только товары (не комплекты) // Проверяем что в корзине НЕТ витринных комплектов
let hasShowcaseKit = false;
for (const [cartKey, item] of cart) {
if (item.type === 'showcase_kit') {
hasShowcaseKit = true;
break;
}
}
if (hasShowcaseKit) {
alert('⚠️ В корзине уже есть витринный комплект!\n\nНельзя создать новый букет на витрину, пока в корзине находится другой витринный букет.\n\nУдалите витринный букет из корзины или завершите текущую продажу.');
return;
}
// Проверяем что в корзине только товары (не обычные комплекты)
let hasKits = false; let hasKits = false;
for (const [cartKey, item] of cart) { for (const [cartKey, item] of cart) {
if (item.type === 'kit') { if (item.type === 'kit') {