# Diff: Карточки (Deck) — итерация 1 (2026-07-13) Ff_app: **25.3%** (47 open Ф / 76) · Fd_app: **предварительно** (веб-вёрстка сверена live через iframe 390px; натив-дизайн-проход на устройстве — след. итерация) · n-a: 4 > Прогресс P1: (6eeba1b) меню карточки «**Назначить мне / Снять**»; (9d726f4) **бейдж > комментариев** «💬 N»; (73762d8/4fdadef) **меню колонки** «⋯» — «**Переименовать**» и > «**Удалить список**» (`renameStack`/`deleteStack`) — все `[done]` ниже (Ff экрана 4: > 52.0%→68.0%). **Compile + detekt модуля GREEN** (detekt-baseline модуля обновлён — v0.5.144-долг, > как у calendar e7d0a5a; вписывается в свип лида mail/095). Сверка веб (карта `deck.md`, апстрим `nextcloud/deck v1.16.4` + тема forbion, live-сверка Browser 1/cloude read-only) ↔ натив (`feature/deck`: `DeckRepository`/`DeckScreen`/ `DeckCardSheet`/`DeckViewModel`, внутренний фронт-API `/apps/deck/api/v1.0`). Метод mail/083: каждый пункт `[Ф|Д]`·`[open|done|n-a]`, Ff/Fd на экран. Дизайн (Fd) — на устройстве след. проход; здесь Ф-функционал из кода + структурные Д, где очевидно. Всплывающие меню (mail/087) раскрыты поимённо и сверены построчно. > Контекст доступа: запись на forbion под `cloude` разрешена с ограждениями (mail/085 — только > свои объекты `bmob-*`, уборка). Пишущие пункты ниже, помеченные `[open]` из-за «нет в нативе», > закрываются реализацией; «пишущее не проверено на живом» — сниму прогоном CRUD на доске > `bmob-deck` после реализации. --- ## Экран 1: Навигация приложения (веб-дровер) — Ff 16.7% (10 open Ф / 12) В нативе отдельного дровера приложения нет — вход = сразу список досок. Пункты веб-навигации: - [Ф][open] «**Ожидающие выполнения**» (обзор по срокам) — экрана нет. - [Ф][done] «**Все доски**» — натив показывает список досок (это дефолт-экран). - [Ф][done] Открыть доску (тап пункта) — есть. - [Ф][open] «**Добавить доску**» (инлайн: цвет + имя) — создания доски нет. - [Ф][open] «**Импортировать доску**» — нет. - [Ф][open] «**Настройки Deck**» — экрана настроек нет. Всплывающее меню доски (⋯ на пункте, `AppNavigationBoard`) — веб ↔ натив (в нативе меню доски НЕТ): - [Ф][open] «**Сведения о доске**» (сайдбар доски) — нет. - [Ф][open] «**Редактировать доску**» (имя/цвет) — нет. - [Ф][open] «**Клонировать доску**» — нет. - [Ф][open] «**Архивировать/Разархивировать доску**» — нет (архивные доски просто скрыты). - [Ф][open] «**Экспортировать доску**» — нет. - [Ф][open] «**Напоминания о сроках**» (Все/Назначенные/Выкл.) — нет. ## Экран 2: Все доски (список) — Ff 50.0% (1 open Ф / 2) - [Ф][done] Открыть доску (тап строки) — есть. - [Ф][open] Поиск/фильтр списка досок (`navFilter`) — нет. - [Д][open] Колонка «**Участники**» (аватары ACL) — натив не показывает участников доски. - [Д][—] Строка-карточка доски (bullet цвета + название, border/radius) — сверено, близко 1:1 (натив `DeckBoardRow`); детальный Fd — на устройстве. ## Экран 3: Обзор / «Ожидающие выполнения» — Ff 0.0% (2 open Ф / 2) - [Ф][open] Дашборд карточек по срокам (Просроченные/Сегодня/Завтра/Ближайшие 7 дней/Позже/ Без назначенной даты) — экрана в нативе нет совсем. - [Ф][open] Открыть карточку из обзора — нет (нет обзора). - [Д][open] Композиция: 6 секций-капшенов в столбец, карточки внутри — отсутствует. ## Экран 4: Доска (Controls + Колонка + Карточка) — Ff 72.0% (7 open Ф / 25) **Шапка доски (`Controls`):** - [Ф][done] «**Добавить список**» — натив «+ Колонка» (`createStack`). - [Ф][open] «**Применить фильтр**» (по метке / назначенному / статусу) — фильтров нет. - [Ф][open] «**Режимы просмотра**» (Показывать архивные карточки / компактный режим / обложки) — нет. - [Ф][open] «**Открыть подробности**» (сайдбар доски) — нет. - [Ф][done] «**Добавить карточку**» — натив добавляет карточку из шапки колонки. **Всплывающее меню колонки (⋯, `Stack`)** — в нативе меню колонки НЕТ: - [Ф][open] «**Архивировать все карточки**» — нет. - [Ф][open] «**Разархивировать все карточки**» — нет. - [Ф][done] «**Удалить список**» — реализовано (меню «⋯» → подтверждение `DeckConfirmDialog`). - [Ф][done] «**Изменить заголовок списка / Переименовать**» — реализовано (меню «⋯» → диалог с префиллом, `renameStack`). - [Ф][done] «**Добавить карточку**» в колонку — есть (инлайн-поле «Имя карточки»). **Карточка на доске (`CardItem` + бейджи):** - [Ф][done] Открыть карточку (тап) — открывает лист-деталь. - [Ф][done] Правка заголовка — есть (в листе-детали; веб правит инлайн — Д-нюанс). - [Ф][done] Бейдж срока (`DueDate`) — есть. - [Ф][done] Бейдж «**чек-пунктов**» «☑ x/total» — реализовано (`deckChecklistCounts`, парсинг чекбоксов описания regex как веб). - [Ф][done] Бейдж «**комментариев**» «💬 N» — реализовано (`commentsCount`); индикатор M непрочитанных — Д-нюанс на след. проход. - [Ф][done] Аватары назначенных — есть (отображение). **Всплывающее меню карточки (⋯ / long-press, `CardMenuEntries`)** — в нативе overflow-меню НЕТ (тап открывает лист; часть действий — кнопками листа): - [Ф][done] «**Сведения о карточке**» — тап открывает лист-деталь. - [Ф][done] «**Изменить заголовок**» — в листе. - [Ф][done] «**Назначить мне / Снять назначение с меня**» — реализовано (кнопка в листе-детали, `toggleAssignSelf`; назначение ПРОИЗВОЛЬНОГО пользователя — отдельный пункт, экран 5). - [Ф][done] «**Отметить выполненной / невыполненной**» — чекбокс done есть. - [Ф][open] «**Переместить/копировать карточку**» — есть перенос между колонками ОДНОЙ доски (чипы), но нет копирования и переноса на ДРУГУЮ доску. - [Ф][done] «**Архивировать/Разархивировать карточку**» — кнопка «В архив» есть. - [Ф][done] «**Удалить карточку**» — кнопка «Удалить» есть. - [Ф][open] «**Отменить удаление**» (Undo-тост) — натив удаляет сразу, без отмены. - [Ф][done] Перенос карточки между колонками (в вебе drag-n-drop) — натив реализует переносом через чипы «Колонка» (Д-нюанс: без DnD-жеста). ## Экран 5: Лист-деталь / сайдбар карточки (Свойства/Вложения/Комментарии/Активность) — Ff 38.9% (11 open Ф / 18) **Свойства (Details):** - [Ф][done] Метки: назначить/снять (toggle меток доски) — есть. - [Ф][open] Метки: «**Создать новую метку**» — натив только тогглит существующие. - [Ф][open] Назначение: «**Назначить пользователю…**» — нет (write). - [Ф][open] Назначение: снять назначение — нет. - [Ф][done] Срок: выбрать дату (DatePicker) — есть. - [Ф][done] Срок: «**быстрые опции**» — реализованы чипы Сегодня/Завтра/Выходные/Неделя (`deckQuickDueIso`). *(«Позже сегодня» с часом — Д-нюанс, натив ставит дату; на след. проход.)* - [Ф][done] Срок: «**Убрать срок**» — есть («Сбросить»). - [Ф][done] Срок: «Отметить выполненной» из блока срока — есть (done). - [Ф][done] Описание: редактировать — есть. - [Ф][open] Описание: «**Просмотр/Справка по форматированию**» (rich-preview) — натив простое поле. - [Ф][open] Описание: «**Добавить вложение**» из описания — нет. - [Ф][n-a] Блок «Проекты» (`NcCollectionList`) — зависит от NC-аппа проектов, вне ядра клиента. **Вложения (Attachments) — таба нет в нативе:** - [Ф][open] «**Загрузить новые файлы**» — нет. - [Ф][open] «**Поделиться из Файлов**» — нет. - [Ф][open] Действия вложения (Скачать/Показать в Файлах/Удалить/Восстановить) — нет. **Комментарии (Comments) — табы нет:** - [Ф][open] «**Добавить комментарий**» (форма + Сохранить) — нет. - [Ф][open] Читать ленту комментариев — нет. **Активность (Activity):** - [Ф][open] Просмотр активности карточки — нет. **Шапка листа:** - [Ф][done] Правка заголовка карточки — есть. - [Ф][n-a] «Открыть в боковом / большом виде» — на мобильном единый лист, не применимо. ## Экран 6: Сайдбар доски (Общий доступ/Метки/Удалённые/Активность) — Ff 0.0% (10 open Ф / 10) Всего экрана в нативе нет: - [Ф][open] «**Общий доступ**»: пошарить доску, права (Can edit/share/manage), «Передать доску», удалить доступ (4 пункта). - [Ф][open] «**Метки**»: добавить/редактировать/удалить метку доски (3 пункта). - [Ф][open] «**Удалённые элементы**»: восстановить удалённые списки/карточки (2 пункта). - [Ф][open] «**Активность**» доски (1 пункт). ## Экран 7: Диалог «Переместить/копировать карточку» — Ff 25.0% (3 open Ф / 4) - [Ф][done] Переместить в колонку той же доски — есть (чипы в листе; Д: без диалога). - [Ф][open] «**Выбрать доску**» (перенос на другую доску) — нет. - [Ф][open] «**Копировать карточку**» — нет. - [Ф][open] Диалог с селекторами «Доска/Список» — нет (переноса на др. доску нет). ## Экран 8: Настройки Deck — Ff 0.0% (3 open Ф / 3) Экрана настроек в нативе нет: - [Ф][open] «**Использовать увеличенный вид карточки**» — нет. - [Ф][open] «**Показывать бейдж ID карточки**» — нет. - [Ф][open] «**Показывать доски в календаре/задачах**» — нет. - [Ф][n-a] «Настройки администратора» (ограничить создание досок группами) — админ-функция, не клиентская. --- ## Сводка по экранам | Экран | Ff | open Ф / всего | |---|---|---| | 1. Навигация + меню доски | 16.7% | 10/12 | | 2. Все доски (список) | 50.0% | 1/2 | | 3. Обзор (по срокам) | 0.0% | 2/2 | | 4. Доска (Controls/Колонка/Карточка) | 72.0% | 7/25 | | 5. Лист-деталь карточки | 38.9% | 11/18 | | 6. Сайдбар доски | 0.0% | 10/10 | | 7. Move/copy карточки | 25.0% | 3/4 | | 8. Настройки Deck | 0.0% | 3/3 | | **Ff_app (среднее)** | **25.3%** | **47/76** | ## Приоритеты (черновик, жду визы лида — mail/071 план 1→2→3) - **P1 (в своём модуле, наибольший охват):** меню карточки (Назначить мне/Переместить-копировать/ Undo при удалении); бейджи чек-пунктов и комментариев; меню колонки (Удалить список/Архивировать все/Переименовать); «быстрые опции» срока. - **P2:** сайдбар карточки — Комментарии и Вложения (Вложения зависят от медиа-слоя b-mob-files, mail/083 — согласую точечно); назначение исполнителей (write через `/cards/{id}/assign`). - **P3:** обзор «Ожидающие выполнения» (дашборд по срокам); фильтры доски; CRUD досок (создать/править/архив/клон/экспорт-импорт); сайдбар доски (шаринг/метки/удалённые); настройки. - **n-a (в финал с обоснованием):** проекты-коллекции, «боковой/большой вид» карточки, админ-настройки, drag-n-drop-жест (заменён чипами — функц-эквивалент есть). ## Медиа-инвентарь (mail/081 §3 / mail/083 B) В «Карточках» собственных медиа-просмотрщиков нет; вложения карточки в вебе открываются общим NC-viewer. В нативе вкладки «Вложения» пока нет вовсе — когда появится (P2), просмотр переиспользую через общий вход `feature/files` (Coil/Media3/PdfRenderer), НЕ плодя своё. Точки интеграции согласую с b-mob-files, когда дойду до вложений.