Design a new dynamic UI spec free of current hacks + seamless integration with client-side code
There are several goals that are highly desirable to achieve with the new dynamic UI spec, and although current etherpad specification is not set in stone, these goals should always be kept in mind. So, the goals are:
* Remove custom JS and CSS from dynamic UI - by making client-side code be able to evaluate arbitrary YAQL expressions and hide/disable/do something else on fields based on evaluation results; that effectively means porting YAQL to Javascript.
* Provide means for displaying Component inside an Environment - this cannot be done by simply adding some attributes to existing form fields because the final object model which provides data to be displayed cannot be mapped 1-to-1 to the form fields; so, a new section describing Component displaying format is required. It might be a bit confusing, but expressions in that section will be evaluated against the object model - contrary to all other places where an evaluation against forms' cleaned data takes place.
* Reduce number of built-in fields to the really primitive ones - string, text, integer, boolean, choice, table, generic.
* Make UI even more dynamic: allow different steps of the wizard (i.e. entire forms) to be hidden (in that state they still will contribute data to the global forms' context) or do not create them at all (won't contribute any data).
Blueprint information
- Status:
- Complete
- Approver:
- ruhe
- Priority:
- Undefined
- Drafter:
- Timur Sufiev
- Direction:
- Needs approval
- Assignee:
- None
- Definition:
- Superseded
- Series goal:
- Accepted for future
- Implementation:
- Unknown
- Milestone target:
- next
- Started by
- Completed by
- Kirill Zaitsev
Related branches
Related bugs
Sprints
Whiteboard
All discussion goes here: https:/
Work Items
Dependency tree
* Blueprints in grey have been implemented.