From 3c59414345cd5080f80ee797fb706452f4b7ddbc Mon Sep 17 00:00:00 2001 From: b-mob-calendar Date: Sun, 12 Jul 2026 22:30:19 +0000 Subject: [PATCH] =?UTF-8?q?docs(app-map):=20calendar.md=20=E2=80=94=20?= =?UTF-8?q?=D0=B2=D0=B8=D0=B7=D1=83=D0=B0=D0=BB=D1=8C=D0=BD=D0=B0=D1=8F=20?= =?UTF-8?q?=D1=81=D0=B2=D0=B5=D1=80=D0=BA=D0=B0=20=D0=BD=D0=B0=20forbion?= =?UTF-8?q?=20(Browser1/cloude):=20=D1=80=D0=B5=D0=B0=D0=BB=D1=8C=D0=BD?= =?UTF-8?q?=D1=8B=D0=B5=20=D1=8F=D1=80=D0=BB=D1=8B=D0=BA=D0=B8,=20=D0=B2?= =?UTF-8?q?=D0=B8=D0=B4=20=D0=B2=20=D0=BC=D0=B5=D0=BD=D1=8E=20=D0=94=D0=B5?= =?UTF-8?q?=D0=B9=D1=81=D1=82=D0=B2=D0=B8=D1=8F,=20+=D0=BD=D0=B5=D0=B7?= =?UTF-8?q?=D0=B0=D0=BF=D0=BB=D0=B0=D0=BD=D0=B8=D1=80.=D0=B7=D0=B0=D0=B4?= =?UTF-8?q?=D0=B0=D1=87=D0=B8/+Appointments/+Deck-=D0=B8=D1=81=D1=82=D0=BE?= =?UTF-8?q?=D1=87=D0=BD=D0=B8=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/app-map/calendar.md | 57 +++++++++++++++++++++++++++++++--------- 1 file changed, 44 insertions(+), 13 deletions(-) diff --git a/docs/app-map/calendar.md b/docs/app-map/calendar.md index 5ac709b..ff883c0 100644 --- a/docs/app-map/calendar.md +++ b/docs/app-map/calendar.md @@ -9,10 +9,13 @@ создаётся/не меняется/не удаляется, приглашения не отправляются, free/busy-запросы не шлются. Приватность: реальные названия/участники событий не фиксируются — только структура UI. -> Статус визуальной сверки на живом forbion: **ожидает** — для выбора конкретной Chrome-сессии -> (`Browser 1 c9284989`) нужен шаг владельца (в сессии видно 2 браузера, инструмент требует -> выбор владельцем). Дерево ниже построено из кода и валидно; отметки `визуал(?)` = требуют -> финального взгляда на экран (в первую очередь — порядок пунктов и мобильная модель месяца). +> Статус визуальной сверки на живом forbion: **ПРОЙДЕНА** 2026-07-12 (Browser 1 `c9284989`, +> сессия `cloude` подтверждена `OC.getCurrentUser().uid`, мобильная вёрстка снята same-origin +> iframe 390px — окно общее не трогал, [[f7-mobile-web-iframe-technique]]; строго read-only, +> ничего не сохранял). Реальные русские ярлыки сверены с деревом из кода, порядок полей окна +> события подтверждён. Сверка вскрыла разделы, которых в коде-выборке не было видно — внесены +> ниже (Appointments, незапланированные задачи, Deck-источник). Оставшиеся `визуал(?)` — +> условные состояния (корзина видна только при наличии удалённых, реальных событий у `cloude` нет). > **F7-форк**: окно события на forbion кастомизировано (тема адресует `.f7-calendar-event-view`, > `.f7-invitee-status-row`, `.f7-location-talk-row`, `.property-add-talk`) — набор кнопок тот же, @@ -34,24 +37,36 @@ Talk) · `Editor/FreeBusy/*` (занятость). `/apps/calendar/`. Оболочку описывает `shell.md` (зона лида) — здесь только специфика приложения. ## Экран: Календарь (главный, сетка) -**Шапка (`AppNavigationHeader`):** -- «**‹**» (Предыдущий период) → сдвиг диапазона назад. +**Шапка (`AppNavigationHeader`, реальные ярлыки мобильной версии сверены):** +- «**Открыть навигацию**» (бургер) → сайдбар календарей (см. ниже). +- «**Предыдущий месяц**» / «**Следующий месяц**» → сдвиг периода (aria-label зависит от вида: + «…месяц»/«…неделя»/«…день»). - «**Сегодня**» → текущая дата. -- «**›**» (Следующий период) → сдвиг вперёд. -- Заголовок периода (месяц/неделя/…) → выпадающий выбор даты (date-picker). -- «**Переключатель вида**» → меню: «День», «Неделя», «Месяц», «Год», «Список». - - `расхождение:` в нативе есть только День/Неделя/Месяц; «Год» и «Список» отсутствуют. -- «**+ Создать событие**» → окно события (см. «Экран: Событие»); write — на forbion не сохраняю. +- «**Создать событие**» → окно события (см. «Экран: Событие»); write — на forbion не сохраняю. +- «**Действия**» → меню переключения вида: «**День**», «**Неделя**», «**Месяц**», «**Год**», + «**Список**» (сверено на живом — все 5 пунктов). + - `отличие от десктопа:` в мобильной версии переключатель вида спрятан в дропдаун «Действия», + а НЕ вынесен видимым тумблером. + - `расхождение (натив):` в клиенте есть только День/Неделя/Месяц; «Год» и «Список» отсутствуют. **Тело:** сетка календаря. На мобильном (узкий вьюпорт) модель компактная — месяц сверху + -список событий выбранного дня снизу `визуал(?)` (сверить порядок/скролл на экране). +список событий выбранного дня снизу. **Действия в теле:** - Тап по ячейке дня → выбор дня (список событий этого дня внизу). - Тап по пилюле события → открыть событие (просмотр/редактор). +- «**Показать незапланированные задачи**» (сверено на живом) → шит/панель «Незапланированные + задачи» (VTODO без даты из календарей с задачами); «×» закрыть. `расхождение (натив):` панели + незапланированных задач в клиенте нет. ## Экран: Навигация календарей (сайдбар / бургер) -**Тело:** список «**Мои календари**», ниже — «Корзина» и «Настройки». +Открытие: кнопка «**Открыть навигацию**» в шапке. +**Тело (сверено на живом):** «**Мои календари**» (+ «Добавить новое»), список календарей, +раздел «**Предложенные встречи**» / «**Расписание встреч**» (Appointments), внизу — +«**Параметры календаря**» (+ Корзина при наличии удалённых). + +**Календари в списке `cloude` (пример состава):** «Личное», «Дни рождения контакта», +«Карточки» (интеграция Deck — доски как источник событий). `визуал(?)`: набор зависит от аккаунта. **Строка календаря:** - Чекбокс видимости → включить/выключить показ календаря. @@ -90,7 +105,23 @@ Talk) · `Editor/FreeBusy/*` (занятость). «Импорт календарей» (write). - Блок «**CalDAV**»: «CalDAV URL», «Адрес сервера для iOS и macOS» — информационные (копирование). +### Подэкран: Расписания встреч / Appointments (`views/Appointments`, `AppointmentConfigList`) +Раздел сайдбара «**Предложенные встречи**» / «**Расписание встреч**» (сверено на живом — у +`cloude` пусто: «Нет активных предложенных встреч»). +**Действия:** +- «**Создать расписание встреч**» (`Create appointment schedule`) → модалка настройки + (`AppointmentConfigModal`): имя, описание, местоположение, длительность, «Календарь бронирования», + «Календари для проверки конфликтов», буферы до/после, макс. слотов в день, ограничение горизонта + бронирования, «Создать комнату Talk». write. +- Готовое расписание → публичная страница бронирования (внешний гость: выбор слота → «Подтвердить»). +- `расхождение (натив):` функционала «Appointments»/страниц бронирования в клиенте нет. + ## Экран: Событие (окно, `EditSimple`/`EditFull`, форк `.f7-calendar-event-view`) +> Сверено на живом (mail/079): «Создать событие» открывает СРАЗУ полный редактор +> (`/new/full/…`, F7-форк по умолчанию полный, не simple). Порядок и русские ярлыки полей +> подтверждены: Название → С/По (дата+время нативными пикерами) → «Добавить местоположение» → +> «Добавьте описание» → «Добавить напоминание» → «Поиск и добавление категорий» → +> «Поиск и добавление участников (email/пользователи/контакты/группы/команды)». Открытие: пилюля события или «Создать событие». Переключение простой↔полный: «**Подробнее**». **Шапка:**