Files
b-mob-tasks 82e260fbf5 docs(app-map): карта Задач + diff итерация 1 (из кода v0.17.1)
tasks.md — дерево экранов + всплывающие меню поимённо (mail/087).
tasks.diff.md — веб↔натив, Ff=16.7% Fd=41.5% по 8 экранам, бэклог P1-P5.
STATUS.md — строка tasks обновлена.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-13 05:47:52 +00:00

15 KiB
Raw Permalink Blame History

Карта: Задачи (Tasks)

Источник: апстрим nextcloud/tasks v0.17.1 (src/**/*.vue, точная версия forbion) + тема _mobile-tasks.css (+ app-tasks/forms/*). Живой мобильный web (Browser 1) — для порядка/вида, помечено визуал(?) где не подтверждено на устройстве. Составил b-mob-tasks (mail/075/078/087).

Легенда: [веб] — как в мобильном вебе forbion; расхождение: — чего нет/иначе в нативе (вход в tasks.diff.md).


Вход

Нижняя панель / шторка приложений → «Задачи». Открывается Панель навигации (в вебе — левая app-navigation; в нативе — экран списков TasksListNavView).


Экран: Панель навигации (списки + умные коллекции)

Источник: views/AppNavigation.vue.

Тело (сверху вниз):

  1. Умные коллекции (виртуальные списки, каждый со счётчиком-бейджем NcCounterBubble):
    • «Важное» (starred, иконка Star) → /collections/starred
    • «Сегодня» (today, CalendarToday) → /collections/today
    • «На неделе» (week, CalendarWeek) → /collections/week
    • «Все» (all, CircleOutline) → /collections/all
    • «Текущие» (current, TrendingUp) → /collections/current
    • «Завершённые» (completed, Check) → /collections/completed
    • Видимость каждой управляется настройкой (Скрыта/Видима/Автоматически — см. модалку Настроек); «Автоматически» = показывать только если счётчик > 0.
  2. Реальные списки (календари VTODO), перетаскиваемые для ручной сортировки (long-press drag). У каждого — «⋯» меню (см. ниже).
  3. «Add List…» / «Добавить список» (иконка Plus) → инлайн-форма: поле «New list» + выбор цвета (Colorpicker); Enter/стрелка — создать (MKCALENDAR), Esc — отмена.
  4. «Корзина» / «Trash bin» (иконка Delete, если сервер поддерживает) → модалка Корзины.
  5. Настройки (шестерёнка в футере) → модалка «Параметры задач».

Drag&drop: задачу можно перетащить на коллекцию starred/completed/today/week — это проставляет приоритет=1 / 100% / срок сегодня / срок +6 дней соответственно.

расхождение: в нативе (TasksListNavView) показаны ТОЛЬКО реальные списки; умных коллекций, Корзины, drag-сортировки и drag-на-коллекцию нет; «Добавить список» — мёртвая кнопка (без обработчика).

Всплывающее меню: «⋯» списка (в панели навигации)

Источник: components/AppNavigation/ListItemCalendar.vue. Пункты по порядку:

  1. «Поделиться» (Share, если список расшариваем) → панель шаринга (пользователи/группы).
  2. «Изменить» (Edit) → форма правки списка: имя + цвет.
  3. «Копировать личную ссылку» (Copy private link → «Скопировано»/«Не удалось»).
  4. «Экспорт» (Export) → скачивание списка .ics.
  5. «Удалить» / «Отменить общий доступ» (Delete/Unshare, с обратным отсчётом → «Отмена»).
  6. (внутри правки) «Удалить все завершённые задачи» → модалка (см. DeleteCompletedModal).

расхождение: в нативе у списков НЕТ «⋯»-меню вовсе (нельзя переименовать/цвет/шарить/экспорт/ удалить/копировать ссылку).


Экран: Список задач (коллекция или реальный список)

Источник: components/HeaderBar.vue, views/AppContent/General.vue, components/TaskBody.vue.

Шапка (HeaderBar):

  • Поле быстрого ввода «Add a task…» (иконка Plus): Enter/стрелка — создать задачу; вставка многострочного текста → диалог «Создать несколько задач». Скрыто для коллекции «Завершённые» и для read-only списка.
  • «Фильтр» (FilterDropdown, иконка воронки; активна — подсвечена) → меню (см. ниже).
  • «Сортировка» (SortorderDropdown, иконка текущего порядка + стрелка направления) → меню (см. ниже).

Тело:

  • Список задач (по выбранному порядку). Незавершённые сверху; завершённые — отдельной зоной.
  • Коллекция «Завершённые» / завершённые в списке: кнопка «Загрузить завершённые задачи» (LoadCompletedButton; варианты «…этого списка» / «…всех списков»).
  • Пустое состояние: плейсхолдер без задач. визуал(?).

Строка задачи + всплывающее меню «⋯»

Источник: components/TaskBody.vue. Элементы строки:

  • Чекбокс выполнения (клик — переключить 0/100%); показывает % выполнения.
  • Звезда (если приоритет > 0).
  • Заголовок (клик — открыть деталь в сайдбаре).
  • Дата старта/срока (бейдж: Вчера/Сегодня/Завтра/дата; для завершённых — «Завершено …»).
  • Индикаторы: закреплена (Pin), есть заметка (клик → сайдбар, вкладка Заметки), есть скрытые подзадачи (SortVariant).
  • Меню «⋯» — пункты по порядку:
    1. «Добавить подзадачу» (Add subtask) → инлайн-поле ввода названия.
    2. «Показать/скрыть подзадачи» (если есть подзадачи).
    3. «Показать/скрыть завершённые подзадачи» (если есть завершённые подзадачи).
    4. «Удалить задачу» (Delete task, с обратным отсчётом отмены).
    5. «Переключить важность» (Toggle starred).

расхождение: нативное «⋯» (TasksComponents.TasksRow) имеет только «Добавить вложенную задачу» и «Удалить задачу»; нет toggle-звезды, show/hide подзадач, индикаторов pin/заметка/ скрытые-подзадачи; звезды приоритета в строке нет.

Выпадающее меню: Сортировка (SortorderDropdown)

10 порядков (клик повторно — сменить направление ↑/↓): Актуальность (Relevance) · Дата начала · Дата выполнения (due) · Дата создания · Изменено · Дата завершения · Приоритет · По алфавиту · Метки (Tags) · Вручную (Manually).

расхождение: в нативе только тумблер ↑/↓ по одному критерию (дата→имя), выбора из 10 порядков нет.

Выпадающее меню: Фильтр (FilterDropdown)

  • «Фильтровать по меткам» (мультиселект тегов).
  • «Сбросить фильтр».

расхождение: в нативе кнопка «фильтр» открывает шит Настроек (не фильтр по тегам); тегов нет, фильтрации по тегам нет. Поиск по тексту в нативе есть (в VM), но отдельной строки поиска в вебе на этом экране нет — сверить визуал(?).


Экран: Деталь задачи (правый сайдбар)

Источник: views/AppSidebar.vue (+ components/AppSidebar/*).

Шапка сайдбара: заголовок (редактируемый), подзаголовок (даты). Меню действий:

  • «Закрепить»/«Открепить» (Pin/Unpin).
  • «Показать в Календаре» (Show in Calendar).
  • «Показать в Deck» (Show in Deck).
  • «Изменить заголовок» (Edit summary).
  • «Экспорт» (Export).
  • «Удалить» (Delete).

Вкладка «Подробно» (Details):

  • Классификация (Select a classification): Public/Private/Confidential.
  • Статус (Select a status): Требует действия · Выполнено · В процессе · Отменено · Очистить.
  • Дата начала (Set start date) + Дата выполнения (Set due date), флажок «Весь день».
  • Приоритет (слайдер): нет / низкий / средний / высокий (1–9).
  • % выполнения (слайдер/поле).
  • Метки (Select tags).
  • Расположение (Set a location), URL (Set a URL).
  • Список (переключение календаря задачи).
  • Напоминания (AlarmList): меню «Добавить напоминание» → «До начала задачи» / «До срока» / «Выбрать дату и время»; список напоминаний, «Нет напоминаний» — пусто.

Вкладка «Заметки» (Notes): многострочная заметка (Markdown).

расхождение: натив (TaskDetailSheet) — только заголовок, срок, приоритет, описание, toggle выполнения, удалить. Нет: старт-даты/всего дня, статуса (кроме bool), классификации, %-слайдера, меток, локации, URL, смены списка, напоминаний, Pin, «Показать в Календаре/Deck», экспорта, разделения на вкладки Подробно/Заметки.


Модалка: Параметры задач (Настройки)

Источник: components/AppNavigation/AppNavigationSettings.vue.

  • «Список по умолчанию» (Default list) — селект.
  • «Видимость умных коллекций» (Visibility of Smart Collections) — по каждой коллекции 3 варианта: Скрыта / Видима / Автоматически.

расхождение: в нативе (TasksSettingsSheet) видимость — только 2 варианта (Показывать/Скрывать), не персистится и ни на что не влияет; «список по умолчанию» не персистится.

Модалка: Правка/создание списка

Источник: ListItemCalendar.vue (форма) + тема _tasks-list-edit-mobile.css.

  • Поле «Имя списка» + Colorpicker. Сохранить/Отмена. расхождение: нет в нативе.

Модалка: Шаринг списка

Источник: тема _tasks-list-shares-mobile.css + ListItemCalendar share.

  • Поиск пользователей/групп, выдача доступа, список получателей. расхождение: нет в нативе.

Модалка: Удалить завершённые

Источник: components/DeleteCompletedModal.vue.

  • «Удалить все завершённые задачи» → подтверждение, отчёт «Удалено из списка …».
  • В нативе аналог есть: массовое удаление завершённых в зоне «Завершённые» (deleteCompletedTasks).

Модалка: Фильтр по тегам

Источник: тема _tasks-filter-popover-mobile.css + FilterDropdown. расхождение: нет в нативе.

Экран: Корзина (Trash bin)

Источник: components/AppNavigation/Trashbin.vue + тема _tasks-trash-modal-mobile.css.

  • Таблица удалённых (имя, дата удаления, сортировка), «Восстановить», «Очистить корзину», пусто-состояние «Нет удалённых…». расхождение: нет в нативе.

Диалоги создания

Источник: TaskCreateDialog.vue (Создать задачу: поле «Краткое описание», Отмена/Создать), CreateMultipleTasksDialog.vue (из вставленного текста: «Создать N задач», Отмена/Создать). расхождение: быстрый ввод в нативе есть; массового создания из вставки — нет.


Сводка всплывающих меню (mail/087) — веб ↔ натив

Меню Веб (пунктов) Натив
«⋯» списка (навигация) 6 (share/edit/copy-link/export/delete/del-completed) нет меню
«⋯» задачи 5 (subtask/show-hide/show-hide-closed/delete/star) 2 (subtask/delete)
Сортировка 10 порядков + направление тумблер ↑/↓
Фильтр по тегам + сброс нет (кнопка ведёт в Настройки)
Создание «+» задача / из вставки задача
Действия сайдбара 6 (pin/calendar/deck/edit/export/delete) 2 (toggle/delete)
Напоминания 3 (до старта/до срока/дата-время) нет
Настройки: видимость коллекций 3 (скрыта/видима/авто) ×6 2 (показ/скрыть), неактивно