diff --git a/TODO.md b/TODO.md index 3d6ab4b..94da58f 100644 --- a/TODO.md +++ b/TODO.md @@ -40,6 +40,11 @@ - [x] when validation fails the error is propagated to the user (live `/config/rules/check` panel while editing; save returns the structured violation) - [x] all actions tracked via history (versioned rules) + audit (`config.rule.create/update/delete/promote/fork`) - [ ] Improve UX: + - Config editor: + - [x] Instance should be filtered by config set (combo box) (`ConfigManager.tsx` InstancesManager: `setFilter` combo in the instance list head, shown when >1 set; empty-set hint) + - [x] Validation rules should also be filtered by config set (combo box) (`ConfigManager.tsx` RulesManager: `setFilter` combo mirroring instances, shown when >1 set; empty-set hint; `Meta.setId` surfaced via `List`) + - [x] Validation rules can be enabled / disabled β disabled rules are skipped when an instance is created/updated/applied (`Enabled *bool`, nil=enabled for legacy; `IsEnabled()`; `rulesForSet` skips disabled; UI checkbox + list `off` badge) + - [x] Rule editor preview button β runs the working (unsaved) source against a live signal snapshot of the set without persisting it, showing the input snapshot JSON and processed output JSON (`POST /config/rules/preview` β `previewConfigRule`; `RulePreviewView`) - [ ] Synthetic editor: - [x] color code the node link by type - [x] edges color depends on type (e.g. float) including arrays (scalar = slate, array = purple) @@ -52,10 +57,12 @@ - [x] in view mode the widgets should have no border/bg but blend with background - [ ] add widgets such as toggle switch, table and other industrial hmi widgets - [x] toggle switch (`web/src/widgets/Toggle.tsx`; read+write bool control, configurable on/off value+label, confirm dialog) - - [ ] table widget + - [x] table widget (`web/src/widgets/TableWidget.tsx`; multi-signal value table, one row per bound signal, configurable columns name/value/unit/status/time, optional header + title, per-signal value format + row-label overrides; blends in view mode) - [ ] other industrial hmi widgets - - [ ] add container widgets: labelled/title pane, tab panes, collapsable panes etc - - [ ] plot pane: + - [x] widget panel exposes an editable Widget ID field (default = generated uuid) for easier logic interaction (`PropertiesPane.tsx` `IdInput`; `EditMode.renameWidgetId` propagates the rename to `action.widget` logic refs + plot-layout leaves; rejects empty/duplicate ids) + - [x] add container widgets: labelled/title pane, tab panes, collapsable panes (`web/src/widgets/Container.tsx`; decorative grouping frame rendered behind widgets, accent/bg options; `pane` variant = title + view-mode collapse; `tabs` variant = tab bar where each contained widget is assigned a tab via its "Tab" field and only the active tab shows; geometric membership via `web/src/lib/containers.ts`) + - [x] moving container widget should move the widgets on it β starting a move (drag or arrow nudge) on a container snapshots the widgets geometrically inside it (centre-inside, transitive through nested containers) and moves them by the same delta; membership is captured at move start so widgets never re-parent mid-move (`withContainedWidgets` in `web/src/lib/containers.ts`, used by `EditCanvas` drag-start + `EditMode` arrow nudge) + - [x] plot pane: - [x] add toolbar (hover toolbar in `PlotWidget`, `.plot-toolbar`) - [x] add time window selector to toolbar (Auto/15s/30s/1m/5m/15m/1h rolling-window override, live windowed plot types) - [x] plot x-axis synchronised (shared uPlot cursor crosshair across all linked timeseries plots + zoom/pan range sync in historical mode; per-plot π link/unlink toolbar toggle; `web/src/lib/plotSync.ts`) @@ -66,11 +73,31 @@ - [x] create small statusbar where connection widget and other status related info will be placed (bottom `.statusbar`: connection chip + current panel name + history indicator) - [x] group advanced items (audit/control loops/config manager etc) in a tool menu or something similar to not fill the toolbar (β― Tools βΎ dropdown) - [x] make the toolbar as clean as possible (toolbar-right now: History Β· π Β· zoom Β· Tools Β· Edit) -- [ ] Logic editor: - - add full support to local array values: dynamic, dynamic but capped max, fixed size etc: - - array functions should work with new local array -- [ ] Control loop: - - add full support to server side array values + - [x] panel-selection list: the whole row is clickable to open a panel (not just the name text); `onClick` moved to the `
Effective access is the highest role across all groups. Every user is at least a viewer via the public group.
+ + +The built-in public group cannot be renamed, reparented or deleted; every user is an implicit viewer member.
} + + + + {!isPublic &&Members of a parent group inherit their role on this group too, unless overridden here.
} + + +| {k} | {v} |
|---|