diff options
author | Petr Vobornik <pvoborni@redhat.com> | 2013-04-17 10:08:34 +0200 |
---|---|---|
committer | Petr Vobornik <pvoborni@redhat.com> | 2013-05-06 16:22:27 +0200 |
commit | 5be709bf9d4865486c239584653363c1d85492a6 (patch) | |
tree | b33ef67286459d0397b7e6241f917b6b8a9911a6 /install/ui/src/freeipa/facet.js | |
parent | 5239d3750e9a82028e79ffe95b9280fb606fb47b (diff) | |
download | freeipa-5be709bf9d4865486c239584653363c1d85492a6.tar.gz freeipa-5be709bf9d4865486c239584653363c1d85492a6.tar.xz freeipa-5be709bf9d4865486c239584653363c1d85492a6.zip |
Builder and registry for actions
https://fedorahosted.org/freeipa/ticket/3235
Diffstat (limited to 'install/ui/src/freeipa/facet.js')
-rw-r--r-- | install/ui/src/freeipa/facet.js | 52 |
1 files changed, 27 insertions, 25 deletions
diff --git a/install/ui/src/freeipa/facet.js b/install/ui/src/freeipa/facet.js index 899eca53f..06aa4a838 100644 --- a/install/ui/src/freeipa/facet.js +++ b/install/ui/src/freeipa/facet.js @@ -28,19 +28,20 @@ define([ 'dojo/on', 'dojo/Stateful', 'dojo/Evented', - './_base/Builder', + './builder', './facets', './ipa', './jquery', './navigation', './phases', + './reg', './spec_util', './text', './dialog', './field', './widget' ], function(declare, lang, construct, on, Stateful, Evented, - Builder, facets, IPA, $, navigation, phases, su, text) { + builder, facets, IPA, $, navigation, phases, reg, su, text) { /** * Facet represents the content of currently displayed page. @@ -121,8 +122,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 || {}, {}, { $factory: exp.state }); - that.actions = exp.action_holder_builder.build({ actions: spec.actions }); + that.action_state = builder.build('', spec.state || {}, {}, { $factory: exp.state }); + that.actions = builder.build('', { actions: spec.actions }, {}, { $factory: exp.action_holder } ); that.header_actions = spec.header_actions; that.header = spec.header || IPA.facet_header({ facet: that }); @@ -1728,7 +1729,7 @@ exp.action_holder = IPA.action_holder = function(spec) { var i, action, actions; that.facet = facet; - actions = exp.action_builder.build(spec.actions) || []; + actions = builder.build('action', spec.actions) || []; for (i=0; i<actions.length; i++) { action = actions[i]; @@ -1783,8 +1784,8 @@ exp.state = IPA.state = function(spec) { //when state changes. Params: state, Context: this that.changed = IPA.observer(); - that.evaluators = exp.state_evaluator_builder.build(spec.evaluators) || []; - that.summary_evaluator = IPA.build(spec.summary_evaluator || IPA.summary_evaluator); + that.evaluators = builder.build('state_evaluator', spec.evaluators) || []; + that.summary_evaluator = builder.build('', spec.summary_evaluator || IPA.summary_evaluator); that.summary_conditions = spec.summary_conditions || []; @@ -2126,7 +2127,8 @@ exp.control_buttons_widget = IPA.control_buttons_widget = function(spec) { var that = IPA.widget(spec); - that.buttons = IPA.action_button_widget_builder.build(spec.buttons) || []; + that.buttons = builder.build('widget', spec.buttons, {}, + { $factory: exp.action_button_widget} ) || []; that.init = function(facet) { @@ -2180,7 +2182,6 @@ exp.eval_cond = IPA.eval_cond = function(enable_cond, disable_cond, state) { return true; }; - exp.action_list_widget = IPA.action_list_widget = function(spec) { spec = spec || {}; @@ -2379,7 +2380,7 @@ var FacetState = exp.FacetState = declare([Stateful, Evented], { return this; }, - /* + /** * Set a property * * Sets named properties on a stateful object and notifies any watchers of @@ -2422,25 +2423,26 @@ 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 -}); +// Action builder and registry +exp.action_builder = builder.get('action'); +exp.action_builder.factory = exp.action; +reg.set('action', exp.action_builder.registry); -exp.state_builder = IPA.state_builder = new Builder({ - factory: exp.state -}); +// State Evaluator builder and registry +exp.state_evaluator_builder = builder.get('state_evaluator'); +exp.state_evaluator.factory = exp.action; +reg.set('state_evaluator', exp.state_evaluator.registry); -exp.state_evaluator_builder = IPA.state_evaluator_builder = new Builder({ - factory: exp.state -}); +exp.register = function() { + var w = reg.widget; -exp.action_button_widget_builder = IPA.action_button_widget_builder = new Builder({ - factory: exp.action_button_widget -}); + w.register('action_button', exp.action_button_widget); + w.register('control_buttons', exp.control_buttons_widget); + w.register('action_list', exp.action_list_widget); +}; + +phases.on('registration', exp.register); return exp; }); |