docs(app-map): карта Почты (mail.md) — по мобильной веб forbion, read-only
This commit is contained in:
@@ -0,0 +1,169 @@
|
||||
# Карта: Почта
|
||||
|
||||
Снята по **мобильной веб-версии** forbion.f7cloud.ru (вьюпорт ~400px, плавающая нижняя панель —
|
||||
мобильная тема), аккаунт `cloude` / почтовый ящик `cloude@forbion.ru`, **строго read-only**
|
||||
(mail/073). Живой UI — полный **Nextcloud Mail 5.7.15**.
|
||||
|
||||
**Источники узлов:** `[live]` — пройдено в браузере; `[src]` — достроено по читаемому исходнику
|
||||
`design-reference/forbion-apps/f7mail/src` (форк f7mail) + nextcloud/mail 5.7.15, т.к. узел
|
||||
требует записи и live не проходился; `[mockup]` — сверено с `design/screens/mail/*.png`.
|
||||
|
||||
> ⚠️ **Ограничение read-only для Почты.** В NC Mail пометкой `\Seen` является само **открытие**
|
||||
> непрочитанного письма — это запись на сервер. У `cloude` все 3 письма во «Входящих» —
|
||||
> непрочитанные, «Отправленные»/«Черновики» пусты, прочитанных писем нет. Поэтому **экран
|
||||
> открытого письма live не проходился**; его дерево дано по `[src]`/`[mockup]` и помечено
|
||||
> `не-пройдено-live: \Seen`. Composer открывался пустым и закрывался без ввода (черновик не
|
||||
> создавался). Ни одно пишущее действие (отправка/удаление/спам/перемещение/пометки) не нажималось.
|
||||
|
||||
---
|
||||
|
||||
## Вход
|
||||
Нижняя плавающая панель оболочки → иконка «конверт» (раздел «Почта», активна) → открывается
|
||||
**Список писем** текущей папки (по умолчанию «Приоритетные входящие», `/apps/mail/box/priority`).
|
||||
Оболочку панели/шторки описывает `shell.md` (зона лида).
|
||||
|
||||
---
|
||||
|
||||
## Экран: Список писем (папка) `[live]`
|
||||
URL: `/apps/mail/box/<id>` (напр. priority, 517=Входящие).
|
||||
|
||||
**Шапка:**
|
||||
- Поле «Искать в папке» → фокус строки поиска в текущей папке.
|
||||
- Иконка-слайдеры (справа в поле) → открывает модалку **«Параметры поиска»** (расширенный поиск).
|
||||
- Круглая зелёная «+» → открывает **Композер** (сворачивается в плашку «Сообщение без названия»).
|
||||
|
||||
**Тело:** вертикальный список карточек-писем. Пустая папка → центр-заглушка «**В этой папке нет
|
||||
сообщений**» + логотип F7 `[live]` (наблюдалось в «Отправленных»).
|
||||
|
||||
**Карточка письма (строка):**
|
||||
- Аватар/инициалы отправителя (цветной кружок).
|
||||
- Имя отправителя (жирным) + строка-превью темы/начала письма.
|
||||
- Справа: относительное время («1:00», «вс») + **зелёная точка** = непрочитано.
|
||||
- Тап по карточке → **Экран открытого письма/треда** (`/box/<id>/thread/<tid>`).
|
||||
⚠️ помечает `\Seen` — live не нажималось.
|
||||
|
||||
**Быстрые действия строки (появляются при наведении/выборе)** `[live]`:
|
||||
- ✉ конверт → пометить прочитанным/непрочитанным *(запись)*.
|
||||
- 🌿 лист → важное/снять важность *(запись)*.
|
||||
- 🗑 корзина → удалить ветку *(запись)*.
|
||||
- ⋯ → контекстное меню (ниже).
|
||||
|
||||
### Контекстное меню письма (⋯ «Больше действий») `[live]`
|
||||
Верхний ряд иконок: **В избранное** (звезда) · **Прочитать** (конверт) · **Снять важность** (лист).
|
||||
Далее пункты:
|
||||
- 🕐 `<дата и время письма>` (инфо-строка, напр. «13 июля 2026 г., 1:00»).
|
||||
- ⓘ **Пометить как спам** *(запись)*.
|
||||
- 🏷 **Изменить метки** → диалог выбора/назначения меток *(запись при сохранении)*.
|
||||
- ⏰ **Запланированная отправка** *(в native — открывает composer-ответ с выбором времени)*.
|
||||
- **Переместить ветку** → выбор папки назначения *(запись)*.
|
||||
- 🗑 **Удалить ветку** *(запись)*.
|
||||
- ⋯ **Больше действий** → подменю:
|
||||
- **Редактировать как новое сообщение** → Композер с телом письма.
|
||||
- **Ответить встречей** → создание события-приглашения (CalDAV).
|
||||
- **Создать задачу** → создание задачи из письма (Tasks).
|
||||
- **Скачать письмо** → выгрузка .eml.
|
||||
|
||||
---
|
||||
|
||||
## Экран: Параметры поиска (расширенный поиск) `[live]`
|
||||
Открывается иконкой-слайдерами в поле поиска. Модалка «**Параметры поиска**», крестик ✕ (закрыть).
|
||||
**Поля:**
|
||||
- **Тема** (строка).
|
||||
- **Тело** — «Найти» (строка).
|
||||
- **Дата**: «Дата начала» и «Дата окончания» — два пикера даты (иконка календаря).
|
||||
- **От** — «Выберите отправителей» (мультиселект).
|
||||
- **Кому** — «Выберите получателей».
|
||||
- **Коп** — получатели CC.
|
||||
- **СкрКоп** — получатели BCC.
|
||||
- **Метки** — «Выбор меток».
|
||||
- **Отмечено как** (чекбоксы): Важное · В избранное · Непрочитанное · Имеет вложения ·
|
||||
Упоминания меня.
|
||||
|
||||
**Низ:** «Очистить» (сброс) · «**Поиск**» (зелёная).
|
||||
|
||||
---
|
||||
|
||||
## Экран: Композер (новое сообщение) `[live]`
|
||||
Открытие: «+» в шапке списка. Сначала **свёрнутая плашка** снизу «Сообщение без названия»
|
||||
с иконками ⤢ (развернуть) и ✕ (закрыть/отменить). Развёрнутый вид — полноэкранная форма:
|
||||
|
||||
**Шапка:** заголовок «Новое сообщение», под ним отправитель «cloude <cloude@forbion.ru>»;
|
||||
справа — («свернуть») и ✕ («закрыть»).
|
||||
**Поля:**
|
||||
- **Кому:** с шевроном-раскрытием → раскрывает **Копия:** (Cc) и **Ск:** (Bcc).
|
||||
- **Тема сообщения**.
|
||||
- **Текст** (тело, шеврон сворачивания); в правом нижнем углу тела — 📎 **скрепка** (вложения).
|
||||
**Низ-панель:**
|
||||
- **≡A** → панель форматирования текста (rich-text: жирный/курсив/списки и т.п.) `[src]`.
|
||||
- **⋯** → меню: **Умный подборщик** · **Текстовые шаблоны** · **Отправить позже** ·
|
||||
☐ **Запросить подтверждение прочтения**.
|
||||
- **▷ Отправить** (зелёная, неактивна при пустых получателях) *(запись — не нажималось)*.
|
||||
|
||||
расхождение(?): проверить на устройстве, что native-композер даёт то же меню «⋯» (Умный
|
||||
подборщик / шаблоны / отправить позже / подтверждение прочтения) — в native подтверждена
|
||||
запланированная отправка и вложения; «Умный подборщик» и «Запросить подтверждение прочтения»
|
||||
в CHANGELOG не упоминались.
|
||||
|
||||
---
|
||||
|
||||
## Экран: Открытое письмо / тред `[src] [mockup]` — не-пройдено-live: \Seen
|
||||
URL: `/apps/mail/box/<id>/thread/<tid>`. Структура по `MessageView.vue` + макетам
|
||||
`Почта _ Окно сообщения*.png`, `Сообщение с перепиской *.png`:
|
||||
|
||||
**Шапка:** тема письма (заголовок h2). Для локального (черновик/исходящее) — метка статуса.
|
||||
**Панель действий над письмом:**
|
||||
- Обычное письмо: **Ответить** · **Переслать** · **В избранное** (toggle) · **Отметить
|
||||
непрочитанным** (если `\Seen`) · **Архивировать** · **В спам** · **В корзину** · **Удалить**.
|
||||
- Черновик/исходящее: **Отправить** (если можно) · **Изменить черновик** · **Удалить**.
|
||||
**Мета-строки:** Кому (to), Копия (cc), «Отправить в» (sendAt — для запланированных).
|
||||
**Перемещение:** выпадающий выбор папки + кнопка «Переместить».
|
||||
**Вложения:** список карточек вложений (если есть).
|
||||
**Тело:** HTML-письмо в WebView-контейнере, либо текстовое в Compose (в native).
|
||||
**Тред:** несколько писем переписки — сворачиваемые карточки (закрытые/открытое), см.
|
||||
`Сообщение с перепиской закрытые.png` / `... открытое.png`.
|
||||
**Плавающая кнопка «↩ Ответить»** (native `MailReplyFab`) — сверено ранее, `[mockup]`.
|
||||
|
||||
---
|
||||
|
||||
## Навигация папок (шторка «Открыть навигацию») `[live]`
|
||||
Кнопка-гамбургер почты → выезжает список папок ящика. Сверху: «**Создать сообщение**» и
|
||||
«**Обновить**». Далее:
|
||||
- **Приоритетные входящие** (`/box/priority`).
|
||||
- Аккаунт **cloude@forbion.ru** + кнопка «**Действия**» (⋯ по аккаунту).
|
||||
- **Входящие** (`/box/517`) · **Непрочитанное** (`/box/unread/517`) · **Избранные**
|
||||
(`/box/starred/517`) · **Черновики** (`/box/516`) · **Отправленные** (`/box/515`) ·
|
||||
**Спам** (`/box/513`) · **Корзина** (`/box/514`).
|
||||
- У каждой папки — кнопка «**Действия**» (⋯: переименование/очистка/подписка и т.п. `[src]`).
|
||||
|
||||
---
|
||||
|
||||
## Экран: Параметры эл. почты (настройки) `[live] вход` / `[src] глубина`
|
||||
Точка входа: пункт «**Параметры эл. почты**» (в меню настроек шапки; JS-модалка, `href="#"`).
|
||||
Глубину подтверждает native `MailSettingsScreens.kt` + макеты `Параметры электронной почты.png`,
|
||||
`Параметры учётной записи.png`:
|
||||
- **Основные** (общие параметры почты).
|
||||
- **Учётные записи** (аккаунты; форма `AccountForm.vue` `[src]`).
|
||||
- **Внешний вид**.
|
||||
- **Текстовые шаблоны / подписи**.
|
||||
- **Конфиденциальность**.
|
||||
- **Безопасность**.
|
||||
- **Фильтры** (sieve) — `FiltersSettingsView.vue` `[src]`; в native — общий официальный API
|
||||
`/apps/mail/api/filter` (список/вкл/выкл/удаление/правка простых; сложные — долг v1).
|
||||
|
||||
расхождение(?): live-модалку «Параметры эл. почты» не раскрывал по пунктам (JS-диалог) — при
|
||||
сверке на устройстве пройти каждый подраздел и сверить состав с native.
|
||||
|
||||
---
|
||||
|
||||
## Пустые/особые состояния `[live]`
|
||||
- Пустая папка: «В этой папке нет сообщений» + логотип F7 по центру.
|
||||
- Свёрнутый композер: плашка «Сообщение без названия» (⤢ / ✕) поверх списка.
|
||||
|
||||
---
|
||||
|
||||
## Открытые вопросы (добить при сверке на устройстве)
|
||||
1. Экран открытого письма/треда — пройти live, когда будет прочитанное письмо или write-ОК на `\Seen`.
|
||||
2. Модалка «Параметры эл. почты» — раскрыть каждый подраздел live.
|
||||
3. Действия «⋯» по папке и по аккаунту — раскрыть состав live.
|
||||
4. Диалоги «Изменить метки», «Переместить», «Запланированная отправка» — раскрыть формы live.
|
||||
5. Сверить состав меню композера «⋯» (Умный подборщик / Запросить подтверждение прочтения) с native.
|
||||
Reference in New Issue
Block a user