feat: update dashboard view

This commit is contained in:
2026-07-16 02:05:36 +05:00
parent 1d1f11c3f8
commit bda6c6b2e0
14 changed files with 338 additions and 136 deletions
+14 -31
View File
@@ -2,31 +2,10 @@
## Dashboard
[x] **Сохранение по Ctrl+S**
[x] **Редактирование в editor (не Save в webview)**
- В 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 не даст.
- Dashboard view-only; Edit → файл в editor → Ctrl+S / format-on-save как обычно
в VS Code.
[x] **Кнопка сброса фильтров**
@@ -37,18 +16,18 @@ headless/тестов можно оставить; editor-save — optional path
- Chips: critical / high / medium / low → `filter.priorities`.
[ ] **Dashboard: raw MD ↔ view**
[x] **Dashboard: view-only + Edit в editor**
- В detail переключатель режимов: **view** (текущий UI: meta + textarea body) и
**raw** (весь файл как markdown + frontmatter, как в editor).
- Редактирование/save в raw — отдельный контракт (parse → task / serialize), не
ломать format-on-save историю: raw-save тоже лучше через editor path, если
нужен паритет с VS Code.
- **View:** meta + body (read-only) в webview.
- **Edit:** кнопка → `openTask` + `showTextDocument` — полный `.task.md` в
editor.
- Use-case `saveTaskRaw` / `applyRawTaskContent` / `saveTaskDescription`
остаются для non-webview path.
[x] **Боковая панель**
- кнопка открытия dashboard (view title → `xboctukFlow.openDashboard`)
- кнопки на задаче (inline): open file, edit in dashboard
- кнопки на задаче (inline): open file, open in dashboard
(`xboctukFlow.openInDashboard` + preselect), delete
- change status остаётся в context menu
@@ -75,3 +54,7 @@ headless/тестов можно оставить; editor-save — optional path
- в списке и detail — scope (Project / Global)
- сортировка по **created**: по умолчанию старые сверху (ASC), toggle Newest
first
[ ] **Боковая панель**
- при изменении настроек должна обновляться (или добавить кнопку refresh)