feat(N2): Dynamischer Scope-Editor — WorkspaceScopeEditor ersetzt JSON-Textarea, Scope-Values in workspace_modules.config #366

Closed
opened 2026-09-01 06:29:50 +00:00 by Leopoldadmin · 0 comments
Owner

N2 — Dynamischer Scope-Editor (Phase N)

Roadmap: PLATFORM_ROADMAP.md → Phase N, Task N2 | Milestone: Phase N — Workspace-Scopes (#14) | Label: task

Umsetzung

  • WorkspaceScopeEditor.tsx: generisches Filter-UI aus /scope-definitions (multiselect/select/toggle), WidgetSettingsForm-Philosophie (M3) — kennt keine spezifischen Module, Plugins deklarieren via Contracts
  • resolveScopeItems in api/hooks/workspaces.ts: Wertequellen-Auflösung (items-Wrapper, Root-Listen, DMS-Ordner-Baum-Flattening), nie-crashend bei defekten Responses
  • useWorkspaceScopeDefinitions + useScopeValues (TanStack Query, staleTime 60s)
  • WorkspaceManager: JSON-Textarea-Editor ENTFERNT — dynamischer Scope-Editor inline pro sichtbarem Modul, Speicherung unverändert in workspace_modules.config
  • i18n: workspaces.scopeEditor.* 5 Keys (de/en)
  • Security-Invariante im UI: 'Nichts ausgewählt = keine Einschränkung' (Scopes restrict only)

Verifikation

  • Vitest: 21/21 (TDD rot→grün) — ScopeEditor 17 (resolveScopeItems 4, Rendering 7, onChange 6), Manager-Integration 4 (Textarea weg, Config-Roundtrip, Save-Payload, No-Dimensions-Hinweis)
  • npx tsc --noEmit: clean
  • Production-Build: OK
## N2 — Dynamischer Scope-Editor (Phase N) **Roadmap:** PLATFORM_ROADMAP.md → Phase N, Task N2 | **Milestone:** Phase N — Workspace-Scopes (#14) | **Label:** task ### Umsetzung - `WorkspaceScopeEditor.tsx`: generisches Filter-UI aus /scope-definitions (multiselect/select/toggle), WidgetSettingsForm-Philosophie (M3) — kennt keine spezifischen Module, Plugins deklarieren via Contracts - `resolveScopeItems` in api/hooks/workspaces.ts: Wertequellen-Auflösung (items-Wrapper, Root-Listen, DMS-Ordner-Baum-Flattening), nie-crashend bei defekten Responses - `useWorkspaceScopeDefinitions` + `useScopeValues` (TanStack Query, staleTime 60s) - WorkspaceManager: JSON-Textarea-Editor ENTFERNT — dynamischer Scope-Editor inline pro sichtbarem Modul, Speicherung unverändert in workspace_modules.config - i18n: workspaces.scopeEditor.* 5 Keys (de/en) - Security-Invariante im UI: 'Nichts ausgewählt = keine Einschränkung' (Scopes restrict only) ### Verifikation - Vitest: 21/21 (TDD rot→grün) — ScopeEditor 17 (resolveScopeItems 4, Rendering 7, onChange 6), Manager-Integration 4 (Textarea weg, Config-Roundtrip, Save-Payload, No-Dimensions-Hinweis) - npx tsc --noEmit: clean - Production-Build: OK
Leopoldadmin added this to the Phase N — Workspace-Scopes milestone 2026-09-01 06:29:59 +00:00
Leopoldadmin added the task label 2026-09-01 06:30:27 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Leopoldadmin/leocrm#366