From c76163640e0dabf617e9cf3706a52d99934bd067 Mon Sep 17 00:00:00 2001 From: Andrey Smakotin Date: Wed, 10 Dec 2025 00:35:56 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D1=84=D0=B0=D0=BA=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D0=B8=D0=BD=D0=B3=20POS=20=D1=82=D0=B5=D1=80=D0=BC=D0=B8?= =?UTF-8?q?=D0=BD=D0=B0=D0=BB=D0=B0:=20=D1=83=D1=81=D1=82=D1=80=D0=B0?= =?UTF-8?q?=D0=BD=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B4=D1=83=D0=B1=D0=BB=D0=B8?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=BA=D0=BE=D0=B4?= =?UTF-8?q?=D0=B0=20=D0=B8=20=D0=BE=D0=BF=D1=82=D0=B8=D0=BC=D0=B8=D0=B7?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D1=8F=20UI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Удалены дублирующиеся функции getCookie() и getCsrfToken() в terminal.js - Оставлена единая версия getCookie() с алиасом getCsrfToken для совместимости - Удалены неиспользуемые пустые кнопки из панели действий - Добавлена логика скрытия поля 'Количество букетов' в режиме редактирования комплекта - Оптимизирована компоновка кнопок действий (используется offset-4) - Улучшены комментарии в коде Результат: -44 строки, код стал чище и поддерживаемее --- myproject/pos/static/pos/js/terminal.js | 44 ++++++----------------- myproject/pos/templates/pos/terminal.html | 26 ++------------ 2 files changed, 13 insertions(+), 57 deletions(-) diff --git a/myproject/pos/static/pos/js/terminal.js b/myproject/pos/static/pos/js/terminal.js index 0b1f92b..c2f4e1b 100644 --- a/myproject/pos/static/pos/js/terminal.js +++ b/myproject/pos/static/pos/js/terminal.js @@ -1171,8 +1171,9 @@ async function openEditKitModal(kitId) { document.getElementById('createTempKitModalLabel').textContent = 'Редактирование витринного букета'; document.getElementById('confirmCreateTempKit').textContent = 'Сохранить изменения'; - // Показываем кнопку "Разобрать" в режиме редактирования + // Показываем кнопку "Разобрать" и скрываем поле "Количество букетов" в режиме редактирования document.getElementById('disassembleKitBtn').style.display = 'block'; + document.getElementById('showcaseKitQuantityBlock').style.display = 'none'; // Открываем модальное окно const modal = new bootstrap.Modal(document.getElementById('createTempKitModal')); @@ -1579,7 +1580,7 @@ document.getElementById('disassembleKitBtn').addEventListener('click', async () } }); -// Вспомогательная функция для получения CSRF токена +// Вспомогательная функция для получения CSRF токена (единая версия) function getCookie(name) { let cookieValue = null; if (document.cookie && document.cookie !== '') { @@ -1595,11 +1596,15 @@ function getCookie(name) { return cookieValue; } +// Алиас для обратной совместимости +const getCsrfToken = () => getCookie('csrftoken'); + // Сброс режима редактирования при закрытии модального окна document.getElementById('createTempKitModal').addEventListener('hidden.bs.modal', function() { // Очищаем tempCart (изолированное состояние модалки) tempCart.clear(); + // Сброс режима редактирования при закрытии модального окна if (isEditMode) { // Сбрасываем режим редактирования isEditMode = false; @@ -1609,8 +1614,9 @@ document.getElementById('createTempKitModal').addEventListener('hidden.bs.modal' document.getElementById('createTempKitModalLabel').textContent = 'Создать витринный букет из корзины'; document.getElementById('confirmCreateTempKit').innerHTML = ' Создать и зарезервировать'; - // Скрываем кнопку "Разобрать" + // Скрываем кнопку "Разобрать" и показываем поле "Количество букетов" document.getElementById('disassembleKitBtn').style.display = 'none'; + document.getElementById('showcaseKitQuantityBlock').style.display = 'block'; } }); @@ -1833,21 +1839,6 @@ async function handleCheckoutSubmit(paymentsData) { } } -function getCookie(name) { - let cookieValue = null; - if (document.cookie && document.cookie !== '') { - const cookies = document.cookie.split(';'); - for (let i = 0; i < cookies.length; i++) { - const cookie = cookies[i].trim(); - if (cookie.substring(0, name.length + 1) === (name + '=')) { - cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); - break; - } - } - } - return cookieValue; -} - // ===== ОБРАБОТЧИКИ ДЛЯ РАБОТЫ С КЛИЕНТОМ ===== // Кнопка "Выбрать клиента" в корзине @@ -1958,22 +1949,7 @@ document.addEventListener('click', async (e) => { } }); -// Вспомогательная функция для получения CSRF токена -function getCsrfToken() { - const name = 'csrftoken'; - let cookieValue = null; - if (document.cookie && document.cookie !== '') { - const cookies = document.cookie.split(';'); - for (let i = 0; i < cookies.length; i++) { - const cookie = cookies[i].trim(); - if (cookie.substring(0, name.length + 1) === (name + '=')) { - cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); - break; - } - } - } - return cookieValue; -} + // Обработчик поиска с debounce const searchInput = document.getElementById('searchInput'); diff --git a/myproject/pos/templates/pos/terminal.html b/myproject/pos/templates/pos/terminal.html index d705893..ae3687c 100644 --- a/myproject/pos/templates/pos/terminal.html +++ b/myproject/pos/templates/pos/terminal.html @@ -98,22 +98,6 @@
На витрину -
- -
-
- -
-
- -
-
- -
-
- -
-
+
@@ -170,8 +150,8 @@
- -
+ +
Будет создано указанное количество одинаковых букетов на витрину