43 lines
1.4 KiB
Ruby
43 lines
1.4 KiB
Ruby
# 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 PublisherHelper
|
|
def service_button(service)
|
|
provider_title = I18n.t("services.index.share_to", provider: service.provider.titleize)
|
|
content_tag :div,
|
|
class: "btn btn-link service_icon dim",
|
|
title: "#{provider_title} (#{service.nickname})",
|
|
id: service.provider,
|
|
maxchar: service.class::MAX_CHARACTERS,
|
|
data: {toggle: "tooltip", placement: "bottom"} do
|
|
if service.provider == "wordpress"
|
|
content_tag(:span, "", class: "social-media-logos-wordpress-16x16")
|
|
else
|
|
content_tag(:i, "", class: "entypo-social-#{service.provider} small")
|
|
end
|
|
end
|
|
end
|
|
|
|
def public_selected?(selected_aspects)
|
|
"public" == selected_aspects.try(:first) || publisher_boolean?(:public)
|
|
end
|
|
|
|
def all_aspects_selected?(selected_aspects)
|
|
!all_aspects.empty? && all_aspects.size == selected_aspects.size && !public_selected?(selected_aspects)
|
|
end
|
|
|
|
def aspect_selected?(aspect, selected_aspects)
|
|
selected_aspects.include?(aspect) && !all_aspects_selected?(selected_aspects) && !public_selected?(selected_aspects)
|
|
end
|
|
|
|
def publisher_open?
|
|
publisher_boolean?(:open)
|
|
end
|
|
|
|
private
|
|
|
|
def publisher_boolean?(option)
|
|
@stream.try(:publisher).try(option) == true
|
|
end
|
|
end
|