170 lines
13 KiB
Markdown
170 lines
13 KiB
Markdown
# Карта: Почта
|
||
|
||
Снята по **мобильной веб-версии** 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.
|