From a7e89190fae68633ecfe0c0d8c5d7702b123c0fd Mon Sep 17 00:00:00 2001 From: Adam Young Date: Mon, 31 Jan 2011 19:17:39 -0500 Subject: association fixes PLaces custom association facets into the proper facet groups usesthe associators if they are specifiedfor an association --- install/ui/associate.js | 3 ++- install/ui/entity.js | 35 +++++++++++++++++++++++++++-------- 2 files changed, 29 insertions(+), 9 deletions(-) (limited to 'install') diff --git a/install/ui/associate.js b/install/ui/associate.js index 9fc907230..bdb10337a 100644 --- a/install/ui/associate.js +++ b/install/ui/associate.js @@ -699,8 +699,9 @@ IPA.association_facet = function (spec) { var relationships = IPA.metadata[that.entity_name].relationships; var relationship = relationships[that.attribute_member]; - if (!relationship) + if (!relationship){ relationship = ['', '', '']; + } /* TODO: I18N and some generic handling of different relationships */ var header_message = ''; diff --git a/install/ui/entity.js b/install/ui/entity.js index 7f195a147..82af8234e 100644 --- a/install/ui/entity.js +++ b/install/ui/entity.js @@ -180,13 +180,36 @@ IPA.entity = function (spec) { that.entity_name, other_entity); } - return IPA.association_facet({ - 'name': attribute_member+'_'+other_entity, + var association_name= attribute_member+'_'+other_entity; + + //TODO remove from the facets and facets_by_name collections + var facet = that.get_facet(association_name); + if (facet){ + facet.facet_group = facet_group; + facet.attribute_member = attribute_member; + return; + } + + var config = that.get_association(other_entity); + if (!config){ + config = that.get_association(association_name); + } + + var spec ={ + 'name': association_name, 'label': label, 'other_entity': other_entity, 'facet_group': facet_group, 'attribute_member': attribute_member - }); + }; + + if (config){ + spec.associator = config.associator; + } + + facet = IPA.association_facet(spec); + + that.add_facet(facet); }; that.create_association_facets = function() { @@ -214,12 +237,8 @@ IPA.entity = function (spec) { relationship = ['Member', '', 'no_']; var facet_group = relationship[0]; - var facet = that.create_association_facet( + that.create_association_facet( attribute_member, other_entity, label, facet_group); - - if (that.get_facet(facet.name)) continue; - - that.add_facet(facet); } } return that; -- cgit