UX overhaul: glassmorphism nav/footer, forms redesign, mobile fixes
Navigation: - Nav bar pill shape (border-radius: 100px), dark glass style - Icons added to all nav items (FA4 outline variants, fixed-width alignment) - Footer hidden on all devices (nav panel covers mobile) - Footer nav icons + text added before removal Forms (ask.md, plan.md): - Full glassmorphism redesign: rounded card, blur backdrop - Input borders visible (#b8c4ce), focus ring, proper placeholder colors - Select: self-contained CSS, no backdrop-filter conflict, arrow fixed - Submit button: gradient with shadow - File upload button: .file-btn class, fa-arrow-down icon - form-note styled as info callout with left border + ⓘ icon - Footnotes sup.fn: circular badge, baseline positioning (no line-height jump) - Footnote ¹ on both consent checkboxes, accordion = full legal text - Dark mode: opaque dark card (rgba 22,26,34,0.88), proper contrast - Dark mode success/error messages adapted - Double checkmark bug fixed (removed ::after overlay) - Italic removed from privacy-details text Layout: - #main rounded corners (20px all sides) + margin for visibility - Post card images rounded (border-radius: 10px) - Page titles: uppercase removed, font-weight 900, left-aligned - "Подробнее" button hidden on post cards - iOS background-attachment: fixed bug fixed (scroll on mobile) - Pagination mobile: counter restored, buttons above footer Content: - Page titles uncommented in front matter (gallery, map, ask, plan) - Duplicate rawhtml title blocks removed Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+26
-41
@@ -1,16 +1,12 @@
|
||||
+++
|
||||
# title = 'Спросить'
|
||||
title = 'Хочу поехать'
|
||||
slug = 'ask'
|
||||
disableComments = true
|
||||
+++
|
||||
{{< rawhtml >}}
|
||||
<h3 align="center">Задать вопрос</h3>
|
||||
<p class="page-lead">Есть вопрос или хотите предложить маршрут — напишите нам. <a href="/plan/">Смотреть календарь поездок →</a></p>
|
||||
{{< /rawhtml >}}
|
||||
|
||||
Если у Вас есть вопрос или Вы хотите предложить свою локацию / тур для поездки, напишите в форме ниже. Мы вам с радостью ответим!
|
||||
|
||||
**Календарь поездок** можно посмотреть [здесь](/plan/)
|
||||
|
||||
{{< rawhtml >}}
|
||||
<div class="contact-form-container">
|
||||
<!-- Сообщения об успехе/ошибке -->
|
||||
@@ -57,12 +53,8 @@ disableComments = true
|
||||
// Загружаем скрипт шифрования
|
||||
const script = document.createElement('script');
|
||||
script.src = '/js/encryption.js';
|
||||
script.onload = function() {
|
||||
console.log('✅ Скрипт шифрования загружен для формы ask');
|
||||
};
|
||||
script.onerror = function() {
|
||||
console.error('❌ Ошибка загрузки скрипта шифрования');
|
||||
};
|
||||
script.onload = function() {};
|
||||
script.onerror = function() {};
|
||||
document.head.appendChild(script);
|
||||
});
|
||||
|
||||
@@ -83,12 +75,9 @@ disableComments = true
|
||||
body: formData
|
||||
})
|
||||
.then(response => {
|
||||
console.log('HTTP статус:', response.status);
|
||||
console.log('Content-Type:', response.headers.get('content-type'));
|
||||
return response.text();
|
||||
})
|
||||
.then(text => {
|
||||
console.log('Ответ сервера:', text);
|
||||
try {
|
||||
const data = JSON.parse(text);
|
||||
return data;
|
||||
@@ -147,19 +136,19 @@ disableComments = true
|
||||
</div>
|
||||
|
||||
<div class="form-note">
|
||||
<p>* Укажите email или Telegram ник (одно из двух обязательно)</p>
|
||||
<p>Укажите email или Telegram ник (одно из двух обязательно)</p>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="subject">Тема *</label>
|
||||
<select id="subject" name="subject" required>
|
||||
<option value="">Выберите тему...</option>
|
||||
<option value="" disabled selected></option>
|
||||
<option value="работа сайта">Работа сайта</option>
|
||||
<option value="запланированные мероприятия">Запланированные мероприятия</option>
|
||||
<option value="пройденные маршруты">Пройденные маршруты</option>
|
||||
<option value="условия участия">Условия участия</option>
|
||||
<option value="условия сотрудничества">Условия сотрудничества</option>
|
||||
<option value="хочу предложить поездку">Хочу предложить поездку</option>
|
||||
<option value="хочу предложить поездку">Предложить поездку</option>
|
||||
<option value="контакты для связи">Контакты для связи</option>
|
||||
</select>
|
||||
</div>
|
||||
@@ -175,7 +164,7 @@ disableComments = true
|
||||
<input type="checkbox" id="privacy_consent" name="privacy_consent" required>
|
||||
<span class="checkmark"></span>
|
||||
<span class="privacy-text">
|
||||
Я согласен на обработку персональных данных в соответствии с ФЗ №152 <sup>1</sup>
|
||||
Я согласен на обработку персональных данных в соответствии с ФЗ №152 <sup class="fn">1</sup>
|
||||
<div class="privacy-details">
|
||||
<p>Данные будут обрабатываться для ответа на ваш вопрос.</p>
|
||||
<p>Согласие действует 1 месяц. Отзыв согласия: <a href="mailto:sleep-trip@ya.ru">sleep-trip@ya.ru</a></p>
|
||||
@@ -191,26 +180,22 @@ disableComments = true
|
||||
</div>
|
||||
{{< /rawhtml >}}
|
||||
|
||||
---
|
||||
|
||||
### Пояснения к форме:
|
||||
|
||||
<sup>1</sup> **Согласие на обработку персональных данных:**
|
||||
|
||||
Заполнение «чек-бокса» (проставление «галочки»/ «веб-метки» на сайте sleeptrip.ru в графе «Я согласен на обработку персональных данных») и нажатие соответствующей кнопки и (или) направление персональных данных (фамилия, имя, телефон, имя (ник) в Телеграм) в ответном письме на адрес: sleep-trip@ya.ru является подтверждением Вашего согласия на обработку персональных данных либо с целью получения разрешения на полёты беспилотного воздушного судна (БВС), либо с целью ответа на вопрос, заданный на сайте sleeptrip.ru.
|
||||
|
||||
Предоставленные персональные данные будут обрабатываться в соответствии с положениями Федерального закона Российской Федерации №152-ФЗ от 27.07.2006 «О персональных данных».
|
||||
|
||||
Заявление об уточнении персональных данных, отзыве настоящего согласия может быть направлено по электронной почте по адресу: sleep-trip@ya.ru.
|
||||
|
||||
Я выражаю свое согласие на обработку, включая: сбор, запись, систематизацию, накопление, хранение, уточнение (обновление, изменение), извлечение, использование, передачу (предоставление, доступ), блокирование, обезличивание, удаление, уничтожение, своих персональных данных (в случае предоставления мной) Оператору (владельцу сайта sleeptrip.ru) для целей:
|
||||
|
||||
- обеспечения получения разрешения на полёты БВС и направления мне информационных сообщений о статусе получения такого разрешения;
|
||||
- ответа на вопрос, заданный на сайте sleeptrip.ru.
|
||||
|
||||
Я согласен и разрешаю Оператору обрабатывать мои персональные данные с использованием средств автоматизации или без использования таких средств (смешанная обработка).
|
||||
|
||||
Я согласен с тем, что мои персональные данные будут переданы третьим лицам – Единой системе организации воздушного движения, сервису "Небосвод" (skyarc.ru) или сервису СППИ (https://sppi.ivprf.ru), а также сотрудникам полиции (в случае взаимодействия с ними на местности) для реализации целей обработки персональных данных - получения разрешения на полёты БВС. Без передачи данных указанным организациям (сервисам) реализация целей обработки персональных данных будет невозможна.
|
||||
|
||||
Настоящее Согласие действует до момента достижения целей обработки или отзыва согласия на обработку, но не более 1 (одного) месяца с момента предоставления Согласия.
|
||||
{{< rawhtml >}}
|
||||
<details class="legal-details">
|
||||
<summary><sup class="fn">1</sup> Постановка «галочки» в чекбоксе является подтверждением вашего согласия — читать полный текст (ФЗ №152)</summary>
|
||||
<div class="legal-text">
|
||||
<p>Заполнение «чек-бокса» (проставление «галочки»/«веб-метки» на сайте sleeptrip.ru в графе «Я согласен на обработку персональных данных») и нажатие соответствующей кнопки и (или) направление персональных данных (фамилия, имя, телефон, имя (ник) в Телеграм) в ответном письме на адрес: sleep-trip@ya.ru является подтверждением Вашего согласия на обработку персональных данных либо с целью получения разрешения на полёты беспилотного воздушного судна (БВС), либо с целью ответа на вопрос, заданный на сайте sleeptrip.ru.</p>
|
||||
<p>Предоставленные персональные данные будут обрабатываться в соответствии с положениями Федерального закона Российской Федерации №152-ФЗ от 27.07.2006 «О персональных данных».</p>
|
||||
<p>Заявление об уточнении персональных данных, отзыве настоящего согласия может быть направлено по электронной почте по адресу: <a href="mailto:sleep-trip@ya.ru">sleep-trip@ya.ru</a>.</p>
|
||||
<p>Я выражаю свое согласие на обработку, включая: сбор, запись, систематизацию, накопление, хранение, уточнение (обновление, изменение), извлечение, использование, передачу (предоставление, доступ), блокирование, обезличивание, удаление, уничтожение, своих персональных данных (в случае предоставления мной) Оператору (владельцу сайта sleeptrip.ru) для целей:</p>
|
||||
<ul>
|
||||
<li>обеспечения получения разрешения на полёты БВС и направления мне информационных сообщений о статусе получения такого разрешения;</li>
|
||||
<li>ответа на вопрос, заданный на сайте sleeptrip.ru.</li>
|
||||
</ul>
|
||||
<p>Я согласен и разрешаю Оператору обрабатывать мои персональные данные с использованием средств автоматизации или без использования таких средств (смешанная обработка).</p>
|
||||
<p>Я согласен с тем, что мои персональные данные будут переданы третьим лицам – Единой системе организации воздушного движения, сервису «Небосвод» (skyarc.ru) или сервису СППИ (sppi.ivprf.ru), а также сотрудникам полиции (в случае взаимодействия с ними на местности) для реализации целей обработки персональных данных — получения разрешения на полёты БВС. Без передачи данных указанным организациям реализация целей обработки персональных данных будет невозможна.</p>
|
||||
<p>Настоящее Согласие действует до момента достижения целей обработки или отзыва согласия на обработку, но не более 1 (одного) месяца с момента предоставления Согласия.</p>
|
||||
</div>
|
||||
</details>
|
||||
{{< /rawhtml >}}
|
||||
|
||||
|
||||
+34
-56
@@ -1,11 +1,9 @@
|
||||
+++
|
||||
title = 'Предстоящие поездки'
|
||||
slug = 'plan'
|
||||
# description = 'Выберите поездку из календаря'
|
||||
disableComments = true
|
||||
+++
|
||||
{{< rawhtml >}}
|
||||
<h3 align="center">Предстоящие поездки</h3>
|
||||
|
||||
<!-- Календарь поездок из upcoming-trips.json -->
|
||||
<div id="trips-grid" class="trips-calendar">
|
||||
<!-- Карточки поездок будут загружены динамически -->
|
||||
@@ -76,29 +74,20 @@ disableComments = true
|
||||
// Загружаем скрипт шифрования
|
||||
const encryptionScript = document.createElement('script');
|
||||
encryptionScript.src = '/js/encryption.js';
|
||||
encryptionScript.onload = function() {
|
||||
console.log('✅ Скрипт шифрования загружен для формы plan');
|
||||
};
|
||||
encryptionScript.onerror = function() {
|
||||
console.error('❌ Ошибка загрузки скрипта шифрования');
|
||||
};
|
||||
encryptionScript.onload = function() {};
|
||||
encryptionScript.onerror = function() {};
|
||||
document.head.appendChild(encryptionScript);
|
||||
|
||||
// Загружаем скрипт динамического заполнения поездок
|
||||
const tripScript = document.createElement('script');
|
||||
tripScript.src = '/js/trip-form-loader.js';
|
||||
tripScript.onload = function() {
|
||||
console.log('✅ Скрипт загрузчика поездок загружен');
|
||||
// Принудительно инициализируем после загрузки скрипта
|
||||
if (typeof TripFormLoader !== 'undefined') {
|
||||
window.tripFormLoader = new TripFormLoader();
|
||||
window.tripFormLoader.populateTripsDropdown();
|
||||
console.log('🔄 Принудительная инициализация загрузчика поездок');
|
||||
}
|
||||
};
|
||||
tripScript.onerror = function() {
|
||||
console.error('❌ Ошибка загрузки скрипта поездок');
|
||||
};
|
||||
tripScript.onerror = function() {};
|
||||
document.head.appendChild(tripScript);
|
||||
});
|
||||
|
||||
@@ -119,12 +108,9 @@ disableComments = true
|
||||
body: formData
|
||||
})
|
||||
.then(response => {
|
||||
console.log('HTTP статус:', response.status);
|
||||
console.log('Content-Type:', response.headers.get('content-type'));
|
||||
return response.text(); // Сначала получаем как текст
|
||||
return response.text();
|
||||
})
|
||||
.then(text => {
|
||||
console.log('Ответ сервера:', text);
|
||||
try {
|
||||
const data = JSON.parse(text);
|
||||
return data;
|
||||
@@ -188,19 +174,19 @@ disableComments = true
|
||||
</div>
|
||||
|
||||
<div class="form-note">
|
||||
<p>* Укажите email или Telegram ник (одно из двух обязательно)</p>
|
||||
<p>Укажите email или Telegram ник (одно из двух обязательно)</p>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="bvs_number"><strong>Учётный номер для БВС от 0,15 кг или серийный номер для БВС до 0,15 кг *</strong></label>
|
||||
<textarea id="bvs_number" name="bvs_number" placeholder="Укажите учётный номер для БВС от 0,15 кг или серийный номер для БВС до 0,15 кг" required></textarea>
|
||||
<label for="bvs_number">Учётный номер БВС *</label>
|
||||
<textarea id="bvs_number" name="bvs_number" placeholder="БВС от 0,15 кг — учётный номер, например: 123456789AB БВС до 0,15 кг — серийный номер с фюзеляжа" required></textarea>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="bvs_file">Загрузите уведомление в .pdf о постановке на учёт БВС от 0,15 кг, заявки без указанного уведомления не будут рассмотрены. Для БВС до 0,15 кг будут отдельно запрошены фотографии с серийным номером на фюзеляже БВС</label>
|
||||
<label for="bvs_file">Уведомление о постановке на учёт (.pdf)<br><small style="font-weight:400; color:#888;">Для БВС от 0,15 кг обязательно. Для БВС до 0,15 кг — фото с серийным номером запросим отдельно</small></label>
|
||||
<div style="margin-top: 10px;">
|
||||
<label for="bvs_file" style="display: inline-block; padding: 10px 20px; background-color: #007bff; color: white; border-radius: 4px; cursor: pointer; font-weight: bold;">Выбрать файл</label>
|
||||
<span id="file-name" style="margin-left: 10px; color: #666;"></span>
|
||||
<label for="bvs_file" class="file-btn"><i class="icon fa-arrow-down"></i> Выбрать файл</label>
|
||||
<span id="file-name" class="file-name-display"></span>
|
||||
</div>
|
||||
<input type="file" id="bvs_file" name="bvs_file" accept=".pdf" style="display: none;">
|
||||
</div>
|
||||
@@ -215,7 +201,7 @@ disableComments = true
|
||||
<div class="form-group">
|
||||
<label for="trip_period">Выберите мероприятие</label>
|
||||
<select id="trip_period" name="trip_period">
|
||||
<option value=""></option>
|
||||
<option value="" disabled selected></option>
|
||||
<!-- Опции будут загружены динамически из upcoming-trips.json -->
|
||||
</select>
|
||||
</div>
|
||||
@@ -227,7 +213,7 @@ disableComments = true
|
||||
<input type="checkbox" id="privacy_consent" name="privacy_consent" required>
|
||||
<span class="checkmark"></span>
|
||||
<span class="privacy-text">
|
||||
Я выражаю своё согласие на обработку персональных данных
|
||||
Я выражаю своё согласие на обработку персональных данных <sup class="fn">1</sup>
|
||||
<div class="privacy-details">
|
||||
<p>Персональные данные обрабатываются исключительно для получения разрешения на полёты БВС. Согласие действует 1 месяц. Отзыв согласия – заявление на sleep-trip@ya.ru</p>
|
||||
</div>
|
||||
@@ -240,7 +226,7 @@ disableComments = true
|
||||
<input type="checkbox" id="age_consent" name="age_consent" required>
|
||||
<span class="checkmark"></span>
|
||||
<span class="privacy-text">
|
||||
Мне есть 18 лет <sup>2</sup>
|
||||
Мне есть 18 лет <sup class="fn">2</sup>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
@@ -252,31 +238,23 @@ disableComments = true
|
||||
</div>
|
||||
{{< /rawhtml >}}
|
||||
|
||||
---
|
||||
|
||||
### Пояснения к форме:
|
||||
|
||||
<sup>1</sup> **Согласие на обработку персональных данных:**
|
||||
|
||||
Заполнение «чек-бокса» (проставление «галочки»/ «веб-метки» на сайте sleeptrip.ru в графе «Я согласен на обработку персональных данных») и нажатие соответствующей кнопки и (или) направление персональных данных (фамилия, имя, телефон, имя (ник) в Телеграм) в ответном письме на адрес: sleep-trip@ya.ru является подтверждением Вашего согласия на обработку персональных данных либо с целью получения разрешения на полёты беспилотного воздушного судна (БВС), либо с целью ответа на вопрос, заданный на сайте sleeptrip.ru.
|
||||
|
||||
Предоставленные персональные данные будут обрабатываться в соответствии с положениями Федерального закона Российской Федерации №152-ФЗ от 27.07.2006 «О персональных данных».
|
||||
|
||||
Заявление об уточнении персональных данных, отзыве настоящего согласия может быть направлено по электронной почте по адресу: sleep-trip@ya.ru.
|
||||
|
||||
<div style="text-align: center; font-weight: bold; margin: 20px 0;">СОГЛАСИЕ НА ОБРАБОТКУ ПЕРСОНАЛЬНЫХ ДАННЫХ</div>
|
||||
|
||||
Я выражаю свое согласие на обработку, включая: сбор, запись, систематизацию, накопление, хранение, уточнение (обновление, изменение), извлечение, использование, передачу (предоставление, доступ), блокирование, обезличивание, удаление, уничтожение, своих персональных данных (в случае предоставления мной) Оператору (владельцу сайта sleeptrip.ru) для целей:
|
||||
|
||||
- обеспечения получения разрешения на полёты БВС и направления мне информационных сообщений о статусе получения такого разрешения;
|
||||
- ответа на вопрос, заданный на сайте sleeptrip.ru.
|
||||
|
||||
Я согласен и разрешаю Оператору обрабатывать мои персональные данные с использованием средств автоматизации или без использования таких средств (смешанная обработка).
|
||||
|
||||
Я согласен с тем, что мои персональные данные будут переданы третьим лицам – Единой системе организации воздушного движения, сервису "Небосвод" (skyarc.ru) или сервису СППИ (https://sppi.ivprf.ru), а также сотрудникам полиции (в случае взаимодействия с ними на местности) для реализации целей обработки персональных данных - получения разрешения на полёты БВС. Без передачи данных указанным организациям (сервисам) реализация целей обработки персональных данных будет невозможна.
|
||||
|
||||
Настоящее Согласие действует до момента достижения целей обработки или отзыва согласия на обработку, но не более 1 (одного) месяца с момента предоставления Согласия.
|
||||
|
||||
<sup>2</sup> **Подтверждение совершеннолетия:** Поставление отметки в данном поле подтверждает, что вам исполнилось 18 лет.
|
||||
|
||||
---
|
||||
{{< rawhtml >}}
|
||||
<details class="legal-details">
|
||||
<summary><sup class="fn">1</sup> Постановка «галочки» в чекбоксе является подтверждением вашего согласия — читать полный текст (ФЗ №152)</summary>
|
||||
<div class="legal-text">
|
||||
<p>Заполнение «чек-бокса» (проставление «галочки»/«веб-метки» на сайте sleeptrip.ru в графе «Я согласен на обработку персональных данных») и нажатие соответствующей кнопки и (или) направление персональных данных (фамилия, имя, телефон, имя (ник) в Телеграм) в ответном письме на адрес: sleep-trip@ya.ru является подтверждением Вашего согласия на обработку персональных данных либо с целью получения разрешения на полёты беспилотного воздушного судна (БВС), либо с целью ответа на вопрос, заданный на сайте sleeptrip.ru.</p>
|
||||
<p>Предоставленные персональные данные будут обрабатываться в соответствии с положениями Федерального закона Российской Федерации №152-ФЗ от 27.07.2006 «О персональных данных».</p>
|
||||
<p>Заявление об уточнении персональных данных, отзыве настоящего согласия может быть направлено по электронной почте по адресу: <a href="mailto:sleep-trip@ya.ru">sleep-trip@ya.ru</a>.</p>
|
||||
<p><strong>СОГЛАСИЕ НА ОБРАБОТКУ ПЕРСОНАЛЬНЫХ ДАННЫХ</strong></p>
|
||||
<p>Я выражаю свое согласие на обработку, включая: сбор, запись, систематизацию, накопление, хранение, уточнение (обновление, изменение), извлечение, использование, передачу (предоставление, доступ), блокирование, обезличивание, удаление, уничтожение, своих персональных данных (в случае предоставления мной) Оператору (владельцу сайта sleeptrip.ru) для целей:</p>
|
||||
<ul>
|
||||
<li>обеспечения получения разрешения на полёты БВС и направления мне информационных сообщений о статусе получения такого разрешения;</li>
|
||||
<li>ответа на вопрос, заданный на сайте sleeptrip.ru.</li>
|
||||
</ul>
|
||||
<p>Я согласен и разрешаю Оператору обрабатывать мои персональные данные с использованием средств автоматизации или без использования таких средств (смешанная обработка).</p>
|
||||
<p>Я согласен с тем, что мои персональные данные будут переданы третьим лицам – Единой системе организации воздушного движения, сервису «Небосвод» (skyarc.ru) или сервису СППИ (sppi.ivprf.ru), а также сотрудникам полиции (в случае взаимодействия с ними на местности) для реализации целей обработки персональных данных — получения разрешения на полёты БВС. Без передачи данных указанным организациям реализация целей обработки персональных данных будет невозможна.</p>
|
||||
<p>Настоящее Согласие действует до момента достижения целей обработки или отзыва согласия на обработку, но не более 1 (одного) месяца с момента предоставления Согласия.</p>
|
||||
</div>
|
||||
</details>
|
||||
<p class="legal-note"><sup class="fn">2</sup> Отметка подтверждает, что участнику поездки исполнилось 18 лет.</p>
|
||||
{{< /rawhtml >}}
|
||||
|
||||
Reference in New Issue
Block a user