# Copyright (c) 2010, Diaspora Inc. This file is # licensed under the Affero General Public License version 3 or later. See # the COPYRIGHT file. module AspectGlobalHelper def aspects_with_post(aspects, post) aspects.select do |aspect| AspectVisibility.exists?(:aspect_id => aspect.id, :post_id => post.id) end end def aspect_badges(aspects, opts={}) str = '' aspects.each do |aspect| str << aspect_badge(aspect, opts) end str.html_safe end def aspect_badge(aspect, opts={}) str = "" link = opts.delete(:link) if !link str << link_to(aspect.name, "#", 'data-guid' => aspect.id, :class => 'hard_aspect_link').html_safe else str << link_for_aspect(aspect).html_safe end str << "" end def aspect_links(aspects, opts={}) str = "" aspects.each do |aspect| str << '
  • ' str << link_for_aspect(aspect, :params => opts, 'data-guid' => aspect.id, :class => 'hard_aspect_link').html_safe str << '
  • ' end str.html_safe end def link_for_aspect(aspect, opts={}) opts[:params] ||= {} params ||= {} opts[:params] = opts[:params].merge("a_ids[]" => aspect.id, :created_at => params[:created_at]) opts[:class] ||= "" opts[:class] << " hard_aspect_link" opts['data-guid'] = aspect.id link_to aspect.name, aspects_path( opts[:params] ), opts end def aspect_listing_link_opts aspect if controller.instance_of?(ContactsController) {:href => contacts_path(:a_id => aspect.id)} else {:href => aspects_path("a_ids[]" => aspect.id), :class => "aspect_selector name hard_aspect_link", 'data-guid' => aspect.id} end end def aspect_or_all_path(aspect) if @aspect.is_a? Aspect aspect_path @aspect else aspects_path end end def aspect_dropdown_list_item(aspect, contact, person) checked = (contact.persisted? && contact.aspect_memberships.detect{ |am| am.aspect_id == aspect.id}) klass = checked ? "selected" : "" str = < #{aspect.name} LISTITEM str.html_safe end end