diff options
author | Endi S. Dewata <edewata@redhat.com> | 2011-06-16 16:35:13 -0500 |
---|---|---|
committer | Adam Young <ayoung@redhat.com> | 2011-06-16 20:11:22 -0400 |
commit | 313f201ea5b236311837d687119a4dd67fdb9372 (patch) | |
tree | a01e33889d52354ed955ed3a204a0eec72004d7d /install/ui/entity.js | |
parent | dbeae4e3f43a15c84d95447c0c38266f06402ea2 (diff) | |
download | freeipa-313f201ea5b236311837d687119a4dd67fdb9372.tar.gz freeipa-313f201ea5b236311837d687119a4dd67fdb9372.tar.xz freeipa-313f201ea5b236311837d687119a4dd67fdb9372.zip |
Merged direct and indirect association facets
The direct and indirect associations are now displayed in the same
facet. The type of association to be displayed can be selected
using radio buttons.
Ticket #1338
Diffstat (limited to 'install/ui/entity.js')
-rw-r--r-- | install/ui/entity.js | 36 |
1 files changed, 31 insertions, 5 deletions
diff --git a/install/ui/entity.js b/install/ui/entity.js index 783cfcbda..8ccdb8ea2 100644 --- a/install/ui/entity.js +++ b/install/ui/entity.js @@ -795,7 +795,20 @@ IPA.entity_builder = function(){ if (spec.facet_group == 'memberindirect' || spec.facet_group == 'memberofindirect') { - spec.read_only = true; + + var length = spec.attribute_member.length; + var direct_attribute_member = spec.attribute_member.substring(0, length-8); + var direct_facet_name = direct_attribute_member+'_'+spec.other_entity; + + facet = entity.get_facet(direct_facet_name); + + if (facet) { // merge into previously created direct facet + facet.indirect_attribute_member = spec.attribute_member; + return that; + + } else { + spec.read_only = true; + } } spec.label = spec.label || @@ -823,15 +836,28 @@ IPA.entity_builder = function(){ spec = spec || {}; - var attribute_members = entity.metadata.attribute_members; + var direct_associations = []; + var indirect_associations = []; + + for (var association in entity.metadata.attribute_members) { + if (association == 'memberindirect' || + association == 'memberofindirect') { + indirect_associations.push(association); + } else { + direct_associations.push(association); + } + } - for (var attribute_member in attribute_members) { + // make sure direct facets are created first + var attribute_members = direct_associations.concat(indirect_associations); + for (var i=0; i<attribute_members.length; i++) { + var attribute_member = attribute_members[i]; var other_entities = entity.metadata.attribute_members[attribute_member]; - for (var i=0; i<other_entities.length; i++) { + for (var j=0; j<other_entities.length; j++) { - var other_entity = other_entities[i]; + var other_entity = other_entities[j]; var association_name = attribute_member+'_'+other_entity; var facet = entity.get_facet(association_name); |