diff options
author | Petr Vobornik <pvoborni@redhat.com> | 2014-06-25 15:17:26 +0200 |
---|---|---|
committer | Petr Vobornik <pvoborni@redhat.com> | 2014-07-01 10:19:46 +0200 |
commit | 99c5f0511f697cc54a9de7994c3e6999c6fd119f (patch) | |
tree | 10bd2e003647450dde60d8833a40b91115f35343 /install/ui/src/freeipa/widget.js | |
parent | c693b28babf97d22c14d37e024d551b583c4327f (diff) | |
download | freeipa-99c5f0511f697cc54a9de7994c3e6999c6fd119f.tar.gz freeipa-99c5f0511f697cc54a9de7994c3e6999c6fd119f.tar.xz freeipa-99c5f0511f697cc54a9de7994c3e6999c6fd119f.zip |
webui: focus invalid widget on validation error
Reviewed-By: Fraser Tweedale <ftweedal@redhat.com>
Reviewed-By: Endi Sukma Dewata <edewata@redhat.com>
Diffstat (limited to 'install/ui/src/freeipa/widget.js')
-rw-r--r-- | install/ui/src/freeipa/widget.js | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/install/ui/src/freeipa/widget.js b/install/ui/src/freeipa/widget.js index 1db0052f4..ae1ada239 100644 --- a/install/ui/src/freeipa/widget.js +++ b/install/ui/src/freeipa/widget.js @@ -5756,6 +5756,28 @@ exp.activity_widget = IPA.activity_widget = function(spec) { }; /** + * Find and focus first focusable invalid widget + * @member widget + * @param {IPA.widget|facet.facet} widget Widget container + * @return {boolean} A widget was focused + */ +exp.focus_invalid = function(widget) { + + var widgets = widget.widgets.widgets; + var focused = false; + for (var i=0, l=widgets.length; i<l; i++) { + var w = widgets.values[i]; + if (w.valid === false && w.focus_input) { + w.focus_input(); + focused = true; + } + else if (w.widgets) focused = exp.focus_invalid(w); + if (focused) break; + } + return focused; +}; + +/** * pre_op operations for widgets * - sets facet and entity if present in context * @member widget |