diff --git a/myproject/orders/static/orders/js/date_filter.js b/myproject/orders/static/orders/js/date_filter.js
index 6f8f7ad..2182aeb 100644
--- a/myproject/orders/static/orders/js/date_filter.js
+++ b/myproject/orders/static/orders/js/date_filter.js
@@ -336,20 +336,34 @@ class DateCarousel {
}
/**
- * Подключение обработчика для кнопки "Сегодня"
+ * Подключение обработчиков для кнопок "Сегодня", "Завтра" и "Сбросить"
* Вынесено в отдельный метод, чтобы можно было вызывать после полной отрисовки компонента
*/
attachTodayHandler() {
- // Ищем кнопку "Сегодня" в общем контейнере фильтра, используя атрибуты данных
- const todayBtn = this.container.closest('.date-range-filter').querySelector('.today-btn');
+ const filterContainer = this.container.closest('.date-range-filter');
+ // Кнопка "Сегодня"
+ const todayBtn = filterContainer.querySelector('.today-btn');
if (todayBtn) {
- todayBtn.removeEventListener('click', this.boundGoToToday); // Удаляем предыдущий обработчик, если был
+ todayBtn.removeEventListener('click', this.boundGoToToday);
this.boundGoToToday = this.goToToday.bind(this);
todayBtn.addEventListener('click', this.boundGoToToday);
- console.log('Today button handler attached');
- } else {
- console.error('Today button not found when trying to attach handler');
+ }
+
+ // Кнопка "Завтра"
+ const tomorrowBtn = filterContainer.querySelector('.tomorrow-btn');
+ if (tomorrowBtn) {
+ tomorrowBtn.removeEventListener('click', this.boundGoToTomorrow);
+ this.boundGoToTomorrow = this.goToTomorrow.bind(this);
+ tomorrowBtn.addEventListener('click', this.boundGoToTomorrow);
+ }
+
+ // Кнопка "Сбросить"
+ const clearBtn = filterContainer.querySelector('.clear-date-btn');
+ if (clearBtn) {
+ clearBtn.removeEventListener('click', this.boundClearDate);
+ this.boundClearDate = this.clearDate.bind(this);
+ clearBtn.addEventListener('click', this.boundClearDate);
}
}
@@ -392,10 +406,50 @@ class DateCarousel {
// Автоматическая отправка формы
const form = this.minInput.closest('form');
if (form) {
- console.log('Submitting form');
form.submit();
- } else {
- console.error('Form not found!');
+ }
+ }
+
+ /**
+ * Переход к завтрашней дате
+ */
+ goToTomorrow() {
+ const tomorrow = new Date();
+ tomorrow.setHours(0, 0, 0, 0);
+ tomorrow.setDate(tomorrow.getDate() + 1);
+
+ const formattedDate = this.formatDate(tomorrow);
+ this.minInput.value = formattedDate;
+ this.maxInput.value = formattedDate;
+
+ this.centerDate = tomorrow;
+ this.saveCenterDate();
+ this.render();
+ this.attachTodayHandler();
+
+ const form = this.minInput.closest('form');
+ if (form) {
+ form.submit();
+ }
+ }
+
+ /**
+ * Сброс фильтра по дате
+ */
+ clearDate() {
+ this.minInput.value = '';
+ this.maxInput.value = '';
+
+ // Возвращаем карусель к сегодняшней дате
+ this.centerDate = new Date();
+ this.centerDate.setHours(0, 0, 0, 0);
+ this.saveCenterDate();
+ this.render();
+ this.attachTodayHandler();
+
+ const form = this.minInput.closest('form');
+ if (form) {
+ form.submit();
}
}
diff --git a/myproject/orders/templates/orders/components/date_range_filter.html b/myproject/orders/templates/orders/components/date_range_filter.html
index 6840578..96746b1 100644
--- a/myproject/orders/templates/orders/components/date_range_filter.html
+++ b/myproject/orders/templates/orders/components/date_range_filter.html
@@ -26,6 +26,18 @@
title="Сегодня">
Сегодня
+
+