-
Notifications
You must be signed in to change notification settings - Fork 1
Description
What are you missing?
Currently, the experiment setup flow includes two separate dialogs each for variables and groups:
- One for adding
- One for editing
The "add" dialogs are redundant after the initial setup and don't align with how users interact with experiment data in later stages. In addition, these dialogs use an outdated dialog component instead of the new shared AppDialog component.
Why do you need a solution?
-
Redundancy & Maintenance Overhead
Maintaining two similar dialogs (add + edit) creates duplication in UI code and logic. -
Inconsistent UX
Users must learn two different dialogs, even though the actions are conceptually similar. This breaks flow, especially once variables or groups are already in use. -
Missing Restriction Logic
The current edit dialogs do not handle important restrictions like:
- Preventing deletion of used variables/groups
- Locking variable type if already used
- Allowing only safe edits (e.g., renaming, adding levels)
- Component Inconsistency
The dialogs still rely on a legacy implementation and haven’t been migrated to the reusable AppDialog component, which offers a cleaner layout and consistent header/footer behaviour.
Ideas
- Remove Add Dialogs
- Eliminate the standalone "Add Variable" and "Add Group" dialogs.
- After initial creation, only the unified edit dialogs are used.
- Create a Unified Edit Dialog per Entity
EditExpVariablesDialog and EditExpGroupsDialog support:
- Adding new entries
- Editing existing entries with appropriate restrictions
- Deleting unused groups (but not variables)
- Apply Restriction Rules
Variables:
- If used in groups: only rename, and add levels
- Type locked; no deletion or level removal
Groups:
- If used in samples: only rename
- Condition and replicate count editable only if unused
- Only unused groups can be deleted
- Add Visual Feedback
Lock icon (🔒) with tooltip on restricted fields (e.g., unit, level removal, condition)
- Migrate to AppDialog
- Refactor both dialogs to use the new shared AppDialog component
- Use consistent dialog headers, footers, and spacing
Code of Conduct
- I agree to follow this project's Code of Conduct
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Status
Status