74 lines
4.6 KiB
Markdown
74 lines
4.6 KiB
Markdown
# TODO
|
|
|
|
- [ ] **MAJOR** Implement configuration manager:
|
|
- configuration is a set of signals (that can be organized in group and subgroup) that are used to configure a system or a sub system
|
|
- with configuration manager user should be able to:
|
|
- Define and manage configuration sets: delete (keep server side copy of deleted config), create (specifying default to parameters, mandatory, optional etc), edit (with versioning git style) and compare set
|
|
- user can fork an existing config instance to create a new one
|
|
- user can compare two instances: show unified diff or side by side diff
|
|
- etc...
|
|
- Create, delete (keep server cache), edit (git style versioning) and compare configuration instances: meaning set actual value to a configuration set
|
|
- user can fork an existing config instance to create a new one
|
|
- user can compare two instances: show unified diff or side by side diff
|
|
- etc...
|
|
- [x] user can apply and save configuration instances from manager
|
|
- [ ] in logic editor and control loop add nodes to read/write/create/apply config instances
|
|
- [x] support for all supported types (number, bools, enums, arrays, string etc)
|
|
- [x] ux elements for config set
|
|
- [x] the configuration editor should automatically get type and info from signal when possible (type is read-only, auto-derived from the bound signal)
|
|
- [x] a slick tree drag and drop editor to order elements and organize in group and sub-groups
|
|
- [x] possibility to customise unit, max, min etc
|
|
- [x] export / import a config set as JSON
|
|
- [x] full-screen config window
|
|
- [x] ux elements for config instances:
|
|
- automatically use the correct setting widget depending on the type (e.g. combo for enum, nubmer input for number):
|
|
- for arrays: import csv option, display points as mini plot (+ open dialog plot with more info), manual enter points via table like interface
|
|
- automatically fill with default or existing values (when forking an existing instance)
|
|
- explicity show errors/missing info and give additional info on hover
|
|
- [ ] add advanced validation / transformation framework to configurations using custom CUE rules:
|
|
- backend should run validation / transformation rules
|
|
- user can create/edit/delete/compare rules from webui:
|
|
- integrate syntax highlight
|
|
- integrate autocomplete for signals names and cue grammars
|
|
- integrate cue lsp
|
|
- when validation fail error should be propagated to user in the webui
|
|
- all action should be tracked via history management and audit
|
|
- [ ] Improve UX:
|
|
- [x] Synthetic editor:
|
|
- [x] color code the node link by type
|
|
- [x] hover on a block in error should show the reason
|
|
- [x] add proper array functionality
|
|
- [x] add shortcut to add Signals (S) and nodes (N) with HUD
|
|
- [ ] Panels:
|
|
- [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
|
|
- [ ] add container widgets: labelled/title pane, tab panes, collapsable panes etc
|
|
- [ ] plot pane:
|
|
- add toolbar
|
|
- [ ] clean ui:
|
|
- create small statusbar where connection widget and other status related info will be placed
|
|
- group advanced items (audit/control loops/config manager etc) in a tool menu or something similar to not fill the toolbar
|
|
- make the toolbar as clean as possible
|
|
- [ ] 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
|
|
- [ ] Implement git style versioning for: synthetic variable, panels, control logic:
|
|
- possibility to fork any version
|
|
- click to view the version
|
|
- possibility to view graphical diff between versions (side by side or unified diff)
|
|
- simple slick versioning pane:
|
|
- vertical tree like
|
|
- each version represented by a circle
|
|
- active (the one currently view/edited) version has circle bigger then rest
|
|
- selected (the one that will be executed/showed by user) version has circle full, not active only border
|
|
- unsaved / new version appear with connection line dashed
|
|
- [ ] Implement admin pane: create / manage groups, set users permits, manage auditors etc
|
|
- [ ] Implement new datasources:
|
|
- [ ] Finalize alarm service
|
|
- [ ] modbus tcp
|
|
- [ ] scpi tcp
|
|
- [ ] udp? other?
|
|
- [ ] **MAJOR** Implement proper distributed server side nodes to balance load and have redundancy (if a node is not available anymore all its clients migrate seamelessly to another)
|