diff options
author | Adam Young <ayoung@redhat.com> | 2011-06-30 17:38:59 -0400 |
---|---|---|
committer | Adam Young <ayoung@redhat.com> | 2011-07-01 16:49:49 -0400 |
commit | 7a25523d63559b19babd83c74223d2d0c4d75157 (patch) | |
tree | 3a6048b9c4c8bead5e9879e8edd4ba58f42226ae /install | |
parent | 58eec70884fba522fe5865355351e906f07d228e (diff) | |
download | freeipa-7a25523d63559b19babd83c74223d2d0c4d75157.tar.gz freeipa-7a25523d63559b19babd83c74223d2d0c4d75157.tar.xz freeipa-7a25523d63559b19babd83c74223d2d0c4d75157.zip |
entity link for password policy
https://fedorahosted.org/freeipa/ticket/1111
reset() now hides both the link and the label
calucalating should_link is now a function that can be overloaded.
Diffstat (limited to 'install')
-rw-r--r-- | install/ui/policy.js | 11 | ||||
-rw-r--r-- | install/ui/widget.js | 56 |
2 files changed, 65 insertions, 2 deletions
diff --git a/install/ui/policy.js b/install/ui/policy.js index d30abbfdc..cd0e499e1 100644 --- a/install/ui/policy.js +++ b/install/ui/policy.js @@ -33,8 +33,15 @@ IPA.entity_factories.pwpolicy = function() { sections:[ { name : 'identity', - fields:['krbmaxpwdlife','krbminpwdlife','krbpwdhistorylength', - 'krbpwdmindiffchars','krbpwdminlength'] + fields:[ + { + factory: IPA.entity_link_widget, + name: 'cn', + entity: 'group', + no_link_value: 'global_policy' + }, + 'krbmaxpwdlife','krbminpwdlife','krbpwdhistorylength', + 'krbpwdmindiffchars','krbpwdminlength'] }]}). standard_association_facets(). adder_dialog({ diff --git a/install/ui/widget.js b/install/ui/widget.js index a56e55250..2ea345d9a 100644 --- a/install/ui/widget.js +++ b/install/ui/widget.js @@ -1729,3 +1729,59 @@ IPA.entity_select_widget = function(spec) { return that; }; + +IPA.entity_link_widget = function(spec) { + var that = IPA.widget(spec); + var no_link_value = spec.no_link_value || null; + var should_link = true; + var other_pkey = null; + var other_entity = spec.entity; + + that.super_create = that.create; + that.create = function(container) { + that.super_create(container); + that.link = + $('<a/>', { + href: 'jslink', + title: '', + html: '', + click: function() { + if (should_link){ + IPA.nav.show_page(other_entity, 'default', other_pkey); + } + return false; + } + }).appendTo(container); + + that.label = $('<label/>'). + appendTo(container); + }; + that.should_link = function(){ + return (other_pkey !== no_link_value); + }; + + that.reset = function(record) { + other_pkey = null; + if (that.values || that.values.length > 0){ + other_pkey = that.values[0]; + var should_link = that.should_link(); + if (should_link){ + that.link.html(other_pkey); + that.link.css('display','inline'); + that.label.css('display','none'); + }else{ + that.label.html(other_pkey); + that.link.css('display','none'); + that.label.css('display','inline'); + } + }else{ + should_link = false; + that.link.html(''); + that.label.html(''); + that.link.css('display','none'); + that.label.css('display','none'); + } + }; + + return that; +};
\ No newline at end of file |