docs(issues): close 0008 — inspector editable
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
---
|
||||
id: 0008
|
||||
title: Inspector editable — campos del schema + tags + extras
|
||||
status: completed
|
||||
priority: high
|
||||
created: 2026-04-30
|
||||
completed: 2026-05-01
|
||||
depends_on: [0005]
|
||||
---
|
||||
|
||||
## Objetivo
|
||||
|
||||
Refactor del Inspector (`views_inspector`) de read-only a editable. El usuario
|
||||
edita los datos de un nodo y al pulsar Save se persisten en `operations.db`
|
||||
con un solo UPDATE.
|
||||
|
||||
## Bloques del nuevo Inspector
|
||||
|
||||
1. **Identidad**
|
||||
- `name` (InputText), `type_ref` (combo con tipos del proyecto), `description` (InputTextMultiline corto), `status` (combo: active/stale/corrupted/archived).
|
||||
|
||||
2. **Fields del tipo** (driven by 0005)
|
||||
- Render automatico segun `EntitySpec.fields`:
|
||||
- `string` → InputText.
|
||||
- `int` → InputInt.
|
||||
- `float` → InputDouble.
|
||||
- `bool` → Checkbox.
|
||||
- `date` → InputText con placeholder `YYYY-MM-DD` + validacion.
|
||||
- `url` → InputText + boton "Open" que lanza el navegador.
|
||||
- `enum` → Combo con `values`.
|
||||
- Lee/escribe a `entities.metadata` (JSON). Campos requeridos marcados con `*`.
|
||||
|
||||
3. **Extras** (campos fuera del schema del tipo)
|
||||
- Lista key-value, "+" para anadir. Tipo siempre string en v1.
|
||||
- Permite que el usuario meta info ad-hoc sin tocar el schema.
|
||||
|
||||
4. **Tags**
|
||||
- Chips con boton X para quitar. Input al final con autocomplete (lista de tags ya existentes en la BD via `SELECT DISTINCT json_each.value FROM entities, json_each(entities.tags)`).
|
||||
- Enter o coma valida el chip.
|
||||
|
||||
5. **Notes** — sigue en su panel actual, pero anadir un boton "Open notes" en el Inspector que enfoca el panel Note.
|
||||
|
||||
## Cambios en codigo
|
||||
|
||||
- `entity_ops.{h,cpp}`:
|
||||
- `bool entity_update(db_path, id, name, type_ref, description, status, tags_json, metadata_json)` — un solo UPDATE.
|
||||
- `bool entity_list_distinct_tags(db_path, vector<string>* out)` para autocomplete.
|
||||
- `views.cpp::views_inspector`: reemplazo completo. Estado de edicion en `AppState` para que cerrar y reabrir conserve el draft hasta Save.
|
||||
- Save → reload del grafo (mismo flujo que toolbar add-node hoy).
|
||||
|
||||
## Definicion de hecho
|
||||
|
||||
- Editar name, type_ref, description, status, tags, fields tipados y extras.
|
||||
- Save persiste y el viewport refleja los cambios (label, color del tipo, etc.).
|
||||
- Cancelar / cambiar de seleccion sin guardar muestra un confirm dialog.
|
||||
- Tags se autocompletan con las existentes en la BD.
|
||||
Reference in New Issue
Block a user