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>
15 KiB
Карта: Задачи (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.
Тело (сверху вниз):
- Умные коллекции (виртуальные списки, каждый со счётчиком-бейджем
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.
- «Важное» (starred, иконка Star) →
- Реальные списки (календари VTODO), перетаскиваемые для ручной сортировки (long-press drag). У каждого — «⋯» меню (см. ниже).
- «Add List…» / «Добавить список» (иконка Plus) → инлайн-форма: поле «New list» +
выбор цвета (
Colorpicker); Enter/стрелка — создать (MKCALENDAR), Esc — отмена. - «Корзина» / «Trash bin» (иконка Delete, если сервер поддерживает) → модалка Корзины.
- Настройки (шестерёнка в футере) → модалка «Параметры задач».
Drag&drop: задачу можно перетащить на коллекцию starred/completed/today/week — это проставляет приоритет=1 / 100% / срок сегодня / срок +6 дней соответственно.
расхождение: в нативе (TasksListNavView) показаны ТОЛЬКО реальные списки; умных коллекций,
Корзины, drag-сортировки и drag-на-коллекцию нет; «Добавить список» — мёртвая кнопка (без обработчика).
Всплывающее меню: «⋯» списка (в панели навигации)
Источник: components/AppNavigation/ListItemCalendar.vue. Пункты по порядку:
- «Поделиться» (Share, если список расшариваем) → панель шаринга (пользователи/группы).
- «Изменить» (Edit) → форма правки списка: имя + цвет.
- «Копировать личную ссылку» (Copy private link → «Скопировано»/«Не удалось»).
- «Экспорт» (Export) → скачивание списка
.ics. - «Удалить» / «Отменить общий доступ» (Delete/Unshare, с обратным отсчётом → «Отмена»).
- (внутри правки) «Удалить все завершённые задачи» → модалка (см.
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).
- Меню «⋯» — пункты по порядку:
- «Добавить подзадачу» (Add subtask) → инлайн-поле ввода названия.
- «Показать/скрыть подзадачи» (если есть подзадачи).
- «Показать/скрыть завершённые подзадачи» (если есть завершённые подзадачи).
- «Удалить задачу» (Delete task, с обратным отсчётом отмены).
- «Переключить важность» (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 (показ/скрыть), неактивно |