From 0d05a50e19b71cade636d9ca4882e453f614a78c Mon Sep 17 00:00:00 2001 From: Petr Vobornik Date: Wed, 13 Nov 2013 15:49:25 +0100 Subject: webui: field and widget binding refactoring This is a Web UI wide change. Fields and Widgets binding was refactored to enable proper two-way binding between them. This should allow to have one source of truth (field) for multiple consumers - widgets or something else. One of the goal is to have fields and widget implementations independent on each other. So that one could use a widget without field or use one field for multiple widgets, etc.. Basically a fields logic was split into separate components: - adapters - parsers & formatters - binder Adapters - extract data from data source (FreeIPA RPC command result) - prepares them for commands. Parsers - parse extracted data to format expected by field - parse widget value to format expected by field Formatters - format field value to format suitable for widgets - format field value to format suitable for adapter Binder - is a communication bridge between field and widget - listens to field's and widget's events and call appropriate methods Some side benefits: - better validation reporting in multivalued widget Reviewed-By: Adam Misnyovszki --- install/ui/doc/categories.json | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) (limited to 'install/ui/doc') diff --git a/install/ui/doc/categories.json b/install/ui/doc/categories.json index 2634986f2..ec0776687 100644 --- a/install/ui/doc/categories.json +++ b/install/ui/doc/categories.json @@ -74,8 +74,8 @@ "reg", "details.details_builder", "details.section_builder", - "IPA.field_builder", - "IPA.widget_builder" + "field.field_builder", + "widget.widget_builder" ] }, { @@ -96,8 +96,10 @@ "IPA.bulk_associator", "IPA.association_config", "spec_util", + "_base.debug", "_base.Spec_mod", - "datetime" + "datetime", + "util" ] } ] @@ -115,7 +117,7 @@ "facet.FacetState", "facet.action_holder", "details.facet_policies", - "IPA.field_container", + "field.field_container", "IPA.widget_container", "details.update_info", "details.command_info", @@ -179,10 +181,22 @@ { "name": "Fields", "classes": [ - "IPA.field", + "field.field", "*_field" ] }, + { + "name": "Binders", + "classes": [ + "*Binder" + ] + }, + { + "name": "Adapters", + "classes": [ + "*Adapter" + ] + }, { "name": "Formatters", "classes": [ @@ -193,7 +207,7 @@ { "name": "Validators", "classes": [ - "IPA.validator", + "field.validator", "*_validator" ] } -- cgit