# Copyright (c) 2010-2011, Diaspora Inc. This file is # licensed under the Affero General Public License version 3 or later. See # the COPYRIGHT file. module AspectGlobalHelper def aspect_options_for_select(aspects) options = {} aspects.each do |aspect| options[aspect.to_s] = aspect.id end options end def publisher_aspects_for(stream=nil) if stream aspects = stream.aspects aspect = stream.aspect aspect_ids = stream.aspect_ids elsif current_user aspects = current_user.post_default_aspects aspect = aspects.first aspect_ids = current_user.aspect_ids else return {} end {selected_aspects: aspects, aspect: aspect, aspect_ids: aspect_ids} end def public_selected?(selected_aspects) "public" == selected_aspects.try(:first) end def all_aspects_selected?(aspects, selected_aspects) !aspects.empty? && aspects.size == selected_aspects.size && !public_selected?(selected_aspects) end def aspect_selected?(aspect, aspects, selected_aspects) selected_aspects.include?(aspect) && !all_aspects_selected?(aspects, selected_aspects) end end