docs(app-map): calendar.md — визуальная сверка на forbion (Browser1/cloude): реальные ярлыки, вид в меню Действия, +незапланир.задачи/+Appointments/+Deck-источник

This commit is contained in:
b-mob-calendar
2026-07-12 22:30:19 +00:00
parent af6acdb54a
commit 3c59414345
+44 -13
View File
@@ -9,10 +9,13 @@
создаётся/не меняется/не удаляется, приглашения не отправляются, free/busy-запросы не шлются. создаётся/не меняется/не удаляется, приглашения не отправляются, free/busy-запросы не шлются.
Приватность: реальные названия/участники событий не фиксируются — только структура UI. Приватность: реальные названия/участники событий не фиксируются — только структура UI.
> Статус визуальной сверки на живом forbion: **ожидает** — для выбора конкретной Chrome-сессии > Статус визуальной сверки на живом forbion: **ПРОЙДЕНА** 2026-07-12 (Browser 1 `c9284989`,
> (`Browser 1 c9284989`) нужен шаг владельца (в сессии видно 2 браузера, инструмент требует > сессия `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-форк**: окно события на forbion кастомизировано (тема адресует `.f7-calendar-event-view`,
> `.f7-invitee-status-row`, `.f7-location-talk-row`, `.property-add-talk`) — набор кнопок тот же, > `.f7-invitee-status-row`, `.f7-location-talk-row`, `.property-add-talk`) — набор кнопок тот же,
@@ -34,24 +37,36 @@ Talk) · `Editor/FreeBusy/*` (занятость).
`/apps/calendar/`. Оболочку описывает `shell.md` (зона лида) — здесь только специфика приложения. `/apps/calendar/`. Оболочку описывает `shell.md` (зона лида) — здесь только специфика приложения.
## Экран: Календарь (главный, сетка) ## Экран: Календарь (главный, сетка)
**Шапка (`AppNavigationHeader`):** **Шапка (`AppNavigationHeader`, реальные ярлыки мобильной версии сверены):**
- «**‹**» (Предыдущий период) → сдвиг диапазона назад. - «**Открыть навигацию**» (бургер) → сайдбар календарей (см. ниже).
- «**Предыдущий месяц**» / «**Следующий месяц**» → сдвиг периода (aria-label зависит от вида:
«…месяц»/«…неделя»/«…день»).
- «**Сегодня**» → текущая дата. - «**Сегодня**» → текущая дата.
- «**›**» (Следующий период) → сдвиг вперёд. - «**Создать событие**» → окно события (см. «Экран: Событие»); write — на forbion не сохраняю.
- Заголовок периода (месяц/неделя/…) → выпадающий выбор даты (date-picker). - «**Действия**» → меню переключения вида: «**День**», «**Неделя**», «**Месяц**», «**Год**»,
- «**Переключатель вида**» → меню: «День», «Неделя», «Месяц», «Год», «Список». «**Список**» (сверено на живом — все 5 пунктов).
- `расхождение:` в нативе есть только День/Неделя/Месяц; «Год» и «Список» отсутствуют. - `отличие от десктопа:` в мобильной версии переключатель вида спрятан в дропдаун «Действия»,
- «**+ Создать событие**» → окно события (см. «Экран: Событие»); write — на forbion не сохраняю. а НЕ вынесен видимым тумблером.
- `расхождение (натив):` в клиенте есть только День/Неделя/Месяц; «Год» и «Список» отсутствуют.
**Тело:** сетка календаря. На мобильном (узкий вьюпорт) модель компактная — месяц сверху + **Тело:** сетка календаря. На мобильном (узкий вьюпорт) модель компактная — месяц сверху +
список событий выбранного дня снизу `визуал(?)` (сверить порядок/скролл на экране). список событий выбранного дня снизу.
**Действия в теле:** **Действия в теле:**
- Тап по ячейке дня → выбор дня (список событий этого дня внизу). - Тап по ячейке дня → выбор дня (список событий этого дня внизу).
- Тап по пилюле события → открыть событие (просмотр/редактор). - Тап по пилюле события → открыть событие (просмотр/редактор).
- «**Показать незапланированные задачи**» (сверено на живом) → шит/панель «Незапланированные
задачи» (VTODO без даты из календарей с задачами); «×» закрыть. `расхождение (натив):` панели
незапланированных задач в клиенте нет.
## Экран: Навигация календарей (сайдбар / бургер) ## Экран: Навигация календарей (сайдбар / бургер)
**Тело:** список «**Мои календари**», ниже — «Корзина» и «Настройки». Открытие: кнопка «**Открыть навигацию**» в шапке.
**Тело (сверено на живом):** «**Мои календари**» (+ «Добавить новое»), список календарей,
раздел «**Предложенные встречи**» / «**Расписание встреч**» (Appointments), внизу —
«**Параметры календаря**» (+ Корзина при наличии удалённых).
**Календари в списке `cloude` (пример состава):** «Личное», «Дни рождения контакта»,
«Карточки» (интеграция Deck — доски как источник событий). `визуал(?)`: набор зависит от аккаунта.
**Строка календаря:** **Строка календаря:**
- Чекбокс видимости → включить/выключить показ календаря. - Чекбокс видимости → включить/выключить показ календаря.
@@ -90,7 +105,23 @@ Talk) · `Editor/FreeBusy/*` (занятость).
«Импорт календарей» (write). «Импорт календарей» (write).
- Блок «**CalDAV**»: «CalDAV URL», «Адрес сервера для iOS и macOS» — информационные (копирование). - Блок «**CalDAV**»: «CalDAV URL», «Адрес сервера для iOS и macOS» — информационные (копирование).
### Подэкран: Расписания встреч / Appointments (`views/Appointments`, `AppointmentConfigList`)
Раздел сайдбара «**Предложенные встречи**» / «**Расписание встреч**» (сверено на живом — у
`cloude` пусто: «Нет активных предложенных встреч»).
**Действия:**
- «**Создать расписание встреч**» (`Create appointment schedule`) → модалка настройки
(`AppointmentConfigModal`): имя, описание, местоположение, длительность, «Календарь бронирования»,
«Календари для проверки конфликтов», буферы до/после, макс. слотов в день, ограничение горизонта
бронирования, «Создать комнату Talk». write.
- Готовое расписание → публичная страница бронирования (внешний гость: выбор слота → «Подтвердить»).
- `расхождение (натив):` функционала «Appointments»/страниц бронирования в клиенте нет.
## Экран: Событие (окно, `EditSimple`/`EditFull`, форк `.f7-calendar-event-view`) ## Экран: Событие (окно, `EditSimple`/`EditFull`, форк `.f7-calendar-event-view`)
> Сверено на живом (mail/079): «Создать событие» открывает СРАЗУ полный редактор
> (`/new/full/…`, F7-форк по умолчанию полный, не simple). Порядок и русские ярлыки полей
> подтверждены: Название → С/По (дата+время нативными пикерами) → «Добавить местоположение» →
> «Добавьте описание» → «Добавить напоминание» → «Поиск и добавление категорий» →
> «Поиск и добавление участников (email/пользователи/контакты/группы/команды)».
Открытие: пилюля события или «Создать событие». Переключение простой↔полный: «**Подробнее**». Открытие: пилюля события или «Создать событие». Переключение простой↔полный: «**Подробнее**».
**Шапка:** **Шапка:**