Files
xboct-flow/todo.md
T

78 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Мелкие замечания / backlog
## Dashboard
[x] **Сохранение по Ctrl+S**
- В detail (textarea description) — hotkey `Ctrl+S` / `Cmd+S` → тот же flow, что
кнопка Save (`saveDescription`).
[ ] **Форматирование при сохранении (как в VS Code, без force-format)**
**Почему сейчас не работает:** кнопка Save в Dashboard пишет через
`saveTaskDescription``repo.update``fs.writeFile`. Это **не** save
текстового документа в editor. `editor.formatOnSave` / formatters цепляются к
`TextDocument` save (`onWillSaveTextDocument` и т.п.), а не к произвольной
записи на диск. Обычный Ctrl+S в `.md` / `.task.md` идёт через editor → format
применяется. Наша кнопка — другой путь.
**Не делать:** вручную вызывать prettier/`formatDocument` «всегда» — это не «как
в VS Code», а свой форс, игнорит user settings (off / другой formatter).
**Как сделать «как в VS Code» (если захотим паритет):** UI-адаптер save
открывает/берёт `TextDocument` файла задачи, правит body через `WorkspaceEdit`,
затем `document.save()` — тогда сработают format-on-save и остальные will-save
хуки, **только если** они включены у пользователя. Use-case/repo для
headless/тестов можно оставить; editor-save — optional path из host.
**Пока:** не блокер; format при правке файла в editor уже ок. Ctrl+S в Dashboard
без editor-path format не даст.
[x] **Кнопка сброса фильтров**
- В toolbar Dashboard: Reset → `filter = {}`, query/chips/groupBy defaults,
`setFilter` + сброс groupBy.
[x] **Фильтр по приоритету**
- Chips: critical / high / medium / low → `filter.priorities`.
[ ] **Dashboard: raw MD ↔ view**
- В detail переключатель режимов: **view** (текущий UI: meta + textarea body) и
**raw** (весь файл как markdown + frontmatter, как в editor).
- Редактирование/save в raw — отдельный контракт (parse → task / serialize), не
ломать format-on-save историю: raw-save тоже лучше через editor path, если
нужен паритет с VS Code.
[x] **Боковая панель**
- кнопка открытия dashboard (view title → `xboctukFlow.openDashboard`)
- кнопки на задаче (inline): open file, edit in dashboard
(`xboctukFlow.openInDashboard` + preselect), delete
- change status остаётся в context menu
[x] **Dashboard: кнопка создания задачи**
- `+ Task` в toolbar → inbound `createTask` → host
`executeCommand("xboctukFlow.createTask")` → reload list
[x] **Kanban**
- кнопка переключения global\project (scope filter: All / Project / Global)
- кнопка создания задачи на каждой колонке (`createTask` + status колонки)
- колонки с `defaultHidden` (backlog, cancelled) скрыты по умолчанию; кнопка
Show hidden / Hide backlog/cancelled
[x] **Cтатус backlog**
- в модели (`TaskStatus.BACKLOG`), ORDER, chips dashboard из ORDER
- в kanban: колонка при Show hidden; defaultHidden в meta
[x] **Dashboard**
- фильтр scope: All / Project / Global
- в списке и detail — scope (Project / Global)
- сортировка по **created**: по умолчанию старые сверху (ASC), toggle Newest
first