diff options
author | Petr Vobornik <pvoborni@redhat.com> | 2013-04-11 12:32:39 +0200 |
---|---|---|
committer | Petr Vobornik <pvoborni@redhat.com> | 2013-05-06 16:22:23 +0200 |
commit | 45b70425fc41ffd3b79f60bc51d45ddded4bfcd8 (patch) | |
tree | aed9fc8e73eb67b869953f0a08a44c9e4e837a19 /install/ui | |
parent | c9b5038a6267c5cb6e50af1c4c7e36f0d262fe7e (diff) | |
download | freeipa-45b70425fc41ffd3b79f60bc51d45ddded4bfcd8.tar.gz freeipa-45b70425fc41ffd3b79f60bc51d45ddded4bfcd8.tar.xz freeipa-45b70425fc41ffd3b79f60bc51d45ddded4bfcd8.zip |
Replace old builder by new implementation
https://fedorahosted.org/freeipa/ticket/3235
Diffstat (limited to 'install/ui')
-rw-r--r-- | install/ui/src/freeipa/facet.js | 72 | ||||
-rw-r--r-- | install/ui/src/freeipa/ipa.js | 92 | ||||
-rw-r--r-- | install/ui/src/freeipa/widget.js | 6 |
3 files changed, 41 insertions, 129 deletions
diff --git a/install/ui/src/freeipa/facet.js b/install/ui/src/freeipa/facet.js index df54ceaba..17033f96c 100644 --- a/install/ui/src/freeipa/facet.js +++ b/install/ui/src/freeipa/facet.js @@ -28,6 +28,7 @@ define([ 'dojo/on', 'dojo/Stateful', 'dojo/Evented', + './_base/Builder', './ipa', './jquery', './navigation', @@ -36,7 +37,7 @@ define([ './field', './widget' ], function(declare, lang, construct, on, Stateful, Evented, - IPA, $, navigation, text) { + Builder, IPA, $, navigation, text) { /** * Facet represents the content of currently displayed page. @@ -102,8 +103,6 @@ exp.facet_spec = {}; exp.facet = IPA.facet = function(spec, no_init) { spec = spec || {}; - spec.state = spec.state || {}; - $.extend(spec.state, { factory: IPA.state }); var that = new Evented(); @@ -119,8 +118,8 @@ exp.facet = IPA.facet = function(spec, no_init) { that.disable_breadcrumb = spec.disable_breadcrumb; that.disable_facet_tabs = spec.disable_facet_tabs; - that.action_state = IPA.build(spec.state); - that.actions = IPA.build({ actions: spec.actions }, IPA.action_holder_builder); + that.action_state = IPA.build(spec.state, {}, { factory: exp.state }); + that.actions = exp.action_holder_builder.build({ actions: spec.actions }); that.header_actions = spec.header_actions; that.header = spec.header || IPA.facet_header({ facet: that }); @@ -1716,15 +1715,6 @@ exp.action = IPA.action = function(spec) { return that; }; -exp.action_builder = IPA.action_builder = function(spec) { - - spec = spec || {}; - spec.factory = spec.factory || IPA.action; - var that = IPA.builder(spec); - return that; -}; - - exp.action_holder = IPA.action_holder = function(spec) { spec = spec || {}; @@ -1738,7 +1728,7 @@ exp.action_holder = IPA.action_holder = function(spec) { var i, action, actions; that.facet = facet; - actions = IPA.build(spec.actions, IPA.action_builder) || []; + actions = exp.action_builder.build(spec.actions); for (i=0; i<actions.length; i++) { action = actions[i]; @@ -1782,19 +1772,9 @@ exp.action_holder = IPA.action_holder = function(spec) { return that; }; -exp.action_holder_builder = IPA.action_holder_builder = function(spec) { - - spec = spec || {}; - spec.factory = spec.factory || IPA.action_holder; - var that = IPA.builder(spec); - return that; -}; - - exp.state = IPA.state = function(spec) { spec = spec || {}; - spec.summary_evaluator = spec.summary_evaluator || IPA.summary_evaluator; var that = {}; @@ -1803,8 +1783,8 @@ exp.state = IPA.state = function(spec) { //when state changes. Params: state, Context: this that.changed = IPA.observer(); - that.evaluators = IPA.build(spec.evaluators, IPA.state_evaluator_builder) || []; - that.summary_evaluator = IPA.build(spec.summary_evaluator); + that.evaluators = exp.state_evaluator_builder.build(spec.evaluators); + that.summary_evaluator = IPA.build(spec.summary_evaluator || IPA.summary_evaluator); that.summary_conditions = spec.summary_conditions || []; @@ -1931,14 +1911,6 @@ exp.state_evaluator = IPA.state_evaluator = function(spec) { return that; }; -exp.state_evaluator_builder = IPA.state_evaluator_builder = function(spec) { - - spec = spec || {}; - spec.factory = spec.factory || IPA.state_evaluator; - var that = IPA.builder(spec); - return that; -}; - exp.dirty_state_evaluator = IPA.dirty_state_evaluator = function(spec) { spec = spec || {}; @@ -2148,21 +2120,13 @@ exp.action_button_widget = IPA.action_button_widget = function(spec) { return that; }; -exp.action_button_widget_builder = IPA.action_button_widget_builder = function(spec) { - - spec = spec || {}; - spec.factory = spec.factory || IPA.action_button_widget; - var that = IPA.builder(spec); - return that; -}; - exp.control_buttons_widget = IPA.control_buttons_widget = function(spec) { spec = spec || {}; var that = IPA.widget(spec); - that.buttons = IPA.build(spec.buttons, IPA.action_button_widget_builder) || []; + that.buttons = IPA.action_button_widget_builder.build(spec.buttons); that.init = function(facet) { @@ -2458,5 +2422,25 @@ var FacetState = exp.FacetState = declare([Stateful, Evented], { } }); +exp.action_builder = IPA.action_builder = new Builder({ + factory: exp.action +}); + +exp.action_holder_builder = new Builder({ + factory: exp.action_holder +}); + +exp.state_builder = IPA.state_builder = new Builder({ + factory: exp.state +}); + +exp.state_evaluator_builder = IPA.state_evaluator_builder = new Builder({ + factory: exp.state +}); + +exp.action_button_widget_builder = IPA.action_button_widget_builder = new Builder({ + factory: exp.action_button_widget +}); + return exp; }); diff --git a/install/ui/src/freeipa/ipa.js b/install/ui/src/freeipa/ipa.js index 9ee6b8c79..913c223a2 100644 --- a/install/ui/src/freeipa/ipa.js +++ b/install/ui/src/freeipa/ipa.js @@ -22,8 +22,13 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -define(['./jquery', './json2','./_base/i18n', './_base/metadata_provider', './text'], - function($, JSON, i18n, metadata_provider, text) { +define(['./jquery', + './json2', + './_base/Builder', + './_base/i18n', + './_base/metadata_provider', + './text'], + function($, JSON, Builder, i18n, metadata_provider, text) { var IPA = function() { @@ -1144,88 +1149,11 @@ IPA.concurrent_command = function(spec) { return that; }; -IPA.builder = function(spec) { +IPA.builder = new Builder(); - spec = spec || {}; - - var that = {}; - - that.factory = spec.factory || IPA.default_factory; - - that.build = function(spec) { - - var factory = spec.factory || that.factory; - - //when spec is a factory function - if (!spec.factory && typeof spec === 'function') { - factory = spec; - spec = {}; - } - - var obj = factory(spec); - return obj; - }; - - that.build_objects = function(specs) { - - var objects = []; - - for (var i=0; i<specs.length; i++) { - var spec = specs[i]; - var obj = that.build(spec); - objects.push(obj); - } - - return objects; - }; - - return that; -}; - -IPA.build = function(spec, builder_fac) { - - if (!spec) return null; - - if (!builder_fac) builder_fac = IPA.builder; - - var builder = builder_fac(); - var product; - - if ($.isArray(spec)) { - product = builder.build_objects(spec); - } else { - product = builder.build(spec); - } - - return product; -}; - -IPA.build_default = function(spec, def_spec) { - - var builder, factory, default_object; - - if (!spec && !def_spec) return null; - - if (typeof def_spec === 'function') { //factory function - factory = def_spec; - } else if (typeof def_spec === 'object') { - default_object = def_spec; - } - - builder = IPA.builder({ - factory: factory - }); - - var product; - spec = spec || default_object || {}; - - if ($.isArray(spec)) { - product = builder.build_objects(spec); - } else { - product = builder.build(spec); - } +IPA.build = function(spec, context, overrides) { - return product; + return IPA.builder.build(spec, context, overrides); }; IPA.default_factory = function(spec) { diff --git a/install/ui/src/freeipa/widget.js b/install/ui/src/freeipa/widget.js index e5bed202d..0a8631e8e 100644 --- a/install/ui/src/freeipa/widget.js +++ b/install/ui/src/freeipa/widget.js @@ -74,7 +74,7 @@ IPA.widget = function(spec) { facet: that.facet }); - var child = IPA.build(spec, factory); + var child = IPA.build(spec,{}, factory); return child; }; @@ -3152,7 +3152,7 @@ IPA.details_table_section = function(spec) { spec = spec || {}; var that = IPA.details_section(spec); - that.layout = IPA.build_default(spec.layout, IPA.table_layout); + that.layout = IPA.build(spec.layout || IPA.table_layout); that.action_panel = that.build_child(spec.action_panel); that.rows = $.ordered_map(); @@ -3228,7 +3228,7 @@ IPA.multiple_choice_section = function(spec) { var that = IPA.composite_widget(spec); that.choices = $.ordered_map().put_array(spec.choices, 'name'); - that.layout = IPA.build_default(spec.layout, IPA.table_layout); + that.layout = IPA.build(spec.layout || IPA.table_layout); that.create = function(container) { |