summaryrefslogtreecommitdiffstats
path: root/install/ui/src/freeipa/widgets
diff options
context:
space:
mode:
authorPavel Vomacka <pvomacka@redhat.com>2016-04-22 10:27:10 +0200
committerPetr Vobornik <pvoborni@redhat.com>2016-06-29 15:41:58 +0200
commitf243bd2d6564dd35ab5d506578f5d1d2ccb99b2f (patch)
tree0c4cae71943b32441c3dcc8cb5cd9b34b0c22d94 /install/ui/src/freeipa/widgets
parente3e83272c9ffaf2a09f910e754c4a0421c816fd0 (diff)
downloadfreeipa-f243bd2d6564dd35ab5d506578f5d1d2ccb99b2f.tar.gz
freeipa-f243bd2d6564dd35ab5d506578f5d1d2ccb99b2f.tar.xz
freeipa-f243bd2d6564dd35ab5d506578f5d1d2ccb99b2f.zip
Extends functionality of DropdownWidget
Adds methods which are able to enable and disable options according to the name of option and methods which set or get whole item list. https://fedorahosted.org/freeipa/ticket/5381 Reviewed-By: Petr Vobornik <pvoborni@redhat.com>
Diffstat (limited to 'install/ui/src/freeipa/widgets')
-rw-r--r--install/ui/src/freeipa/widgets/DropdownWidget.js36
1 files changed, 36 insertions, 0 deletions
diff --git a/install/ui/src/freeipa/widgets/DropdownWidget.js b/install/ui/src/freeipa/widgets/DropdownWidget.js
index a81960545..f952f0589 100644
--- a/install/ui/src/freeipa/widgets/DropdownWidget.js
+++ b/install/ui/src/freeipa/widgets/DropdownWidget.js
@@ -142,6 +142,42 @@ define(['dojo/_base/declare',
return this.dom_node;
},
+ get_items: function() {
+ return this.items;
+ },
+
+ set_items: function(items) {
+ this.items = items;
+ if (this.ul_node) this.render();
+ },
+
+ disable_item: function(item_name) {
+ var item = this._find_item(item_name);
+ if (item && this.ul_node) {
+ item.disabled = true;
+ $("li[data-name=" + item.name +"]", this.ul_node ).replaceWith(
+ this._render_item(item));
+ }
+ },
+
+ enable_item: function(item_name) {
+ var item = this._find_item(item_name);
+ if (item && this.ul_node) {
+ item.disabled = false;
+ $("li[data-name=" + item.name +"]", this.ul_node ).replaceWith(
+ this._render_item(item));
+ }
+ },
+
+ _find_item: function(item_name) {
+ for (var i=0, l=this.items.length; i<l; i++) {
+ if (this.items[i].name && this.items[i].name == item_name) {
+ return this.items[i];
+ }
+ }
+ return null;
+ },
+
_render_toggle: function(container) {
this.toggle_node = construct.create('a', {