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