diff --git a/app/views/shared/_publisher.html.haml b/app/views/shared/_publisher.html.haml index da22fe96b..d899c3d02 100644 --- a/app/views/shared/_publisher.html.haml +++ b/app/views/shared/_publisher.html.haml @@ -40,7 +40,7 @@ = t("shared.publisher.click_to_share_with") - if aspect == :all || aspect == :profile = status.hidden_field(:public) - = image_tag "icons/globe.png", :title => t('.public'), :class => 'public_icon dim', :width => 16, :height => 16 + = image_tag "icons/globe.png", :title => t('javascripts.publisher.limited'), :class => 'public_icon dim', :width => 16, :height => 16 - if current_user.services - for service in current_user.services = image_tag "social_media_logos/#{service.provider}-16x16.png", :title => service.provider.titleize, :class => "service_icon dim", :id =>"#{service.provider}", :maxchar => "#{service.class::MAX_CHARACTERS}" diff --git a/config/locales/diaspora/en.yml b/config/locales/diaspora/en.yml index e46ecb82a..9060cff59 100644 --- a/config/locales/diaspora/en.yml +++ b/config/locales/diaspora/en.yml @@ -662,7 +662,6 @@ en: share_with: "share with" whats_on_your_mind: "What's on your mind?" publishing_to: "publishing to: " - public: "Public" click_to_share_with: "Click to share with: " discard_post: "Discard post" add_contact: diff --git a/config/locales/javascript/javascript.en.yml b/config/locales/javascript/javascript.en.yml index ac4ac2ff4..f32bb50f7 100644 --- a/config/locales/javascript/javascript.en.yml +++ b/config/locales/javascript/javascript.en.yml @@ -29,6 +29,8 @@ en: search_for: "Search for {{name}}" publisher: at_least_one_aspect: "You must publish to at least one aspect" + limited: "Limited - your post will only be seen by people you are sharing with" + public: "Public - your post will be visible to everyone and found by search engines" infinite_scroll: no_more: "No more posts." web_sockets: diff --git a/public/javascripts/publisher.js b/public/javascripts/publisher.js index e86e6aea5..77950f6e2 100644 --- a/public/javascripts/publisher.js +++ b/public/javascripts/publisher.js @@ -289,9 +289,18 @@ var Publisher = { bindPublicIcon: function(){ $(".public_icon").bind("click", function(evt){ $(this).toggleClass("dim"); - var public_field= $("#publisher #status_message_public"); + var public_field = $("#publisher #status_message_public"); - (public_field.val() == 'false') ? (public_field.val('true')) : (public_field.val('false')); + if (public_field.val() == 'false') { + public_field.val('true'); + $(this).attr('title', Diaspora.widgets.i18n.t('publisher.public')); + } else { + public_field.val('false'); + $(this).attr('title', Diaspora.widgets.i18n.t('publisher.limited')); + } + + $(this).tipsy(true).fixTitle(); + $(this).tipsy(true).show(); }); }, toggleServiceField: function(service){ diff --git a/spec/javascripts/publisher-spec.js b/spec/javascripts/publisher-spec.js index 80a4042cd..56894f794 100644 --- a/spec/javascripts/publisher-spec.js +++ b/spec/javascripts/publisher-spec.js @@ -110,6 +110,9 @@ describe("Publisher", function() { describe("bindPublicIcon", function() { beforeEach( function(){ spec.loadFixture('aspects_index_services'); + Diaspora.widgets.i18n.loadLocale( + { 'publisher' : + { 'public' : 'is public', 'limited' : 'is limited' } }, 'en'); }); it('gets called on initialize', function(){ @@ -131,8 +134,13 @@ describe("Publisher", function() { $(".public_icon").click(); expect($('#publisher #status_message_public').val()).toBe('true'); - - + }); + it('toggles the tooltip on the clicked icon', function(){ + Publisher.bindPublicIcon(); + $(".public_icon").click(); + expect($(".public_icon")).toHaveAttr('original-title', 'is public'); + $(".public_icon").click(); + expect($(".public_icon")).toHaveAttr('original-title', 'is limited'); }); }); describe("bindServiceIcons", function() {