From 4cff1cb33e10a54043ea6853765bffa7ae2cb29a Mon Sep 17 00:00:00 2001 From: erjemin Date: Sat, 9 May 2026 21:43:13 +0300 Subject: [PATCH] =?UTF-8?q?mod:=20JS=20=D0=B2=D1=8B=D0=BD=D0=B5=D1=81?= =?UTF-8?q?=D0=B5=D0=BD=20=D0=B2=D0=BE=20=D0=B2=D0=BD=D0=B5=D1=88=D0=BD?= =?UTF-8?q?=D0=B8=D0=B9=20=D1=81=D0=BA=D1=80=D0=B8=D0=BF=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/report_last_user_visit.html | 69 +------------------ public/static/js/last_user_visit.js | 55 +++++++++++++++ 2 files changed, 58 insertions(+), 66 deletions(-) create mode 100644 public/static/js/last_user_visit.js diff --git a/oknardia/templates/report/report_last_user_visit.html b/oknardia/templates/report/report_last_user_visit.html index 727eede..1a490e7 100755 --- a/oknardia/templates/report/report_last_user_visit.html +++ b/oknardia/templates/report/report_last_user_visit.html @@ -1,71 +1,8 @@ - +{% load static %}
- + diff --git a/public/static/js/last_user_visit.js b/public/static/js/last_user_visit.js new file mode 100644 index 0000000..793df58 --- /dev/null +++ b/public/static/js/last_user_visit.js @@ -0,0 +1,55 @@ +/** + * Отслеживание последних визитов пользователя из браузерных кук. + * Читает куку 'LastVisit', парсит JSON и выводит список ссылок на уже просмотренные ценовые отчёты. + */ +document.addEventListener('DOMContentLoaded', function() { + // Функция для получения значения куки по имени + function getCookieValue(name) { + try { + if (document.cookie) { + const cookies = document.cookie.split('; '); + for (let cookie of cookies) { + const [cookieName, cookieValue] = cookie.split('='); + if (cookieName === name) { + return decodeURIComponent(cookieValue); + } + } + } + } catch (e) { + console.warn('Ошибка при чтении куки LastVisit:', e); + } + return null; + } + + // Получаем куку с визитами + const cookieValue = getCookieValue('LastVisit'); + if (cookieValue) { + try { + const visits = JSON.parse(cookieValue); + // Проверяем, есть ли визиты + if (visits && visits.length > 0) { + const listContainer = document.getElementById('last_visits_list'); + const lastUserVisitContainer = document.getElementById('last_user_visit_container'); + // Очищаем список перед заполнением + listContainer.innerHTML = ''; + // При перезагрузке страницы текущий визит уже записан, поэтому пропускаем первый + const visitsToShow = visits.slice(1); + // Выводим предыдущие визиты (не текущий) + for (let i = 0; i < visitsToShow.length; i++) { + const item = visitsToShow[i]; + const li = document.createElement('li'); + // Форматируем текст ссылки: адрес (тип квартиры) + const linkText = `Цены на окна для серии ${item.LastApart} (${item.LastAddress})`; + li.innerHTML = `${linkText}`; + listContainer.appendChild(li); + } + // Если есть данные для отображения, показываем блок + if (visitsToShow.length > 0) { + lastUserVisitContainer.style.display = 'block'; + } + } + } catch (e) { + console.warn('Ошибка при разборе JSON из кук LastVisit:', e); + } + } +}); \ No newline at end of file