Design a new dynamic UI spec free of current hacks + seamless integration with client-side code

Registered by Timur Sufiev on 2014-05-13

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.fqn.reference, maybe something more. All other fields could be defined on top of that fields, given that YAQL-wrappers around some OS-getters would be provided (get_image_list, get_keypairs, get_flavors etc).
* 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:
Ruslan Kamaldinov
Priority:
Undefined
Drafter:
Timur Sufiev
Direction:
Needs approval
Assignee:
None
Definition:
Superseded
Series goal:
Accepted for future
Implementation:
Unknown
Milestone target:
milestone icon next
Completed by
Kirill Zaitsev on 2016-07-04

Related branches

Sprints

Whiteboard

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.