Сайт фотографа в Касселе, командная работа

Новый сайт фотостудии в Касселе: 16 страниц, статика, со своим сервером на Node для отдачи. Работа командная: 39 коммитов, из них мои 8. Моя часть легла на ту сторону, которой не видно: встроить чужой чат так, чтобы без согласия он не загружался вовсе.

Было и стало

Fritz ist Frieda, Было и стало
Слева — прежний сайт, справа — нынешний. Оба кадра сняты в одинаковой ширине окна, без полосы про куки.

Моя часть

  • Чат-виджет ADON CRM встроен на все 15 страниц, не прямым тегом, а через загрузчик согласия: до согласия его нет в DOM вовсе
  • Чужой виджет разобран прежде, чем пускать: XHR с опросом, Shadow DOM, без iframe и WebSocket, обращается только к своему адресу
  • Заведена новая категория функциональных куки и поднята версия согласия, новая цель обработки требует спросить заново
  • Расширен CSP на сервере: адрес виджета добавлен в script-src и connect-src
  • Куки приведены к решению Planet49: аналитика и маркетинг выключены по умолчанию, функциональные тоже
  • Дописан раздел о чате в Datenschutzerklärung
  • Первый экран: рамка снимка поставлена так, чтобы фотография её заполняла; переписаны описания студии

Проверка

  • До согласия: виджета в DOM нет, проверено селектором, скрипт отсутствует
  • После согласия на функциональные куки: виджет внедряется и строит свой интерфейс в Shadow DOM
  • При повторном заходе с сохранённым согласием грузится сам
  • Нарушений CSP в консоли нет; соединение с API разрешено, ни iframe, ни WebSocket не нужны
  • Весь ход работы лежит в репозитории журналом внедрения, его можно проверить, а не просто поверить

Технологии: HTML, CSS, JavaScript, Node.js (отдача и CSP), Docker

fritzistfrieda.de