From 313f201ea5b236311837d687119a4dd67fdb9372 Mon Sep 17 00:00:00 2001 From: "Endi S. Dewata" Date: Thu, 16 Jun 2011 16:35:13 -0500 Subject: 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 --- install/ui/entity.js | 36 +++++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) (limited to 'install/ui/entity.js') diff --git a/install/ui/entity.js b/install/ui/entity.js index 783cfcbd..8ccdb8ea 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