Commit a8726645b3b49037b7c19ff4405e36527b58a8be
Merge branch 'stoa' of gitlab.com:colivre/noosfero into stoa
1 | 1 | class SocialSharePrivacyPluginAdminController < AdminController |
2 | 2 | append_view_path File.join(File.dirname(__FILE__) + '/../views') |
3 | 3 | |
4 | + protect 'edit_environment_features', :environment | |
5 | + | |
6 | + include SocialSharePrivacyPluginHelper | |
7 | + | |
4 | 8 | def index |
5 | - available_networks = Dir[SocialSharePrivacyPlugin.root_path + 'public/javascripts/modules/*.js'].map { |entry| entry.split('/').last.gsub(/\.js$/,'') } | |
6 | - @selected = environment.socialshare | |
7 | - @tags = available_networks - @selected | |
9 | + @settings = Noosfero::Plugin::Settings.new(environment, SocialSharePrivacyPlugin, params[:settings]) | |
10 | + @settings.networks ||= [] | |
11 | + | |
12 | + @available_networks = social_share_privacy_networks.sort | |
13 | + @settings.networks &= @available_networks | |
14 | + @available_networks -= @settings.networks | |
15 | + | |
8 | 16 | if request.post? |
9 | - networks = params[:networks].map{ |network| network.strip } if params[:networks] | |
10 | - environment.socialshare = networks | |
11 | - if environment.save | |
12 | - session[:notice] = _('Saved the selected social buttons') | |
13 | - redirect_to :controller => 'plugins', :action => 'index' | |
17 | + begin | |
18 | + @settings.save! | |
19 | + session[:notice] = _('Option updated successfully.') | |
20 | + rescue Exception => exception | |
21 | + session[:notice] = _('Option wasn\'t updated successfully.') | |
14 | 22 | end |
23 | + redirect_to :controller => 'plugins', :action => 'index' | |
15 | 24 | end |
16 | 25 | end |
17 | 26 | ... | ... |
... | ... | @@ -8,16 +8,23 @@ class SocialSharePrivacyPlugin < Noosfero::Plugin |
8 | 8 | _("A plugin that adds share buttons from other networks.") |
9 | 9 | end |
10 | 10 | |
11 | + def self.networks_default_setting | |
12 | + [] | |
13 | + end | |
14 | + | |
11 | 15 | def stylesheet? |
12 | 16 | true |
13 | 17 | end |
14 | 18 | |
15 | - def social_buttons_javascript(article) | |
19 | + def social_buttons_contents | |
16 | 20 | proc do |
17 | - javascript_include_tag('plugins/social_share_privacy/javascripts/socialshareprivacy.js') + | |
18 | - javascript_include_tag(environment.socialshare.map { |service| "plugins/social_share_privacy/javascripts/modules/#{service}.js" }) + | |
19 | - javascript_tag("jQuery.fn.socialSharePrivacy.settings.path_prefix = '../../plugins/social_share_privacy/'; jQuery.fn.socialSharePrivacy.settings.order = #{environment.socialshare}; jQuery(document).ready(function () { jQuery('.social-buttons').socialSharePrivacy({perma_option: false, info_link_target: '_blank'});});") + | |
20 | - content_tag(:div, '',:class => "social-buttons") | |
21 | + settings = Noosfero::Plugin::Settings.new(environment, SocialSharePrivacyPlugin) | |
22 | + locale = FastGettext.locale | |
23 | + javascript_include_tag('plugins/social_share_privacy/socialshareprivacy/javascripts/socialshareprivacy.js') + | |
24 | + javascript_include_tag(settings.get_setting(:networks).map { |service| "plugins/social_share_privacy/socialshareprivacy/javascripts/modules/#{service}.js" }) + | |
25 | + (locale != 'en' ? javascript_include_tag("plugins/social_share_privacy/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.#{locale}.js") : '') + | |
26 | + javascript_tag("jQuery.fn.socialSharePrivacy.settings.path_prefix = '../../plugins/social_share_privacy/socialshareprivacy/'; jQuery.fn.socialSharePrivacy.settings.order = #{settings.get_setting(:networks)}; jQuery(document).ready(function () { jQuery('.social-buttons').socialSharePrivacy({perma_option: false, info_link_target: '_blank'});});") + | |
27 | + content_tag(:div, '', :class => "social-buttons") | |
21 | 28 | end |
22 | 29 | end |
23 | 30 | ... | ... |
4.57 KB
2.26 KB
2.42 KB
1.01 KB
884 Bytes
1.53 KB
870 Bytes
984 Bytes
782 Bytes
1.09 KB
842 Bytes
644 Bytes
1.62 KB
1.5 KB
964 Bytes
1.05 KB
1.04 KB
1.22 KB
1.29 KB
877 Bytes
856 Bytes
651 Bytes
825 Bytes
661 Bytes
409 Bytes
343 Bytes
1.25 KB
1.12 KB
1018 Bytes
1.08 KB
965 Bytes
1.05 KB
880 Bytes
760 Bytes
1.06 KB
713 Bytes
768 Bytes
985 Bytes
1.13 KB
713 Bytes
518 Bytes
740 Bytes
738 Bytes
960 Bytes
540 Bytes
801 Bytes
870 Bytes
742 Bytes
658 Bytes
151 Bytes
1.27 KB
1.71 KB
... | ... | @@ -1,31 +0,0 @@ |
1 | -/* | |
2 | - * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz | |
3 | - * | |
4 | - * Copyright (c) 2012 Mathias Panzenböck | |
5 | - * | |
6 | - * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
7 | - * | |
8 | - * Spread the word, link to us if you can. | |
9 | - */ | |
10 | -(function ($, undefined) { | |
11 | - "use strict"; | |
12 | - | |
13 | - $.extend($.fn.socialSharePrivacy.settings, { | |
14 | - // Set perma_option to true. | |
15 | - // Initially it is only set to true if jQuery.cookie is available. | |
16 | - perma_option: true, | |
17 | - set_perma_option: function (service_name) { | |
18 | - localStorage.setItem('socialSharePrivacy_'+service_name, 'perma_on'); | |
19 | - }, | |
20 | - del_perma_option: function (service_name) { | |
21 | - localStorage.removeItem('socialSharePrivacy_'+service_name); | |
22 | - }, | |
23 | - // Only one of the two methods "get_perma_options" and "get_perma_option" has | |
24 | - // to be implemented. Though the other has to be set to null, so the default | |
25 | - // cookie based method is not used. | |
26 | - get_perma_options: null, | |
27 | - get_perma_option: function (service_name) { | |
28 | - return localStorage.getItem('socialSharePrivacy_'+service_name) === 'perma_on'; | |
29 | - } | |
30 | - }); | |
31 | -})(jQuery); |
... | ... | @@ -1,54 +0,0 @@ |
1 | -/* | |
2 | - * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz | |
3 | - * | |
4 | - * http://www.heise.de/extras/socialshareprivacy/ | |
5 | - * http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html | |
6 | - * | |
7 | - * Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt, | |
8 | - * Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de | |
9 | - * | |
10 | - * Copyright (c) 2012 Mathias Panzenböck | |
11 | - * | |
12 | - * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
13 | - * | |
14 | - * Spread the word, link to us if you can. | |
15 | - */ | |
16 | -(function ($, undefined) { | |
17 | - "use strict"; | |
18 | - | |
19 | - function get (self, options, uri, settings, name) { | |
20 | - var value = options[name]; | |
21 | - if (typeof value === "function") { | |
22 | - return value.call(self, options, uri, settings); | |
23 | - } | |
24 | - return String(value); | |
25 | - } | |
26 | - | |
27 | - $.fn.socialSharePrivacy.settings.services.buffer = { | |
28 | - 'status' : true, | |
29 | - 'dummy_line_img' : 'images/dummy_buffer.png', | |
30 | - 'dummy_box_img' : 'images/dummy_box_buffer.png', | |
31 | - 'dummy_alt' : '"Buffer"-Dummy', | |
32 | - 'txt_info' : 'Two clicks for more privacy: The Buffer button will be enabled once you click here. Activating the button already sends data to Buffer – see <em>i</em>.', | |
33 | - 'txt_off' : 'not connected to Buffer', | |
34 | - 'txt_on' : 'connected to Buffer', | |
35 | - 'perma_option' : true, | |
36 | - 'display_name' : 'Buffer', | |
37 | - 'referrer_track' : '', | |
38 | - 'via' : '', | |
39 | - 'text' : $.fn.socialSharePrivacy.getTitle, | |
40 | - 'picture' : $.fn.socialSharePrivacy.getImage, | |
41 | - 'button' : function (options, uri, settings) { | |
42 | - return $('<iframe allowtransparency="true" frameborder="0" scrolling="no"></iframe>').attr( | |
43 | - 'src', 'https://widgets.bufferapp.com/button/?'+$.param({ | |
44 | - count : settings.layout === 'line' ? 'horizontal' : 'vertical', | |
45 | - via : get(this, options, uri, settings, 'via'), | |
46 | - text : $.fn.socialSharePrivacy.abbreviateText( | |
47 | - get(this, options, uri, settings, 'text'), 120), | |
48 | - picture : get(this, options, uri, settings, 'picture'), | |
49 | - url : uri + options.referrer_track, | |
50 | - source : 'button' | |
51 | - })); | |
52 | - } | |
53 | - }; | |
54 | -})(jQuery); |
... | ... | @@ -1,85 +0,0 @@ |
1 | -/* | |
2 | - * jquery.socialshareprivacy.js | |
3 | - * | |
4 | - * Copyright (c) 2012 Mathias Panzenböck | |
5 | - * | |
6 | - * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
7 | - * | |
8 | - * Code inspired by Delicious Button v1.1: | |
9 | - * http://code.google.com/p/delicious-button/ | |
10 | - * | |
11 | - * Warning: this button uses plaintext http and can be harmful to users under opressive regimes | |
12 | - * | |
13 | - */ | |
14 | -(function ($, undefined) { | |
15 | - "use strict"; | |
16 | - | |
17 | - $.fn.socialSharePrivacy.settings.services.delicious = { | |
18 | - 'status' : true, | |
19 | - 'dummy_line_img' : 'images/dummy_delicious.png', | |
20 | - 'dummy_box_img' : 'images/dummy_box_delicious.png', | |
21 | - 'dummy_alt' : '"Delicious"-Dummy', | |
22 | - 'txt_info' : 'Two clicks for more privacy: The Delicious button will be enabled once you click here. Activating the button already sends data to Delicious – see <em>i</em>.', | |
23 | - 'txt_off' : 'not connected to Delicious', | |
24 | - 'txt_on' : 'connected to Delicious', | |
25 | - 'perma_option' : true, | |
26 | - 'display_name' : 'Delicious', | |
27 | - 'txt_button' : 'Save', | |
28 | - 'referrer_track' : '', | |
29 | - 'title' : $.fn.socialSharePrivacy.getTitle, | |
30 | - 'button' : function (options, uri, settings) { | |
31 | - var $button = $('<div class="delicious-widget"/>'); | |
32 | - var url = uri + options.referrer_track; | |
33 | - | |
34 | - $.ajax({ | |
35 | - url: "http://feeds.delicious.com/v2/json/urlinfo/data", | |
36 | - data: {url: url}, | |
37 | - dataType: "jsonp", | |
38 | - success: function (counts) { | |
39 | - var hash, total_posts, title, txt_button; | |
40 | - for (var i = 0; i < counts.length; ++ i) { | |
41 | - var count = counts[i]; | |
42 | - if (count.url === url) { | |
43 | - total_posts = parseInt(count.total_posts, 10); | |
44 | - hash = count.hash; | |
45 | - title = count.title; | |
46 | - break; | |
47 | - } | |
48 | - } | |
49 | - if (total_posts) txt_button = $.fn.socialSharePrivacy.formatNumber(total_posts); | |
50 | - else txt_button = options.txt_button; | |
51 | - var save_url = "http://delicious.com/save?"+$.param({ | |
52 | - v: "5", | |
53 | - url: url, | |
54 | - title: (typeof options.title === "function" ? | |
55 | - options.title.call(this, options, uri, settings) : | |
56 | - String(options.title)) || title | |
57 | - }); | |
58 | - | |
59 | - $button.html('<a target="delicious" class="icon"><div class="delicious1"></div><div class="delicious2"></div><div class="delicious3"></div></a><a class="count" target="delicious"><i></i><b></b></a>'); | |
60 | - $button.find('i').text(options.txt_button); | |
61 | - $button.find('b').text(txt_button); | |
62 | - $button.find('a.icon').attr("href", hash ? "http://delicious.com/url/" + hash : save_url); | |
63 | - var $count = $button.find('a.count').attr("href", save_url).click(function (event) { | |
64 | - window.open(save_url + "&noui&jump=close", "delicious", "toolbar=no,width=555,height=555"); | |
65 | - event.preventDefault(); | |
66 | - }); | |
67 | - | |
68 | - if (total_posts) { | |
69 | - $count.hover(function () { | |
70 | - var $self = $(this); | |
71 | - $self.find("b").stop(1, 1).css("display", "none"); | |
72 | - $self.find("i").fadeIn(); | |
73 | - }, function () { | |
74 | - var $self = $(this); | |
75 | - $self.find("i").stop(1, 1).css("display", "none"); | |
76 | - $self.find("b").fadeIn(); | |
77 | - }); | |
78 | - } | |
79 | - } | |
80 | - }); | |
81 | - | |
82 | - return $button; | |
83 | - } | |
84 | - }; | |
85 | -})(jQuery); |
... | ... | @@ -1,77 +0,0 @@ |
1 | -/* | |
2 | - * jquery.socialshareprivacy.js | |
3 | - * | |
4 | - * Copyright (c) 2012 Mathias Panzenböck | |
5 | - * | |
6 | - * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
7 | - * | |
8 | - */ | |
9 | -(function ($, undefined) { | |
10 | - "use strict"; | |
11 | - | |
12 | - var DISQUSWIDGETS = { | |
13 | - displayCount: function (data) { | |
14 | - $('.social_share_privacy_area .disqus .disqus-widget:not(.init)').each(function () { | |
15 | - var $widget = $(this); | |
16 | - var uri = data.counts[0].id; | |
17 | - if ($widget.attr("data-uri") === uri) { | |
18 | - var key = $widget.attr("data-count"); | |
19 | - var count = data.counts[0][key]; | |
20 | - var text = data.text[key]; | |
21 | - var scount = $.fn.socialSharePrivacy.formatNumber(count); | |
22 | - $widget.attr('title', count === 0 ? text.zero : count === 1 ? text.one : text.multiple.replace('{num}', scount)); | |
23 | - $widget.find('.count a').text(scount); | |
24 | - $widget.addClass('init'); | |
25 | - } | |
26 | - }); | |
27 | - } | |
28 | - }; | |
29 | - | |
30 | - $.fn.socialSharePrivacy.settings.services.disqus = { | |
31 | - 'status' : true, | |
32 | - 'dummy_line_img' : 'images/dummy_disqus.png', | |
33 | - 'dummy_box_img' : 'images/dummy_box_disqus.png', | |
34 | - 'dummy_alt' : '"Disqus"-Dummy', | |
35 | - 'txt_info' : 'Two clicks for more privacy: The Disqus button will be enabled once you click here. Activating the button already sends data to Disqus – see <em>i</em>.', | |
36 | - 'txt_off' : 'not connected to Disqus', | |
37 | - 'txt_on' : 'connected to Disqus', | |
38 | - 'perma_option' : true, | |
39 | - 'display_name' : 'Disqus', | |
40 | - 'referrer_track' : '', | |
41 | - 'shortname' : '', | |
42 | - 'count' : 'comments', | |
43 | - 'onclick' : null, | |
44 | - 'button' : function (options, uri, settings) { | |
45 | - var shortname = options.shortname || window.disqus_shortname || ''; | |
46 | - var $code; | |
47 | - if (settings.layout === 'line') { | |
48 | - $code = $('<div class="disqus-widget">'+ | |
49 | - '<a href="#disqus_thread" class="name">Disq<span class="us">us</span></a>'+ | |
50 | - '<span class="count"><i></i><u></u><a href="#disqus_thread"> </a></span></div>'); | |
51 | - } | |
52 | - else { | |
53 | - $code = $('<div class="disqus-widget">'+ | |
54 | - '<div class="count"><i></i><u></u><a href="#disqus_thread"> </a></div>'+ | |
55 | - '<a href="#disqus_thread" class="name">Disq<span class="us">us</span></a></div>'); | |
56 | - } | |
57 | - | |
58 | - $code.attr({ | |
59 | - 'data-count' : options.count, | |
60 | - 'data-shortname' : shortname, | |
61 | - 'data-uri' : uri + options.referrer_track | |
62 | - }); | |
63 | - | |
64 | - if (options.onclick) { | |
65 | - $code.find('a').click(typeof options.onclick === "function" ? | |
66 | - options.onclick : new Function("event", options.onclick)); | |
67 | - } | |
68 | - | |
69 | - // this breaks every other usage of the disqus count API: | |
70 | - window.DISQUSWIDGETS = DISQUSWIDGETS; | |
71 | - | |
72 | - $.getScript('https://'+shortname+'.disqus.com/count-data.js?2='+encodeURIComponent(uri + options.referrer_track)); | |
73 | - | |
74 | - return $code; | |
75 | - } | |
76 | - }; | |
77 | -})(jQuery); |
... | ... | @@ -1,81 +0,0 @@ |
1 | -/* | |
2 | - * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz | |
3 | - * | |
4 | - * http://www.heise.de/extras/socialshareprivacy/ | |
5 | - * http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html | |
6 | - * | |
7 | - * Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt, | |
8 | - * Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de | |
9 | - * | |
10 | - * Copyright (c) 2012 Mathias Panzenböck | |
11 | - * | |
12 | - * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
13 | - * | |
14 | - * Spread the word, link to us if you can. | |
15 | - */ | |
16 | -(function ($, undefined) { | |
17 | - "use strict"; | |
18 | - | |
19 | - var locales = {"af":["ZA"],"ar":["AR"],"az":["AZ"],"be":["BY"],"bg":["BG"],"bn":["IN"],"bs":["BA"],"ca":["ES"],"cs":["CZ"],"cy":["GB"],"da":["DK"],"de":["DE"],"el":["GR"],"en":["GB","PI","UD","US"],"eo":["EO"],"es":["ES","LA"],"et":["EE"],"eu":["ES"],"fa":["IR"],"fb":["LT"],"fi":["FI"],"fo":["FO"],"fr":["CA","FR"],"fy":["NL"],"ga":["IE"],"gl":["ES"],"he":["IL"],"hi":["IN"],"hr":["HR"],"hu":["HU"],"hy":["AM"],"id":["ID"],"is":["IS"],"it":["IT"],"ja":["JP"],"ka":["GE"],"km":["KH"],"ko":["KR"],"ku":["TR"],"la":["VA"],"lt":["LT"],"lv":["LV"],"mk":["MK"],"ml":["IN"],"ms":["MY"],"nb":["NO"],"ne":["NP"],"nl":["NL"],"nn":["NO"],"pa":["IN"],"pl":["PL"],"ps":["AF"],"pt":["BR","PT"],"ro":["RO"],"ru":["RU"],"sk":["SK"],"sl":["SI"],"sq":["AL"],"sr":["RS"],"sv":["SE"],"sw":["KE"],"ta":["IN"],"te":["IN"],"th":["TH"],"tl":["PH"],"tr":["TR"],"uk":["UA"],"vi":["VN"],"zh":["CN","HK","TW"]}; | |
20 | - | |
21 | - $.fn.socialSharePrivacy.settings.services.facebook = { | |
22 | - 'status' : true, | |
23 | - 'button_class' : 'fb_like', | |
24 | - 'dummy_line_img' : 'images/dummy_facebook.png', | |
25 | - 'dummy_box_img' : 'images/dummy_box_facebook.png', | |
26 | - 'dummy_alt' : 'Facebook "Like"-Dummy', | |
27 | - 'txt_info' : 'Two clicks for more privacy: The Facebook Like button will be enabled once you click here. Activating the button already sends data to Facebook – see <em>i</em>.', | |
28 | - 'txt_off' : 'not connected to Facebook', | |
29 | - 'txt_on' : 'connected to Facebook', | |
30 | - 'perma_option' : true, | |
31 | - 'display_name' : 'Facebook Like/Recommend', | |
32 | - 'referrer_track' : '', | |
33 | - 'action' : 'like', | |
34 | - 'colorscheme' : 'light', | |
35 | - 'font' : '', | |
36 | - 'button' : function (options, uri, settings) { | |
37 | - // ensure a locale that is supported by facebook | |
38 | - // otherwise facebook renders nothing | |
39 | - var match = /^([a-z]{2})_([A-Z]{2})$/.exec(options.language); | |
40 | - var locale = "en_US"; | |
41 | - | |
42 | - if (match) { | |
43 | - if (match[1] in locales) { | |
44 | - var subs = locales[match[1]]; | |
45 | - if ($.inArray(match[2], subs) !== -1) { | |
46 | - locale = options.language; | |
47 | - } | |
48 | - else { | |
49 | - locale = match[1]+"_"+subs[0]; | |
50 | - } | |
51 | - } | |
52 | - } | |
53 | - else if (options.language in locales) { | |
54 | - locale = options.language+"_"+locales[options.language][0]; | |
55 | - } | |
56 | - | |
57 | - var params = { | |
58 | - locale : locale, | |
59 | - href : uri + options.referrer_track, | |
60 | - send : 'false', | |
61 | - show_faces : 'false', | |
62 | - action : options.action, | |
63 | - colorscheme: options.colorscheme | |
64 | - }; | |
65 | - if (options.font) params.font = options.font; | |
66 | - | |
67 | - if (settings.layout === 'line') { | |
68 | - params.width = '120'; | |
69 | - params.height = '20'; | |
70 | - params.layout = 'button_count'; | |
71 | - } | |
72 | - else { | |
73 | - params.width = 62; | |
74 | - params.height = 61; | |
75 | - params.layout = 'box_count'; | |
76 | - } | |
77 | - return $('<iframe scrolling="no" frameborder="0" allowtransparency="true"></iframe>').attr( | |
78 | - 'src', 'https://www.facebook.com/plugins/like.php?'+$.param(params)); | |
79 | - } | |
80 | - }; | |
81 | -})(jQuery); |
... | ... | @@ -1,38 +0,0 @@ |
1 | -/* | |
2 | - * Facebook share module for jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz | |
3 | - * | |
4 | - * http://www.heise.de/extras/socialshareprivacy/ | |
5 | - * http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html | |
6 | - * | |
7 | - * Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt, | |
8 | - * Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de | |
9 | - * | |
10 | - * Copyright (c) 2012 Mathias Panzenböck | |
11 | - * | |
12 | - * Fbshare module: | |
13 | - * copyright (c) 2013 zzzen.com | |
14 | - * | |
15 | - * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
16 | - * | |
17 | - * Spread the word, link to us if you can. | |
18 | - */ | |
19 | -(function ($, undefined) { | |
20 | - "use strict"; | |
21 | - | |
22 | - $.fn.socialSharePrivacy.settings.services.fbshare = { | |
23 | - 'status' : true, | |
24 | - 'privacy' : 'safe', | |
25 | - 'button_class' : 'fbshare', | |
26 | - 'line_img' : 'images/fbshare.png', | |
27 | - 'box_img' : 'images/box_fbshare.png', | |
28 | - 'txt_info' : 'Share via facebook.', | |
29 | - 'txt_button' : 'Facebook Share', | |
30 | - 'display_name' : 'Facebook Share', | |
31 | - 'referrer_track' : '', | |
32 | - 'button' : function (options, uri, settings) { | |
33 | - return $('<a/>', {target: '_blank', href: 'https://www.facebook.com/sharer/sharer.php?'+$.param({u:uri + options.referrer_track})}).append( | |
34 | - $('<img>', {alt: options.txt_button, | |
35 | - src: options.path_prefix + (settings.layout === 'line' ? options.line_img : options.box_img)})); | |
36 | - } | |
37 | - }; | |
38 | -})(jQuery); |
... | ... | @@ -1,72 +0,0 @@ |
1 | -/* | |
2 | - * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz | |
3 | - * | |
4 | - * Copyright (c) 2012 Mathias Panzenböck | |
5 | - * | |
6 | - * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
7 | - * | |
8 | - * Spread the word, link to us if you can. | |
9 | - */ | |
10 | - | |
11 | -(function ($, undefined) { | |
12 | - "use strict"; | |
13 | - | |
14 | - function get (self, options, uri, settings, name) { | |
15 | - var value = options[name]; | |
16 | - if (typeof value === "function") { | |
17 | - return value.call(self, options, uri, settings); | |
18 | - } | |
19 | - return String(value); | |
20 | - } | |
21 | - | |
22 | - // using an unsupported language breaks the flattr button | |
23 | - var langs = {en:true,sq:true,ar:true,be:true,bg:true,ca:true,zh:true,hr:true,cs:true,da:true,nl:true,eo:true,et:true,fi:true,fr:true,es:true,de:true,el:true,iw:true,hi:true,hu:true,is:true,'in':true,ga:true,it:true,ja:true,ko:true,lv:true,lt:true,mk:true,ms:true,mt:true,no:true,nn:true,fa:true,pl:true,pt:true,ro:true,ru:true,sr:true,sk:true,sl:true,sv:true,th:true,tr:true,uk:true,vi:true}; | |
24 | - | |
25 | - $.fn.socialSharePrivacy.settings.services.flattr = { | |
26 | - 'status' : true, | |
27 | - 'button_class' : 'flattr', | |
28 | - 'dummy_line_img' : 'images/dummy_flattr.png', | |
29 | - 'dummy_box_img' : 'images/dummy_box_flattr.png', | |
30 | - 'dummy_alt' : '"Flattr"-Dummy', | |
31 | - 'txt_info' : 'Two clicks for more privacy: The Flattr button will be enabled once you click here. Activating the button already sends data to Flattr – see <em>i</em>.', | |
32 | - 'txt_off' : 'not connected to Flattr', | |
33 | - 'txt_on' : 'connected to Flattr', | |
34 | - 'perma_option' : true, | |
35 | - 'display_name' : 'Flattr', | |
36 | - 'referrer_track' : '', | |
37 | - 'title' : $.fn.socialSharePrivacy.getTitle, | |
38 | - 'description' : $.fn.socialSharePrivacy.getDescription, | |
39 | - 'uid' : '', | |
40 | - 'category' : '', | |
41 | - 'tags' : '', | |
42 | - 'popout' : '', | |
43 | - 'hidden' : '', | |
44 | - 'button' : function (options, uri, settings) { | |
45 | - var attrs = { | |
46 | - href : uri + options.referrer_track, | |
47 | - title : get(this, options, uri, settings, 'title') | |
48 | - }; | |
49 | - if (options.uid) attrs['data-flattr-uid'] = options.uid; | |
50 | - if (options.hidden) attrs['data-flattr-hidden'] = options.hidden; | |
51 | - if (options.popout) attrs['data-flattr-popout'] = options.popout; | |
52 | - if (options.category) attrs['data-flattr-category'] = options.category; | |
53 | - if (options.tags) attrs['data-flattr-tags'] = options.tags; | |
54 | - if (options.language) { | |
55 | - var lang = String(options.language).replace('-','_'); | |
56 | - var baselang = lang.split('_')[0]; | |
57 | - if (langs[baselang] === true) { | |
58 | - attrs['data-flattr-language'] = attrs.lang = lang; | |
59 | - } | |
60 | - } | |
61 | - if (settings.layout === 'line') attrs['data-flattr-button'] = 'compact'; | |
62 | - | |
63 | - var $code = $('<a class="FlattrButton">' + get(this, options, uri, settings, 'description') + | |
64 | - '</a><script text="text/javscript" src="'+ | |
65 | - 'https://api.flattr.com/js/0.6/load.js?mode=auto"></script>'); | |
66 | - | |
67 | - $code.filter('a').attr(attrs); | |
68 | - | |
69 | - return $code; | |
70 | - } | |
71 | - }; | |
72 | -})(jQuery); |
... | ... | @@ -1,44 +0,0 @@ |
1 | -/* | |
2 | - * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz | |
3 | - * | |
4 | - * http://www.heise.de/extras/socialshareprivacy/ | |
5 | - * http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html | |
6 | - * | |
7 | - * Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt, | |
8 | - * Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de | |
9 | - * | |
10 | - * Copyright (c) 2012 Mathias Panzenböck | |
11 | - * | |
12 | - * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
13 | - * | |
14 | - * Spread the word, link to us if you can. | |
15 | - */ | |
16 | -(function ($, undefined) { | |
17 | - "use strict"; | |
18 | - | |
19 | - $.fn.socialSharePrivacy.settings.services.gplus = { | |
20 | - 'status' : true, | |
21 | - 'button_class' : 'gplusone', | |
22 | - 'dummy_line_img' : 'images/dummy_gplus.png', | |
23 | - 'dummy_box_img' : 'images/dummy_box_gplus.png', | |
24 | - 'dummy_alt' : '"Google+1"-Dummy', | |
25 | - 'txt_info' : 'Two clicks for more privacy: The Google+ button will be enabled once you click here. Activating the button already sends data to Google – see <em>i</em>.', | |
26 | - 'txt_off' : 'not connected to Google+', | |
27 | - 'txt_on' : 'connected to Google+', | |
28 | - 'perma_option' : true, | |
29 | - 'display_name' : 'Google+', | |
30 | - 'referrer_track' : '', | |
31 | - 'button' : function (options, uri, settings) { | |
32 | - // we use the Google+ "asynchronous" code, standard code is flaky if inserted into dom after load | |
33 | - var $code = $('<div class="g-plusone"></div><script type="text/javascript">window.___gcfg = {lang: "' + | |
34 | - options.language.replace('_','-') + '"}; (function() { var po = document.createElement("script"); ' + | |
35 | - 'po.type = "text/javascript"; po.async = true; po.src = "https://apis.google.com/js/plusone.js"; ' + | |
36 | - 'var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(po, s); })(); </script>'); | |
37 | - $code.filter('.g-plusone').attr({ | |
38 | - 'data-href': uri + options.referrer_track, | |
39 | - 'data-size': settings.layout === 'line' ? 'medium' : 'tall' | |
40 | - }); | |
41 | - return $code; | |
42 | - } | |
43 | - }; | |
44 | -})(jQuery); |
... | ... | @@ -1,68 +0,0 @@ |
1 | -/* | |
2 | - * jquery.socialshareprivacy.js | |
3 | - * | |
4 | - * Copyright (c) 2012 Mathias Panzenböck | |
5 | - * | |
6 | - * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
7 | - * | |
8 | - */ | |
9 | -(function ($, undefined) { | |
10 | - "use strict"; | |
11 | - | |
12 | - $.fn.socialSharePrivacy.settings.services.hackernews = { | |
13 | - 'status' : true, | |
14 | - 'dummy_line_img' : 'images/dummy_hackernews.png', | |
15 | - 'dummy_box_img' : 'images/dummy_box_hackernews.png', | |
16 | - 'dummy_alt' : '"Hacker News"-Dummy', | |
17 | - 'txt_info' : 'Two clicks for more privacy: The Hacker News button will be enabled once you click here. Activating the button already sends data to Hacker News – see <em>i</em>.', | |
18 | - 'txt_off' : 'not connected to Hacker News', | |
19 | - 'txt_on' : 'connected to Hacker News', | |
20 | - 'perma_option' : true, | |
21 | - 'display_name' : 'Hacker News', | |
22 | - 'txt_n_points' : '{points} points', | |
23 | - 'txt_one_point' : '1 point', | |
24 | - 'referrer_track' : '', | |
25 | - 'title' : $.fn.socialSharePrivacy.getTitle, | |
26 | - 'button' : function (options, uri, settings) { | |
27 | - var url = uri + options.referrer_track; | |
28 | - var title = typeof(options.title) === 'function' ? | |
29 | - options.title.call(this, options, uri, settings) : | |
30 | - String(options.title); | |
31 | - | |
32 | - var $code; | |
33 | - if (settings.layout === 'line') { | |
34 | - $code = $('<div class="hackernews-widget">'+ | |
35 | - '<a class="name" target="_blank">Y</a>'+ | |
36 | - '<span class="points"><i></i><u></u><a target="_blank">submit</a></span></div>'); | |
37 | - } | |
38 | - else { | |
39 | - $code = $('<div class="hackernews-widget">'+ | |
40 | - '<div class="points"><i></i><u></u><a target="_blank">submit</a></div>'+ | |
41 | - '<a class="name" target="_blank">Y</a></div>'); | |
42 | - } | |
43 | - | |
44 | - $code.find("a").attr("href", "https://news.ycombinator.com/submitlink?"+$.param({ | |
45 | - "u": url, | |
46 | - "t": title | |
47 | - })); | |
48 | - | |
49 | - $.ajax("https://api.thriftdb.com/api.hnsearch.com/items/_search?filter[fields][url][]="+encodeURIComponent(url), { | |
50 | - dataType: "jsonp", | |
51 | - success: function (data) { | |
52 | - var item = data.results[0]; | |
53 | - if (item) { | |
54 | - item = item.item; | |
55 | - var points = $.fn.socialSharePrivacy.formatNumber(item.points); | |
56 | - $code.find("a").attr("href", "https://news.ycombinator.com/item?id="+item.id); | |
57 | - $code.find(".points a").text(points).attr('title', | |
58 | - item.points === 1 ? | |
59 | - options.txt_one_point : | |
60 | - options.txt_n_points.replace(/{points}/g, points)); | |
61 | - } | |
62 | - } | |
63 | - }); | |
64 | - | |
65 | - return $code; | |
66 | - } | |
67 | - }; | |
68 | -})(jQuery); |
... | ... | @@ -1,53 +0,0 @@ |
1 | -/* | |
2 | - * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz | |
3 | - * | |
4 | - * http://www.heise.de/extras/socialshareprivacy/ | |
5 | - * http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html | |
6 | - * | |
7 | - * Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt, | |
8 | - * Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de | |
9 | - * | |
10 | - * Copyright (c) 2012 Mathias Panzenböck | |
11 | - * | |
12 | - * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
13 | - * | |
14 | - * Spread the word, link to us if you can. | |
15 | - */ | |
16 | -(function ($, undefined) { | |
17 | - "use strict"; | |
18 | - | |
19 | - $.fn.socialSharePrivacy.settings.services.linkedin = { | |
20 | - 'status' : true, | |
21 | - 'dummy_line_img' : 'images/dummy_linkedin.png', | |
22 | - 'dummy_box_img' : 'images/dummy_box_linkedin.png', | |
23 | - 'dummy_alt' : '"LinkedIn"-Dummy', | |
24 | - 'txt_info' : 'Two clicks for more privacy: The Linked in button will be enabled once you click here. Activating the button already sends data to Linked in – see <em>i</em>.', | |
25 | - 'txt_off' : 'not connected to LinkedIn', | |
26 | - 'txt_on' : 'connected to LinkedIn', | |
27 | - 'perma_option' : true, | |
28 | - 'display_name' : 'LinkedIn', | |
29 | - 'referrer_track' : '', | |
30 | - 'onsuccess' : null, | |
31 | - 'onerror' : null, | |
32 | - 'showzero' : false, | |
33 | - 'button' : function (options, uri, settings) { | |
34 | - var attrs = { | |
35 | - 'data-counter' : settings.layout === 'line' ? 'right' : 'top', | |
36 | - 'data-url' : uri + options.referrer_track, | |
37 | - 'data-showzero': String(options.showzero) | |
38 | - }; | |
39 | - if (options.onsuccess) attrs['data-onsuccess'] = options.onsuccess; | |
40 | - if (options.onerror) attrs['data-onerror'] = options.onerror; | |
41 | - var $code = $('<script type="IN/Share"></script>').attr(attrs); | |
42 | - | |
43 | - if (window.IN && window.IN.parse) { | |
44 | - $code = $code.add('<script type="text/javascript">IN.parse(document.body);</script>'); | |
45 | - } | |
46 | - else if ($('script[src^="https://platform.linkedin.com/"]').length === 0) { | |
47 | - $code = $code.add('<script type="text/javascript" src="https://platform.linkedin.com/in.js"></script>'); | |
48 | - } | |
49 | - | |
50 | - return $code; | |
51 | - } | |
52 | - }; | |
53 | -})(jQuery); |
... | ... | @@ -1,50 +0,0 @@ |
1 | -/* | |
2 | - * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz | |
3 | - * | |
4 | - * Copyright (c) 2012 Mathias Panzenböck | |
5 | - * | |
6 | - * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
7 | - * | |
8 | - * Spread the word, link to us if you can. | |
9 | - */ | |
10 | -(function ($, undefined) { | |
11 | - "use strict"; | |
12 | - | |
13 | - function get (self, options, uri, settings, name) { | |
14 | - var value = options[name]; | |
15 | - if (typeof value === "function") { | |
16 | - value = value.call(self, options, uri, settings); | |
17 | - } | |
18 | - return String(value); | |
19 | - } | |
20 | - | |
21 | - var getDescription = $.fn.socialSharePrivacy.getDescription; | |
22 | - | |
23 | - function getBody (options, uri, settings) { | |
24 | - return getDescription.call(this, options, uri, settings) + '\n\n' + uri + options.referrer_track; | |
25 | - } | |
26 | - | |
27 | - $.fn.socialSharePrivacy.settings.services.mail = { | |
28 | - 'status' : true, | |
29 | - 'privacy' : 'safe', | |
30 | - 'button_class' : 'mail', | |
31 | - 'line_img' : 'images/mail.png', | |
32 | - 'box_img' : 'images/box_mail.png', | |
33 | - 'txt_info' : 'Send this via email to a friend.', | |
34 | - 'txt_button' : 'Send Email', | |
35 | - 'display_name' : 'Mail', | |
36 | - 'referrer_track' : '', | |
37 | - 'subject' : $.fn.socialSharePrivacy.getTitle, | |
38 | - 'body' : getBody, | |
39 | - 'button' : function (options, uri, settings) { | |
40 | - return $('<a/>').attr( | |
41 | - 'href', 'mailto:?'+$.param({ | |
42 | - subject : get(this, options, uri, settings, 'subject'), | |
43 | - body : get(this, options, uri, settings, 'body') | |
44 | - }).replace(/\+/g,'%20')).append($('<img>', { | |
45 | - alt: options.txt_button, | |
46 | - src: options.path_prefix + (settings.layout === 'line' ? options.line_img : options.box_img) | |
47 | - })); | |
48 | - } | |
49 | - }; | |
50 | -})(jQuery); |
... | ... | @@ -1,83 +0,0 @@ |
1 | -/* | |
2 | - * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz | |
3 | - * | |
4 | - * http://www.heise.de/extras/socialshareprivacy/ | |
5 | - * http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html | |
6 | - * | |
7 | - * Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt, | |
8 | - * Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de | |
9 | - * | |
10 | - * Copyright (c) 2012 Mathias Panzenböck | |
11 | - * | |
12 | - * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
13 | - * | |
14 | - * Spread the word, link to us if you can. | |
15 | - */ | |
16 | - | |
17 | -(function ($, undefined) { | |
18 | - "use strict"; | |
19 | - | |
20 | - function get (self, options, uri, settings, name) { | |
21 | - var value = options[name]; | |
22 | - if (typeof value === "function") { | |
23 | - return value.call(self, options, uri, settings); | |
24 | - } | |
25 | - return String(value); | |
26 | - } | |
27 | - | |
28 | - var loadingScript = false; | |
29 | - function loadScript () { | |
30 | - // prevent already loaded buttons from being broken: | |
31 | - $('.social_share_privacy_area .pinterest .pinit a[data-pin-log]').attr('data-pin-do','ignore'); | |
32 | - $.ajax({ | |
33 | - url : 'https://assets.pinterest.com/js/pinit.js', | |
34 | - dataType : 'script', | |
35 | - cache : true | |
36 | - }); | |
37 | - // because there is no callback yet I have no choice but to do this now: | |
38 | - loadingScript = false; | |
39 | - } | |
40 | - | |
41 | - $.fn.socialSharePrivacy.settings.services.pinterest = { | |
42 | - 'status' : true, | |
43 | - 'button_class' : 'pinit', | |
44 | - 'dummy_line_img' : 'images/dummy_pinterest.png', | |
45 | - 'dummy_box_img' : 'images/dummy_box_pinterest.png', | |
46 | - 'dummy_alt' : '"Pin it"-Dummy', | |
47 | - 'txt_info' : 'Two clicks for more privacy: The Pin it button will be enabled once you click here. Activating the button already sends data to Pinterest – see <em>i</em>.', | |
48 | - 'txt_off' : 'not connected to Pinterest', | |
49 | - 'txt_on' : 'connected to Pinterest', | |
50 | - 'perma_option' : true, | |
51 | - 'display_name' : 'Pinterest', | |
52 | - 'referrer_track' : '', | |
53 | - 'title' : $.fn.socialSharePrivacy.getTitle, | |
54 | - 'description' : $.fn.socialSharePrivacy.getDescription, | |
55 | - 'media' : $.fn.socialSharePrivacy.getImage, | |
56 | - 'button' : function (options, uri, settings) { | |
57 | - var params = { | |
58 | - url : uri + options.referrer_track, | |
59 | - media : get(this, options, uri, settings, 'media') | |
60 | - }; | |
61 | - var title = get(this, options, uri, settings, 'title'); | |
62 | - var description = get(this, options, uri, settings, 'description'); | |
63 | - if (title) params.title = title; | |
64 | - if (description) params.description = description; | |
65 | - | |
66 | - var $code = $('<a data-pin-do="buttonPin"><img /></a>'); | |
67 | - | |
68 | - $code.filter('a').attr({ | |
69 | - 'data-pin-config' : settings.layout === 'line' ? 'beside' : 'above', | |
70 | - href : 'https://pinterest.com/pin/create/button/?'+$.param(params) | |
71 | - }).find('img').attr('src', 'https://assets.pinterest.com/images/pidgets/pin_it_button.png'); | |
72 | - | |
73 | - // This way when the user has permanently enabled pinterest and there are several pinterest | |
74 | - // buttons on one webpage it will load the script only once and so the buttons will work: | |
75 | - if (!loadingScript) { | |
76 | - loadingScript = true; | |
77 | - setTimeout(loadScript, 10); | |
78 | - } | |
79 | - | |
80 | - return $code; | |
81 | - } | |
82 | - }; | |
83 | -})(jQuery); |
... | ... | @@ -1,72 +0,0 @@ |
1 | -/* | |
2 | - * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz | |
3 | - * | |
4 | - * http://www.heise.de/extras/socialshareprivacy/ | |
5 | - * http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html | |
6 | - * | |
7 | - * Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt, | |
8 | - * Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de | |
9 | - * | |
10 | - * Copyright (c) 2012 Mathias Panzenböck | |
11 | - * | |
12 | - * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
13 | - * | |
14 | - * Spread the word, link to us if you can. | |
15 | - */ | |
16 | - | |
17 | -(function ($, undefined) { | |
18 | - "use strict"; | |
19 | - | |
20 | - function get (self, options, uri, settings, name) { | |
21 | - var value = options[name]; | |
22 | - if (typeof value === "function") { | |
23 | - return value.call(self, options, uri, settings); | |
24 | - } | |
25 | - return String(value); | |
26 | - } | |
27 | - | |
28 | - $.fn.socialSharePrivacy.settings.services.reddit = { | |
29 | - 'status' : true, | |
30 | - 'button_class' : 'reddit', | |
31 | - 'dummy_line_img' : 'images/dummy_reddit.png', | |
32 | - 'dummy_box_img' : 'images/dummy_box_reddit.png', | |
33 | - 'dummy_alt' : '"Reddit this!"-Dummy', | |
34 | - 'txt_info' : 'Two clicks for more privacy: The reddit this! button will be enabled once you click here. Activating the button already sends data to reddit – see <em>i</em>.', | |
35 | - 'txt_off' : 'not connected to reddit', | |
36 | - 'txt_on' : 'connected to reddit', | |
37 | - 'perma_option' : true, | |
38 | - 'display_name' : 'Reddit', | |
39 | - 'referrer_track' : '', | |
40 | - 'title' : $.fn.socialSharePrivacy.getTitle, | |
41 | - 'target' : '', | |
42 | - 'newwindow' : '1', | |
43 | - 'bgcolor' : 'transparent', | |
44 | - 'bordercolor' : '', | |
45 | - 'button' : function (options, uri, settings) { | |
46 | - var base_url, w, layout; | |
47 | - if (settings.layout === 'line') { | |
48 | - w = 120; | |
49 | - layout = '/button/button1.html?'; | |
50 | - } | |
51 | - else { | |
52 | - w = 58; | |
53 | - layout = '/button/button2.html?'; | |
54 | - } | |
55 | - base_url = 'https://redditstatic.s3.amazonaws.com'; | |
56 | - var params = { | |
57 | - url : uri + options.referrer_track, | |
58 | - width : String(w) | |
59 | - }; | |
60 | - var title = get(this, options, uri, settings, 'title'); | |
61 | - var target = get(this, options, uri, settings, 'target'); | |
62 | - if (title) params.title = title; | |
63 | - if (target) params.target = target; | |
64 | - if (options.bgcolor) params.bgcolor = options.bgcolor; | |
65 | - if (options.bordercolor) params.bordercolor = options.bordercolor; | |
66 | - if (options.newwindow) params.newwindow = options.newwindow; | |
67 | - | |
68 | - return $('<iframe allowtransparency="true" frameborder="0" scrolling="no"></iframe>').attr( | |
69 | - 'src', base_url+layout+$.param(params)); | |
70 | - } | |
71 | - }; | |
72 | -})(jQuery); |
... | ... | @@ -1,55 +0,0 @@ |
1 | -/* | |
2 | - * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz | |
3 | - * | |
4 | - * http://www.heise.de/extras/socialshareprivacy/ | |
5 | - * http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html | |
6 | - * | |
7 | - * Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt, | |
8 | - * Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de | |
9 | - * | |
10 | - * Copyright (c) 2012 Mathias Panzenböck | |
11 | - * | |
12 | - * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
13 | - * | |
14 | - * Warning: this button uses plaintext http and can be harmful to users under opressive regimes | |
15 | - * | |
16 | - */ | |
17 | - | |
18 | -(function ($, undefined) { | |
19 | - "use strict"; | |
20 | - | |
21 | - $.fn.socialSharePrivacy.settings.services.stumbleupon = { | |
22 | - 'status' : true, | |
23 | - 'button_class' : 'stumbleupon', | |
24 | - 'dummy_line_img' : 'images/dummy_stumbleupon.png', | |
25 | - 'dummy_box_img' : 'images/dummy_box_stumbleupon.png', | |
26 | - 'dummy_alt' : '"Stumble!"-Dummy', | |
27 | - 'txt_info' : 'Two clicks for more privacy: The Stumble! button will be enabled once you click here. Activating the button already sends data to StumbleUpon – see <em>i</em>.', | |
28 | - 'txt_off' : 'not connected to StumbleUpon', | |
29 | - 'txt_on' : 'connected to StumbleUpon', | |
30 | - 'perma_option' : true, | |
31 | - 'display_name' : 'Stumble Upon', | |
32 | - 'referrer_track' : '', | |
33 | - 'button' : function (options, uri, settings) { | |
34 | - var base_url = 'https:' === document.location.protocol ? 'https://' : 'http://'; | |
35 | - var w, h; | |
36 | - | |
37 | - if (settings.layout === 'line') { | |
38 | - w = '74'; | |
39 | - h = '18'; | |
40 | - base_url += 'badge.stumbleupon.com/badge/embed/1/?'; | |
41 | - } | |
42 | - else { | |
43 | - w = '50'; | |
44 | - h = '60'; | |
45 | - base_url += 'badge.stumbleupon.com/badge/embed/5/?'; | |
46 | - } | |
47 | - | |
48 | - return $('<iframe allowtransparency="true" frameborder="0" scrolling="no"></iframe>').attr({ | |
49 | - src: base_url+$.param({url: uri + options.referrer_track}), | |
50 | - width: w, | |
51 | - height: h | |
52 | - }); | |
53 | - } | |
54 | - }; | |
55 | -})(jQuery); |
... | ... | @@ -1,113 +0,0 @@ |
1 | -/* | |
2 | - * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz | |
3 | - * | |
4 | - * Copyright (c) 2012 Mathias Panzenböck | |
5 | - * | |
6 | - * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
7 | - * | |
8 | - * Spread the word, link to us if you can. | |
9 | - */ | |
10 | -(function ($, undefined) { | |
11 | - "use strict"; | |
12 | - | |
13 | - function getQuote (options, uri, settings) { | |
14 | - var text = $.trim($('article, p').text()); | |
15 | - | |
16 | - if (text.length <= 600) { | |
17 | - return text; | |
18 | - } | |
19 | - | |
20 | - var abbrev = text.slice(0, 597); | |
21 | - if (/^\w+$/.test(text.slice(596,598))) { | |
22 | - var match = /^(.*)\s\S*$/.exec(abbrev); | |
23 | - if (match) { | |
24 | - abbrev = match[1]; | |
25 | - } | |
26 | - } | |
27 | - return $.trim(abbrev) + "\u2026"; | |
28 | - } | |
29 | - | |
30 | - function getClickthru (options, uri) { | |
31 | - return uri + options.referrer_track; | |
32 | - } | |
33 | - | |
34 | - function get (self, options, uri, settings, name) { | |
35 | - var value = options[name]; | |
36 | - if (typeof value === "function") { | |
37 | - return value.call(self, options, uri, settings); | |
38 | - } | |
39 | - return String(value); | |
40 | - } | |
41 | - | |
42 | - function openTumblr (event) { | |
43 | - var winx = window.screenX || window.screenLeft; | |
44 | - var winy = window.screenY || window.screenTop; | |
45 | - var winw = window.outerWidth || window.innerWidth; | |
46 | - var winh = window.outerHeight || window.innerHeight; | |
47 | - var width = 450; | |
48 | - var height = 430; | |
49 | - var x = Math.round(winx + (winw - width) * 0.5); | |
50 | - var y = Math.round(winy + (winh - height) * 0.5); | |
51 | - window.open(this.href, 't', 'left='+x+',top='+y+',toolbar=0,resizable=0,status=0,menubar=0,width='+width+',height='+height); | |
52 | - event.preventDefault(); | |
53 | - } | |
54 | - | |
55 | - $.fn.socialSharePrivacy.settings.services.tumblr = { | |
56 | - 'status' : true, | |
57 | - 'privacy' : 'safe', | |
58 | - 'button_class' : 'tumblr', | |
59 | - 'line_img' : 'images/tumblr.png', | |
60 | - 'box_img' : 'images/box_tumblr.png', | |
61 | - 'txt_info' : 'Post this on Tumblr.', | |
62 | - 'txt_button' : 'Share on Tubmlr', | |
63 | - 'display_name' : 'Tumblr', | |
64 | - 'referrer_track' : '', | |
65 | - 'type' : 'link', // possible values are 'link', 'quote', 'photo' or 'video' | |
66 | - // type: 'link': | |
67 | - 'name' : $.fn.socialSharePrivacy.getTitle, | |
68 | - 'description' : $.fn.socialSharePrivacy.getDescription, | |
69 | - // type: 'quote': | |
70 | - 'quote' : getQuote, | |
71 | - // type: 'photo': | |
72 | - 'photo' : $.fn.socialSharePrivacy.getImage, | |
73 | - 'clickthrou' : getClickthru, | |
74 | - // type: 'video': | |
75 | - 'embed' : $.fn.socialSharePrivacy.getEmbed, | |
76 | - // type: 'photo' or 'video': | |
77 | - 'caption' : $.fn.socialSharePrivacy.getDescription, | |
78 | - 'button' : function (options, uri, settings) { | |
79 | - var $code = $('<a target="_blank"/>').click(openTumblr); | |
80 | - $('<img>', { | |
81 | - alt: options.txt_button, | |
82 | - src: options.path_prefix + (settings.layout === 'line' ? options.line_img : options.box_img) | |
83 | - }).appendTo($code); | |
84 | - switch (options.type) { | |
85 | - case 'link': | |
86 | - return $code.attr('href', 'https://www.tumblr.com/share/link?'+$.param({ | |
87 | - url : uri + options.referrer_track, | |
88 | - name : get(this, options, uri, settings, 'name'), | |
89 | - description : get(this, options, uri, settings, 'description') | |
90 | - })); | |
91 | - | |
92 | - case 'quote': | |
93 | - return $code.attr('href', 'https://www.tumblr.com/share/quote?'+$.param({ | |
94 | - source : uri + options.referrer_track, | |
95 | - quote : get(this, options, uri, settings, 'quote') | |
96 | - })); | |
97 | - | |
98 | - case 'photo': | |
99 | - return $code.attr('href', 'https://www.tumblr.com/share/photo?'+$.param({ | |
100 | - source : get(this, options, uri, settings, 'photo'), | |
101 | - caption : get(this, options, uri, settings, 'caption'), | |
102 | - clickthrou : get(this, options, uri, settings, 'clickthrou') | |
103 | - })); | |
104 | - | |
105 | - case 'video': | |
106 | - return $code.attr('href', 'https://www.tumblr.com/share/video?'+$.param({ | |
107 | - embed : get(this, options, uri, settings, 'embed'), | |
108 | - caption : get(this, options, uri, settings, 'caption') | |
109 | - })); | |
110 | - } | |
111 | - } | |
112 | - }; | |
113 | -})(jQuery); |
... | ... | @@ -1,62 +0,0 @@ |
1 | -/* | |
2 | - * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz | |
3 | - * | |
4 | - * http://www.heise.de/extras/socialshareprivacy/ | |
5 | - * http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html | |
6 | - * | |
7 | - * Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt, | |
8 | - * Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de | |
9 | - * | |
10 | - * Copyright (c) 2012 Mathias Panzenböck | |
11 | - * | |
12 | - * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
13 | - * | |
14 | - * Spread the word, link to us if you can. | |
15 | - */ | |
16 | - | |
17 | -(function ($, undefined) { | |
18 | - "use strict"; | |
19 | - | |
20 | - $.fn.socialSharePrivacy.settings.services.twitter = { | |
21 | - 'status' : true, | |
22 | - 'button_class' : 'tweet', | |
23 | - 'dummy_line_img' : 'images/dummy_twitter.png', | |
24 | - 'dummy_box_img' : 'images/dummy_box_twitter.png', | |
25 | - 'dummy_alt' : '"Tweet this"-Dummy', | |
26 | - 'txt_info' : 'Two clicks for more privacy: The Tweet this button will be enabled once you click here. Activating the button already sends data to Twitter – see <em>i</em>.', | |
27 | - 'txt_off' : 'not connected to Twitter', | |
28 | - 'txt_on' : 'connected to Twitter', | |
29 | - 'perma_option' : true, | |
30 | - 'display_name' : 'Twitter', | |
31 | - 'referrer_track' : '', | |
32 | - 'via' : '', | |
33 | - 'related' : '', | |
34 | - 'hashtags' : '', | |
35 | - 'dnt' : true, | |
36 | - 'text' : $.fn.socialSharePrivacy.getTitle, | |
37 | - 'button' : function (options, uri, settings) { | |
38 | - var text = typeof(options.text) === 'function' ? | |
39 | - options.text.call(this, options, uri, settings) : | |
40 | - String(options.text); | |
41 | - // 120 is the max character count left after twitters automatic | |
42 | - // url shortening with t.co | |
43 | - text = $.fn.socialSharePrivacy.abbreviateText(text, 120); | |
44 | - | |
45 | - var params = { | |
46 | - url : uri + options.referrer_track, | |
47 | - counturl: uri, | |
48 | - text : text, | |
49 | - count : settings.layout === 'line' ? 'horizontal' : 'vertical', | |
50 | - lang : options.language | |
51 | - }; | |
52 | - if (options.via) params.via = options.via; | |
53 | - if (options.related) params.related = options.related; | |
54 | - if (options.hashtags) params.hashtags = options.hashtags; | |
55 | - if (options.dnt) params.dnt = options.dnt; | |
56 | - | |
57 | - return $('<iframe allowtransparency="true" frameborder="0" scrolling="no"></iframe>').attr( | |
58 | - 'src', 'https://platform.twitter.com/widgets/tweet_button.html?' + | |
59 | - $.param(params).replace(/\+/g,'%20')); | |
60 | - } | |
61 | - }; | |
62 | -})(jQuery); |
... | ... | @@ -1,40 +0,0 @@ |
1 | -/* | |
2 | - * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz | |
3 | - * | |
4 | - * http://www.heise.de/extras/socialshareprivacy/ | |
5 | - * http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html | |
6 | - * | |
7 | - * Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt, | |
8 | - * Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de | |
9 | - * | |
10 | - * Copyright (c) 2012 Mathias Panzenböck | |
11 | - * | |
12 | - * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
13 | - * | |
14 | - * Spread the word, link to us if you can. | |
15 | - */ | |
16 | -(function ($, undefined) { | |
17 | - "use strict"; | |
18 | - | |
19 | - $.fn.socialSharePrivacy.settings.services.xing = { | |
20 | - 'status' : true, | |
21 | - 'dummy_line_img' : 'images/dummy_xing.png', | |
22 | - 'dummy_box_img' : 'images/dummy_box_xing.png', | |
23 | - 'dummy_alt' : '"XING"-Dummy', | |
24 | - 'txt_info' : 'Two clicks for more privacy: The XING button will be enabled once you click here. Activating the button already sends data to XING – see <em>i</em>.', | |
25 | - 'txt_off' : 'not connected to XING', | |
26 | - 'txt_on' : 'connected to XING', | |
27 | - 'perma_option' : true, | |
28 | - 'display_name' : 'XING', | |
29 | - 'referrer_track' : '', | |
30 | - 'button' : function (options, uri, settings) { | |
31 | - var $code = $('<script type="XING/Share"></script>').attr({ | |
32 | - 'data-counter' : settings.layout === 'line' ? 'right' : 'top', | |
33 | - 'data-url' : uri + options.referrer_track, | |
34 | - 'data-lang' : options.language | |
35 | - }); | |
36 | - | |
37 | - return $code.add("<script type='text/javascript'>(function(d, s) { var x = d.createElement(s); s = d.getElementsByTagName(s)[0]; x.src = 'https://www.xing-share.com/js/external/share.js'; s.parentNode.insertBefore(x, s); })(document, 'script');</script>"); | |
38 | - } | |
39 | - }; | |
40 | -})(jQuery); |
... | ... | @@ -1,23 +0,0 @@ |
1 | -/** | |
2 | - * @license | |
3 | - * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz | |
4 | - * | |
5 | - * Copyright (c) 2012-2013 Mathias Panzenböck | |
6 | - * | |
7 | - * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
8 | - * | |
9 | - * Spread the word, link to us if you can. | |
10 | - */ | |
11 | - | |
12 | -// load global settings | |
13 | -jQuery(document).ready(function ($) { | |
14 | - "use strict"; | |
15 | - | |
16 | - $('script[type="application/x-social-share-privacy-settings"]').each(function () { | |
17 | - var settings = (new Function('return ('+(this.textContent||this.innerText||this.text)+');')).call(this); | |
18 | - | |
19 | - if (typeof settings === "object") { | |
20 | - $.extend(true, $.fn.socialSharePrivacy.settings, settings); | |
21 | - } | |
22 | - }); | |
23 | -}); |
... | ... | @@ -1,803 +0,0 @@ |
1 | -/** | |
2 | - * @license | |
3 | - * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz | |
4 | - * | |
5 | - * http://www.heise.de/extras/socialshareprivacy/ | |
6 | - * http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html | |
7 | - * | |
8 | - * Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt, | |
9 | - * Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de | |
10 | - * | |
11 | - * Copyright (c) 2012-2013 Mathias Panzenböck | |
12 | - * | |
13 | - * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
14 | - * | |
15 | - * Spread the word, link to us if you can. | |
16 | - */ | |
17 | -(function ($, undefined) { | |
18 | - "use strict"; | |
19 | - | |
20 | - /* | |
21 | - * helper functions | |
22 | - */ | |
23 | - | |
24 | - /** | |
25 | - * Build an absolute url using a base url. | |
26 | - * The provided base url has to be a valid absolute url. It will not be validated! | |
27 | - * If no base url is given the document location is used. | |
28 | - * Schemes that behave other than http might not work. | |
29 | - * This function tries to support file:-urls, but might fail in some cases. | |
30 | - * email:-urls aren't supported at all (don't make sense anyway). | |
31 | - */ | |
32 | - function absurl (url, base) { | |
33 | - if (!base) base = document.baseURI || $("html > head > base").last().attr("href") || document.location.href; | |
34 | - if (!url) { | |
35 | - return base; | |
36 | - } | |
37 | - else if (/^[a-z][-+\.a-z0-9]*:/i.test(url)) { | |
38 | - // The scheme actually could contain any kind of alphanumerical unicode | |
39 | - // character, but JavaScript regular expressions don't support unicode | |
40 | - // character classes. Maybe /^[^:]+:/ or even /^.*:/ would be sufficient? | |
41 | - return url; | |
42 | - } | |
43 | - else if (url.slice(0,2) === '//') { | |
44 | - return /^[^:]+:/.exec(base)[0]+url; | |
45 | - } | |
46 | - | |
47 | - var ch = url.charAt(0); | |
48 | - if (ch === '/') { | |
49 | - if (/^file:/i.test(base)) { | |
50 | - // file scheme has no hostname | |
51 | - return 'file://'+url; | |
52 | - } | |
53 | - else { | |
54 | - return /^[^:]+:\/*[^\/]+/i.exec(base)[0]+url; | |
55 | - } | |
56 | - } | |
57 | - else if (ch === '#') { | |
58 | - // assume "#" only occures at the end indicating the fragment | |
59 | - return base.replace(/#.*$/,'')+url; | |
60 | - } | |
61 | - else if (ch === '?') { | |
62 | - // assume "?" and "#" only occure at the end indicating the query | |
63 | - // and the fragment | |
64 | - return base.replace(/[\?#].*$/,'')+url; | |
65 | - } | |
66 | - else { | |
67 | - var path; | |
68 | - if (/^file:/i.test(base)) { | |
69 | - path = base.replace(/^file:\/{0,2}/i,''); | |
70 | - base = "file://"; | |
71 | - } | |
72 | - else { | |
73 | - var match = /^([^:]+:\/*[^\/]+)(\/.*?)?(\?.*?)?(#.*)?$/.exec(base); | |
74 | - base = match[1]; | |
75 | - path = match[2]||"/"; | |
76 | - } | |
77 | - | |
78 | - path = path.split("/"); | |
79 | - path.pop(); | |
80 | - if (path.length === 0) { | |
81 | - // Ensure leading "/". Of course this is only valid on | |
82 | - // unix like filesystems. More magic would be needed to | |
83 | - // support other filesystems. | |
84 | - path.push(""); | |
85 | - } | |
86 | - path.push(url); | |
87 | - return base+path.join("/"); | |
88 | - } | |
89 | - } | |
90 | - | |
91 | - function formatNumber (number) { | |
92 | - number = Number(number); | |
93 | - | |
94 | - var prefix = ""; | |
95 | - var suffix = ""; | |
96 | - if (number < 0) { | |
97 | - prefix = "-"; | |
98 | - number = -number; | |
99 | - } | |
100 | - | |
101 | - if (number === Infinity) { | |
102 | - return prefix + "Infinity"; | |
103 | - } | |
104 | - | |
105 | - if (number > 9999) { | |
106 | - number = number / 1000; | |
107 | - suffix = "K"; | |
108 | - } | |
109 | - | |
110 | - number = Math.round(number); | |
111 | - if (number === 0) { | |
112 | - return "0"; | |
113 | - } | |
114 | - | |
115 | - var buf = []; | |
116 | - while (number > 0) { | |
117 | - var part = String(number % 1000); | |
118 | - | |
119 | - number = Math.floor(number / 1000); | |
120 | - if (number) { | |
121 | - while (part.length < 3) { | |
122 | - part = "0"+part; | |
123 | - } | |
124 | - } | |
125 | - | |
126 | - buf.unshift(part); | |
127 | - } | |
128 | - | |
129 | - return prefix + buf.join(",") + suffix; | |
130 | - } | |
131 | - | |
132 | - // helper function that gets the title of the current page | |
133 | - function getTitle (options, uri, settings) { | |
134 | - var title = settings && settings.title; | |
135 | - if (typeof title === "function") { | |
136 | - title = title.call(this, options, uri, settings); | |
137 | - } | |
138 | - | |
139 | - if (title) { | |
140 | - return title; | |
141 | - } | |
142 | - | |
143 | - var title = $('meta[name="DC.title"]').attr('content'); | |
144 | - var creator = $('meta[name="DC.creator"]').attr('content'); | |
145 | - | |
146 | - if (title && creator) { | |
147 | - return title + ' - ' + creator; | |
148 | - } else { | |
149 | - return title || $('meta[property="og:title"]').attr('content') || $('title').text(); | |
150 | - } | |
151 | - } | |
152 | - | |
153 | - function getDescription (options, uri, settings) { | |
154 | - var description = settings && settings.description; | |
155 | - if (typeof description === "function") { | |
156 | - description = description.call(this, options, uri, settings); | |
157 | - } | |
158 | - | |
159 | - if (description) { | |
160 | - return description; | |
161 | - } | |
162 | - | |
163 | - return abbreviateText( | |
164 | - $('meta[name="twitter:description"]').attr('content') || | |
165 | - $('meta[itemprop="description"]').attr('content') || | |
166 | - $('meta[name="description"]').attr('content') || | |
167 | - $.trim($('article, p').first().text()) || $.trim($('body').text()), 3500); | |
168 | - } | |
169 | - | |
170 | - var IMAGE_ATTR_MAP = { | |
171 | - META : 'content', | |
172 | - IMG : 'src', | |
173 | - A : 'href', | |
174 | - IFRAME : 'src', | |
175 | - LINK : 'href' | |
176 | - }; | |
177 | - | |
178 | - // find the largest image of the website | |
179 | - // if no image at all is found use googles favicon service, which | |
180 | - // defaults to a small globe (so there is always some image) | |
181 | - function getImage (options, uri, settings) { | |
182 | - var imgs, img = settings && settings.image; | |
183 | - if (typeof img === "function") { | |
184 | - img = img.call(this, options, uri, settings); | |
185 | - } | |
186 | - | |
187 | - if (!img) { | |
188 | - imgs = $('meta[property="image"], meta[property="og:image"], meta[property="og:image:url"], meta[name="twitter:image"], link[rel="image_src"], itemscope *[itemprop="image"]').first(); | |
189 | - if (imgs.length > 0) { | |
190 | - img = imgs.attr(IMAGE_ATTR_MAP[imgs[0].nodeName]); | |
191 | - } | |
192 | - } | |
193 | - | |
194 | - if (img) { | |
195 | - return absurl(img); | |
196 | - } | |
197 | - | |
198 | - imgs = $('img').filter(':visible').filter(function () { | |
199 | - return $(this).parents('.social_share_privacy_area').length === 0; | |
200 | - }); | |
201 | - if (imgs.length === 0) { | |
202 | - img = $('link[rel~="shortcut"][rel~="icon"]').attr('href'); | |
203 | - if (img) return absurl(img); | |
204 | - return 'http://www.google.com/s2/favicons?'+$.param({domain:location.hostname}); | |
205 | - } | |
206 | - imgs.sort(function (lhs, rhs) { | |
207 | - return rhs.offsetWidth * rhs.offsetHeight - lhs.offsetWidth * lhs.offsetHeight; | |
208 | - }); | |
209 | - // browser makes src absolute: | |
210 | - return imgs[0].src; | |
211 | - } | |
212 | - | |
213 | - // abbreviate at last blank before length and add "\u2026" (horizontal ellipsis) | |
214 | - function abbreviateText (text, length) { | |
215 | - // length of UTF-8 encoded string | |
216 | - if (unescape(encodeURIComponent(text)).length <= length) { | |
217 | - return text; | |
218 | - } | |
219 | - | |
220 | - // "\u2026" is actually 3 bytes long in UTF-8 | |
221 | - // TODO: if any of the last 3 characters is > 1 byte long this truncates too much | |
222 | - var abbrev = text.slice(0, length - 3); | |
223 | - | |
224 | - if (!/\W/.test(text.charAt(length - 3))) { | |
225 | - var match = /^(.*)\s\S*$/.exec(abbrev); | |
226 | - if (match) { | |
227 | - abbrev = match[1]; | |
228 | - } | |
229 | - } | |
230 | - return abbrev + "\u2026"; | |
231 | - } | |
232 | - | |
233 | - var HTML_CHAR_MAP = { | |
234 | - '<': '<', | |
235 | - '>': '>', | |
236 | - '&': '&', | |
237 | - '"': '"', | |
238 | - "'": ''' | |
239 | - }; | |
240 | - | |
241 | - function escapeHtml (s) { | |
242 | - return s.replace(/[<>&"']/g, function (ch) { | |
243 | - return HTML_CHAR_MAP[ch]; | |
244 | - }); | |
245 | - } | |
246 | - | |
247 | - function getEmbed (options, uri, settings) { | |
248 | - var embed = settings && settings.embed; | |
249 | - if (typeof embed === "function") { | |
250 | - embed = embed.call(this, options, uri, settings); | |
251 | - } | |
252 | - | |
253 | - if (embed) { | |
254 | - return embed; | |
255 | - } | |
256 | - | |
257 | - embed = ['<iframe scrolling="no" frameborder="0" style="border:none;" allowtransparency="true"']; | |
258 | - var embed_url = $('meta[name="twitter:player"]').attr('content'); | |
259 | - | |
260 | - if (embed_url) { | |
261 | - var width = $('meta[name="twitter:player:width"]').attr('content'); | |
262 | - var height = $('meta[name="twitter:player:height"]').attr('content'); | |
263 | - | |
264 | - if (width) embed.push(' width="',escapeHtml(width),'"'); | |
265 | - if (height) embed.push(' height="',escapeHtml(height),'"'); | |
266 | - } | |
267 | - else { | |
268 | - embed_url = uri + options.referrer_track; | |
269 | - } | |
270 | - | |
271 | - embed.push(' src="',escapeHtml(embed_url),'"></iframe>'); | |
272 | - return embed.join(''); | |
273 | - } | |
274 | - | |
275 | - // build URI from rel="canonical" or document.location | |
276 | - function getURI (options) { | |
277 | - var uri = document.location.href; | |
278 | - var canonical = $("link[rel=canonical]").attr("href") || $('head meta[property="og:url"]').attr("content"); | |
279 | - | |
280 | - if (canonical) { | |
281 | - uri = absurl(canonical); | |
282 | - } | |
283 | - else if (options && options.ignore_fragment) { | |
284 | - uri = uri.replace(/#.*$/,''); | |
285 | - } | |
286 | - | |
287 | - return uri; | |
288 | - } | |
289 | - | |
290 | - function buttonClickHandler (service_name) { | |
291 | - function onclick (event) { | |
292 | - var $container = $(this).parents('li.help_info').first(); | |
293 | - var $share = $container.parents('.social_share_privacy_area').first().parent(); | |
294 | - var options = $share.data('social-share-privacy-options'); | |
295 | - var service = options.services[service_name]; | |
296 | - var button_class = service.button_class || service_name; | |
297 | - var uri = options.uri; | |
298 | - if (typeof uri === 'function') { | |
299 | - uri = uri.call($share[0], options); | |
300 | - } | |
301 | - var $switch = $container.find('span.switch'); | |
302 | - if ($switch.hasClass('off')) { | |
303 | - $container.addClass('info_off'); | |
304 | - $switch.addClass('on').removeClass('off').html(service.txt_on||'\u00a0'); | |
305 | - $container.find('img.privacy_dummy').replaceWith( | |
306 | - typeof(service.button) === "function" ? | |
307 | - service.button.call($container.parent().parent()[0],service,uri,options) : | |
308 | - service.button); | |
309 | - $share.trigger({type: 'socialshareprivacy:enable', serviceName: service_name, isClick: !event.isTrigger}); | |
310 | - } else { | |
311 | - $container.removeClass('info_off'); | |
312 | - $switch.addClass('off').removeClass('on').html(service.txt_off||'\u00a0'); | |
313 | - $container.find('.dummy_btn').empty(). | |
314 | - append($('<img/>').addClass(button_class+'_privacy_dummy privacy_dummy'). | |
315 | - attr({ | |
316 | - alt: service.dummy_alt, | |
317 | - src: service.path_prefix + (options.layout === 'line' ? | |
318 | - service.dummy_line_img : service.dummy_box_img) | |
319 | - }).click(onclick)); | |
320 | - $share.trigger({type: 'socialshareprivacy:disable', serviceName: service_name, isClick: !event.isTrigger}); | |
321 | - } | |
322 | - }; | |
323 | - return onclick; | |
324 | - } | |
325 | - | |
326 | - // display info-overlays a tiny bit delayed | |
327 | - function enterHelpInfo () { | |
328 | - var $info_wrapper = $(this); | |
329 | - if ($info_wrapper.hasClass('info_off')) return; | |
330 | - var timeout_id = window.setTimeout(function () { | |
331 | - $info_wrapper.addClass('display'); | |
332 | - $info_wrapper.removeData('timeout_id'); | |
333 | - }, 500); | |
334 | - $info_wrapper.data('timeout_id', timeout_id); | |
335 | - } | |
336 | - | |
337 | - function leaveHelpInfo () { | |
338 | - var $info_wrapper = $(this); | |
339 | - var timeout_id = $info_wrapper.data('timeout_id'); | |
340 | - if (timeout_id !== undefined) { | |
341 | - window.clearTimeout(timeout_id); | |
342 | - } | |
343 | - $info_wrapper.removeClass('display'); | |
344 | - } | |
345 | - | |
346 | - function permCheckChangeHandler () { | |
347 | - var $input = $(this); | |
348 | - var $share = $input.parents('.social_share_privacy_area').first().parent(); | |
349 | - var options = $share.data('social-share-privacy-options'); | |
350 | - if ($input.is(':checked')) { | |
351 | - options.set_perma_option($input.attr('data-service'), options); | |
352 | - $input.parent().addClass('checked'); | |
353 | - } else { | |
354 | - options.del_perma_option($input.attr('data-service'), options); | |
355 | - $input.parent().removeClass('checked'); | |
356 | - } | |
357 | - } | |
358 | - | |
359 | - function enterSettingsInfo () { | |
360 | - var $settings = $(this); | |
361 | - var timeout_id = window.setTimeout(function () { | |
362 | - $settings.find('.settings_info_menu').removeClass('off').addClass('on'); | |
363 | - $settings.removeData('timeout_id'); | |
364 | - }, 500); | |
365 | - $settings.data('timeout_id', timeout_id); | |
366 | - } | |
367 | - | |
368 | - function leaveSettingsInfo () { | |
369 | - var $settings = $(this); | |
370 | - var timeout_id = $settings.data('timeout_id'); | |
371 | - if (timeout_id !== undefined) { | |
372 | - window.clearTimeout(timeout_id); | |
373 | - } | |
374 | - $settings.find('.settings_info_menu').removeClass('on').addClass('off'); | |
375 | - } | |
376 | - | |
377 | - function setPermaOption (service_name, options) { | |
378 | - $.cookie('socialSharePrivacy_'+service_name, 'perma_on', options.cookie_expires, options.cookie_path, options.cookie_domain); | |
379 | - } | |
380 | - | |
381 | - function delPermaOption (service_name, options) { | |
382 | - $.cookie('socialSharePrivacy_'+service_name, null, -1, options.cookie_path, options.cookie_domain); | |
383 | - } | |
384 | - | |
385 | - function getPermaOption (service_name, options) { | |
386 | - return !!options.get_perma_options(options)[service_name]; | |
387 | - } | |
388 | - | |
389 | - function getPermaOptions (options) { | |
390 | - var cookies = $.cookie(); | |
391 | - var permas = {}; | |
392 | - for (var name in cookies) { | |
393 | - var match = /^socialSharePrivacy_(.+)$/.exec(name); | |
394 | - if (match) { | |
395 | - permas[match[1]] = cookies[name] === 'perma_on'; | |
396 | - } | |
397 | - } | |
398 | - return permas; | |
399 | - } | |
400 | - | |
401 | - | |
402 | - // extend jquery with our plugin function | |
403 | - function socialSharePrivacy (options) { | |
404 | - | |
405 | - if (typeof options === "string") { | |
406 | - var command = options; | |
407 | - if (arguments.length === 1) { | |
408 | - switch (command) { | |
409 | - case "enable": | |
410 | - this.find('.switch.off').click(); | |
411 | - break; | |
412 | - | |
413 | - case "disable": | |
414 | - this.find('.switch.on').click(); | |
415 | - break; | |
416 | - | |
417 | - case "toggle": | |
418 | - this.find('.switch').click(); | |
419 | - break; | |
420 | - | |
421 | - case "options": | |
422 | - return this.data('social-share-privacy-options'); | |
423 | - | |
424 | - case "destroy": | |
425 | - this.trigger({type: 'socialshareprivacy:destroy'}); | |
426 | - this.children('.social_share_privacy_area').remove(); | |
427 | - this.removeData('social-share-privacy-options'); | |
428 | - break; | |
429 | - | |
430 | - case "enabled": | |
431 | - var enabled = {}; | |
432 | - this.each(function () { | |
433 | - var $self = $(this); | |
434 | - var options = $self.data('social-share-privacy-options'); | |
435 | - for (var name in options.services) { | |
436 | - enabled[name] = $self.find('.'+(options.services[name].class_name||name)+' .switch').hasClass('on'); | |
437 | - } | |
438 | - }); | |
439 | - return enabled; | |
440 | - | |
441 | - case "disabled": | |
442 | - var disabled = {}; | |
443 | - this.each(function () { | |
444 | - var $self = $(this); | |
445 | - var options = $self.data('social-share-privacy-options'); | |
446 | - for (var name in options.services) { | |
447 | - disabled[name] = $self.find('.'+(options.services[name].class_name||name)+' .switch').hasClass('off'); | |
448 | - } | |
449 | - }); | |
450 | - return disabled; | |
451 | - | |
452 | - default: | |
453 | - throw new Error("socialSharePrivacy: unknown command: "+command); | |
454 | - } | |
455 | - } | |
456 | - else { | |
457 | - var arg = arguments[1]; | |
458 | - switch (command) { | |
459 | - case "enable": | |
460 | - this.each(function () { | |
461 | - var $self = $(this); | |
462 | - var options = $self.data('social-share-privacy-options'); | |
463 | - $self.find('.'+(options.services[arg].class_name||arg)+' .switch.off').click(); | |
464 | - }); | |
465 | - break; | |
466 | - | |
467 | - case "disable": | |
468 | - this.each(function () { | |
469 | - var $self = $(this); | |
470 | - var options = $self.data('social-share-privacy-options'); | |
471 | - $self.find('.'+(options.services[arg].class_name||arg)+' .switch.on').click(); | |
472 | - }); | |
473 | - break; | |
474 | - | |
475 | - case "toggle": | |
476 | - this.each(function () { | |
477 | - var $self = $(this); | |
478 | - var options = $self.data('social-share-privacy-options'); | |
479 | - $self.find('.'+(options.services[arg].class_name||arg)+' .switch').click(); | |
480 | - }); | |
481 | - break; | |
482 | - | |
483 | - case "option": | |
484 | - if (arguments.length > 2) { | |
485 | - var value = {}; | |
486 | - value[arg] = arguments[2]; | |
487 | - this.each(function () { | |
488 | - $.extend(true, $(this).data('social-share-privacy-options'), value); | |
489 | - }); | |
490 | - } | |
491 | - else { | |
492 | - return this.data('social-share-privacy-options')[arg]; | |
493 | - } | |
494 | - break; | |
495 | - | |
496 | - case "options": | |
497 | - $.extend(true, options, arg); | |
498 | - break; | |
499 | - | |
500 | - case "enabled": | |
501 | - var options = this.data('social-share-privacy-options'); | |
502 | - return this.find('.'+(options.services[arg].class_name||arg)+' .switch').hasClass('on'); | |
503 | - | |
504 | - case "disabled": | |
505 | - var options = this.data('social-share-privacy-options'); | |
506 | - return this.find('.'+(options.services[arg].class_name||arg)+' .switch').hasClass('off'); | |
507 | - | |
508 | - default: | |
509 | - throw new Error("socialSharePrivacy: unknown command: "+command); | |
510 | - } | |
511 | - } | |
512 | - return this; | |
513 | - } | |
514 | - | |
515 | - return this.each(function () { | |
516 | - // parse options passed via data-* attributes: | |
517 | - var data = {}; | |
518 | - if (this.lang) data.language = this.lang; | |
519 | - for (var i = 0, attrs = this.attributes; i < attrs.length; ++ i) { | |
520 | - var attr = attrs[i]; | |
521 | - if (/^data-./.test(attr.name)) { | |
522 | - var path = attr.name.slice(5).replace(/-/g,"_").split("."); | |
523 | - var ctx = data, j = 0; | |
524 | - for (; j < path.length-1; ++ j) { | |
525 | - var name = path[j]; | |
526 | - if (name in ctx) { | |
527 | - ctx = ctx[name]; | |
528 | - if (typeof ctx === "string") { | |
529 | - ctx = (new Function("$", "return ("+ctx+");")).call(this, $); | |
530 | - } | |
531 | - } | |
532 | - else { | |
533 | - ctx = ctx[name] = {}; | |
534 | - } | |
535 | - } | |
536 | - var name = path[j]; | |
537 | - if (typeof ctx[name] === "object") { | |
538 | - ctx[name] = $.extend(true, (new Function("$", "return ("+attr.value+");")).call(this, $), ctx[name]); | |
539 | - } | |
540 | - else { | |
541 | - ctx[name] = attr.value; | |
542 | - } | |
543 | - } | |
544 | - } | |
545 | - // parse global option values: | |
546 | - if ('cookie_expires' in data) data.cookie_expires = Number(data.cookie_expires); | |
547 | - if ('perma_option' in data) data.perma_option = $.trim(data.perma_option).toLowerCase() === "true"; | |
548 | - if ('ignore_fragment' in data) data.ignore_fragment = $.trim(data.ignore_fragment).toLowerCase() === "true"; | |
549 | - if ('set_perma_option' in data) { | |
550 | - data.set_perma_option = new Function("service_name", "options", data.set_perma_option); | |
551 | - } | |
552 | - if ('del_perma_option' in data) { | |
553 | - data.del_perma_option = new Function("service_name", "options", data.del_perma_option); | |
554 | - } | |
555 | - if ('get_perma_option' in data) { | |
556 | - data.get_perma_option = new Function("service_name", "options", data.get_perma_option); | |
557 | - } | |
558 | - if ('get_perma_options' in data) { | |
559 | - data.get_perma_options = new Function("options", data.get_perma_options); | |
560 | - } | |
561 | - if ('order' in data) { | |
562 | - data.order = $.trim(data.order); | |
563 | - if (data.order) { | |
564 | - data.order = data.order.split(/\s+/g); | |
565 | - } | |
566 | - else { | |
567 | - delete data.order; | |
568 | - } | |
569 | - } | |
570 | - if (typeof data.services === "string") { | |
571 | - data.services = (new Function("$", "return ("+data.services+");")).call(this, $); | |
572 | - } | |
573 | - if ('options' in data) { | |
574 | - data = $.extend(data, (new Function("$", "return ("+data.options+");")).call(this, $)); | |
575 | - delete data.options; | |
576 | - } | |
577 | - if ('services' in data) { | |
578 | - for (var service_name in data.services) { | |
579 | - var service = data.services[service_name]; | |
580 | - if (typeof service === "string") { | |
581 | - data.services[service_name] = (new Function("$", "return ("+service+");")).call(this, $); | |
582 | - } | |
583 | - // only values of common options are parsed: | |
584 | - if (typeof service.status === "string") { | |
585 | - service.status = $.trim(service.status).toLowerCase() === "true"; | |
586 | - } | |
587 | - if (typeof service.perma_option === "string") { | |
588 | - service.perma_option = $.trim(service.perma_option).toLowerCase() === "true"; | |
589 | - } | |
590 | - } | |
591 | - } | |
592 | - // overwrite default values with user settings | |
593 | - var this_options = $.extend(true,{},socialSharePrivacy.settings,options,data); | |
594 | - var order = this_options.order || []; | |
595 | - | |
596 | - var dummy_img = this_options.layout === 'line' ? 'dummy_line_img' : 'dummy_box_img'; | |
597 | - var any_on = false; | |
598 | - var any_perm = false; | |
599 | - var any_unsafe = false; | |
600 | - var unordered = []; | |
601 | - for (var service_name in this_options.services) { | |
602 | - var service = this_options.services[service_name]; | |
603 | - if (service.status) { | |
604 | - any_on = true; | |
605 | - if ($.inArray(service_name, order) === -1) { | |
606 | - unordered.push(service_name); | |
607 | - } | |
608 | - if (service.privacy !== 'safe') { | |
609 | - any_unsafe = true; | |
610 | - if (service.perma_option) { | |
611 | - any_perm = true; | |
612 | - } | |
613 | - } | |
614 | - } | |
615 | - if (!('language' in service)) { | |
616 | - service.language = this_options.language; | |
617 | - } | |
618 | - if (!('path_prefix' in service)) { | |
619 | - service.path_prefix = this_options.path_prefix; | |
620 | - } | |
621 | - if (!('referrer_track' in service)) { | |
622 | - service.referrer_track = ''; | |
623 | - } | |
624 | - } | |
625 | - unordered.sort(); | |
626 | - order = order.concat(unordered); | |
627 | - | |
628 | - // check if at least one service is activated | |
629 | - if (!any_on) { | |
630 | - return; | |
631 | - } | |
632 | - | |
633 | - // insert stylesheet into document and prepend target element | |
634 | - if (this_options.css_path) { | |
635 | - var css_path = (this_options.path_prefix||"") + this_options.css_path; | |
636 | - // IE fix (needed for IE < 9 - but done for all IE versions) | |
637 | - if (document.createStyleSheet) { | |
638 | - document.createStyleSheet(css_path); | |
639 | - } else if ($('link[href="'+css_path+'"]').length === 0) { | |
640 | - $('<link/>',{rel:'stylesheet',type:'text/css',href:css_path}).appendTo(document.head); | |
641 | - } | |
642 | - } | |
643 | - | |
644 | - // get stored perma options | |
645 | - var permas; | |
646 | - if (this_options.perma_option && any_perm) { | |
647 | - if (this_options.get_perma_options) { | |
648 | - permas = this_options.get_perma_options(this_options); | |
649 | - } | |
650 | - else { | |
651 | - permas = {}; | |
652 | - for (var service_name in this_options.services) { | |
653 | - permas[service_name] = this_options.get_perma_option(service_name, this_options); | |
654 | - } | |
655 | - } | |
656 | - } | |
657 | - | |
658 | - // canonical uri that will be shared | |
659 | - var uri = this_options.uri; | |
660 | - if (typeof uri === 'function') { | |
661 | - uri = uri.call(this, this_options); | |
662 | - } | |
663 | - | |
664 | - var $context = $('<ul class="social_share_privacy_area"></ul>').addClass(this_options.layout); | |
665 | - var $share = $(this); | |
666 | - | |
667 | - $share.prepend($context).data('social-share-privacy-options',this_options); | |
668 | - | |
669 | - for (var i = 0; i < order.length; ++ i) { | |
670 | - var service_name = order[i]; | |
671 | - var service = this_options.services[service_name]; | |
672 | - | |
673 | - if (service && service.status) { | |
674 | - var class_name = service.class_name || service_name; | |
675 | - var button_class = service.button_class || service_name; | |
676 | - var $help_info; | |
677 | - | |
678 | - if (service.privacy === 'safe') { | |
679 | - $help_info = $('<li class="help_info"><div class="info">' + | |
680 | - service.txt_info + '</div><div class="dummy_btn"></div></li>').addClass(class_name); | |
681 | - $help_info.find('.dummy_btn'). | |
682 | - addClass(button_class). | |
683 | - append(service.button.call(this,service,uri,this_options)); | |
684 | - } | |
685 | - else { | |
686 | - $help_info = $('<li class="help_info"><div class="info">' + | |
687 | - service.txt_info + '</div><span class="switch off">' + (service.txt_off||'\u00a0') + | |
688 | - '</span><div class="dummy_btn"></div></li>').addClass(class_name); | |
689 | - $help_info.find('.dummy_btn'). | |
690 | - addClass(button_class). | |
691 | - append($('<img/>').addClass(button_class+'_privacy_dummy privacy_dummy'). | |
692 | - attr({ | |
693 | - alt: service.dummy_alt, | |
694 | - src: service.path_prefix + service[dummy_img] | |
695 | - })); | |
696 | - | |
697 | - $help_info.find('.dummy_btn img.privacy_dummy, span.switch').click( | |
698 | - buttonClickHandler(service_name)); | |
699 | - } | |
700 | - $context.append($help_info); | |
701 | - } | |
702 | - } | |
703 | - | |
704 | - // | |
705 | - // append Info/Settings-area | |
706 | - // | |
707 | - if (any_unsafe) { | |
708 | - var $settings_info = $('<li class="settings_info"><div class="settings_info_menu off perma_option_off"><a>' + | |
709 | - '<span class="help_info icon"><span class="info">' + this_options.txt_help + '</span></span></a></div></li>'); | |
710 | - var $info_link = $settings_info.find('> .settings_info_menu > a').attr('href', this_options.info_link); | |
711 | - if (this_options.info_link_target) { | |
712 | - $info_link.attr("target",this_options.info_link_target); | |
713 | - } | |
714 | - $context.append($settings_info); | |
715 | - | |
716 | - $context.find('.help_info').on('mouseenter', enterHelpInfo).on('mouseleave', leaveHelpInfo); | |
717 | - | |
718 | - // menu for permanently enabling of service buttons | |
719 | - if (this_options.perma_option && any_perm) { | |
720 | - | |
721 | - // define container | |
722 | - var $container_settings_info = $context.find('li.settings_info'); | |
723 | - | |
724 | - // remove class that fomrats the i-icon, because perma-options are shown | |
725 | - var $settings_info_menu = $container_settings_info.find('.settings_info_menu'); | |
726 | - $settings_info_menu.removeClass('perma_option_off'); | |
727 | - | |
728 | - // append perma-options-icon (.settings) and form (hidden) | |
729 | - $settings_info_menu.append( | |
730 | - '<span class="settings">' + this_options.txt_settings + '</span><form><fieldset><legend>' + | |
731 | - this_options.settings_perma + '</legend></fieldset></form>'); | |
732 | - | |
733 | - // write services with <input> and <label> and checked state from cookie | |
734 | - var $fieldset = $settings_info_menu.find('form fieldset'); | |
735 | - for (var i = 0; i < order.length; ++ i) { | |
736 | - var service_name = order[i]; | |
737 | - var service = this_options.services[service_name]; | |
738 | - | |
739 | - if (service && service.status && service.perma_option && service.privacy !== 'safe') { | |
740 | - var class_name = service.class_name || service_name; | |
741 | - var perma = permas[service_name]; | |
742 | - var $field = $('<label><input type="checkbox"' + (perma ? ' checked="checked"/>' : '/>') + | |
743 | - service.display_name + '</label>'); | |
744 | - $field.find('input').attr('data-service', service_name); | |
745 | - $fieldset.append($field); | |
746 | - | |
747 | - // enable services when cookie set and refresh cookie | |
748 | - if (perma) { | |
749 | - $context.find('li.'+class_name+' span.switch').click(); | |
750 | - this_options.set_perma_option(service_name, this_options); | |
751 | - } | |
752 | - } | |
753 | - } | |
754 | - | |
755 | - // indicate clickable setings gear | |
756 | - $container_settings_info.find('span.settings').css('cursor', 'pointer'); | |
757 | - | |
758 | - // show settings menu on hover | |
759 | - $container_settings_info.on('mouseenter', enterSettingsInfo).on('mouseleave', leaveSettingsInfo); | |
760 | - | |
761 | - // interaction for <input> to enable services permanently | |
762 | - $container_settings_info.find('fieldset input').on('change', permCheckChangeHandler); | |
763 | - } | |
764 | - } | |
765 | - $share.trigger({type: 'socialshareprivacy:create', options: this_options}); | |
766 | - }); | |
767 | - }; | |
768 | - | |
769 | - // expose helper functions: | |
770 | - socialSharePrivacy.absurl = absurl; | |
771 | - socialSharePrivacy.escapeHtml = escapeHtml; | |
772 | - socialSharePrivacy.getTitle = getTitle; | |
773 | - socialSharePrivacy.getImage = getImage; | |
774 | - socialSharePrivacy.getEmbed = getEmbed; | |
775 | - socialSharePrivacy.getDescription = getDescription; | |
776 | - socialSharePrivacy.abbreviateText = abbreviateText; | |
777 | - socialSharePrivacy.formatNumber = formatNumber; | |
778 | - | |
779 | - socialSharePrivacy.settings = { | |
780 | - 'services' : {}, | |
781 | - 'info_link' : 'http://panzi.github.io/SocialSharePrivacy/', | |
782 | - 'info_link_target' : '', | |
783 | - 'txt_settings' : 'Settings', | |
784 | - 'txt_help' : 'If you activate these fields via click, data will be sent to a third party (Facebook, Twitter, Google, ...) and stored there. For more details click <em>i</em>.', | |
785 | - 'settings_perma' : 'Permanently enable share buttons:', | |
786 | - 'layout' : 'line', // possible values: 'line' (~120x20) or 'box' (~58x62) | |
787 | - 'set_perma_option' : setPermaOption, | |
788 | - 'del_perma_option' : delPermaOption, | |
789 | - 'get_perma_options' : getPermaOptions, | |
790 | - 'get_perma_option' : getPermaOption, | |
791 | - 'perma_option' : !!$.cookie, | |
792 | - 'cookie_path' : '/', | |
793 | - 'cookie_domain' : document.location.hostname, | |
794 | - 'cookie_expires' : 365, | |
795 | - 'path_prefix' : '', | |
796 | - 'css_path' : "stylesheets/socialshareprivacy.css", | |
797 | - 'uri' : getURI, | |
798 | - 'language' : 'en', | |
799 | - 'ignore_fragment' : true | |
800 | - }; | |
801 | - | |
802 | - $.fn.socialSharePrivacy = socialSharePrivacy; | |
803 | -}(jQuery)); |
4.57 KB
2.26 KB
2.42 KB
1.01 KB
884 Bytes
1.53 KB
870 Bytes
984 Bytes
782 Bytes
1.09 KB
842 Bytes
644 Bytes
1.62 KB
1.5 KB
964 Bytes
1.05 KB
1.04 KB
1.22 KB
1.29 KB
877 Bytes
856 Bytes
651 Bytes
825 Bytes
661 Bytes
409 Bytes
343 Bytes
1.25 KB
1.12 KB
1018 Bytes
1.08 KB
965 Bytes
1.05 KB
880 Bytes
760 Bytes
1.06 KB
713 Bytes
768 Bytes
985 Bytes
1.13 KB
713 Bytes
518 Bytes
740 Bytes
738 Bytes
960 Bytes
540 Bytes
801 Bytes
870 Bytes
742 Bytes
658 Bytes
151 Bytes
1.27 KB
1.71 KB
... | ... | @@ -0,0 +1 @@ |
1 | +jQuery.extend(!0,jQuery.fn.socialSharePrivacy.settings,{services:{buffer:{txt_info:"Zwei Klicks für mehr Datenschutz: Erst wenn Sie hier klicken, wird der Button aktiv und Sie können Ihre Empfehlung an Buffer senden. Schon beim Aktivieren werden Daten an Dritte übertragen – siehe <em>i</em>.",txt_off:"nicht mit Buffer verbunden",txt_on:"mit Buffer verbunden"},delicious:{txt_info:"Zwei Klicks für mehr Datenschutz: Erst wenn Sie hier klicken, wird der Button aktiv und Sie können Ihr Lesezeichen auf Delicious speichern. Schon beim Aktivieren werden Daten an Dritte übertragen – siehe <em>i</em>.",txt_off:"nicht mit Delicious verbunden",txt_on:"mit Delicious verbunden",txt_button:"Sichern"},disqus:{txt_info:"Zwei Klicks für mehr Datenschutz: Erst wenn Sie hier klicken, wird der Button aktiv und Sie können Ihre Empfehlung an Disqus senden. Schon beim Aktivieren werden Daten an Dritte übertragen – siehe <em>i</em>.",txt_off:"nicht mit Disqus verbunden",txt_on:"mit Disqus verbunden"},facebook:{dummy_line_img:"images/de/dummy_facebook.png",dummy_box_img:"images/de/dummy_box_facebook.png",txt_info:"Zwei Klicks für mehr Datenschutz: Erst wenn Sie hier klicken, wird der Button aktiv und Sie können Ihre Empfehlung an Facebook senden. Schon beim Aktivieren werden Daten an Dritte übertragen – siehe <em>i</em>.",txt_off:"nicht mit Facebook verbunden",txt_on:"mit Facebook verbunden"},fbshare:{txt_info:"Auf Facebook mit anderen Leuten teilen."},flattr:{txt_info:"Zwei Klicks für mehr Datenschutz: Erst wenn Sie hier klicken, wird der Button aktiv und Sie können Ihre Empfehlung an Flattr senden. Schon beim Aktivieren werden Daten an Dritte übertragen – siehe <em>i</em>.",txt_off:"nicht mit Flattr verbunden",txt_on:"mit Flattr verbunden"},gplus:{txt_info:"Zwei Klicks für mehr Datenschutz: Erst wenn Sie hier klicken, wird der Button aktiv und Sie können Ihre Empfehlung an Google+ senden. Schon beim Aktivieren werden Daten an Dritte übertragen – siehe <em>i</em>.",txt_off:"nicht mit Google+ verbunden",txt_on:"mit Google+ verbunden"},hackernews:{txt_info:"Zwei Klicks für mehr Datenschutz: Erst wenn Sie hier klicken, wird der Button aktiv und Sie können Ihre Empfehlung an Hacker News senden. Schon beim Aktivieren werden Daten an Dritte übertragen – siehe <em>i</em>.",txt_off:"nicht mit Hacker News verbunden",txt_on:"mit Hacker News verbunden",txt_n_points:"{} Punkte",txt_one_point:"1 Punkt"},linkedin:{txt_info:"Zwei Klicks für mehr Datenschutz: Erst wenn Sie hier klicken, wird der Button aktiv und Sie können Ihre Empfehlung an LinkedIn senden. Schon beim Aktivieren werden Daten an Dritte übertragen – siehe <em>i</em>.",txt_off:"nicht mit LinkedIn verbunden",txt_on:"mit LinkedIn verbunden"},mail:{txt_info:"Per E-Mail an einen Freund senden.",txt_button:"Sende E-Mail"},pinterest:{txt_info:"Zwei Klicks für mehr Datenschutz: Erst wenn Sie hier klicken, wird der Button aktiv und Sie können Ihre Empfehlung an Pinterest senden. Schon beim Aktivieren werden Daten an Dritte übertragen – siehe <em>i</em>.",txt_off:"nicht mit Pinterest verbunden",txt_on:"mit Pinterest verbunden"},reddit:{txt_info:"Zwei Klicks für mehr Datenschutz: Erst wenn Sie hier klicken, wird der Button aktiv und Sie können Ihre Empfehlung an Reddit senden. Schon beim Aktivieren werden Daten an Dritte übertragen – siehe <em>i</em>.",txt_off:"nicht mit Reddit verbunden",txt_on:"mit Reddit verbunden"},stumbleupon:{txt_info:"Zwei Klicks für mehr Datenschutz: Erst wenn Sie hier klicken, wird der Button aktiv und Sie können Ihre Empfehlung an StumbleUpon senden. Schon beim Aktivieren werden Daten an Dritte übertragen – siehe <em>i</em>.",txt_off:"nicht mit StumbleUpon verbunden",txt_on:"mit StumbleUpon verbunden"},tumblr:{txt_info:"Diesen Inhalt auf Tumblr posten.",txt_button:"Auf Tumblr teilen"},twitter:{txt_info:"Zwei Klicks für mehr Datenschutz: Erst wenn Sie hier klicken, wird der Button aktiv und Sie können Ihre Empfehlung an Twitter senden. Schon beim Aktivieren werden Daten an Dritte übertragen – siehe <em>i</em>.",txt_off:"nicht mit Twitter verbunden",txt_on:"mit Twitter verbunden"},xing:{txt_info:"Zwei Klicks für mehr Datenschutz: Erst wenn Sie hier klicken, wird der Button aktiv und Sie können Ihre Empfehlung an XING senden. Schon beim Aktivieren werden Daten an Dritte übertragen – siehe <em>i</em>.",txt_off:"nicht mit XING verbunden",txt_on:"mit XING verbunden"}},info_link:"http://panzi.github.io/SocialSharePrivacy/index.de.html",txt_settings:"Einstellungen",txt_help:"Wenn Sie diese Felder durch einen Klick aktivieren, werden Informationen an Facebook, Twitter oder Google etc. in die USA übertragen und unter Umständen auch dort gespeichert. Näheres erfahren Sie durch einen Klick auf das <em>i</em>.",settings_perma:"Dauerhaft aktivieren und Datenüber­tragung zustimmen:",language:"de"}); | ... | ... |
... | ... | @@ -0,0 +1 @@ |
1 | +jQuery.extend(!0,jQuery.fn.socialSharePrivacy.settings,{services:{buffer:{txt_info:"Dos Clics para mayor privacidad: Al dar clic, se activará el botón y podrá hacer su recomendación. Una vez activado, datos serán enviados a Buffer. Para mayor información ver el icono <em>i</em>",txt_off:"sin conexión a Buffer",txt_on:"conectado a Buffer"},delicious:{txt_info:"Dos Clics para mayor privacidad: Al dar clic, se activará el botón y podrá guardar sus favoritos en Delicious. Una vez activado, datos serán enviados a Delicious. Para mayor información ver el icono <em>i</em>",txt_off:"sin conexion a Delicious",txt_on:"connectado a Delicious",txt_button:"Guardar"},disqus:{txt_info:"Dos Clics para mayor privacidad: Al dar clic, se activará el botón. Una vez activado, datos serán enviados a Disqus. Para mayor información ver el icono <em>i</em>",txt_off:"sin conexión a Disqus",txt_on:"conectado a Disqus"},facebook:{dummy_line_img:"images/es/dummy_facebook.png",dummy_box_img:"images/es/dummy_box_facebook.png",txt_info:"Dos Clics para mayor privacidad: Al dar clic, se activará el botón de Facebook. Una vez activado, datos serán enviados a Facebook. Para mayor información ver el icono <em>i</em>",txt_off:"sin conexión a Facebook",txt_on:"conectado a Facebook"},flattr:{txt_info:"Dos Clics para mayor privacidad: Al dar clic, se activará el botón de Flattr. Una vez activado, datos serán enviados a Flattr. Para mayor información ver el icono <em>i</em>",txt_off:"sin conexión a Flattr",txt_on:"conectado a Flattr"},gplus:{txt_info:"Dos Clics para mayor privacidad: Al dar clic, se activará el botón de Google+. Una vez activado, datos serán enviados a Google+. Para mayor información ver el icono <em>i</em>",txt_off:"sin conexión a Google+",txt_on:"conectado a Google+"},hackernews:{txt_info:"Dos Clics para mayor privacidad: Al dar clic, se activará el botón de Hacker News. Una vez activado, datos serán enviados a Hacker News. Para mayor información ver el icono <em>i</em>",txt_off:"sin conexión a Hacker News",txt_on:"conectado a Hacker News",txt_n_points:"{} Puntos",txt_one_point:"1 Punto"},linkedin:{txt_info:"Dos Clics para mayor privacidad: Al dar clic, se activará el botón de LinkedIn. Una vez activado, datos serán enviados a LinkedIn. Para mayor información ver el icono <em>i</em>",txt_off:"sin conexión a LinkedIn",txt_on:"conectado a LinkedIn"},mail:{txt_info:"Enviar por Email a un amigo",txt_button:"Enviar E-Mail"},pinterest:{txt_info:"Dos Clics para mayor privacidad: Al dar clic, se activará el botón de Pinterest. Una vez activado, datos serán enviados a Pinterest. Para mayor información ver el icono <em>i</em>",txt_off:"sin conexión a Pinterest",txt_on:"conectado a Pinterest"},reddit:{txt_info:"Dos Clics para mayor privacidad: Al dar clic, se activará el botón de Reddit. Una vez activado, datos serán enviados a Reddit. Para mayor información ver el icono <em>i</em>",txt_off:"sin conexión a Reddit",txt_on:"conectado a Reddit"},stumbleupon:{txt_info:"Dos Clics para mayor privacidad: Al dar clic, se activará el botón de StumbleUpon. Una vez activado, datos serán enviados a StumbleUpon. Para mayor información ver el icono <em>i</em>",txt_off:"sin conexión a StumbleUpon",txt_on:"conectado a StumbleUpon"},tumblr:{txt_info:"Postear contenido en Tumblr.",txt_button:"Compartir en Tumblr"},twitter:{txt_info:"Dos Clics para mayor privacidad: Al dar clic, se activará el botón de Twitter. Una vez activado, datos serán enviados a Twitter. Para mayor información ver el icono <em>i</em>",txt_off:"sin conexión a Twitter",txt_on:"conectado a Twitter"},xing:{txt_info:"Dos Clics para mayor privacidad: Al dar clic, se activará el botón de XING. Una vez activado, datos serán enviados a XING. Para mayor información ver el icono <em>i</em>",txt_off:"sin conexión a XING",txt_on:"conectado a XING"}},info_link:"http://panzi.github.io/SocialSharePrivacy/index.html",txt_settings:"Ajustes",txt_help:"Al dar Clic en alguno de estos campos o al activar algún botón, información será enviada a Facebook, Twitter, Google+, etc y probablemente será guardada en algún servidor en estados unidos. Para mayor información (en Inglés) haga clic en el botón <em>i</em>.",settings_perma:"Activar permanentemente y aceptar el envio de datos a terceros:",language:"es"}); | ... | ... |
... | ... | @@ -0,0 +1 @@ |
1 | +jQuery.extend(!0,jQuery.fn.socialSharePrivacy.settings,{services:{buffer:{txt_info:"Deux clics pour une protection de données améliorée: Ce n'est qu'après avoir cliqué ici que le bouton sera actif et vous pourrez envoyer votre recommandation à Buffer. Déjà lors de l'activation des données seront transmis à des tiers – voir <em>i</em>.",txt_off:"pas connecté à Buffer",txt_on:"connecté à Buffer"},delicious:{txt_info:"Deux clics pour une protection de données améliorée: Ce n'est qu'après avoir cliqué ici que le bouton sera actif et vous pourrez envoyer votre recommandation à Delicious. Déjà lors de l'activation des données seront transmis à des tiers – voir <em>i</em>.",txt_off:"pas connecté à Delicious",txt_on:"connecté à Delicious",txt_button:"Enregistrer"},disqus:{txt_info:"Deux clics pour une protection de données améliorée: Ce n'est qu'après avoir cliqué ici que le bouton sera actif et vous pourrez envoyer votre recommandation à Disqus. Déjà lors de l'activation des données seront transmis à des tiers – voir <em>i</em>.",txt_off:"pas connecté à Disqus",txt_on:"connecté à Disqus"},facebook:{dummy_line_img:"images/fr/dummy_facebook.png",dummy_box_img:"images/fr/dummy_box_facebook.png",txt_info:"Deux clics pour une protection de données améliorée: Ce n'est qu'après avoir cliqué ici que le bouton sera actif et vous pourrez envoyer votre recommandation à Facebook. Déjà lors de l'activation des données seront transmis à des tiers – voir <em>i</em>.",txt_off:"pas connecté à Facebook",txt_on:"connecté à Facebook"},flattr:{txt_info:"Deux clics pour une protection de données améliorée: Ce n'est qu'après avoir cliqué ici que le bouton sera actif et vous pourrez envoyer votre recommandation à Flattr. Déjà lors de l'activation des données seront transmis à des tiers – voir <em>i</em>.",txt_off:"pas connecté à Flattr",txt_on:"connecté à Flattr"},gplus:{txt_info:"Deux clics pour une protection de données améliorée: Ce n'est qu'après avoir cliqué ici que le bouton sera actif et vous pourrez envoyer votre recommandation à Google+. Déjà lors de l'activation des données seront transmis à des tiers – voir <em>i</em>.",txt_off:"pas connecté à Google+",txt_on:"connecté à Google+"},linkedin:{txt_info:"Deux clics pour une protection de données améliorée: Ce n'est qu'après avoir cliqué ici que le bouton sera actif et vous pourrez envoyer votre recommandation à LinkedIn. Déjà lors de l'activation des données seront transmis à des tiers – voir <em>i</em>.",txt_off:"pas connecté à LinkedIn",txt_on:"connecté à LinkedIn"},mail:{txt_info:"Envoyer par courrier électronique à un ami.",txt_button:"Envoyer courriel"},pinterest:{txt_info:"Deux clics pour une protection de données améliorée: Ce n'est qu'après avoir cliqué ici que le bouton sera actif et vous pourrez envoyer votre recommandation à Pinterest. Déjà lors de l'activation des données seront transmis à des tiers – voir <em>i</em>.",txt_off:"pas connecté à Pinterest",txt_on:"connecté à Pinterest"},reddit:{txt_info:"Deux clics pour une protection de données améliorée: Ce n'est qu'après avoir cliqué ici que le bouton sera actif et vous pourrez envoyer votre recommandation à Reddit. Déjà lors de l'activation des données seront transmis à des tiers – voir <em>i</em>.",txt_off:"pas connecté à Reddit",txt_on:"connecté à Reddit"},stumbleupon:{txt_info:"Deux clics pour une protection de données améliorée: Ce n'est qu'après avoir cliqué ici que le bouton sera actif et vous pourrez envoyer votre recommandation à StumbleUpon. Déjà lors de l'activation des données seront transmis à des tiers – voir <em>i</em>.",txt_off:"pas connecté à StumbleUpon",txt_on:"connecté à StumbleUpon"},tumblr:{txt_info:"Partager ce contenu sur Tumblr.",txt_button:"Partager sur Tumblr"},twitter:{dummy_line_img:"images/fr/dummy_twitter.png",txt_info:"Deux clics pour une protection de données améliorée: Ce n'est qu'après avoir cliqué ici que le bouton sera actif et vous pourrez envoyer votre recommandation à Twitter. Déjà lors de l'activation des données seront transmis à des tiers – voir <em>i</em>.",txt_off:"pas connecté à Twitter",txt_on:"connecté à Twitter"},xing:{txt_info:"Deux clics pour une protection de données améliorée: Ce n'est qu'après avoir cliqué ici que le bouton sera actif et vous pourrez envoyer votre recommandation à XING. Déjà lors de l'activation des données seront transmis à des tiers – voir <em>i</em>.",txt_off:"pas connecté à XING",txt_on:"connecté à XING"}},txt_settings:"Paramétres",txt_help:"Dés que vous activez ces champs en cliquant dessus, des informations seront transférés à Facebook, Twitter, Google, etc aux États-Unis et peuvent y être stockés. Pour plus de détails, cliquez sur le <em>i</em>.",settings_perma:"Activer en permanence et accepter la transmission de données:",language:"fr"}); | ... | ... |
... | ... | @@ -0,0 +1 @@ |
1 | +jQuery.extend(!0,jQuery.fn.socialSharePrivacy.settings,{services:{buffer:{txt_info:"Due click per più privacy: il pulsante Buffer sarà attivato facendo clic qui. L'attivazione del pulsante invia già dati a Buffer – vedere <em>i</em>.",txt_off:"non connesso a Buffer",txt_on:"connesso a Buffer"},delicious:{txt_info:"Due click per più privacy: il pulsante Delicious sarà attivato facendo clic qui. L'attivazione del pulsante invia già dati a Delicious – vedere <em>i</em>.",txt_off:"non connesso a Delicious",txt_on:"connesso a Delicious",txt_button:"Salva"},disqus:{txt_info:"Due click per più privacy: il pulsante Disqus sarà attivato facendo clic qui. L'attivazione del pulsante invia già dati a Disqus – vedere <em>i</em>.",txt_off:"non connesso a Disqus",txt_on:"connesso a Disqus"},facebook:{txt_info:"Due click per più privacy: il pulsante Facebook sarà attivato facendo clic qui. L'attivazione del pulsante invia già dati a Facebook – vedere <em>i</em>.",txt_off:"non connesso a Facebook",txt_on:"connesso a Facebook"},fbshare:{txt_info:"Condividi con Facebook"},flattr:{txt_info:"Due click per più privacy: il pulsante Flattr sarà attivato facendo clic qui. L'attivazione del pulsante invia già dati a Flattr – vedere <em>i</em>.",txt_off:"non connesso a Flattr",txt_on:"connesso a Flattr"},gplus:{txt_info:"Due click per più privacy: il pulsante Google+ sarà attivato facendo clic qui. L'attivazione del pulsante invia già dati a Google+ – vedere <em>i</em>.",txt_off:"non connesso a Google+",txt_on:"connesso a Google+"},hackernews:{txt_info:"Due click per più privacy: il pulsante Hacker News sarà attivato facendo clic qui. L'attivazione del pulsante invia già dati a Hacker News – vedere <em>i</em>.",txt_off:"non connesso a Hacker News",txt_on:"connesso a Hacker News",txt_n_points:"{points} punti",txt_one_point:"1 punto"},linkedin:{txt_info:"Due click per più privacy: il pulsante Linkedin sarà attivato facendo clic qui. L'attivazione del pulsante invia già dati a Linkedin – vedere <em>i</em>.",txt_off:"non connesso a LinkedIn",txt_on:"connesso a LinkedIn"},mail:{txt_info:"Invia per posta elettronica ad un amico.",txt_button:"Invia per posta elettronica"},pinterest:{txt_info:"Due click per più privacy: il pulsante Pinterest sarà attivato facendo clic qui. L'attivazione del pulsante invia già dati a Pinterest – vedere <em>i</em>.",txt_off:"non connesso a Pinterest",txt_on:"connesso a Pinterest"},reddit:{txt_info:"Due click per più privacy: il pulsante reddit this! sarà attivato facendo clic qui. L'attivazione del pulsante invia già dati a reddit – vedere <em>i</em>.",txt_off:"non connesso a Reddit",txt_on:"connesso a Reddit"},stumbleupon:{txt_info:"Due click per più privacy: il pulsante Stumble! sarà attivato facendo clic qui. L'attivazione del pulsante invia già dati a Stumbleupon – vedere <em>i</em>.",txt_off:"non connesso a StumbleUpon",txt_on:"connesso a StumbleUpon"},tumblr:{txt_info:"Condividere questo contenuto su Tumblr.",txt_button:"Condividi su Tumblr"},twitter:{txt_info:"Due click per più privacy: il pulsante Tweet sarà attivato facendo clic qui. L'attivazione del pulsante invia già dati a Twitter – vedere <em>i</em>.",txt_off:"non connesso a Twitter",txt_on:"connesso a Twitter"},xing:{txt_info:"Due click per più privacy: il pulsante XING sarà attivato facendo clic qui. L'attivazione del pulsante invia già dati a XING – vedere <em>i</em>.",txt_off:"non connesso a XING",txt_on:"connesso a XING"}},txt_settings:"Impostazioni",txt_help:"Attivando questi campi, saranno inviati dati a terze parti (Facebook, Twitter, Google, ...). Per maggiori informazioni fare clic su <em>i</em>.",settings_perma:"Attivare in modo permanente i pulsanti di condivisione:",language:"it"}); | ... | ... |
... | ... | @@ -0,0 +1 @@ |
1 | +jQuery.extend(!0,jQuery.fn.socialSharePrivacy.settings,{services:{buffer:{txt_info:"Ter verduidelijking: De Buffer knop wordt hiermee geactiveerd. Hiermee wordt data naar Buffer verzonden – Klik voor meer informatie op <em>i</em>.",txt_off:"niet verbonden met Buffer",txt_on:"verbonden met Buffer"},delicious:{txt_info:"Ter verduidelijking: De Delicious knop wordt hiermee geactiveerd. Hiermee wordt data naar Delicious verzonden – Klik voor meer informatie op <em>i</em>.",txt_off:"niet verbonden met Delicious",txt_on:"verbonden met Delicious",txt_button:"Bewaren"},disqus:{txt_info:"Ter verduidelijking: De Disqus knop wordt hiermee geactiveerd. Hiermee wordt data naar Disqus verzonden – Klik voor meer informatie op <em>i</em>.",txt_off:"niet verbonden met Disqus",txt_on:"verbonden met Disqus"},facebook:{dummy_line_img:"images/nl/dummy_facebook.png",txt_info:"Ter verduidelijking: De Facebook knop wordt hiermee geactiveerd. Hiermee wordt data naar Facebook verzonden – Klik voor meer informatie op <em>i</em>.",txt_off:"niet verbonden met Facebook",txt_on:"verbonden met Facebook"},flattr:{txt_info:"Ter verduidelijking: De Flattr knop wordt hiermee geactiveerd. Hiermee wordt data naar Flattr verzonden – Klik voor meer informatie op <em>i</em>.",txt_off:"niet verbonden met Flattr",txt_on:"verbonden met Flattr"},gplus:{txt_info:"Ter verduidelijking: De Google+ knop wordt hiermee geactiveerd. Hiermee wordt data naar Google+ verzonden – Klik voor meer informatie op <em>i</em>.",txt_off:"niet verbonden met Google+",txt_on:"verbonden met Google+"},linkedin:{txt_info:"Ter verduidelijking: De LinkedIn knop wordt hiermee geactiveerd. Hiermee wordt data naar LinkedIn verzonden – Klik voor meer informatie op <em>i</em>.",txt_off:"niet verbonden met LinkedIn",txt_on:"verbonden met LinkedIn"},mail:{txt_info:"Mail dit naar een vriend",txt_button:"Verzend e-mail"},pinterest:{txt_info:"Ter verduidelijking: De Pinterest knop wordt hiermee geactiveerd. Hiermee wordt data naar Pinterest verzonden – Klik voor meer informatie op <em>i</em>.",txt_off:"niet verbonden met Pinterest",txt_on:"verbonden met Pinterest"},reddit:{txt_info:"Ter verduidelijking: De Reddit knop wordt hiermee geactiveerd. Hiermee wordt data naar Reddit verzonden – Klik voor meer informatie op <em>i</em>.",txt_off:"niet verbonden met Reddit",txt_on:"verbonden met Reddit"},stumbleupon:{txt_info:"Ter verduidelijking: De StumbleUpon knop wordt hiermee geactiveerd. Hiermee wordt data naar StumbleUpon verzonden – Klik voor meer informatie op <em>i</em>.",txt_off:"niet verbonden met StumbleUpon",txt_on:"verbonden met StumbleUpon"},tumblr:{txt_info:"Diesen Inhalt auf Tumblr posten.",txt_button:"Auf Tumblr teilen"},twitter:{dummy_line_img:"images/nl/dummy_twitter.png",txt_info:"Ter verduidelijking: De Twitter knop wordt hiermee geactiveerd. Hiermee wordt data naar Twitter verzonden – Klik voor meer informatie op <em>i</em>.",txt_off:"niet verbonden met Twitter",txt_on:"verbonden met Twitter"},xing:{txt_info:"Ter verduidelijking: De XING knop wordt hiermee geactiveerd. Hiermee wordt data naar XING verzonden – Klik voor meer informatie op <em>i</em>.",txt_off:"niet verbonden met XING",txt_on:"verbonden met XING"}},txt_settings:"Instellingen",txt_help:"Als je een optie selecteert, wordt er data naar een derde partij (Facebook, Twitter, Google, ...) verzonden en daar opgeslagen. Klik voor meer informatie op <em>i</em>.",settings_perma:"Activeer al je social media accounts:",language:"nl"}); | ... | ... |
... | ... | @@ -0,0 +1 @@ |
1 | +jQuery.extend(!0,jQuery.fn.socialSharePrivacy.settings,{services:{buffer:{txt_info:"Dwa kliknięcia – więcej prywatności: Kliknięcie tutaj uruchomi przycisk Buffera. Samo uchuchomienie przycisku powoduje wysłanie Twoich danych do Buffera. Kliknij w <em>i</em>, aby dowiedzieć się więcej.",txt_off:"brak połączenia z Bufferem",txt_on:"połączono z Bufferem"},delicious:{txt_info:"Dwa kliknięcia – więcej prywatności: Kliknięcie tutaj uruchomi przycisk Delicious. Samo uchuchomienie przycisku powoduje wysłanie Twoich danych do Delicious. Kliknij w <em>i</em>, aby dowiedzieć się więcej.",txt_off:"brak połączenia z Delicious",txt_on:"połączono z Delicious",txt_button:"Wyślij"},disqus:{txt_info:"Dwa kliknięcia – więcej prywatności: Kliknięcie tutaj uruchomi przycisk Disqus. Samo uchuchomienie przycisku powoduje wysłanie Twoich danych do Disqusa. Kliknij w <em>i</em>, aby dowiedzieć się więcej.",txt_off:"brak połączenia z Disqusem",txt_on:"połączono z Disqusem"},facebook:{txt_info:'Dwa kliknięcia – więcej prywatności: Kliknięcie tutaj uruchomi przycisk "Lubię to". Samo uchuchomienie przycisku powoduje wysłanie Twoich danych do Facebooka. Kliknij w <em>i</em>, aby dowiedzieć się więcej.',txt_off:"brak połączenia z Facebookiem",txt_on:"połączono z Facebookiem"},flattr:{txt_info:"Dwa kliknięcia – więcej prywatności: Kliknięcie tutaj uruchomi przycisk Flattr. Samo uchuchomienie przycisku powoduje wysłanie Twoich danych do Flattr. Kliknij w <em>i</em>, aby dowiedzieć się więcej.",txt_off:"brak połączenia z Flattr",txt_on:"połączono z Flattr"},gplus:{txt_info:"Dwa kliknięcia – więcej prywatności: Kliknięcie tutaj uruchomi przycisk Google+. Samo uchuchomienie przycisku powoduje wysłanie Twoich danych do Google+. Kliknij w <em>i</em>, aby dowiedzieć się więcej.",txt_off:"brak połączenia z Google+",txt_on:"połączono z Google+"},hackernews:{txt_info:"Dwa kliknięcia – więcej prywatności: Kliknięcie tutaj uruchomi przycisk Hacker News. Samo uchuchomienie przycisku powoduje wysłanie Twoich danych do Hacker News. Kliknij w <em>i</em>, aby dowiedzieć się więcej.",txt_off:"brak połączenia z Hacker News",txt_on:"połączono z Hacker News",txt_n_points:"{} punktów",txt_one_point:"1 punkt"},linkedin:{txt_info:"Dwa kliknięcia – więcej prywatności: Kliknięcie tutaj uruchomi przycisk LinkedIn. Samo uchuchomienie przycisku powoduje wysłanie Twoich danych do LinkedIn. Kliknij w <em>i</em>, aby dowiedzieć się więcej.",txt_off:"brak połączenia z LinkedIn",txt_on:"połączono z LinkedIn"},mail:{txt_info:"Wyślij tę stronę znajomemu przez e-mail.",txt_button:"Wyślij e-mail"},pinterest:{txt_info:'Dwa kliknięcia – więcej prywatności: Kliknięcie tutaj uruchomi przycisk "Pin it!". Samo uchuchomienie przycisku powoduje wysłanie Twoich danych do Pinterestu. Kliknij w <em>i</em>, aby dowiedzieć się więcej.',txt_off:"brak połączenia z Pinterestem",txt_on:"połączono z Pinterestem"},reddit:{txt_info:"Dwa kliknięcia – więcej prywatności: Kliknięcie tutaj uruchomi przycisk Reddit. Samo uchuchomienie przycisku powoduje wysłanie Twoich danych do Reddita. Kliknij w <em>i</em>, aby dowiedzieć się więcej.",txt_off:"brak połączenia z Redditem",txt_on:"połączono z Redditem"},stumbleupon:{txt_info:'Dwa kliknięcia – więcej prywatności: Kliknięcie tutaj uruchomi przycisk "Stumble!". Samo uchuchomienie przycisku powoduje wysłanie Twoich danych do StumbleUpon. Kliknij w <em>i</em>, aby dowiedzieć się więcej.',txt_off:"brak połączenia ze StumbleUpon",txt_on:"połączono ze StumbleUpon"},tumblr:{txt_info:"Opublikuj to na Tumblrze.",txt_button:"Podziel się na Tumblrze"},twitter:{txt_info:'Dwa kliknięcia – więcej prywatności: Kliknięcie tutaj uruchomi przycisk "Tweetnij". Samo uchuchomienie przycisku powoduje wysłanie Twoich danych do Twittera. Kliknij w <em>i</em>, aby dowiedzieć się więcej.',txt_off:"brak połączenia z Twitterem",txt_on:"połączono z Twitterem"},xing:{txt_info:"Dwa kliknięcia – więcej prywatności: Kliknięcie tutaj uruchomi przycisk XING. Samo uchuchomienie przycisku powoduje wysłanie Twoich danych do XING. Kliknij w <em>i</em>, aby dowiedzieć się więcej.",txt_off:"brak połączenia z XING",txt_on:"połączono z XING"}},info_link:"http://panzi.github.io/SocialSharePrivacy/",txt_settings:"Ustawienia",txt_help:"Klinięcie w poszczególne przyciski aktywuje daną usługę. Oznacza to wysłanie Twoich danych na serwery Facebooka, Google'a, Twittera, itp., oraz ich archiwizację. Kliknij <em>i</em>, aby dowiedzieć się więcej.",settings_perma:"Aktywuj na stałe następujące przyciski:",language:"pl"}); | ... | ... |
... | ... | @@ -0,0 +1 @@ |
1 | +jQuery.extend(!0,jQuery.fn.socialSharePrivacy.settings,{services:{buffer:{txt_info:"Dois cliques para mais privacidade: o botão do Buffer será ativado quando você clicar aqui. Ativar este botão enviará dados ao Buffer – veja <em>i</em>.",txt_off:"não conectado ao Buffer",txt_on:"conectado ao Buffer"},delicious:{txt_info:"Dois cliques para mais privacidade: o botão do Delicious será ativado quando você clicar aqui. Ativar este botão enviará dados ao Delicious – veja <em>i</em>.",txt_off:"não conectado ao Delicious",txt_on:"conectado ao Delicious",txt_button:"Salvar"},disqus:{txt_info:"Dois cliques para mais privacidade: o botão do Disqus será ativado quando você clicar aqui. Ativar este botão enviará dados ao Disqus – veja <em>i</em>.",txt_off:"não conectado ao Disqus",txt_on:"conectado ao Disqus"},facebook:{dummy_line_img:"images/pt/dummy_facebook.png",dummy_box_img:"images/pt/dummy_box_facebook.png",txt_info:"Dois cliques para mais privacidade: o botão do Facebook será ativado quando você clicar aqui. Ativar este botão enviará dados ao Facebook – veja <em>i</em>.",txt_off:"não conectado ao Facebook",txt_on:"conectado ao Facebook"},flattr:{txt_info:"Dois cliques para mais privacidade: o botão do Flattr será ativado quando você clicar aqui. Ativar este botão enviará dados ao Flattr – veja <em>i</em>.",txt_off:"não conectado ao Flattr",txt_on:"conectado ao Flattr"},gplus:{txt_info:"Dois cliques para mais privacidade: o botão do Google+ será ativado quando você clicar aqui. Ativar este botão enviará dados ao Google – veja <em>i</em>.",txt_off:"não conectado ao Google+",txt_on:"conectado ao Google+"},hackernews:{txt_info:"Dois cliques para mais privacidade: o botão do Hacker News será ativado quando você clicar aqui. Ativar este botão enviará dados ao Hacker News – veja <em>i</em>.",txt_off:"não conectado ao Hacker News",txt_on:"conectado ao Hacker News",txt_n_points:"{points} pontos",txt_one_point:"1 ponto"},linkedin:{txt_info:"Dois cliques para mais privacidade: o botão do LinkedIn será ativado quando você clicar aqui. Ativar este botão enviará dados ao LinkedIn – veja <em>i</em>.",txt_off:"não conectado ao LinkedIn",txt_on:"conectado ao LinkedIn"},mail:{txt_info:"Enviar a um amigo por e-mail.",txt_button:"Enviar e-mail"},pinterest:{txt_info:"Dois cliques para mais privacidade: o botão do Pinterest será ativado quando você clicar aqui. Ativar este botão enviará dados ao Pinterest – veja <em>i</em>.",txt_off:"não conectado ao Pinterest",txt_on:"conectado ao Pinterest"},reddit:{txt_info:"Dois cliques para mais privacidade: o botão do Reddit será ativado quando você clicar aqui. Ativar este botão enviará dados ao Reddit – veja <em>i</em>.",txt_off:"não conectado ao Reddit",txt_on:"conectado ao Reddit"},stumbleupon:{txt_info:"Dois cliques para mais privacidade: o botão do StumbleUpon será ativado quando você clicar aqui. Ativar este botão enviará dados ao StumbleUpon – veja <em>i</em>.",txt_off:"não conectado ao StumbleUpon",txt_on:"conectado ao StumbleUpon"},tumblr:{txt_info:"Postar esta página no Tumblr.",txt_button:"Compartilhar no Tumblr"},twitter:{dummy_line_img:"images/pt/dummy_twitter.png",dummy_box_img:"images/pt/dummy_box_twitter.png",txt_info:"Dois cliques para mais privacidade: o botão do Twitter será ativado quando você clicar aqui. Ativar este botão enviará dados ao Twitter – veja <em>i</em>.",txt_off:"não conectado ao Twitter",txt_on:"conectado ao Twitter"},xing:{txt_info:"Dois cliques para mais privacidade: o botão do XING será ativado quando você clicar aqui. Ativar este botão enviará dados ao XING – veja <em>i</em>.",txt_off:"não conectado ao XING",txt_on:"conectado ao XING"}},txt_settings:"Configurações",txt_help:"Se você ativar algum destes campos através de um clique, dados serão enviados a terceiros (Facebook, Twitter, Google, etc.) e armazenados por eles. Para mais detalhes, clique em <em>i</em>.",settings_perma:"Habilitar os seguintes botões permanentemente:",language:"pt"}); | ... | ... |
... | ... | @@ -0,0 +1 @@ |
1 | +jQuery.extend(!0,jQuery.fn.socialSharePrivacy.settings,{services:{buffer:{txt_info:"Два клика для большей конфедициальности: Кнопка Buffer активируется если клините по ней мышкой. Активация кнопки отправляет и хранит данные на серверах Buffer – для подробной информации нажмите <em>i</em>.",txt_off:"Не соединяться с Buffer",txt_on:"Соединиться с Buffer"},delicious:{txt_info:"Два клика для большей конфедициальности: Кнопка Delicious активируется если клините по ней мышкой. Активация кнопки отправляет и хранит данные на серверах Delicious – для подробной информации нажмите <em>i</em>.",txt_off:"Не соединяться с Delicious",txt_on:"Соединиться с Delicious",txt_button:"Delicious"},disqus:{txt_info:"Два клика для большей конфедициальности: Кнопка Disqus активируется если клините по ней мышкой. Активация кнопки отправляет и хранит данные на серверах Disqus – для подробной информации нажмите <em>i</em>.",txt_off:"Не соединяться с Disqus",txt_on:"Соединиться с Disqus"},facebook:{dummy_line_img:"images/ru/dummy_facebook.png",dummy_box_img:"images/ru/dummy_box_facebook.png",txt_info:"Два клика для большей конфедициальности: Кнопка Facebook активируется если клините по ней мышкой. Активация кнопки отправляет и хранит данные на серверах Facebook – для подробной информации нажмите <em>i</em>.",txt_off:"Не соединяться с Facebook",txt_on:"Соединиться с Facebook"},flattr:{txt_info:"Два клика для большей конфедициальности: Кнопка Flattr активируется если клините по ней мышкой. Активация кнопки отправляет и хранит данные на серверах Flattr – для подробной информации нажмите <em>i</em>.",txt_off:"Не соединяться с Flattr",txt_on:"Соединиться с Flattr"},gplus:{txt_info:"Два клика для большей конфедициальности: Кнопка Google+ активируется если клините по ней мышкой. Активация кнопки отправляет и хранит данные на серверах Google – для подробной информации нажмите <em>i</em>.",txt_off:"Не соединяться с Google+",txt_on:"Соединиться с Google+"},hackernews:{txt_info:"Два клика для большей конфедициальности: Кнопка Hacker News активируется если клините по ней мышкой. Активация кнопки отправляет и хранит данные на серверах Buffer – для подробной информации нажмите <em>i</em>.",txt_off:"Не соединяться с Hacker News",txt_on:"Соединиться с Hacker News",txt_n_points:"{} Пункт",txt_one_point:"1 Пункт"},linkedin:{txt_info:"Два клика для большей конфедициальности: Кнопка LinkedIn активируется если клините по ней мышкой. Активация кнопки отправляет и хранит данные на серверах LinkedIn – для подробной информации нажмите <em>i</em>.",txt_off:"Не соединяться с LinkedIn",txt_on:"Соединиться с LinkedIn"},mail:{txt_info:"Отправить по электронной почте другу.",txt_button:"Отправить E-Mail"},pinterest:{txt_info:"Два клика для большей конфедициальности: Кнопка Pinterest активируется если клините по ней мышкой. Активация кнопки отправляет и хранит данные на серверах Pinterest – для подробной информации нажмите <em>i</em>.",txt_off:"Не соединяться с Pinterest",txt_on:"Соединиться с Pinterest"},reddit:{txt_info:"Два клика для большей конфедициальности: Кнопка Reddit активируется если клините по ней мышкой. Активация кнопки отправляет и хранит данные на серверах Reddit – для подробной информации нажмите <em>i</em>.",txt_off:"Не соединяться Reddit",txt_on:"Соединиться с Reddit"},stumbleupon:{txt_info:"Два клика для большей конфедициальности: Кнопка StumbleUpon активируется если клините по ней мышкой. Активация кнопки отправляет и хранит данные на серверах StumbleUpon – для подробной информации нажмите <em>i</em>.",txt_off:"Не соединяться с StumbleUpon",txt_on:"Соединиться с StumbleUpon"},tumblr:{txt_info:"Отправить контент на Tumblr.",txt_button:"Tumblr"},twitter:{txt_info:"Два клика для большей конфедициальности: Кнопка Tweet активируется если клините по ней мышкой. Активация кнопки отправляет и хранит данные на серверах Twitter – для подробной информации нажмите <em>i</em>.",txt_off:"Не соединяться с Twitter",txt_on:"Соединиться с Twitter"},xing:{txt_info:"Два клика для большей конфедициальности: Кнопка XING активируется если клините по ней мышкой. Активация кнопки отправляет и хранит данные на серверах XING – для подробной информации нажмите <em>i</em>.",txt_off:"Не соединяться с XING",txt_on:"Соединиться с XING"}},info_link:"http://www.m0fx64.name/socialshareprivacy",txt_settings:"Настройки",txt_help:"Если вы активируете этих поля с помощью мыши, данные будут передаваться третьей стороне (Facebook, Twitter, Google, ...) и хранится там. Для более подробной информации нажмите <em>i</em>.",settings_perma:"Включить постоянно:",language:"ru"}); | ... | ... |
... | ... | @@ -0,0 +1,31 @@ |
1 | +/* | |
2 | + * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz | |
3 | + * | |
4 | + * Copyright (c) 2012 Mathias Panzenböck | |
5 | + * | |
6 | + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
7 | + * | |
8 | + * Spread the word, link to us if you can. | |
9 | + */ | |
10 | +(function ($, undefined) { | |
11 | + "use strict"; | |
12 | + | |
13 | + $.extend($.fn.socialSharePrivacy.settings, { | |
14 | + // Set perma_option to true. | |
15 | + // Initially it is only set to true if jQuery.cookie is available. | |
16 | + perma_option: true, | |
17 | + set_perma_option: function (service_name) { | |
18 | + localStorage.setItem('socialSharePrivacy_'+service_name, 'perma_on'); | |
19 | + }, | |
20 | + del_perma_option: function (service_name) { | |
21 | + localStorage.removeItem('socialSharePrivacy_'+service_name); | |
22 | + }, | |
23 | + // Only one of the two methods "get_perma_options" and "get_perma_option" has | |
24 | + // to be implemented. Though the other has to be set to null, so the default | |
25 | + // cookie based method is not used. | |
26 | + get_perma_options: null, | |
27 | + get_perma_option: function (service_name) { | |
28 | + return localStorage.getItem('socialSharePrivacy_'+service_name) === 'perma_on'; | |
29 | + } | |
30 | + }); | |
31 | +})(jQuery); | ... | ... |
... | ... | @@ -0,0 +1,54 @@ |
1 | +/* | |
2 | + * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz | |
3 | + * | |
4 | + * http://www.heise.de/extras/socialshareprivacy/ | |
5 | + * http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html | |
6 | + * | |
7 | + * Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt, | |
8 | + * Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de | |
9 | + * | |
10 | + * Copyright (c) 2012 Mathias Panzenböck | |
11 | + * | |
12 | + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
13 | + * | |
14 | + * Spread the word, link to us if you can. | |
15 | + */ | |
16 | +(function ($, undefined) { | |
17 | + "use strict"; | |
18 | + | |
19 | + function get (self, options, uri, settings, name) { | |
20 | + var value = options[name]; | |
21 | + if (typeof value === "function") { | |
22 | + return value.call(self, options, uri, settings); | |
23 | + } | |
24 | + return String(value); | |
25 | + } | |
26 | + | |
27 | + $.fn.socialSharePrivacy.settings.services.buffer = { | |
28 | + 'status' : true, | |
29 | + 'dummy_line_img' : 'images/dummy_buffer.png', | |
30 | + 'dummy_box_img' : 'images/dummy_box_buffer.png', | |
31 | + 'dummy_alt' : '"Buffer"-Dummy', | |
32 | + 'txt_info' : 'Two clicks for more privacy: The Buffer button will be enabled once you click here. Activating the button already sends data to Buffer – see <em>i</em>.', | |
33 | + 'txt_off' : 'not connected to Buffer', | |
34 | + 'txt_on' : 'connected to Buffer', | |
35 | + 'perma_option' : true, | |
36 | + 'display_name' : 'Buffer', | |
37 | + 'referrer_track' : '', | |
38 | + 'via' : '', | |
39 | + 'text' : $.fn.socialSharePrivacy.getTitle, | |
40 | + 'picture' : $.fn.socialSharePrivacy.getImage, | |
41 | + 'button' : function (options, uri, settings) { | |
42 | + return $('<iframe allowtransparency="true" frameborder="0" scrolling="no"></iframe>').attr( | |
43 | + 'src', 'https://widgets.bufferapp.com/button/?'+$.param({ | |
44 | + count : settings.layout === 'line' ? 'horizontal' : 'vertical', | |
45 | + via : get(this, options, uri, settings, 'via'), | |
46 | + text : $.fn.socialSharePrivacy.abbreviateText( | |
47 | + get(this, options, uri, settings, 'text'), 120), | |
48 | + picture : get(this, options, uri, settings, 'picture'), | |
49 | + url : uri + options.referrer_track, | |
50 | + source : 'button' | |
51 | + })); | |
52 | + } | |
53 | + }; | |
54 | +})(jQuery); | ... | ... |
... | ... | @@ -0,0 +1,85 @@ |
1 | +/* | |
2 | + * jquery.socialshareprivacy.js | |
3 | + * | |
4 | + * Copyright (c) 2012 Mathias Panzenböck | |
5 | + * | |
6 | + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
7 | + * | |
8 | + * Code inspired by Delicious Button v1.1: | |
9 | + * http://code.google.com/p/delicious-button/ | |
10 | + * | |
11 | + * Warning: this button uses plaintext http and can be harmful to users under opressive regimes | |
12 | + * | |
13 | + */ | |
14 | +(function ($, undefined) { | |
15 | + "use strict"; | |
16 | + | |
17 | + $.fn.socialSharePrivacy.settings.services.delicious = { | |
18 | + 'status' : true, | |
19 | + 'dummy_line_img' : 'images/dummy_delicious.png', | |
20 | + 'dummy_box_img' : 'images/dummy_box_delicious.png', | |
21 | + 'dummy_alt' : '"Delicious"-Dummy', | |
22 | + 'txt_info' : 'Two clicks for more privacy: The Delicious button will be enabled once you click here. Activating the button already sends data to Delicious – see <em>i</em>.', | |
23 | + 'txt_off' : 'not connected to Delicious', | |
24 | + 'txt_on' : 'connected to Delicious', | |
25 | + 'perma_option' : true, | |
26 | + 'display_name' : 'Delicious', | |
27 | + 'txt_button' : 'Save', | |
28 | + 'referrer_track' : '', | |
29 | + 'title' : $.fn.socialSharePrivacy.getTitle, | |
30 | + 'button' : function (options, uri, settings) { | |
31 | + var $button = $('<div class="delicious-widget"/>'); | |
32 | + var url = uri + options.referrer_track; | |
33 | + | |
34 | + $.ajax({ | |
35 | + url: "http://feeds.delicious.com/v2/json/urlinfo/data", | |
36 | + data: {url: url}, | |
37 | + dataType: "jsonp", | |
38 | + success: function (counts) { | |
39 | + var hash, total_posts, title, txt_button; | |
40 | + for (var i = 0; i < counts.length; ++ i) { | |
41 | + var count = counts[i]; | |
42 | + if (count.url === url) { | |
43 | + total_posts = parseInt(count.total_posts, 10); | |
44 | + hash = count.hash; | |
45 | + title = count.title; | |
46 | + break; | |
47 | + } | |
48 | + } | |
49 | + if (total_posts) txt_button = $.fn.socialSharePrivacy.formatNumber(total_posts); | |
50 | + else txt_button = options.txt_button; | |
51 | + var save_url = "http://delicious.com/save?"+$.param({ | |
52 | + v: "5", | |
53 | + url: url, | |
54 | + title: (typeof options.title === "function" ? | |
55 | + options.title.call(this, options, uri, settings) : | |
56 | + String(options.title)) || title | |
57 | + }); | |
58 | + | |
59 | + $button.html('<a target="delicious" class="icon"><div class="delicious1"></div><div class="delicious2"></div><div class="delicious3"></div></a><a class="count" target="delicious"><i></i><b></b></a>'); | |
60 | + $button.find('i').text(options.txt_button); | |
61 | + $button.find('b').text(txt_button); | |
62 | + $button.find('a.icon').attr("href", hash ? "http://delicious.com/url/" + hash : save_url); | |
63 | + var $count = $button.find('a.count').attr("href", save_url).click(function (event) { | |
64 | + window.open(save_url + "&noui&jump=close", "delicious", "toolbar=no,width=555,height=555"); | |
65 | + event.preventDefault(); | |
66 | + }); | |
67 | + | |
68 | + if (total_posts) { | |
69 | + $count.hover(function () { | |
70 | + var $self = $(this); | |
71 | + $self.find("b").stop(1, 1).css("display", "none"); | |
72 | + $self.find("i").fadeIn(); | |
73 | + }, function () { | |
74 | + var $self = $(this); | |
75 | + $self.find("i").stop(1, 1).css("display", "none"); | |
76 | + $self.find("b").fadeIn(); | |
77 | + }); | |
78 | + } | |
79 | + } | |
80 | + }); | |
81 | + | |
82 | + return $button; | |
83 | + } | |
84 | + }; | |
85 | +})(jQuery); | ... | ... |
... | ... | @@ -0,0 +1,77 @@ |
1 | +/* | |
2 | + * jquery.socialshareprivacy.js | |
3 | + * | |
4 | + * Copyright (c) 2012 Mathias Panzenböck | |
5 | + * | |
6 | + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
7 | + * | |
8 | + */ | |
9 | +(function ($, undefined) { | |
10 | + "use strict"; | |
11 | + | |
12 | + var DISQUSWIDGETS = { | |
13 | + displayCount: function (data) { | |
14 | + $('.social_share_privacy_area .disqus .disqus-widget:not(.init)').each(function () { | |
15 | + var $widget = $(this); | |
16 | + var uri = data.counts[0].id; | |
17 | + if ($widget.attr("data-uri") === uri) { | |
18 | + var key = $widget.attr("data-count"); | |
19 | + var count = data.counts[0][key]; | |
20 | + var text = data.text[key]; | |
21 | + var scount = $.fn.socialSharePrivacy.formatNumber(count); | |
22 | + $widget.attr('title', count === 0 ? text.zero : count === 1 ? text.one : text.multiple.replace('{num}', scount)); | |
23 | + $widget.find('.count a').text(scount); | |
24 | + $widget.addClass('init'); | |
25 | + } | |
26 | + }); | |
27 | + } | |
28 | + }; | |
29 | + | |
30 | + $.fn.socialSharePrivacy.settings.services.disqus = { | |
31 | + 'status' : true, | |
32 | + 'dummy_line_img' : 'images/dummy_disqus.png', | |
33 | + 'dummy_box_img' : 'images/dummy_box_disqus.png', | |
34 | + 'dummy_alt' : '"Disqus"-Dummy', | |
35 | + 'txt_info' : 'Two clicks for more privacy: The Disqus button will be enabled once you click here. Activating the button already sends data to Disqus – see <em>i</em>.', | |
36 | + 'txt_off' : 'not connected to Disqus', | |
37 | + 'txt_on' : 'connected to Disqus', | |
38 | + 'perma_option' : true, | |
39 | + 'display_name' : 'Disqus', | |
40 | + 'referrer_track' : '', | |
41 | + 'shortname' : '', | |
42 | + 'count' : 'comments', | |
43 | + 'onclick' : null, | |
44 | + 'button' : function (options, uri, settings) { | |
45 | + var shortname = options.shortname || window.disqus_shortname || ''; | |
46 | + var $code; | |
47 | + if (settings.layout === 'line') { | |
48 | + $code = $('<div class="disqus-widget">'+ | |
49 | + '<a href="#disqus_thread" class="name">Disq<span class="us">us</span></a>'+ | |
50 | + '<span class="count"><i></i><u></u><a href="#disqus_thread"> </a></span></div>'); | |
51 | + } | |
52 | + else { | |
53 | + $code = $('<div class="disqus-widget">'+ | |
54 | + '<div class="count"><i></i><u></u><a href="#disqus_thread"> </a></div>'+ | |
55 | + '<a href="#disqus_thread" class="name">Disq<span class="us">us</span></a></div>'); | |
56 | + } | |
57 | + | |
58 | + $code.attr({ | |
59 | + 'data-count' : options.count, | |
60 | + 'data-shortname' : shortname, | |
61 | + 'data-uri' : uri + options.referrer_track | |
62 | + }); | |
63 | + | |
64 | + if (options.onclick) { | |
65 | + $code.find('a').click(typeof options.onclick === "function" ? | |
66 | + options.onclick : new Function("event", options.onclick)); | |
67 | + } | |
68 | + | |
69 | + // this breaks every other usage of the disqus count API: | |
70 | + window.DISQUSWIDGETS = DISQUSWIDGETS; | |
71 | + | |
72 | + $.getScript('https://'+shortname+'.disqus.com/count-data.js?2='+encodeURIComponent(uri + options.referrer_track)); | |
73 | + | |
74 | + return $code; | |
75 | + } | |
76 | + }; | |
77 | +})(jQuery); | ... | ... |
... | ... | @@ -0,0 +1,81 @@ |
1 | +/* | |
2 | + * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz | |
3 | + * | |
4 | + * http://www.heise.de/extras/socialshareprivacy/ | |
5 | + * http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html | |
6 | + * | |
7 | + * Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt, | |
8 | + * Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de | |
9 | + * | |
10 | + * Copyright (c) 2012 Mathias Panzenböck | |
11 | + * | |
12 | + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
13 | + * | |
14 | + * Spread the word, link to us if you can. | |
15 | + */ | |
16 | +(function ($, undefined) { | |
17 | + "use strict"; | |
18 | + | |
19 | + var locales = {"af":["ZA"],"ar":["AR"],"az":["AZ"],"be":["BY"],"bg":["BG"],"bn":["IN"],"bs":["BA"],"ca":["ES"],"cs":["CZ"],"cy":["GB"],"da":["DK"],"de":["DE"],"el":["GR"],"en":["GB","PI","UD","US"],"eo":["EO"],"es":["ES","LA"],"et":["EE"],"eu":["ES"],"fa":["IR"],"fb":["LT"],"fi":["FI"],"fo":["FO"],"fr":["CA","FR"],"fy":["NL"],"ga":["IE"],"gl":["ES"],"he":["IL"],"hi":["IN"],"hr":["HR"],"hu":["HU"],"hy":["AM"],"id":["ID"],"is":["IS"],"it":["IT"],"ja":["JP"],"ka":["GE"],"km":["KH"],"ko":["KR"],"ku":["TR"],"la":["VA"],"lt":["LT"],"lv":["LV"],"mk":["MK"],"ml":["IN"],"ms":["MY"],"nb":["NO"],"ne":["NP"],"nl":["NL"],"nn":["NO"],"pa":["IN"],"pl":["PL"],"ps":["AF"],"pt":["BR","PT"],"ro":["RO"],"ru":["RU"],"sk":["SK"],"sl":["SI"],"sq":["AL"],"sr":["RS"],"sv":["SE"],"sw":["KE"],"ta":["IN"],"te":["IN"],"th":["TH"],"tl":["PH"],"tr":["TR"],"uk":["UA"],"vi":["VN"],"zh":["CN","HK","TW"]}; | |
20 | + | |
21 | + $.fn.socialSharePrivacy.settings.services.facebook = { | |
22 | + 'status' : true, | |
23 | + 'button_class' : 'fb_like', | |
24 | + 'dummy_line_img' : 'images/dummy_facebook.png', | |
25 | + 'dummy_box_img' : 'images/dummy_box_facebook.png', | |
26 | + 'dummy_alt' : 'Facebook "Like"-Dummy', | |
27 | + 'txt_info' : 'Two clicks for more privacy: The Facebook Like button will be enabled once you click here. Activating the button already sends data to Facebook – see <em>i</em>.', | |
28 | + 'txt_off' : 'not connected to Facebook', | |
29 | + 'txt_on' : 'connected to Facebook', | |
30 | + 'perma_option' : true, | |
31 | + 'display_name' : 'Facebook Like/Recommend', | |
32 | + 'referrer_track' : '', | |
33 | + 'action' : 'like', | |
34 | + 'colorscheme' : 'light', | |
35 | + 'font' : '', | |
36 | + 'button' : function (options, uri, settings) { | |
37 | + // ensure a locale that is supported by facebook | |
38 | + // otherwise facebook renders nothing | |
39 | + var match = /^([a-z]{2})_([A-Z]{2})$/.exec(options.language); | |
40 | + var locale = "en_US"; | |
41 | + | |
42 | + if (match) { | |
43 | + if (match[1] in locales) { | |
44 | + var subs = locales[match[1]]; | |
45 | + if ($.inArray(match[2], subs) !== -1) { | |
46 | + locale = options.language; | |
47 | + } | |
48 | + else { | |
49 | + locale = match[1]+"_"+subs[0]; | |
50 | + } | |
51 | + } | |
52 | + } | |
53 | + else if (options.language in locales) { | |
54 | + locale = options.language+"_"+locales[options.language][0]; | |
55 | + } | |
56 | + | |
57 | + var params = { | |
58 | + locale : locale, | |
59 | + href : uri + options.referrer_track, | |
60 | + send : 'false', | |
61 | + show_faces : 'false', | |
62 | + action : options.action, | |
63 | + colorscheme: options.colorscheme | |
64 | + }; | |
65 | + if (options.font) params.font = options.font; | |
66 | + | |
67 | + if (settings.layout === 'line') { | |
68 | + params.width = '120'; | |
69 | + params.height = '20'; | |
70 | + params.layout = 'button_count'; | |
71 | + } | |
72 | + else { | |
73 | + params.width = 62; | |
74 | + params.height = 61; | |
75 | + params.layout = 'box_count'; | |
76 | + } | |
77 | + return $('<iframe scrolling="no" frameborder="0" allowtransparency="true"></iframe>').attr( | |
78 | + 'src', 'https://www.facebook.com/plugins/like.php?'+$.param(params)); | |
79 | + } | |
80 | + }; | |
81 | +})(jQuery); | ... | ... |
... | ... | @@ -0,0 +1,38 @@ |
1 | +/* | |
2 | + * Facebook share module for jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz | |
3 | + * | |
4 | + * http://www.heise.de/extras/socialshareprivacy/ | |
5 | + * http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html | |
6 | + * | |
7 | + * Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt, | |
8 | + * Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de | |
9 | + * | |
10 | + * Copyright (c) 2012 Mathias Panzenböck | |
11 | + * | |
12 | + * Fbshare module: | |
13 | + * copyright (c) 2013 zzzen.com | |
14 | + * | |
15 | + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
16 | + * | |
17 | + * Spread the word, link to us if you can. | |
18 | + */ | |
19 | +(function ($, undefined) { | |
20 | + "use strict"; | |
21 | + | |
22 | + $.fn.socialSharePrivacy.settings.services.fbshare = { | |
23 | + 'status' : true, | |
24 | + 'privacy' : 'safe', | |
25 | + 'button_class' : 'fbshare', | |
26 | + 'line_img' : 'images/fbshare.png', | |
27 | + 'box_img' : 'images/box_fbshare.png', | |
28 | + 'txt_info' : 'Share via facebook.', | |
29 | + 'txt_button' : 'Facebook Share', | |
30 | + 'display_name' : 'Facebook Share', | |
31 | + 'referrer_track' : '', | |
32 | + 'button' : function (options, uri, settings) { | |
33 | + return $('<a/>', {target: '_blank', href: 'https://www.facebook.com/sharer/sharer.php?'+$.param({u:uri + options.referrer_track})}).append( | |
34 | + $('<img>', {alt: options.txt_button, | |
35 | + src: options.path_prefix + (settings.layout === 'line' ? options.line_img : options.box_img)})); | |
36 | + } | |
37 | + }; | |
38 | +})(jQuery); | ... | ... |
... | ... | @@ -0,0 +1,72 @@ |
1 | +/* | |
2 | + * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz | |
3 | + * | |
4 | + * Copyright (c) 2012 Mathias Panzenböck | |
5 | + * | |
6 | + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
7 | + * | |
8 | + * Spread the word, link to us if you can. | |
9 | + */ | |
10 | + | |
11 | +(function ($, undefined) { | |
12 | + "use strict"; | |
13 | + | |
14 | + function get (self, options, uri, settings, name) { | |
15 | + var value = options[name]; | |
16 | + if (typeof value === "function") { | |
17 | + return value.call(self, options, uri, settings); | |
18 | + } | |
19 | + return String(value); | |
20 | + } | |
21 | + | |
22 | + // using an unsupported language breaks the flattr button | |
23 | + var langs = {en:true,sq:true,ar:true,be:true,bg:true,ca:true,zh:true,hr:true,cs:true,da:true,nl:true,eo:true,et:true,fi:true,fr:true,es:true,de:true,el:true,iw:true,hi:true,hu:true,is:true,'in':true,ga:true,it:true,ja:true,ko:true,lv:true,lt:true,mk:true,ms:true,mt:true,no:true,nn:true,fa:true,pl:true,pt:true,ro:true,ru:true,sr:true,sk:true,sl:true,sv:true,th:true,tr:true,uk:true,vi:true}; | |
24 | + | |
25 | + $.fn.socialSharePrivacy.settings.services.flattr = { | |
26 | + 'status' : true, | |
27 | + 'button_class' : 'flattr', | |
28 | + 'dummy_line_img' : 'images/dummy_flattr.png', | |
29 | + 'dummy_box_img' : 'images/dummy_box_flattr.png', | |
30 | + 'dummy_alt' : '"Flattr"-Dummy', | |
31 | + 'txt_info' : 'Two clicks for more privacy: The Flattr button will be enabled once you click here. Activating the button already sends data to Flattr – see <em>i</em>.', | |
32 | + 'txt_off' : 'not connected to Flattr', | |
33 | + 'txt_on' : 'connected to Flattr', | |
34 | + 'perma_option' : true, | |
35 | + 'display_name' : 'Flattr', | |
36 | + 'referrer_track' : '', | |
37 | + 'title' : $.fn.socialSharePrivacy.getTitle, | |
38 | + 'description' : $.fn.socialSharePrivacy.getDescription, | |
39 | + 'uid' : '', | |
40 | + 'category' : '', | |
41 | + 'tags' : '', | |
42 | + 'popout' : '', | |
43 | + 'hidden' : '', | |
44 | + 'button' : function (options, uri, settings) { | |
45 | + var attrs = { | |
46 | + href : uri + options.referrer_track, | |
47 | + title : get(this, options, uri, settings, 'title') | |
48 | + }; | |
49 | + if (options.uid) attrs['data-flattr-uid'] = options.uid; | |
50 | + if (options.hidden) attrs['data-flattr-hidden'] = options.hidden; | |
51 | + if (options.popout) attrs['data-flattr-popout'] = options.popout; | |
52 | + if (options.category) attrs['data-flattr-category'] = options.category; | |
53 | + if (options.tags) attrs['data-flattr-tags'] = options.tags; | |
54 | + if (options.language) { | |
55 | + var lang = String(options.language).replace('-','_'); | |
56 | + var baselang = lang.split('_')[0]; | |
57 | + if (langs[baselang] === true) { | |
58 | + attrs['data-flattr-language'] = attrs.lang = lang; | |
59 | + } | |
60 | + } | |
61 | + if (settings.layout === 'line') attrs['data-flattr-button'] = 'compact'; | |
62 | + | |
63 | + var $code = $('<a class="FlattrButton">' + get(this, options, uri, settings, 'description') + | |
64 | + '</a><script text="text/javscript" src="'+ | |
65 | + 'https://api.flattr.com/js/0.6/load.js?mode=auto"></script>'); | |
66 | + | |
67 | + $code.filter('a').attr(attrs); | |
68 | + | |
69 | + return $code; | |
70 | + } | |
71 | + }; | |
72 | +})(jQuery); | ... | ... |
... | ... | @@ -0,0 +1,44 @@ |
1 | +/* | |
2 | + * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz | |
3 | + * | |
4 | + * http://www.heise.de/extras/socialshareprivacy/ | |
5 | + * http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html | |
6 | + * | |
7 | + * Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt, | |
8 | + * Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de | |
9 | + * | |
10 | + * Copyright (c) 2012 Mathias Panzenböck | |
11 | + * | |
12 | + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
13 | + * | |
14 | + * Spread the word, link to us if you can. | |
15 | + */ | |
16 | +(function ($, undefined) { | |
17 | + "use strict"; | |
18 | + | |
19 | + $.fn.socialSharePrivacy.settings.services.gplus = { | |
20 | + 'status' : true, | |
21 | + 'button_class' : 'gplusone', | |
22 | + 'dummy_line_img' : 'images/dummy_gplus.png', | |
23 | + 'dummy_box_img' : 'images/dummy_box_gplus.png', | |
24 | + 'dummy_alt' : '"Google+1"-Dummy', | |
25 | + 'txt_info' : 'Two clicks for more privacy: The Google+ button will be enabled once you click here. Activating the button already sends data to Google – see <em>i</em>.', | |
26 | + 'txt_off' : 'not connected to Google+', | |
27 | + 'txt_on' : 'connected to Google+', | |
28 | + 'perma_option' : true, | |
29 | + 'display_name' : 'Google+', | |
30 | + 'referrer_track' : '', | |
31 | + 'button' : function (options, uri, settings) { | |
32 | + // we use the Google+ "asynchronous" code, standard code is flaky if inserted into dom after load | |
33 | + var $code = $('<div class="g-plusone"></div><script type="text/javascript">window.___gcfg = {lang: "' + | |
34 | + options.language.replace('_','-') + '"}; (function() { var po = document.createElement("script"); ' + | |
35 | + 'po.type = "text/javascript"; po.async = true; po.src = "https://apis.google.com/js/plusone.js"; ' + | |
36 | + 'var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(po, s); })(); </script>'); | |
37 | + $code.filter('.g-plusone').attr({ | |
38 | + 'data-href': uri + options.referrer_track, | |
39 | + 'data-size': settings.layout === 'line' ? 'medium' : 'tall' | |
40 | + }); | |
41 | + return $code; | |
42 | + } | |
43 | + }; | |
44 | +})(jQuery); | ... | ... |
... | ... | @@ -0,0 +1,68 @@ |
1 | +/* | |
2 | + * jquery.socialshareprivacy.js | |
3 | + * | |
4 | + * Copyright (c) 2012 Mathias Panzenböck | |
5 | + * | |
6 | + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
7 | + * | |
8 | + */ | |
9 | +(function ($, undefined) { | |
10 | + "use strict"; | |
11 | + | |
12 | + $.fn.socialSharePrivacy.settings.services.hackernews = { | |
13 | + 'status' : true, | |
14 | + 'dummy_line_img' : 'images/dummy_hackernews.png', | |
15 | + 'dummy_box_img' : 'images/dummy_box_hackernews.png', | |
16 | + 'dummy_alt' : '"Hacker News"-Dummy', | |
17 | + 'txt_info' : 'Two clicks for more privacy: The Hacker News button will be enabled once you click here. Activating the button already sends data to Hacker News – see <em>i</em>.', | |
18 | + 'txt_off' : 'not connected to Hacker News', | |
19 | + 'txt_on' : 'connected to Hacker News', | |
20 | + 'perma_option' : true, | |
21 | + 'display_name' : 'Hacker News', | |
22 | + 'txt_n_points' : '{points} points', | |
23 | + 'txt_one_point' : '1 point', | |
24 | + 'referrer_track' : '', | |
25 | + 'title' : $.fn.socialSharePrivacy.getTitle, | |
26 | + 'button' : function (options, uri, settings) { | |
27 | + var url = uri + options.referrer_track; | |
28 | + var title = typeof(options.title) === 'function' ? | |
29 | + options.title.call(this, options, uri, settings) : | |
30 | + String(options.title); | |
31 | + | |
32 | + var $code; | |
33 | + if (settings.layout === 'line') { | |
34 | + $code = $('<div class="hackernews-widget">'+ | |
35 | + '<a class="name" target="_blank">Y</a>'+ | |
36 | + '<span class="points"><i></i><u></u><a target="_blank">submit</a></span></div>'); | |
37 | + } | |
38 | + else { | |
39 | + $code = $('<div class="hackernews-widget">'+ | |
40 | + '<div class="points"><i></i><u></u><a target="_blank">submit</a></div>'+ | |
41 | + '<a class="name" target="_blank">Y</a></div>'); | |
42 | + } | |
43 | + | |
44 | + $code.find("a").attr("href", "https://news.ycombinator.com/submitlink?"+$.param({ | |
45 | + "u": url, | |
46 | + "t": title | |
47 | + })); | |
48 | + | |
49 | + $.ajax("https://api.thriftdb.com/api.hnsearch.com/items/_search?filter[fields][url][]="+encodeURIComponent(url), { | |
50 | + dataType: "jsonp", | |
51 | + success: function (data) { | |
52 | + var item = data.results[0]; | |
53 | + if (item) { | |
54 | + item = item.item; | |
55 | + var points = $.fn.socialSharePrivacy.formatNumber(item.points); | |
56 | + $code.find("a").attr("href", "https://news.ycombinator.com/item?id="+item.id); | |
57 | + $code.find(".points a").text(points).attr('title', | |
58 | + item.points === 1 ? | |
59 | + options.txt_one_point : | |
60 | + options.txt_n_points.replace(/{points}/g, points)); | |
61 | + } | |
62 | + } | |
63 | + }); | |
64 | + | |
65 | + return $code; | |
66 | + } | |
67 | + }; | |
68 | +})(jQuery); | ... | ... |
... | ... | @@ -0,0 +1,53 @@ |
1 | +/* | |
2 | + * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz | |
3 | + * | |
4 | + * http://www.heise.de/extras/socialshareprivacy/ | |
5 | + * http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html | |
6 | + * | |
7 | + * Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt, | |
8 | + * Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de | |
9 | + * | |
10 | + * Copyright (c) 2012 Mathias Panzenböck | |
11 | + * | |
12 | + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
13 | + * | |
14 | + * Spread the word, link to us if you can. | |
15 | + */ | |
16 | +(function ($, undefined) { | |
17 | + "use strict"; | |
18 | + | |
19 | + $.fn.socialSharePrivacy.settings.services.linkedin = { | |
20 | + 'status' : true, | |
21 | + 'dummy_line_img' : 'images/dummy_linkedin.png', | |
22 | + 'dummy_box_img' : 'images/dummy_box_linkedin.png', | |
23 | + 'dummy_alt' : '"LinkedIn"-Dummy', | |
24 | + 'txt_info' : 'Two clicks for more privacy: The Linked in button will be enabled once you click here. Activating the button already sends data to Linked in – see <em>i</em>.', | |
25 | + 'txt_off' : 'not connected to LinkedIn', | |
26 | + 'txt_on' : 'connected to LinkedIn', | |
27 | + 'perma_option' : true, | |
28 | + 'display_name' : 'LinkedIn', | |
29 | + 'referrer_track' : '', | |
30 | + 'onsuccess' : null, | |
31 | + 'onerror' : null, | |
32 | + 'showzero' : false, | |
33 | + 'button' : function (options, uri, settings) { | |
34 | + var attrs = { | |
35 | + 'data-counter' : settings.layout === 'line' ? 'right' : 'top', | |
36 | + 'data-url' : uri + options.referrer_track, | |
37 | + 'data-showzero': String(options.showzero) | |
38 | + }; | |
39 | + if (options.onsuccess) attrs['data-onsuccess'] = options.onsuccess; | |
40 | + if (options.onerror) attrs['data-onerror'] = options.onerror; | |
41 | + var $code = $('<script type="IN/Share"></script>').attr(attrs); | |
42 | + | |
43 | + if (window.IN && window.IN.parse) { | |
44 | + $code = $code.add('<script type="text/javascript">IN.parse(document.body);</script>'); | |
45 | + } | |
46 | + else if ($('script[src^="https://platform.linkedin.com/"]').length === 0) { | |
47 | + $code = $code.add('<script type="text/javascript" src="https://platform.linkedin.com/in.js"></script>'); | |
48 | + } | |
49 | + | |
50 | + return $code; | |
51 | + } | |
52 | + }; | |
53 | +})(jQuery); | ... | ... |
... | ... | @@ -0,0 +1,50 @@ |
1 | +/* | |
2 | + * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz | |
3 | + * | |
4 | + * Copyright (c) 2012 Mathias Panzenböck | |
5 | + * | |
6 | + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
7 | + * | |
8 | + * Spread the word, link to us if you can. | |
9 | + */ | |
10 | +(function ($, undefined) { | |
11 | + "use strict"; | |
12 | + | |
13 | + function get (self, options, uri, settings, name) { | |
14 | + var value = options[name]; | |
15 | + if (typeof value === "function") { | |
16 | + value = value.call(self, options, uri, settings); | |
17 | + } | |
18 | + return String(value); | |
19 | + } | |
20 | + | |
21 | + var getDescription = $.fn.socialSharePrivacy.getDescription; | |
22 | + | |
23 | + function getBody (options, uri, settings) { | |
24 | + return getDescription.call(this, options, uri, settings) + '\n\n' + uri + options.referrer_track; | |
25 | + } | |
26 | + | |
27 | + $.fn.socialSharePrivacy.settings.services.mail = { | |
28 | + 'status' : true, | |
29 | + 'privacy' : 'safe', | |
30 | + 'button_class' : 'mail', | |
31 | + 'line_img' : 'images/mail.png', | |
32 | + 'box_img' : 'images/box_mail.png', | |
33 | + 'txt_info' : 'Send this via email to a friend.', | |
34 | + 'txt_button' : 'Send Email', | |
35 | + 'display_name' : 'Mail', | |
36 | + 'referrer_track' : '', | |
37 | + 'subject' : $.fn.socialSharePrivacy.getTitle, | |
38 | + 'body' : getBody, | |
39 | + 'button' : function (options, uri, settings) { | |
40 | + return $('<a/>').attr( | |
41 | + 'href', 'mailto:?'+$.param({ | |
42 | + subject : get(this, options, uri, settings, 'subject'), | |
43 | + body : get(this, options, uri, settings, 'body') | |
44 | + }).replace(/\+/g,'%20')).append($('<img>', { | |
45 | + alt: options.txt_button, | |
46 | + src: options.path_prefix + (settings.layout === 'line' ? options.line_img : options.box_img) | |
47 | + })); | |
48 | + } | |
49 | + }; | |
50 | +})(jQuery); | ... | ... |
... | ... | @@ -0,0 +1,83 @@ |
1 | +/* | |
2 | + * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz | |
3 | + * | |
4 | + * http://www.heise.de/extras/socialshareprivacy/ | |
5 | + * http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html | |
6 | + * | |
7 | + * Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt, | |
8 | + * Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de | |
9 | + * | |
10 | + * Copyright (c) 2012 Mathias Panzenböck | |
11 | + * | |
12 | + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
13 | + * | |
14 | + * Spread the word, link to us if you can. | |
15 | + */ | |
16 | + | |
17 | +(function ($, undefined) { | |
18 | + "use strict"; | |
19 | + | |
20 | + function get (self, options, uri, settings, name) { | |
21 | + var value = options[name]; | |
22 | + if (typeof value === "function") { | |
23 | + return value.call(self, options, uri, settings); | |
24 | + } | |
25 | + return String(value); | |
26 | + } | |
27 | + | |
28 | + var loadingScript = false; | |
29 | + function loadScript () { | |
30 | + // prevent already loaded buttons from being broken: | |
31 | + $('.social_share_privacy_area .pinterest .pinit a[data-pin-log]').attr('data-pin-do','ignore'); | |
32 | + $.ajax({ | |
33 | + url : 'https://assets.pinterest.com/js/pinit.js', | |
34 | + dataType : 'script', | |
35 | + cache : true | |
36 | + }); | |
37 | + // because there is no callback yet I have no choice but to do this now: | |
38 | + loadingScript = false; | |
39 | + } | |
40 | + | |
41 | + $.fn.socialSharePrivacy.settings.services.pinterest = { | |
42 | + 'status' : true, | |
43 | + 'button_class' : 'pinit', | |
44 | + 'dummy_line_img' : 'images/dummy_pinterest.png', | |
45 | + 'dummy_box_img' : 'images/dummy_box_pinterest.png', | |
46 | + 'dummy_alt' : '"Pin it"-Dummy', | |
47 | + 'txt_info' : 'Two clicks for more privacy: The Pin it button will be enabled once you click here. Activating the button already sends data to Pinterest – see <em>i</em>.', | |
48 | + 'txt_off' : 'not connected to Pinterest', | |
49 | + 'txt_on' : 'connected to Pinterest', | |
50 | + 'perma_option' : true, | |
51 | + 'display_name' : 'Pinterest', | |
52 | + 'referrer_track' : '', | |
53 | + 'title' : $.fn.socialSharePrivacy.getTitle, | |
54 | + 'description' : $.fn.socialSharePrivacy.getDescription, | |
55 | + 'media' : $.fn.socialSharePrivacy.getImage, | |
56 | + 'button' : function (options, uri, settings) { | |
57 | + var params = { | |
58 | + url : uri + options.referrer_track, | |
59 | + media : get(this, options, uri, settings, 'media') | |
60 | + }; | |
61 | + var title = get(this, options, uri, settings, 'title'); | |
62 | + var description = get(this, options, uri, settings, 'description'); | |
63 | + if (title) params.title = title; | |
64 | + if (description) params.description = description; | |
65 | + | |
66 | + var $code = $('<a data-pin-do="buttonPin"><img /></a>'); | |
67 | + | |
68 | + $code.filter('a').attr({ | |
69 | + 'data-pin-config' : settings.layout === 'line' ? 'beside' : 'above', | |
70 | + href : 'https://pinterest.com/pin/create/button/?'+$.param(params) | |
71 | + }).find('img').attr('src', 'https://assets.pinterest.com/images/pidgets/pin_it_button.png'); | |
72 | + | |
73 | + // This way when the user has permanently enabled pinterest and there are several pinterest | |
74 | + // buttons on one webpage it will load the script only once and so the buttons will work: | |
75 | + if (!loadingScript) { | |
76 | + loadingScript = true; | |
77 | + setTimeout(loadScript, 10); | |
78 | + } | |
79 | + | |
80 | + return $code; | |
81 | + } | |
82 | + }; | |
83 | +})(jQuery); | ... | ... |
... | ... | @@ -0,0 +1,72 @@ |
1 | +/* | |
2 | + * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz | |
3 | + * | |
4 | + * http://www.heise.de/extras/socialshareprivacy/ | |
5 | + * http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html | |
6 | + * | |
7 | + * Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt, | |
8 | + * Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de | |
9 | + * | |
10 | + * Copyright (c) 2012 Mathias Panzenböck | |
11 | + * | |
12 | + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
13 | + * | |
14 | + * Spread the word, link to us if you can. | |
15 | + */ | |
16 | + | |
17 | +(function ($, undefined) { | |
18 | + "use strict"; | |
19 | + | |
20 | + function get (self, options, uri, settings, name) { | |
21 | + var value = options[name]; | |
22 | + if (typeof value === "function") { | |
23 | + return value.call(self, options, uri, settings); | |
24 | + } | |
25 | + return String(value); | |
26 | + } | |
27 | + | |
28 | + $.fn.socialSharePrivacy.settings.services.reddit = { | |
29 | + 'status' : true, | |
30 | + 'button_class' : 'reddit', | |
31 | + 'dummy_line_img' : 'images/dummy_reddit.png', | |
32 | + 'dummy_box_img' : 'images/dummy_box_reddit.png', | |
33 | + 'dummy_alt' : '"Reddit this!"-Dummy', | |
34 | + 'txt_info' : 'Two clicks for more privacy: The reddit this! button will be enabled once you click here. Activating the button already sends data to reddit – see <em>i</em>.', | |
35 | + 'txt_off' : 'not connected to reddit', | |
36 | + 'txt_on' : 'connected to reddit', | |
37 | + 'perma_option' : true, | |
38 | + 'display_name' : 'Reddit', | |
39 | + 'referrer_track' : '', | |
40 | + 'title' : $.fn.socialSharePrivacy.getTitle, | |
41 | + 'target' : '', | |
42 | + 'newwindow' : '1', | |
43 | + 'bgcolor' : 'transparent', | |
44 | + 'bordercolor' : '', | |
45 | + 'button' : function (options, uri, settings) { | |
46 | + var base_url, w, layout; | |
47 | + if (settings.layout === 'line') { | |
48 | + w = 120; | |
49 | + layout = '/button/button1.html?'; | |
50 | + } | |
51 | + else { | |
52 | + w = 58; | |
53 | + layout = '/button/button2.html?'; | |
54 | + } | |
55 | + base_url = 'https://redditstatic.s3.amazonaws.com'; | |
56 | + var params = { | |
57 | + url : uri + options.referrer_track, | |
58 | + width : String(w) | |
59 | + }; | |
60 | + var title = get(this, options, uri, settings, 'title'); | |
61 | + var target = get(this, options, uri, settings, 'target'); | |
62 | + if (title) params.title = title; | |
63 | + if (target) params.target = target; | |
64 | + if (options.bgcolor) params.bgcolor = options.bgcolor; | |
65 | + if (options.bordercolor) params.bordercolor = options.bordercolor; | |
66 | + if (options.newwindow) params.newwindow = options.newwindow; | |
67 | + | |
68 | + return $('<iframe allowtransparency="true" frameborder="0" scrolling="no"></iframe>').attr( | |
69 | + 'src', base_url+layout+$.param(params)); | |
70 | + } | |
71 | + }; | |
72 | +})(jQuery); | ... | ... |
... | ... | @@ -0,0 +1,55 @@ |
1 | +/* | |
2 | + * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz | |
3 | + * | |
4 | + * http://www.heise.de/extras/socialshareprivacy/ | |
5 | + * http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html | |
6 | + * | |
7 | + * Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt, | |
8 | + * Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de | |
9 | + * | |
10 | + * Copyright (c) 2012 Mathias Panzenböck | |
11 | + * | |
12 | + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
13 | + * | |
14 | + * Warning: this button uses plaintext http and can be harmful to users under opressive regimes | |
15 | + * | |
16 | + */ | |
17 | + | |
18 | +(function ($, undefined) { | |
19 | + "use strict"; | |
20 | + | |
21 | + $.fn.socialSharePrivacy.settings.services.stumbleupon = { | |
22 | + 'status' : true, | |
23 | + 'button_class' : 'stumbleupon', | |
24 | + 'dummy_line_img' : 'images/dummy_stumbleupon.png', | |
25 | + 'dummy_box_img' : 'images/dummy_box_stumbleupon.png', | |
26 | + 'dummy_alt' : '"Stumble!"-Dummy', | |
27 | + 'txt_info' : 'Two clicks for more privacy: The Stumble! button will be enabled once you click here. Activating the button already sends data to StumbleUpon – see <em>i</em>.', | |
28 | + 'txt_off' : 'not connected to StumbleUpon', | |
29 | + 'txt_on' : 'connected to StumbleUpon', | |
30 | + 'perma_option' : true, | |
31 | + 'display_name' : 'Stumble Upon', | |
32 | + 'referrer_track' : '', | |
33 | + 'button' : function (options, uri, settings) { | |
34 | + var base_url = 'https:' === document.location.protocol ? 'https://' : 'http://'; | |
35 | + var w, h; | |
36 | + | |
37 | + if (settings.layout === 'line') { | |
38 | + w = '74'; | |
39 | + h = '18'; | |
40 | + base_url += 'badge.stumbleupon.com/badge/embed/1/?'; | |
41 | + } | |
42 | + else { | |
43 | + w = '50'; | |
44 | + h = '60'; | |
45 | + base_url += 'badge.stumbleupon.com/badge/embed/5/?'; | |
46 | + } | |
47 | + | |
48 | + return $('<iframe allowtransparency="true" frameborder="0" scrolling="no"></iframe>').attr({ | |
49 | + src: base_url+$.param({url: uri + options.referrer_track}), | |
50 | + width: w, | |
51 | + height: h | |
52 | + }); | |
53 | + } | |
54 | + }; | |
55 | +})(jQuery); | ... | ... |
... | ... | @@ -0,0 +1,113 @@ |
1 | +/* | |
2 | + * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz | |
3 | + * | |
4 | + * Copyright (c) 2012 Mathias Panzenböck | |
5 | + * | |
6 | + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
7 | + * | |
8 | + * Spread the word, link to us if you can. | |
9 | + */ | |
10 | +(function ($, undefined) { | |
11 | + "use strict"; | |
12 | + | |
13 | + function getQuote (options, uri, settings) { | |
14 | + var text = $.trim($('article, p').text()); | |
15 | + | |
16 | + if (text.length <= 600) { | |
17 | + return text; | |
18 | + } | |
19 | + | |
20 | + var abbrev = text.slice(0, 597); | |
21 | + if (/^\w+$/.test(text.slice(596,598))) { | |
22 | + var match = /^(.*)\s\S*$/.exec(abbrev); | |
23 | + if (match) { | |
24 | + abbrev = match[1]; | |
25 | + } | |
26 | + } | |
27 | + return $.trim(abbrev) + "\u2026"; | |
28 | + } | |
29 | + | |
30 | + function getClickthru (options, uri) { | |
31 | + return uri + options.referrer_track; | |
32 | + } | |
33 | + | |
34 | + function get (self, options, uri, settings, name) { | |
35 | + var value = options[name]; | |
36 | + if (typeof value === "function") { | |
37 | + return value.call(self, options, uri, settings); | |
38 | + } | |
39 | + return String(value); | |
40 | + } | |
41 | + | |
42 | + function openTumblr (event) { | |
43 | + var winx = window.screenX || window.screenLeft; | |
44 | + var winy = window.screenY || window.screenTop; | |
45 | + var winw = window.outerWidth || window.innerWidth; | |
46 | + var winh = window.outerHeight || window.innerHeight; | |
47 | + var width = 450; | |
48 | + var height = 430; | |
49 | + var x = Math.round(winx + (winw - width) * 0.5); | |
50 | + var y = Math.round(winy + (winh - height) * 0.5); | |
51 | + window.open(this.href, 't', 'left='+x+',top='+y+',toolbar=0,resizable=0,status=0,menubar=0,width='+width+',height='+height); | |
52 | + event.preventDefault(); | |
53 | + } | |
54 | + | |
55 | + $.fn.socialSharePrivacy.settings.services.tumblr = { | |
56 | + 'status' : true, | |
57 | + 'privacy' : 'safe', | |
58 | + 'button_class' : 'tumblr', | |
59 | + 'line_img' : 'images/tumblr.png', | |
60 | + 'box_img' : 'images/box_tumblr.png', | |
61 | + 'txt_info' : 'Post this on Tumblr.', | |
62 | + 'txt_button' : 'Share on Tubmlr', | |
63 | + 'display_name' : 'Tumblr', | |
64 | + 'referrer_track' : '', | |
65 | + 'type' : 'link', // possible values are 'link', 'quote', 'photo' or 'video' | |
66 | + // type: 'link': | |
67 | + 'name' : $.fn.socialSharePrivacy.getTitle, | |
68 | + 'description' : $.fn.socialSharePrivacy.getDescription, | |
69 | + // type: 'quote': | |
70 | + 'quote' : getQuote, | |
71 | + // type: 'photo': | |
72 | + 'photo' : $.fn.socialSharePrivacy.getImage, | |
73 | + 'clickthrou' : getClickthru, | |
74 | + // type: 'video': | |
75 | + 'embed' : $.fn.socialSharePrivacy.getEmbed, | |
76 | + // type: 'photo' or 'video': | |
77 | + 'caption' : $.fn.socialSharePrivacy.getDescription, | |
78 | + 'button' : function (options, uri, settings) { | |
79 | + var $code = $('<a target="_blank"/>').click(openTumblr); | |
80 | + $('<img>', { | |
81 | + alt: options.txt_button, | |
82 | + src: options.path_prefix + (settings.layout === 'line' ? options.line_img : options.box_img) | |
83 | + }).appendTo($code); | |
84 | + switch (options.type) { | |
85 | + case 'link': | |
86 | + return $code.attr('href', 'https://www.tumblr.com/share/link?'+$.param({ | |
87 | + url : uri + options.referrer_track, | |
88 | + name : get(this, options, uri, settings, 'name'), | |
89 | + description : get(this, options, uri, settings, 'description') | |
90 | + })); | |
91 | + | |
92 | + case 'quote': | |
93 | + return $code.attr('href', 'https://www.tumblr.com/share/quote?'+$.param({ | |
94 | + source : uri + options.referrer_track, | |
95 | + quote : get(this, options, uri, settings, 'quote') | |
96 | + })); | |
97 | + | |
98 | + case 'photo': | |
99 | + return $code.attr('href', 'https://www.tumblr.com/share/photo?'+$.param({ | |
100 | + source : get(this, options, uri, settings, 'photo'), | |
101 | + caption : get(this, options, uri, settings, 'caption'), | |
102 | + clickthrou : get(this, options, uri, settings, 'clickthrou') | |
103 | + })); | |
104 | + | |
105 | + case 'video': | |
106 | + return $code.attr('href', 'https://www.tumblr.com/share/video?'+$.param({ | |
107 | + embed : get(this, options, uri, settings, 'embed'), | |
108 | + caption : get(this, options, uri, settings, 'caption') | |
109 | + })); | |
110 | + } | |
111 | + } | |
112 | + }; | |
113 | +})(jQuery); | ... | ... |
... | ... | @@ -0,0 +1,62 @@ |
1 | +/* | |
2 | + * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz | |
3 | + * | |
4 | + * http://www.heise.de/extras/socialshareprivacy/ | |
5 | + * http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html | |
6 | + * | |
7 | + * Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt, | |
8 | + * Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de | |
9 | + * | |
10 | + * Copyright (c) 2012 Mathias Panzenböck | |
11 | + * | |
12 | + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
13 | + * | |
14 | + * Spread the word, link to us if you can. | |
15 | + */ | |
16 | + | |
17 | +(function ($, undefined) { | |
18 | + "use strict"; | |
19 | + | |
20 | + $.fn.socialSharePrivacy.settings.services.twitter = { | |
21 | + 'status' : true, | |
22 | + 'button_class' : 'tweet', | |
23 | + 'dummy_line_img' : 'images/dummy_twitter.png', | |
24 | + 'dummy_box_img' : 'images/dummy_box_twitter.png', | |
25 | + 'dummy_alt' : '"Tweet this"-Dummy', | |
26 | + 'txt_info' : 'Two clicks for more privacy: The Tweet this button will be enabled once you click here. Activating the button already sends data to Twitter – see <em>i</em>.', | |
27 | + 'txt_off' : 'not connected to Twitter', | |
28 | + 'txt_on' : 'connected to Twitter', | |
29 | + 'perma_option' : true, | |
30 | + 'display_name' : 'Twitter', | |
31 | + 'referrer_track' : '', | |
32 | + 'via' : '', | |
33 | + 'related' : '', | |
34 | + 'hashtags' : '', | |
35 | + 'dnt' : true, | |
36 | + 'text' : $.fn.socialSharePrivacy.getTitle, | |
37 | + 'button' : function (options, uri, settings) { | |
38 | + var text = typeof(options.text) === 'function' ? | |
39 | + options.text.call(this, options, uri, settings) : | |
40 | + String(options.text); | |
41 | + // 120 is the max character count left after twitters automatic | |
42 | + // url shortening with t.co | |
43 | + text = $.fn.socialSharePrivacy.abbreviateText(text, 120); | |
44 | + | |
45 | + var params = { | |
46 | + url : uri + options.referrer_track, | |
47 | + counturl: uri, | |
48 | + text : text, | |
49 | + count : settings.layout === 'line' ? 'horizontal' : 'vertical', | |
50 | + lang : options.language | |
51 | + }; | |
52 | + if (options.via) params.via = options.via; | |
53 | + if (options.related) params.related = options.related; | |
54 | + if (options.hashtags) params.hashtags = options.hashtags; | |
55 | + if (options.dnt) params.dnt = options.dnt; | |
56 | + | |
57 | + return $('<iframe allowtransparency="true" frameborder="0" scrolling="no"></iframe>').attr( | |
58 | + 'src', 'https://platform.twitter.com/widgets/tweet_button.html?' + | |
59 | + $.param(params).replace(/\+/g,'%20')); | |
60 | + } | |
61 | + }; | |
62 | +})(jQuery); | ... | ... |
... | ... | @@ -0,0 +1,40 @@ |
1 | +/* | |
2 | + * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz | |
3 | + * | |
4 | + * http://www.heise.de/extras/socialshareprivacy/ | |
5 | + * http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html | |
6 | + * | |
7 | + * Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt, | |
8 | + * Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de | |
9 | + * | |
10 | + * Copyright (c) 2012 Mathias Panzenböck | |
11 | + * | |
12 | + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
13 | + * | |
14 | + * Spread the word, link to us if you can. | |
15 | + */ | |
16 | +(function ($, undefined) { | |
17 | + "use strict"; | |
18 | + | |
19 | + $.fn.socialSharePrivacy.settings.services.xing = { | |
20 | + 'status' : true, | |
21 | + 'dummy_line_img' : 'images/dummy_xing.png', | |
22 | + 'dummy_box_img' : 'images/dummy_box_xing.png', | |
23 | + 'dummy_alt' : '"XING"-Dummy', | |
24 | + 'txt_info' : 'Two clicks for more privacy: The XING button will be enabled once you click here. Activating the button already sends data to XING – see <em>i</em>.', | |
25 | + 'txt_off' : 'not connected to XING', | |
26 | + 'txt_on' : 'connected to XING', | |
27 | + 'perma_option' : true, | |
28 | + 'display_name' : 'XING', | |
29 | + 'referrer_track' : '', | |
30 | + 'button' : function (options, uri, settings) { | |
31 | + var $code = $('<script type="XING/Share"></script>').attr({ | |
32 | + 'data-counter' : settings.layout === 'line' ? 'right' : 'top', | |
33 | + 'data-url' : uri + options.referrer_track, | |
34 | + 'data-lang' : options.language | |
35 | + }); | |
36 | + | |
37 | + return $code.add("<script type='text/javascript'>(function(d, s) { var x = d.createElement(s); s = d.getElementsByTagName(s)[0]; x.src = 'https://www.xing-share.com/js/external/share.js'; s.parentNode.insertBefore(x, s); })(document, 'script');</script>"); | |
38 | + } | |
39 | + }; | |
40 | +})(jQuery); | ... | ... |
... | ... | @@ -0,0 +1,23 @@ |
1 | +/** | |
2 | + * @license | |
3 | + * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz | |
4 | + * | |
5 | + * Copyright (c) 2012-2013 Mathias Panzenböck | |
6 | + * | |
7 | + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
8 | + * | |
9 | + * Spread the word, link to us if you can. | |
10 | + */ | |
11 | + | |
12 | +// load global settings | |
13 | +jQuery(document).ready(function ($) { | |
14 | + "use strict"; | |
15 | + | |
16 | + $('script[type="application/x-social-share-privacy-settings"]').each(function () { | |
17 | + var settings = (new Function('return ('+(this.textContent||this.innerText||this.text)+');')).call(this); | |
18 | + | |
19 | + if (typeof settings === "object") { | |
20 | + $.extend(true, $.fn.socialSharePrivacy.settings, settings); | |
21 | + } | |
22 | + }); | |
23 | +}); | ... | ... |
... | ... | @@ -0,0 +1,803 @@ |
1 | +/** | |
2 | + * @license | |
3 | + * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz | |
4 | + * | |
5 | + * http://www.heise.de/extras/socialshareprivacy/ | |
6 | + * http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html | |
7 | + * | |
8 | + * Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt, | |
9 | + * Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de | |
10 | + * | |
11 | + * Copyright (c) 2012-2013 Mathias Panzenböck | |
12 | + * | |
13 | + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php | |
14 | + * | |
15 | + * Spread the word, link to us if you can. | |
16 | + */ | |
17 | +(function ($, undefined) { | |
18 | + "use strict"; | |
19 | + | |
20 | + /* | |
21 | + * helper functions | |
22 | + */ | |
23 | + | |
24 | + /** | |
25 | + * Build an absolute url using a base url. | |
26 | + * The provided base url has to be a valid absolute url. It will not be validated! | |
27 | + * If no base url is given the document location is used. | |
28 | + * Schemes that behave other than http might not work. | |
29 | + * This function tries to support file:-urls, but might fail in some cases. | |
30 | + * email:-urls aren't supported at all (don't make sense anyway). | |
31 | + */ | |
32 | + function absurl (url, base) { | |
33 | + if (!base) base = document.baseURI || $("html > head > base").last().attr("href") || document.location.href; | |
34 | + if (!url) { | |
35 | + return base; | |
36 | + } | |
37 | + else if (/^[a-z][-+\.a-z0-9]*:/i.test(url)) { | |
38 | + // The scheme actually could contain any kind of alphanumerical unicode | |
39 | + // character, but JavaScript regular expressions don't support unicode | |
40 | + // character classes. Maybe /^[^:]+:/ or even /^.*:/ would be sufficient? | |
41 | + return url; | |
42 | + } | |
43 | + else if (url.slice(0,2) === '//') { | |
44 | + return /^[^:]+:/.exec(base)[0]+url; | |
45 | + } | |
46 | + | |
47 | + var ch = url.charAt(0); | |
48 | + if (ch === '/') { | |
49 | + if (/^file:/i.test(base)) { | |
50 | + // file scheme has no hostname | |
51 | + return 'file://'+url; | |
52 | + } | |
53 | + else { | |
54 | + return /^[^:]+:\/*[^\/]+/i.exec(base)[0]+url; | |
55 | + } | |
56 | + } | |
57 | + else if (ch === '#') { | |
58 | + // assume "#" only occures at the end indicating the fragment | |
59 | + return base.replace(/#.*$/,'')+url; | |
60 | + } | |
61 | + else if (ch === '?') { | |
62 | + // assume "?" and "#" only occure at the end indicating the query | |
63 | + // and the fragment | |
64 | + return base.replace(/[\?#].*$/,'')+url; | |
65 | + } | |
66 | + else { | |
67 | + var path; | |
68 | + if (/^file:/i.test(base)) { | |
69 | + path = base.replace(/^file:\/{0,2}/i,''); | |
70 | + base = "file://"; | |
71 | + } | |
72 | + else { | |
73 | + var match = /^([^:]+:\/*[^\/]+)(\/.*?)?(\?.*?)?(#.*)?$/.exec(base); | |
74 | + base = match[1]; | |
75 | + path = match[2]||"/"; | |
76 | + } | |
77 | + | |
78 | + path = path.split("/"); | |
79 | + path.pop(); | |
80 | + if (path.length === 0) { | |
81 | + // Ensure leading "/". Of course this is only valid on | |
82 | + // unix like filesystems. More magic would be needed to | |
83 | + // support other filesystems. | |
84 | + path.push(""); | |
85 | + } | |
86 | + path.push(url); | |
87 | + return base+path.join("/"); | |
88 | + } | |
89 | + } | |
90 | + | |
91 | + function formatNumber (number) { | |
92 | + number = Number(number); | |
93 | + | |
94 | + var prefix = ""; | |
95 | + var suffix = ""; | |
96 | + if (number < 0) { | |
97 | + prefix = "-"; | |
98 | + number = -number; | |
99 | + } | |
100 | + | |
101 | + if (number === Infinity) { | |
102 | + return prefix + "Infinity"; | |
103 | + } | |
104 | + | |
105 | + if (number > 9999) { | |
106 | + number = number / 1000; | |
107 | + suffix = "K"; | |
108 | + } | |
109 | + | |
110 | + number = Math.round(number); | |
111 | + if (number === 0) { | |
112 | + return "0"; | |
113 | + } | |
114 | + | |
115 | + var buf = []; | |
116 | + while (number > 0) { | |
117 | + var part = String(number % 1000); | |
118 | + | |
119 | + number = Math.floor(number / 1000); | |
120 | + if (number) { | |
121 | + while (part.length < 3) { | |
122 | + part = "0"+part; | |
123 | + } | |
124 | + } | |
125 | + | |
126 | + buf.unshift(part); | |
127 | + } | |
128 | + | |
129 | + return prefix + buf.join(",") + suffix; | |
130 | + } | |
131 | + | |
132 | + // helper function that gets the title of the current page | |
133 | + function getTitle (options, uri, settings) { | |
134 | + var title = settings && settings.title; | |
135 | + if (typeof title === "function") { | |
136 | + title = title.call(this, options, uri, settings); | |
137 | + } | |
138 | + | |
139 | + if (title) { | |
140 | + return title; | |
141 | + } | |
142 | + | |
143 | + var title = $('meta[name="DC.title"]').attr('content'); | |
144 | + var creator = $('meta[name="DC.creator"]').attr('content'); | |
145 | + | |
146 | + if (title && creator) { | |
147 | + return title + ' - ' + creator; | |
148 | + } else { | |
149 | + return title || $('meta[property="og:title"]').attr('content') || $('title').text(); | |
150 | + } | |
151 | + } | |
152 | + | |
153 | + function getDescription (options, uri, settings) { | |
154 | + var description = settings && settings.description; | |
155 | + if (typeof description === "function") { | |
156 | + description = description.call(this, options, uri, settings); | |
157 | + } | |
158 | + | |
159 | + if (description) { | |
160 | + return description; | |
161 | + } | |
162 | + | |
163 | + return abbreviateText( | |
164 | + $('meta[name="twitter:description"]').attr('content') || | |
165 | + $('meta[itemprop="description"]').attr('content') || | |
166 | + $('meta[name="description"]').attr('content') || | |
167 | + $.trim($('article, p').first().text()) || $.trim($('body').text()), 3500); | |
168 | + } | |
169 | + | |
170 | + var IMAGE_ATTR_MAP = { | |
171 | + META : 'content', | |
172 | + IMG : 'src', | |
173 | + A : 'href', | |
174 | + IFRAME : 'src', | |
175 | + LINK : 'href' | |
176 | + }; | |
177 | + | |
178 | + // find the largest image of the website | |
179 | + // if no image at all is found use googles favicon service, which | |
180 | + // defaults to a small globe (so there is always some image) | |
181 | + function getImage (options, uri, settings) { | |
182 | + var imgs, img = settings && settings.image; | |
183 | + if (typeof img === "function") { | |
184 | + img = img.call(this, options, uri, settings); | |
185 | + } | |
186 | + | |
187 | + if (!img) { | |
188 | + imgs = $('meta[property="image"], meta[property="og:image"], meta[property="og:image:url"], meta[name="twitter:image"], link[rel="image_src"], itemscope *[itemprop="image"]').first(); | |
189 | + if (imgs.length > 0) { | |
190 | + img = imgs.attr(IMAGE_ATTR_MAP[imgs[0].nodeName]); | |
191 | + } | |
192 | + } | |
193 | + | |
194 | + if (img) { | |
195 | + return absurl(img); | |
196 | + } | |
197 | + | |
198 | + imgs = $('img').filter(':visible').filter(function () { | |
199 | + return $(this).parents('.social_share_privacy_area').length === 0; | |
200 | + }); | |
201 | + if (imgs.length === 0) { | |
202 | + img = $('link[rel~="shortcut"][rel~="icon"]').attr('href'); | |
203 | + if (img) return absurl(img); | |
204 | + return 'http://www.google.com/s2/favicons?'+$.param({domain:location.hostname}); | |
205 | + } | |
206 | + imgs.sort(function (lhs, rhs) { | |
207 | + return rhs.offsetWidth * rhs.offsetHeight - lhs.offsetWidth * lhs.offsetHeight; | |
208 | + }); | |
209 | + // browser makes src absolute: | |
210 | + return imgs[0].src; | |
211 | + } | |
212 | + | |
213 | + // abbreviate at last blank before length and add "\u2026" (horizontal ellipsis) | |
214 | + function abbreviateText (text, length) { | |
215 | + // length of UTF-8 encoded string | |
216 | + if (unescape(encodeURIComponent(text)).length <= length) { | |
217 | + return text; | |
218 | + } | |
219 | + | |
220 | + // "\u2026" is actually 3 bytes long in UTF-8 | |
221 | + // TODO: if any of the last 3 characters is > 1 byte long this truncates too much | |
222 | + var abbrev = text.slice(0, length - 3); | |
223 | + | |
224 | + if (!/\W/.test(text.charAt(length - 3))) { | |
225 | + var match = /^(.*)\s\S*$/.exec(abbrev); | |
226 | + if (match) { | |
227 | + abbrev = match[1]; | |
228 | + } | |
229 | + } | |
230 | + return abbrev + "\u2026"; | |
231 | + } | |
232 | + | |
233 | + var HTML_CHAR_MAP = { | |
234 | + '<': '<', | |
235 | + '>': '>', | |
236 | + '&': '&', | |
237 | + '"': '"', | |
238 | + "'": ''' | |
239 | + }; | |
240 | + | |
241 | + function escapeHtml (s) { | |
242 | + return s.replace(/[<>&"']/g, function (ch) { | |
243 | + return HTML_CHAR_MAP[ch]; | |
244 | + }); | |
245 | + } | |
246 | + | |
247 | + function getEmbed (options, uri, settings) { | |
248 | + var embed = settings && settings.embed; | |
249 | + if (typeof embed === "function") { | |
250 | + embed = embed.call(this, options, uri, settings); | |
251 | + } | |
252 | + | |
253 | + if (embed) { | |
254 | + return embed; | |
255 | + } | |
256 | + | |
257 | + embed = ['<iframe scrolling="no" frameborder="0" style="border:none;" allowtransparency="true"']; | |
258 | + var embed_url = $('meta[name="twitter:player"]').attr('content'); | |
259 | + | |
260 | + if (embed_url) { | |
261 | + var width = $('meta[name="twitter:player:width"]').attr('content'); | |
262 | + var height = $('meta[name="twitter:player:height"]').attr('content'); | |
263 | + | |
264 | + if (width) embed.push(' width="',escapeHtml(width),'"'); | |
265 | + if (height) embed.push(' height="',escapeHtml(height),'"'); | |
266 | + } | |
267 | + else { | |
268 | + embed_url = uri + options.referrer_track; | |
269 | + } | |
270 | + | |
271 | + embed.push(' src="',escapeHtml(embed_url),'"></iframe>'); | |
272 | + return embed.join(''); | |
273 | + } | |
274 | + | |
275 | + // build URI from rel="canonical" or document.location | |
276 | + function getURI (options) { | |
277 | + var uri = document.location.href; | |
278 | + var canonical = $("link[rel=canonical]").attr("href") || $('head meta[property="og:url"]').attr("content"); | |
279 | + | |
280 | + if (canonical) { | |
281 | + uri = absurl(canonical); | |
282 | + } | |
283 | + else if (options && options.ignore_fragment) { | |
284 | + uri = uri.replace(/#.*$/,''); | |
285 | + } | |
286 | + | |
287 | + return uri; | |
288 | + } | |
289 | + | |
290 | + function buttonClickHandler (service_name) { | |
291 | + function onclick (event) { | |
292 | + var $container = $(this).parents('li.help_info').first(); | |
293 | + var $share = $container.parents('.social_share_privacy_area').first().parent(); | |
294 | + var options = $share.data('social-share-privacy-options'); | |
295 | + var service = options.services[service_name]; | |
296 | + var button_class = service.button_class || service_name; | |
297 | + var uri = options.uri; | |
298 | + if (typeof uri === 'function') { | |
299 | + uri = uri.call($share[0], options); | |
300 | + } | |
301 | + var $switch = $container.find('span.switch'); | |
302 | + if ($switch.hasClass('off')) { | |
303 | + $container.addClass('info_off'); | |
304 | + $switch.addClass('on').removeClass('off').html(service.txt_on||'\u00a0'); | |
305 | + $container.find('img.privacy_dummy').replaceWith( | |
306 | + typeof(service.button) === "function" ? | |
307 | + service.button.call($container.parent().parent()[0],service,uri,options) : | |
308 | + service.button); | |
309 | + $share.trigger({type: 'socialshareprivacy:enable', serviceName: service_name, isClick: !event.isTrigger}); | |
310 | + } else { | |
311 | + $container.removeClass('info_off'); | |
312 | + $switch.addClass('off').removeClass('on').html(service.txt_off||'\u00a0'); | |
313 | + $container.find('.dummy_btn').empty(). | |
314 | + append($('<img/>').addClass(button_class+'_privacy_dummy privacy_dummy'). | |
315 | + attr({ | |
316 | + alt: service.dummy_alt, | |
317 | + src: service.path_prefix + (options.layout === 'line' ? | |
318 | + service.dummy_line_img : service.dummy_box_img) | |
319 | + }).click(onclick)); | |
320 | + $share.trigger({type: 'socialshareprivacy:disable', serviceName: service_name, isClick: !event.isTrigger}); | |
321 | + } | |
322 | + }; | |
323 | + return onclick; | |
324 | + } | |
325 | + | |
326 | + // display info-overlays a tiny bit delayed | |
327 | + function enterHelpInfo () { | |
328 | + var $info_wrapper = $(this); | |
329 | + if ($info_wrapper.hasClass('info_off')) return; | |
330 | + var timeout_id = window.setTimeout(function () { | |
331 | + $info_wrapper.addClass('display'); | |
332 | + $info_wrapper.removeData('timeout_id'); | |
333 | + }, 500); | |
334 | + $info_wrapper.data('timeout_id', timeout_id); | |
335 | + } | |
336 | + | |
337 | + function leaveHelpInfo () { | |
338 | + var $info_wrapper = $(this); | |
339 | + var timeout_id = $info_wrapper.data('timeout_id'); | |
340 | + if (timeout_id !== undefined) { | |
341 | + window.clearTimeout(timeout_id); | |
342 | + } | |
343 | + $info_wrapper.removeClass('display'); | |
344 | + } | |
345 | + | |
346 | + function permCheckChangeHandler () { | |
347 | + var $input = $(this); | |
348 | + var $share = $input.parents('.social_share_privacy_area').first().parent(); | |
349 | + var options = $share.data('social-share-privacy-options'); | |
350 | + if ($input.is(':checked')) { | |
351 | + options.set_perma_option($input.attr('data-service'), options); | |
352 | + $input.parent().addClass('checked'); | |
353 | + } else { | |
354 | + options.del_perma_option($input.attr('data-service'), options); | |
355 | + $input.parent().removeClass('checked'); | |
356 | + } | |
357 | + } | |
358 | + | |
359 | + function enterSettingsInfo () { | |
360 | + var $settings = $(this); | |
361 | + var timeout_id = window.setTimeout(function () { | |
362 | + $settings.find('.settings_info_menu').removeClass('off').addClass('on'); | |
363 | + $settings.removeData('timeout_id'); | |
364 | + }, 500); | |
365 | + $settings.data('timeout_id', timeout_id); | |
366 | + } | |
367 | + | |
368 | + function leaveSettingsInfo () { | |
369 | + var $settings = $(this); | |
370 | + var timeout_id = $settings.data('timeout_id'); | |
371 | + if (timeout_id !== undefined) { | |
372 | + window.clearTimeout(timeout_id); | |
373 | + } | |
374 | + $settings.find('.settings_info_menu').removeClass('on').addClass('off'); | |
375 | + } | |
376 | + | |
377 | + function setPermaOption (service_name, options) { | |
378 | + $.cookie('socialSharePrivacy_'+service_name, 'perma_on', options.cookie_expires, options.cookie_path, options.cookie_domain); | |
379 | + } | |
380 | + | |
381 | + function delPermaOption (service_name, options) { | |
382 | + $.cookie('socialSharePrivacy_'+service_name, null, -1, options.cookie_path, options.cookie_domain); | |
383 | + } | |
384 | + | |
385 | + function getPermaOption (service_name, options) { | |
386 | + return !!options.get_perma_options(options)[service_name]; | |
387 | + } | |
388 | + | |
389 | + function getPermaOptions (options) { | |
390 | + var cookies = $.cookie(); | |
391 | + var permas = {}; | |
392 | + for (var name in cookies) { | |
393 | + var match = /^socialSharePrivacy_(.+)$/.exec(name); | |
394 | + if (match) { | |
395 | + permas[match[1]] = cookies[name] === 'perma_on'; | |
396 | + } | |
397 | + } | |
398 | + return permas; | |
399 | + } | |
400 | + | |
401 | + | |
402 | + // extend jquery with our plugin function | |
403 | + function socialSharePrivacy (options) { | |
404 | + | |
405 | + if (typeof options === "string") { | |
406 | + var command = options; | |
407 | + if (arguments.length === 1) { | |
408 | + switch (command) { | |
409 | + case "enable": | |
410 | + this.find('.switch.off').click(); | |
411 | + break; | |
412 | + | |
413 | + case "disable": | |
414 | + this.find('.switch.on').click(); | |
415 | + break; | |
416 | + | |
417 | + case "toggle": | |
418 | + this.find('.switch').click(); | |
419 | + break; | |
420 | + | |
421 | + case "options": | |
422 | + return this.data('social-share-privacy-options'); | |
423 | + | |
424 | + case "destroy": | |
425 | + this.trigger({type: 'socialshareprivacy:destroy'}); | |
426 | + this.children('.social_share_privacy_area').remove(); | |
427 | + this.removeData('social-share-privacy-options'); | |
428 | + break; | |
429 | + | |
430 | + case "enabled": | |
431 | + var enabled = {}; | |
432 | + this.each(function () { | |
433 | + var $self = $(this); | |
434 | + var options = $self.data('social-share-privacy-options'); | |
435 | + for (var name in options.services) { | |
436 | + enabled[name] = $self.find('.'+(options.services[name].class_name||name)+' .switch').hasClass('on'); | |
437 | + } | |
438 | + }); | |
439 | + return enabled; | |
440 | + | |
441 | + case "disabled": | |
442 | + var disabled = {}; | |
443 | + this.each(function () { | |
444 | + var $self = $(this); | |
445 | + var options = $self.data('social-share-privacy-options'); | |
446 | + for (var name in options.services) { | |
447 | + disabled[name] = $self.find('.'+(options.services[name].class_name||name)+' .switch').hasClass('off'); | |
448 | + } | |
449 | + }); | |
450 | + return disabled; | |
451 | + | |
452 | + default: | |
453 | + throw new Error("socialSharePrivacy: unknown command: "+command); | |
454 | + } | |
455 | + } | |
456 | + else { | |
457 | + var arg = arguments[1]; | |
458 | + switch (command) { | |
459 | + case "enable": | |
460 | + this.each(function () { | |
461 | + var $self = $(this); | |
462 | + var options = $self.data('social-share-privacy-options'); | |
463 | + $self.find('.'+(options.services[arg].class_name||arg)+' .switch.off').click(); | |
464 | + }); | |
465 | + break; | |
466 | + | |
467 | + case "disable": | |
468 | + this.each(function () { | |
469 | + var $self = $(this); | |
470 | + var options = $self.data('social-share-privacy-options'); | |
471 | + $self.find('.'+(options.services[arg].class_name||arg)+' .switch.on').click(); | |
472 | + }); | |
473 | + break; | |
474 | + | |
475 | + case "toggle": | |
476 | + this.each(function () { | |
477 | + var $self = $(this); | |
478 | + var options = $self.data('social-share-privacy-options'); | |
479 | + $self.find('.'+(options.services[arg].class_name||arg)+' .switch').click(); | |
480 | + }); | |
481 | + break; | |
482 | + | |
483 | + case "option": | |
484 | + if (arguments.length > 2) { | |
485 | + var value = {}; | |
486 | + value[arg] = arguments[2]; | |
487 | + this.each(function () { | |
488 | + $.extend(true, $(this).data('social-share-privacy-options'), value); | |
489 | + }); | |
490 | + } | |
491 | + else { | |
492 | + return this.data('social-share-privacy-options')[arg]; | |
493 | + } | |
494 | + break; | |
495 | + | |
496 | + case "options": | |
497 | + $.extend(true, options, arg); | |
498 | + break; | |
499 | + | |
500 | + case "enabled": | |
501 | + var options = this.data('social-share-privacy-options'); | |
502 | + return this.find('.'+(options.services[arg].class_name||arg)+' .switch').hasClass('on'); | |
503 | + | |
504 | + case "disabled": | |
505 | + var options = this.data('social-share-privacy-options'); | |
506 | + return this.find('.'+(options.services[arg].class_name||arg)+' .switch').hasClass('off'); | |
507 | + | |
508 | + default: | |
509 | + throw new Error("socialSharePrivacy: unknown command: "+command); | |
510 | + } | |
511 | + } | |
512 | + return this; | |
513 | + } | |
514 | + | |
515 | + return this.each(function () { | |
516 | + // parse options passed via data-* attributes: | |
517 | + var data = {}; | |
518 | + if (this.lang) data.language = this.lang; | |
519 | + for (var i = 0, attrs = this.attributes; i < attrs.length; ++ i) { | |
520 | + var attr = attrs[i]; | |
521 | + if (/^data-./.test(attr.name)) { | |
522 | + var path = attr.name.slice(5).replace(/-/g,"_").split("."); | |
523 | + var ctx = data, j = 0; | |
524 | + for (; j < path.length-1; ++ j) { | |
525 | + var name = path[j]; | |
526 | + if (name in ctx) { | |
527 | + ctx = ctx[name]; | |
528 | + if (typeof ctx === "string") { | |
529 | + ctx = (new Function("$", "return ("+ctx+");")).call(this, $); | |
530 | + } | |
531 | + } | |
532 | + else { | |
533 | + ctx = ctx[name] = {}; | |
534 | + } | |
535 | + } | |
536 | + var name = path[j]; | |
537 | + if (typeof ctx[name] === "object") { | |
538 | + ctx[name] = $.extend(true, (new Function("$", "return ("+attr.value+");")).call(this, $), ctx[name]); | |
539 | + } | |
540 | + else { | |
541 | + ctx[name] = attr.value; | |
542 | + } | |
543 | + } | |
544 | + } | |
545 | + // parse global option values: | |
546 | + if ('cookie_expires' in data) data.cookie_expires = Number(data.cookie_expires); | |
547 | + if ('perma_option' in data) data.perma_option = $.trim(data.perma_option).toLowerCase() === "true"; | |
548 | + if ('ignore_fragment' in data) data.ignore_fragment = $.trim(data.ignore_fragment).toLowerCase() === "true"; | |
549 | + if ('set_perma_option' in data) { | |
550 | + data.set_perma_option = new Function("service_name", "options", data.set_perma_option); | |
551 | + } | |
552 | + if ('del_perma_option' in data) { | |
553 | + data.del_perma_option = new Function("service_name", "options", data.del_perma_option); | |
554 | + } | |
555 | + if ('get_perma_option' in data) { | |
556 | + data.get_perma_option = new Function("service_name", "options", data.get_perma_option); | |
557 | + } | |
558 | + if ('get_perma_options' in data) { | |
559 | + data.get_perma_options = new Function("options", data.get_perma_options); | |
560 | + } | |
561 | + if ('order' in data) { | |
562 | + data.order = $.trim(data.order); | |
563 | + if (data.order) { | |
564 | + data.order = data.order.split(/\s+/g); | |
565 | + } | |
566 | + else { | |
567 | + delete data.order; | |
568 | + } | |
569 | + } | |
570 | + if (typeof data.services === "string") { | |
571 | + data.services = (new Function("$", "return ("+data.services+");")).call(this, $); | |
572 | + } | |
573 | + if ('options' in data) { | |
574 | + data = $.extend(data, (new Function("$", "return ("+data.options+");")).call(this, $)); | |
575 | + delete data.options; | |
576 | + } | |
577 | + if ('services' in data) { | |
578 | + for (var service_name in data.services) { | |
579 | + var service = data.services[service_name]; | |
580 | + if (typeof service === "string") { | |
581 | + data.services[service_name] = (new Function("$", "return ("+service+");")).call(this, $); | |
582 | + } | |
583 | + // only values of common options are parsed: | |
584 | + if (typeof service.status === "string") { | |
585 | + service.status = $.trim(service.status).toLowerCase() === "true"; | |
586 | + } | |
587 | + if (typeof service.perma_option === "string") { | |
588 | + service.perma_option = $.trim(service.perma_option).toLowerCase() === "true"; | |
589 | + } | |
590 | + } | |
591 | + } | |
592 | + // overwrite default values with user settings | |
593 | + var this_options = $.extend(true,{},socialSharePrivacy.settings,options,data); | |
594 | + var order = this_options.order || []; | |
595 | + | |
596 | + var dummy_img = this_options.layout === 'line' ? 'dummy_line_img' : 'dummy_box_img'; | |
597 | + var any_on = false; | |
598 | + var any_perm = false; | |
599 | + var any_unsafe = false; | |
600 | + var unordered = []; | |
601 | + for (var service_name in this_options.services) { | |
602 | + var service = this_options.services[service_name]; | |
603 | + if (service.status) { | |
604 | + any_on = true; | |
605 | + if ($.inArray(service_name, order) === -1) { | |
606 | + unordered.push(service_name); | |
607 | + } | |
608 | + if (service.privacy !== 'safe') { | |
609 | + any_unsafe = true; | |
610 | + if (service.perma_option) { | |
611 | + any_perm = true; | |
612 | + } | |
613 | + } | |
614 | + } | |
615 | + if (!('language' in service)) { | |
616 | + service.language = this_options.language; | |
617 | + } | |
618 | + if (!('path_prefix' in service)) { | |
619 | + service.path_prefix = this_options.path_prefix; | |
620 | + } | |
621 | + if (!('referrer_track' in service)) { | |
622 | + service.referrer_track = ''; | |
623 | + } | |
624 | + } | |
625 | + unordered.sort(); | |
626 | + order = order.concat(unordered); | |
627 | + | |
628 | + // check if at least one service is activated | |
629 | + if (!any_on) { | |
630 | + return; | |
631 | + } | |
632 | + | |
633 | + // insert stylesheet into document and prepend target element | |
634 | + if (this_options.css_path) { | |
635 | + var css_path = (this_options.path_prefix||"") + this_options.css_path; | |
636 | + // IE fix (needed for IE < 9 - but done for all IE versions) | |
637 | + if (document.createStyleSheet) { | |
638 | + document.createStyleSheet(css_path); | |
639 | + } else if ($('link[href="'+css_path+'"]').length === 0) { | |
640 | + $('<link/>',{rel:'stylesheet',type:'text/css',href:css_path}).appendTo(document.head); | |
641 | + } | |
642 | + } | |
643 | + | |
644 | + // get stored perma options | |
645 | + var permas; | |
646 | + if (this_options.perma_option && any_perm) { | |
647 | + if (this_options.get_perma_options) { | |
648 | + permas = this_options.get_perma_options(this_options); | |
649 | + } | |
650 | + else { | |
651 | + permas = {}; | |
652 | + for (var service_name in this_options.services) { | |
653 | + permas[service_name] = this_options.get_perma_option(service_name, this_options); | |
654 | + } | |
655 | + } | |
656 | + } | |
657 | + | |
658 | + // canonical uri that will be shared | |
659 | + var uri = this_options.uri; | |
660 | + if (typeof uri === 'function') { | |
661 | + uri = uri.call(this, this_options); | |
662 | + } | |
663 | + | |
664 | + var $context = $('<ul class="social_share_privacy_area"></ul>').addClass(this_options.layout); | |
665 | + var $share = $(this); | |
666 | + | |
667 | + $share.prepend($context).data('social-share-privacy-options',this_options); | |
668 | + | |
669 | + for (var i = 0; i < order.length; ++ i) { | |
670 | + var service_name = order[i]; | |
671 | + var service = this_options.services[service_name]; | |
672 | + | |
673 | + if (service && service.status) { | |
674 | + var class_name = service.class_name || service_name; | |
675 | + var button_class = service.button_class || service_name; | |
676 | + var $help_info; | |
677 | + | |
678 | + if (service.privacy === 'safe') { | |
679 | + $help_info = $('<li class="help_info"><div class="info">' + | |
680 | + service.txt_info + '</div><div class="dummy_btn"></div></li>').addClass(class_name); | |
681 | + $help_info.find('.dummy_btn'). | |
682 | + addClass(button_class). | |
683 | + append(service.button.call(this,service,uri,this_options)); | |
684 | + } | |
685 | + else { | |
686 | + $help_info = $('<li class="help_info"><div class="info">' + | |
687 | + service.txt_info + '</div><span class="switch off">' + (service.txt_off||'\u00a0') + | |
688 | + '</span><div class="dummy_btn"></div></li>').addClass(class_name); | |
689 | + $help_info.find('.dummy_btn'). | |
690 | + addClass(button_class). | |
691 | + append($('<img/>').addClass(button_class+'_privacy_dummy privacy_dummy'). | |
692 | + attr({ | |
693 | + alt: service.dummy_alt, | |
694 | + src: service.path_prefix + service[dummy_img] | |
695 | + })); | |
696 | + | |
697 | + $help_info.find('.dummy_btn img.privacy_dummy, span.switch').click( | |
698 | + buttonClickHandler(service_name)); | |
699 | + } | |
700 | + $context.append($help_info); | |
701 | + } | |
702 | + } | |
703 | + | |
704 | + // | |
705 | + // append Info/Settings-area | |
706 | + // | |
707 | + if (any_unsafe) { | |
708 | + var $settings_info = $('<li class="settings_info"><div class="settings_info_menu off perma_option_off"><a>' + | |
709 | + '<span class="help_info icon"><span class="info">' + this_options.txt_help + '</span></span></a></div></li>'); | |
710 | + var $info_link = $settings_info.find('> .settings_info_menu > a').attr('href', this_options.info_link); | |
711 | + if (this_options.info_link_target) { | |
712 | + $info_link.attr("target",this_options.info_link_target); | |
713 | + } | |
714 | + $context.append($settings_info); | |
715 | + | |
716 | + $context.find('.help_info').on('mouseenter', enterHelpInfo).on('mouseleave', leaveHelpInfo); | |
717 | + | |
718 | + // menu for permanently enabling of service buttons | |
719 | + if (this_options.perma_option && any_perm) { | |
720 | + | |
721 | + // define container | |
722 | + var $container_settings_info = $context.find('li.settings_info'); | |
723 | + | |
724 | + // remove class that fomrats the i-icon, because perma-options are shown | |
725 | + var $settings_info_menu = $container_settings_info.find('.settings_info_menu'); | |
726 | + $settings_info_menu.removeClass('perma_option_off'); | |
727 | + | |
728 | + // append perma-options-icon (.settings) and form (hidden) | |
729 | + $settings_info_menu.append( | |
730 | + '<span class="settings">' + this_options.txt_settings + '</span><form><fieldset><legend>' + | |
731 | + this_options.settings_perma + '</legend></fieldset></form>'); | |
732 | + | |
733 | + // write services with <input> and <label> and checked state from cookie | |
734 | + var $fieldset = $settings_info_menu.find('form fieldset'); | |
735 | + for (var i = 0; i < order.length; ++ i) { | |
736 | + var service_name = order[i]; | |
737 | + var service = this_options.services[service_name]; | |
738 | + | |
739 | + if (service && service.status && service.perma_option && service.privacy !== 'safe') { | |
740 | + var class_name = service.class_name || service_name; | |
741 | + var perma = permas[service_name]; | |
742 | + var $field = $('<label><input type="checkbox"' + (perma ? ' checked="checked"/>' : '/>') + | |
743 | + service.display_name + '</label>'); | |
744 | + $field.find('input').attr('data-service', service_name); | |
745 | + $fieldset.append($field); | |
746 | + | |
747 | + // enable services when cookie set and refresh cookie | |
748 | + if (perma) { | |
749 | + $context.find('li.'+class_name+' span.switch').click(); | |
750 | + this_options.set_perma_option(service_name, this_options); | |
751 | + } | |
752 | + } | |
753 | + } | |
754 | + | |
755 | + // indicate clickable setings gear | |
756 | + $container_settings_info.find('span.settings').css('cursor', 'pointer'); | |
757 | + | |
758 | + // show settings menu on hover | |
759 | + $container_settings_info.on('mouseenter', enterSettingsInfo).on('mouseleave', leaveSettingsInfo); | |
760 | + | |
761 | + // interaction for <input> to enable services permanently | |
762 | + $container_settings_info.find('fieldset input').on('change', permCheckChangeHandler); | |
763 | + } | |
764 | + } | |
765 | + $share.trigger({type: 'socialshareprivacy:create', options: this_options}); | |
766 | + }); | |
767 | + }; | |
768 | + | |
769 | + // expose helper functions: | |
770 | + socialSharePrivacy.absurl = absurl; | |
771 | + socialSharePrivacy.escapeHtml = escapeHtml; | |
772 | + socialSharePrivacy.getTitle = getTitle; | |
773 | + socialSharePrivacy.getImage = getImage; | |
774 | + socialSharePrivacy.getEmbed = getEmbed; | |
775 | + socialSharePrivacy.getDescription = getDescription; | |
776 | + socialSharePrivacy.abbreviateText = abbreviateText; | |
777 | + socialSharePrivacy.formatNumber = formatNumber; | |
778 | + | |
779 | + socialSharePrivacy.settings = { | |
780 | + 'services' : {}, | |
781 | + 'info_link' : 'http://panzi.github.io/SocialSharePrivacy/', | |
782 | + 'info_link_target' : '', | |
783 | + 'txt_settings' : 'Settings', | |
784 | + 'txt_help' : 'If you activate these fields via click, data will be sent to a third party (Facebook, Twitter, Google, ...) and stored there. For more details click <em>i</em>.', | |
785 | + 'settings_perma' : 'Permanently enable share buttons:', | |
786 | + 'layout' : 'line', // possible values: 'line' (~120x20) or 'box' (~58x62) | |
787 | + 'set_perma_option' : setPermaOption, | |
788 | + 'del_perma_option' : delPermaOption, | |
789 | + 'get_perma_options' : getPermaOptions, | |
790 | + 'get_perma_option' : getPermaOption, | |
791 | + 'perma_option' : !!$.cookie, | |
792 | + 'cookie_path' : '/', | |
793 | + 'cookie_domain' : document.location.hostname, | |
794 | + 'cookie_expires' : 365, | |
795 | + 'path_prefix' : '', | |
796 | + 'css_path' : "stylesheets/socialshareprivacy.css", | |
797 | + 'uri' : getURI, | |
798 | + 'language' : 'en', | |
799 | + 'ignore_fragment' : true | |
800 | + }; | |
801 | + | |
802 | + $.fn.socialSharePrivacy = socialSharePrivacy; | |
803 | +}(jQuery)); | ... | ... |
... | ... | @@ -0,0 +1,231 @@ |
1 | +.social_share_privacy_area { | |
2 | + clear: both; | |
3 | + margin: 5px 0; | |
4 | + list-style-type: none; | |
5 | + padding: 0; | |
6 | + width: auto; | |
7 | + display: block; | |
8 | +} | |
9 | +.social_share_privacy_area.line { | |
10 | + height: 25px; | |
11 | + line-height: 16px; | |
12 | +} | |
13 | +.social_share_privacy_area.box { | |
14 | + width: 95px; | |
15 | +} | |
16 | +.social_share_privacy_area li { | |
17 | + margin: 0 !important; | |
18 | + padding: 0 !important; | |
19 | + list-style-type: none !important; | |
20 | +} | |
21 | +.social_share_privacy_area.box li { | |
22 | + text-align: center; | |
23 | +} | |
24 | +.social_share_privacy_area.line li { | |
25 | + height: 21px; | |
26 | + float: left; | |
27 | + width: 33%; | |
28 | +} | |
29 | +.social_share_privacy_area li .dummy_btn { | |
30 | + cursor: pointer; | |
31 | + padding: 0; | |
32 | + height: inherit; | |
33 | +} | |
34 | +.social_share_privacy_area.line li .dummy_btn { | |
35 | + float: left; | |
36 | + margin: 0 10px 0 10px; | |
37 | +} | |
38 | +.social_share_privacy_area.box li .dummy_btn { | |
39 | + margin-bottom: 10px; | |
40 | +} | |
41 | +.social_share_privacy_area li .dummy_btn img.privacy_dummy, | |
42 | +.social_share_privacy_area li .dummy_btn iframe { | |
43 | + vertical-align: bottom; | |
44 | +} | |
45 | +.social_share_privacy_area li .dummy_btn iframe { | |
46 | + overflow: hidden; | |
47 | + height: inherit; | |
48 | + width: inherit; | |
49 | + border-style: none; | |
50 | +} | |
51 | +.social_share_privacy_area.line li { | |
52 | + display: inline-block; | |
53 | +} | |
54 | +/* Switch begin */ | |
55 | +.social_share_privacy_area li .switch { | |
56 | + display: inline-block; | |
57 | + text-indent: -9999em; | |
58 | + background: transparent url(../images/socialshareprivacy_on_off.png) no-repeat 0 0 scroll; | |
59 | + width: 23px; | |
60 | + height: 12px; | |
61 | + overflow: hidden; | |
62 | + margin: 4px 0 0; | |
63 | + padding: 0; | |
64 | + cursor: pointer; | |
65 | +} | |
66 | +.social_share_privacy_area.line li .switch { | |
67 | + float: left; | |
68 | +} | |
69 | +.social_share_privacy_area li .switch.on { | |
70 | + background-position: 0 -12px; | |
71 | +} | |
72 | +/* Switch end */ | |
73 | +/* Tooltips begin */ | |
74 | +.social_share_privacy_area li.help_info { | |
75 | + position: relative; | |
76 | +} | |
77 | +.social_share_privacy_area li.settings_info, | |
78 | +.social_share_privacy_area li.help_info .info { | |
79 | + text-align: left; | |
80 | +} | |
81 | +.social_share_privacy_area li.help_info .info, | |
82 | +.social_share_privacy_area li .help_info.icon .info { | |
83 | + display: none; | |
84 | + position: absolute; | |
85 | + bottom: 40px; | |
86 | + width: 290px; | |
87 | + padding: 10px 15px; | |
88 | + margin: 0; | |
89 | + font-size: 12px; | |
90 | + line-height: 16px; | |
91 | + font-weight: bold; | |
92 | + border: 1px solid #ccc; | |
93 | + -moz-border-radius: 4px; | |
94 | + -webkit-border-radius: 4px; | |
95 | + border-radius: 4px; | |
96 | + -moz-box-shadow: 0px 0px 15px rgba(0,0,0,0.4); | |
97 | + -webkit-box-shadow: 0px 0px 15px rgba(0,0,0,0.4); | |
98 | + box-shadow: 0px 0px 15px rgba(0,0,0,0.4); | |
99 | + background-color: #fdfbec; | |
100 | + color: #000; | |
101 | + z-index: 500; | |
102 | +} | |
103 | +.social_share_privacy_area.line li.help_info .info, | |
104 | +.social_share_privacy_area li .help_info.icon .info { | |
105 | + left: 0; | |
106 | +} | |
107 | +.social_share_privacy_area.box li.help_info .info { | |
108 | + left: 100%; | |
109 | + top: 0px; | |
110 | + bottom: auto; | |
111 | +} | |
112 | +.social_share_privacy_area li .help_info.icon .info { | |
113 | + width: 350px; | |
114 | +} | |
115 | +.social_share_privacy_area li.help_info.display .info, | |
116 | +.social_share_privacy_area li .help_info.icon.display .info { | |
117 | + display: block; | |
118 | +} | |
119 | +.social_share_privacy_area li.help_info.info_off.display .info { | |
120 | + display: none; | |
121 | +} | |
122 | +.social_share_privacy_area li .help_info.icon { | |
123 | + background: #fff url(../images/socialshareprivacy_info.png) no-repeat center center scroll; | |
124 | + width: 25px; | |
125 | + height: 20px; | |
126 | + position: relative; | |
127 | + display: inline-block; | |
128 | + vertical-align: top; | |
129 | + border: 2px solid #e7e3e3; | |
130 | + border-right-width: 0; | |
131 | + -moz-border-radius: 5px 0 0 5px; | |
132 | + -webkit-border-radius: 5px 0 0 5px; | |
133 | + border-radius: 5px 0 0 5px; | |
134 | + margin: 0; | |
135 | + padding: 0; | |
136 | +} | |
137 | +.social_share_privacy_area li.settings_info .settings_info_menu.perma_option_off .help_info.icon { | |
138 | + border-right-width: 2px; | |
139 | + -moz-border-radius: 5px; | |
140 | + -webkit-border-radius: 5px; | |
141 | + border-radius: 5px; | |
142 | +} | |
143 | +/* Tooltips end */ | |
144 | +/* Settings/Info begin */ | |
145 | +.social_share_privacy_area li.settings_info { | |
146 | + position: relative; | |
147 | + top: -2px; | |
148 | +} | |
149 | +.social_share_privacy_area li.settings_info a { | |
150 | + text-decoration: none; | |
151 | + margin: 0 !important; | |
152 | +} | |
153 | +.social_share_privacy_area li.settings_info .settings_info_menu { | |
154 | + background-color: #f3f4f5; | |
155 | + color: #000; | |
156 | + border-style: none; | |
157 | + -moz-border-radius: 5px; | |
158 | + -webkit-border-radius: 5px; | |
159 | + border-radius: 5px; | |
160 | + -moz-box-shadow: 0px 0px 15px rgba(0,0,0,0.4); | |
161 | + -webkit-box-shadow: 0px 0px 15px rgba(0,0,0,0.4); | |
162 | + box-shadow: 0px 0px 15px rgba(0,0,0,0.4); | |
163 | + left: 0; | |
164 | + position: absolute; | |
165 | + top: 0; | |
166 | + min-width: 135px; | |
167 | + margin: 0; | |
168 | + padding: 0; | |
169 | +} | |
170 | +.social_share_privacy_area li.settings_info .settings_info_menu.on { | |
171 | + z-index: 1000; | |
172 | +} | |
173 | +.social_share_privacy_area li.settings_info .settings_info_menu.off { | |
174 | + border-width: 0; | |
175 | + -moz-box-shadow: none; | |
176 | + -webkit-box-shadow: none; | |
177 | + box-shadow: none; | |
178 | + background-color: transparent; | |
179 | +} | |
180 | +.social_share_privacy_area li.settings_info .settings_info_menu.off form { | |
181 | + display: none; | |
182 | + margin: 0; | |
183 | + padding: 0; | |
184 | +} | |
185 | +.social_share_privacy_area li.settings_info .settings_info_menu .settings { | |
186 | + text-indent: -9999em; | |
187 | + display: inline-block; | |
188 | + background: #fff url(../images/settings.png) no-repeat center center scroll; | |
189 | + width: 25px; | |
190 | + height: 20px; | |
191 | + border: 2px solid #e7e3e3; | |
192 | + -moz-border-radius: 0 5px 5px 0; | |
193 | + -webkit-border-radius: 0 5px 5px 0; | |
194 | + border-radius: 0 5px 5px 0; | |
195 | + border-left: 1px solid #ddd; | |
196 | + margin: 0; | |
197 | + padding: 0; | |
198 | +} | |
199 | +.social_share_privacy_area li.settings_info .settings_info_menu form fieldset { | |
200 | + border-width: 0; | |
201 | + margin: 0; | |
202 | + padding: 0 10px 10px; | |
203 | +} | |
204 | +.social_share_privacy_area li.settings_info .settings_info_menu form fieldset legend { | |
205 | + font-size: 11px; | |
206 | + font-weight: bold; | |
207 | + line-height: 14px; | |
208 | + margin: 0; | |
209 | + padding: 10px 0; | |
210 | + width: 115px; | |
211 | +} | |
212 | +.social_share_privacy_area li.settings_info .settings_info_menu form fieldset input { | |
213 | + margin: 4px 10px 4px 0; | |
214 | + padding: 0; | |
215 | +} | |
216 | +.social_share_privacy_area li.settings_info .settings_info_menu form fieldset label { | |
217 | + display: block; | |
218 | + font-size: 12px; | |
219 | + font-weight: bold; | |
220 | + line-height: 24px; | |
221 | + -moz-transition: color .5s ease-in; | |
222 | + -webkit-transition: color .5s ease-in; | |
223 | + transition: color .5s ease-in; | |
224 | + margin: 0; | |
225 | + padding: 0; | |
226 | + white-space: nowrap; | |
227 | +} | |
228 | +.social_share_privacy_area li.settings_info .settings_info_menu form fieldset label.checked { | |
229 | + color: #090; | |
230 | +} | |
231 | +/* Settings/Info end */ | ... | ... |
... | ... | @@ -0,0 +1,14 @@ |
1 | +.social_share_privacy_area.line .buffer iframe { | |
2 | + width: 110px; | |
3 | + height: 20px; | |
4 | +} | |
5 | +.social_share_privacy_area.line .buffer img { | |
6 | + width: 55px; | |
7 | + height: 20px; | |
8 | + margin-right: 55px; | |
9 | +} | |
10 | +.social_share_privacy_area.box .buffer iframe, | |
11 | +.social_share_privacy_area.box .buffer img { | |
12 | + width: 55px; | |
13 | + height: 62px; | |
14 | +} | ... | ... |
... | ... | @@ -0,0 +1,155 @@ |
1 | +/* Delicious Button v1.1 | |
2 | +Blog : http://www.moretechtips.net | |
3 | +Project: http://code.google.com/p/delicious-button/ | |
4 | +Copyright 2010 [Mike @ moretechtips.net] | |
5 | +Licensed under the Apache License, Version 2.0 | |
6 | +(the "License"); you may not use this file except in compliance with the License. | |
7 | +You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 */ | |
8 | +.social_share_privacy_area.box .delicious .delicious-widget, | |
9 | +.social_share_privacy_area.box .delicious img.privacy_dummy { | |
10 | + width: 50px; | |
11 | + height: 62px; | |
12 | +} | |
13 | +.social_share_privacy_area.line .delicious .delicious-widget, | |
14 | +.social_share_privacy_area.line .delicious img.privacy_dummy { | |
15 | + width: 75px; | |
16 | + height: 20px; | |
17 | + margin-right: 20px; | |
18 | +} | |
19 | +.social_share_privacy_area.box .delicious div.delicious-widget { | |
20 | + font-family:Arial,Tahoma,Sans-Serif; | |
21 | + font-size:11px; | |
22 | + width:50px; | |
23 | + margin: 0 auto; | |
24 | +} | |
25 | +.social_share_privacy_area.box .delicious a.icon, | |
26 | +.social_share_privacy_area.box .delicious a.count { | |
27 | + color:#FFF!important; | |
28 | + display:block; | |
29 | + -webkit-border-radius:3px; | |
30 | + -moz-border-radius:3px; | |
31 | + -o-border-radius:3px; | |
32 | + border-radius:3px; | |
33 | + outline:none!important; | |
34 | + text-decoration:none!important; | |
35 | +} | |
36 | +.social_share_privacy_area.box .delicious a.icon { | |
37 | + background:#fff; | |
38 | + border:1px solid #ccc; | |
39 | + height:38px; | |
40 | + overflow:hidden; | |
41 | + position:relative; | |
42 | + direction:ltr; | |
43 | +} | |
44 | +.social_share_privacy_area.box .delicious a.icon:hover { | |
45 | + border-color:#666; | |
46 | +} | |
47 | +.social_share_privacy_area.box .delicious a.count { | |
48 | + margin-top:2px; | |
49 | + text-align:center; | |
50 | + font-size:12px; | |
51 | + line-height:18px; | |
52 | + height:18px; | |
53 | + background:#3274D0; | |
54 | + border:#3274D0 1px solid; | |
55 | + text-shadow:#2A5580 1px 1px 0; | |
56 | +} | |
57 | +.social_share_privacy_area.box .delicious a.count:hover { | |
58 | + background:#369; | |
59 | + border-color:#369; | |
60 | +} | |
61 | +.social_share_privacy_area.box .delicious a.count:active { | |
62 | + background:#000; | |
63 | + border:#333 1px solid; | |
64 | + text-shadow:#222 1px 1px 0; | |
65 | + outline:none; | |
66 | +} | |
67 | +.social_share_privacy_area.line .delicious div.delicious-widget { | |
68 | + font-family:Arial,Tahoma,Sans-Serif; | |
69 | + font-size:11px; | |
70 | + width:76px; | |
71 | +} | |
72 | +.social_share_privacy_area.line .delicious a.icon, | |
73 | +.social_share_privacy_area.line .delicious a.count { | |
74 | + display:block; | |
75 | + float:left; | |
76 | + line-height:18px; | |
77 | + border:#666 solid 1px; | |
78 | + -webkit-border-radius:3px; | |
79 | + -moz-border-radius:3px; | |
80 | + -o-border-radius:3px; | |
81 | + border-radius:3px; | |
82 | + outline:none!important; | |
83 | + text-decoration:none!important; | |
84 | + height:18px; | |
85 | + overflow:hidden; | |
86 | + color:#FFF!important; | |
87 | +} | |
88 | +.social_share_privacy_area.line .delicious a.icon { | |
89 | + background:#fff; | |
90 | + border-color:#ccc; | |
91 | + width:20px; | |
92 | + position:relative; | |
93 | + direction:ltr; | |
94 | + margin-right:1px; | |
95 | +} | |
96 | +.social_share_privacy_area.line .delicious a.icon:hover { | |
97 | + border-color:#666; | |
98 | +} | |
99 | +.social_share_privacy_area.line .delicious a.count { | |
100 | + font-size:12px; | |
101 | + background:#3274D0; | |
102 | + border-color:#3274D0; | |
103 | + width:50px; | |
104 | + text-align:center; | |
105 | + text-shadow:#2A5580 1px 1px 0; | |
106 | +} | |
107 | +.social_share_privacy_area.line .delicious a.count:hover { | |
108 | + background:#369; | |
109 | + border-color:#369; | |
110 | + text-shadow:#369 1px 1px 0; | |
111 | +} | |
112 | +.social_share_privacy_area.line .delicious a.count:active { | |
113 | + background:#000; | |
114 | + border-color:#333; | |
115 | + text-shadow:#222 1px 1px 0; | |
116 | +} | |
117 | +.social_share_privacy_area.box .delicious a.icon:hover *, | |
118 | +.social_share_privacy_area.line .delicious a.icon:hover * { | |
119 | + opacity:0.85; | |
120 | + filter:alpha(opacity=85); | |
121 | +} | |
122 | +.social_share_privacy_area.box .delicious a.icon *, | |
123 | +.social_share_privacy_area.line .delicious a.icon * { | |
124 | + width:50%; | |
125 | + height:50%; | |
126 | + position:absolute; | |
127 | + margin:0!important; | |
128 | +} | |
129 | +.social_share_privacy_area.box .delicious div.delicious1, | |
130 | +.social_share_privacy_area.line .delicious div.delicious1 { | |
131 | + background:#3274D0; | |
132 | + left:50%; | |
133 | + top:0; | |
134 | +} | |
135 | +.social_share_privacy_area.box .delicious div.delicious2, | |
136 | +.social_share_privacy_area.line .delicious div.delicious2 { | |
137 | + background:#000; | |
138 | + left:0; | |
139 | + top:50%; | |
140 | +} | |
141 | +.social_share_privacy_area.box .delicious div.delicious3, | |
142 | +.social_share_privacy_area.line .delicious div.delicious3 { | |
143 | + background:#D3D2D2; | |
144 | + left:50%; | |
145 | + top:50%; | |
146 | +} | |
147 | +.social_share_privacy_area.box .delicious a.count i, | |
148 | +.social_share_privacy_area.line .delicious a.count i { | |
149 | + display:none; | |
150 | + font-style:normal; | |
151 | +} | |
152 | +.social_share_privacy_area.box .delicious a.count b, | |
153 | +.social_share_privacy_area.line .delicious a.count b { | |
154 | + font-weight:normal; | |
155 | +} | ... | ... |
... | ... | @@ -0,0 +1,151 @@ |
1 | +.social_share_privacy_area.line .disqus img.privacy_dummy { | |
2 | + width: 49px; | |
3 | + height: 20px; | |
4 | + margin-right: 45px; | |
5 | +} | |
6 | +.social_share_privacy_area.box .disqus img.privacy_dummy { | |
7 | + width: 55px; | |
8 | + height: 61px; | |
9 | +} | |
10 | +.social_share_privacy_area .disqus .disqus-widget { | |
11 | + line-height: 20px; | |
12 | + font-size: 11px; | |
13 | + font-family: Arial, sans-serif; | |
14 | + cursor: text; | |
15 | + white-space: nowrap; | |
16 | + text-align: left; | |
17 | +} | |
18 | +.social_share_privacy_area .disqus .disqus-widget a, | |
19 | +.social_share_privacy_area .disqus .disqus-widget a:hover { | |
20 | + -webkit-text-shadow: none; | |
21 | + -moz-text-shadow: none; | |
22 | + -ms-text-shadow: none; | |
23 | + -o-text-shadow: none; | |
24 | + text-shadow: none; | |
25 | +} | |
26 | +.social_share_privacy_area .disqus .disqus-widget a.name { | |
27 | + overflow: hidden; | |
28 | + font-weight: bold; | |
29 | + text-transform: uppercase; | |
30 | + text-decoration: none; | |
31 | + color: #5E8BA9; | |
32 | + -webkit-text-shadow: 0 1px 0 rgba(255,255,255,0.5); | |
33 | + -moz-text-shadow: 0 1px 0 rgba(255,255,255,0.5); | |
34 | + -ms-text-shadow: 0 1px 0 rgba(255,255,255,0.5); | |
35 | + -o-text-shadow: 0 1px 0 rgba(255,255,255,0.5); | |
36 | + text-shadow: 0 1px 0 rgba(255,255,255,0.5); | |
37 | + height: 18px; | |
38 | + border: 1px solid #ccc; | |
39 | + border-radius: 3px; | |
40 | + background-color: #f8f8f8; | |
41 | + background-image: -webkit-gradient(linear,left top,left bottom,from(#fff),to(#dedede)); | |
42 | + background-image: -moz-linear-gradient(top,#fff,#dedede); | |
43 | + background-image: -o-linear-gradient(top,#fff,#dedede); | |
44 | + background-image: -ms-linear-gradient(top,#fff,#dedede); | |
45 | + background-image: linear-gradient(top,#fff,#dedede); | |
46 | +} | |
47 | +.social_share_privacy_area .disqus .disqus-widget a.name .us { | |
48 | + color: #b84; | |
49 | +} | |
50 | +.social_share_privacy_area.line .disqus .disqus-widget { | |
51 | + min-width: 94px; | |
52 | +} | |
53 | +.social_share_privacy_area.line .disqus .disqus-widget .count, | |
54 | +.social_share_privacy_area.line .disqus .disqus-widget a.name { | |
55 | + display: inline-block; | |
56 | + padding: 0px 4px; | |
57 | + vertical-align: top; | |
58 | +} | |
59 | +.social_share_privacy_area.box .disqus .disqus-widget { | |
60 | + display: block; | |
61 | + width: 55px; | |
62 | + height: 61px; | |
63 | + margin: auto; | |
64 | +} | |
65 | +.social_share_privacy_area.box .disqus .disqus-widget .count, | |
66 | +.social_share_privacy_area.box .disqus .disqus-widget a.name { | |
67 | + display: block; | |
68 | + width: 53px; | |
69 | + text-align: center; | |
70 | +} | |
71 | +.social_share_privacy_area .disqus .disqus-widget a.name:hover { | |
72 | + border-color: #bbb; | |
73 | + background-image: -webkit-gradient(linear,left top,left bottom,from(#f8f8f8),to(#d9d9d9)); | |
74 | + background-image: -moz-linear-gradient(top,#f8f8f8,#d9d9d9); | |
75 | + background-image: -o-linear-gradient(top,#f8f8f8,#d9d9d9); | |
76 | + background-image: -ms-linear-gradient(top,#f8f8f8,#d9d9d9); | |
77 | + background-image: linear-gradient(top,#f8f8f8,#d9d9d9); | |
78 | +} | |
79 | +.social_share_privacy_area .disqus .disqus-widget a.name:active { | |
80 | + background-color: #efefef; | |
81 | + -webkit-box-shadow: inset 0 3px 5px rgba(0,0,0,0.1); | |
82 | + -moz-box-shadow: inset 0 3px 5px rgba(0,0,0,0.1); | |
83 | + box-shadow: inset 0 3px 5px rgba(0,0,0,0.1); | |
84 | +} | |
85 | +.social_share_privacy_area .disqus .disqus-widget .count { | |
86 | + position: relative; | |
87 | + height: 18px; | |
88 | + border: 1px solid #bbb; | |
89 | + background: white; | |
90 | + border-radius: 3px; | |
91 | + text-align: center; | |
92 | +} | |
93 | +.social_share_privacy_area .disqus .disqus-widget .count a { | |
94 | + font-weight: normal; | |
95 | +} | |
96 | +.social_share_privacy_area.line .disqus .disqus-widget .count { | |
97 | + margin-left: 4px; | |
98 | + min-width: 1em; | |
99 | +} | |
100 | +.social_share_privacy_area.box .disqus .disqus-widget .count { | |
101 | + height: 34px; | |
102 | + line-height: 34px; | |
103 | + font-size: 14px; | |
104 | + margin-bottom: 5px; | |
105 | +} | |
106 | +.social_share_privacy_area.line .disqus .disqus-widget .count u, | |
107 | +.social_share_privacy_area.line .disqus .disqus-widget .count i { | |
108 | + position: absolute; | |
109 | + zoom: 1; | |
110 | + line-height: 0; | |
111 | + width: 0; | |
112 | + height: 0; | |
113 | + left: 0; | |
114 | + top: 50%; | |
115 | + margin: -4px 0 0 -4px; | |
116 | + border: 4px transparent solid; | |
117 | + border-right-color: #aaa; | |
118 | + border-left: 0; | |
119 | +} | |
120 | +.social_share_privacy_area.line .disqus .disqus-widget .count u { | |
121 | + margin-left: -3px; | |
122 | + border-right-color: #fff; | |
123 | +} | |
124 | +.social_share_privacy_area.box .disqus .disqus-widget .count u, | |
125 | +.social_share_privacy_area.box .disqus .disqus-widget .count i { | |
126 | + position: absolute; | |
127 | + zoom: 1; | |
128 | + line-height: 0; | |
129 | + top: auto; | |
130 | + left: 50%; | |
131 | + bottom: 0; | |
132 | + right: auto; | |
133 | + margin: 0 0 -4px -4px; | |
134 | + border: 4px transparent solid; | |
135 | + border-top-color: #aaa; | |
136 | + border-bottom: 0; | |
137 | + width: 0; | |
138 | + height: 0; | |
139 | +} | |
140 | +.social_share_privacy_area.box .disqus .disqus-widget .count u { | |
141 | + margin-bottom: -3px; | |
142 | + border-top-color: #fff; | |
143 | +} | |
144 | +.social_share_privacy_area .disqus .disqus-widget .count a { | |
145 | + color: #333; | |
146 | + text-decoration: none; | |
147 | +} | |
148 | +.social_share_privacy_area .disqus .disqus-widget .count a:hover { | |
149 | + color: #333; | |
150 | + text-decoration: underline; | |
151 | +} | ... | ... |
... | ... | @@ -0,0 +1,11 @@ |
1 | +.social_share_privacy_area.line .facebook .fb_like { | |
2 | + width: 120px; | |
3 | +} | |
4 | +.social_share_privacy_area.line .facebook iframe { | |
5 | + width: 120px; | |
6 | + height: 21px; | |
7 | +} | |
8 | +.social_share_privacy_area.box .facebook iframe { | |
9 | + width: 62px; | |
10 | + height: 62px; | |
11 | +} | ... | ... |
... | ... | @@ -0,0 +1,29 @@ |
1 | +.social_share_privacy_area.line .flattr img { | |
2 | + width: 72px; | |
3 | + height: 20px; | |
4 | + margin-right: 48px; | |
5 | +} | |
6 | +.social_share_privacy_area.line .flattr a, | |
7 | +.social_share_privacy_area.line .flattr iframe { | |
8 | + width: 110px; | |
9 | + height: 20px; | |
10 | + margin-right: 10px; | |
11 | +} | |
12 | +.social_share_privacy_area.line .flattr a { | |
13 | + display: inline-block; | |
14 | +} | |
15 | +.social_share_privacy_area.box .flattr a, | |
16 | +.social_share_privacy_area.box .flattr img, | |
17 | +.social_share_privacy_area.box .flattr iframe { | |
18 | + width: 62px; | |
19 | + height: 62px; | |
20 | +} | |
21 | +.social_share_privacy_area.box .flattr a { | |
22 | + display: block; | |
23 | + visibility: hidden; | |
24 | + margin: auto; | |
25 | +} | |
26 | +.social_share_privacy_area.box .flattr .dummy_btn { | |
27 | + min-width: 62px; | |
28 | + min-height: 67px; | |
29 | +} | ... | ... |
... | ... | @@ -0,0 +1,10 @@ |
1 | +.social_share_privacy_area.line .gplus img.gplusone_privacy_dummy { | |
2 | + width: 32px; | |
3 | +} | |
4 | +.social_share_privacy_area.line li div.gplusone { | |
5 | + width: 90px; | |
6 | +} | |
7 | +.social_share_privacy_area.box li div.gplusone { | |
8 | + min-width: 50px; | |
9 | + min-height: 65px; | |
10 | +} | ... | ... |
... | ... | @@ -0,0 +1,128 @@ |
1 | +.social_share_privacy_area.line .hackernews img.privacy_dummy { | |
2 | + width: 20px; | |
3 | + height: 20px; | |
4 | + margin-right: 70px; | |
5 | +} | |
6 | +.social_share_privacy_area.box .hackernews img.privacy_dummy { | |
7 | + width: 62px; | |
8 | + height: 62px; | |
9 | +} | |
10 | +.social_share_privacy_area .hackernews .hackernews-widget { | |
11 | + line-height: 20px; | |
12 | + font-size: 11px; | |
13 | + font-family: Arial, sans-serif; | |
14 | + cursor: text; | |
15 | + white-space: nowrap; | |
16 | + text-align: left; | |
17 | +} | |
18 | +.social_share_privacy_area .hackernews .hackernews-widget a.name { | |
19 | + overflow: hidden; | |
20 | + font-weight: bold; | |
21 | + font-size: 12px; | |
22 | + text-decoration: none; | |
23 | + text-align: center; | |
24 | + color: #ffffff; | |
25 | + height: 20px; | |
26 | + border-radius: 3px; | |
27 | + background-color: #ff6600; | |
28 | +} | |
29 | +.social_share_privacy_area.line .hackernews .hackernews-widget { | |
30 | + min-width: 90px; | |
31 | +} | |
32 | +.social_share_privacy_area.line .hackernews .hackernews-widget .points { | |
33 | + display: inline-block; | |
34 | + padding: 0px 4px; | |
35 | + vertical-align: top; | |
36 | +} | |
37 | +.social_share_privacy_area.line .hackernews .hackernews-widget a.name { | |
38 | + display: inline-block; | |
39 | + width: 20px; | |
40 | +} | |
41 | +.social_share_privacy_area.box .hackernews .hackernews-widget { | |
42 | + display: block; | |
43 | + width: 62px; | |
44 | + height: 62px; | |
45 | + margin: auto; | |
46 | +} | |
47 | +.social_share_privacy_area.box .hackernews .hackernews-widget a.name { | |
48 | + display: block; | |
49 | + width: 62px; | |
50 | +} | |
51 | +.social_share_privacy_area .hackernews .hackernews-widget a.name:hover { | |
52 | + background-color: #ff8635; | |
53 | +} | |
54 | +.social_share_privacy_area .hackernews .hackernews-widget a.name:active { | |
55 | + background-color: #ff8635; | |
56 | + -webkit-box-shadow: inset 0 3px 5px rgba(0,0,0,0.1); | |
57 | + -moz-box-shadow: inset 0 3px 5px rgba(0,0,0,0.1); | |
58 | + box-shadow: inset 0 3px 5px rgba(0,0,0,0.1); | |
59 | +} | |
60 | +.social_share_privacy_area .hackernews .hackernews-widget .points { | |
61 | + position: relative; | |
62 | + height: 18px; | |
63 | + border: 1px solid #bbb; | |
64 | + background: white; | |
65 | + border-radius: 3px; | |
66 | + text-align: center; | |
67 | +} | |
68 | +.social_share_privacy_area .hackernews .hackernews-widget .points a { | |
69 | + font-weight: normal; | |
70 | +} | |
71 | +.social_share_privacy_area.line .hackernews .hackernews-widget .points { | |
72 | + margin-left: 4px; | |
73 | + min-width: 1em; | |
74 | +} | |
75 | +.social_share_privacy_area.box .hackernews .hackernews-widget .points { | |
76 | + display: block; | |
77 | + width: 60px; | |
78 | + height: 35px; | |
79 | + line-height: 35px; | |
80 | + font-size: 14px; | |
81 | + margin-bottom: 5px; | |
82 | +} | |
83 | +.social_share_privacy_area.line .hackernews .hackernews-widget .points u, | |
84 | +.social_share_privacy_area.line .hackernews .hackernews-widget .points i { | |
85 | + position: absolute; | |
86 | + zoom: 1; | |
87 | + line-height: 0; | |
88 | + width: 0; | |
89 | + height: 0; | |
90 | + left: 0; | |
91 | + top: 50%; | |
92 | + margin: -4px 0 0 -4px; | |
93 | + border: 4px transparent solid; | |
94 | + border-right-color: #aaa; | |
95 | + border-left: 0; | |
96 | +} | |
97 | +.social_share_privacy_area.line .hackernews .hackernews-widget .points u { | |
98 | + margin-left: -3px; | |
99 | + border-right-color: #fff; | |
100 | +} | |
101 | +.social_share_privacy_area.box .hackernews .hackernews-widget .points u, | |
102 | +.social_share_privacy_area.box .hackernews .hackernews-widget .points i { | |
103 | + position: absolute; | |
104 | + zoom: 1; | |
105 | + line-height: 0; | |
106 | + top: auto; | |
107 | + left: 50%; | |
108 | + bottom: 0; | |
109 | + right: auto; | |
110 | + margin: 0 0 -4px -4px; | |
111 | + border: 4px transparent solid; | |
112 | + border-top-color: #aaa; | |
113 | + border-bottom: 0; | |
114 | + width: 0; | |
115 | + height: 0; | |
116 | +} | |
117 | +.social_share_privacy_area.box .hackernews .hackernews-widget .points u { | |
118 | + margin-bottom: -3px; | |
119 | + border-top-color: #fff; | |
120 | +} | |
121 | +.social_share_privacy_area .hackernews .hackernews-widget .points a { | |
122 | + color: #333; | |
123 | + text-decoration: none; | |
124 | +} | |
125 | +.social_share_privacy_area .hackernews .hackernews-widget .points a:hover { | |
126 | + color: #333; | |
127 | + text-decoration: underline; | |
128 | +} | ... | ... |
... | ... | @@ -0,0 +1,12 @@ |
1 | +.social_share_privacy_area.line .linkedin img.linkedin_privacy_dummy { | |
2 | + width: 63px; | |
3 | + height: 20px; | |
4 | +} | |
5 | +.social_share_privacy_area.box .linkedin img.linkedin_privacy_dummy { | |
6 | + width: 61px; | |
7 | + height: 62px; | |
8 | +} | |
9 | +.social_share_privacy_area.box .linkedin .dummy_btn { | |
10 | + min-width: 61px; | |
11 | + min-height: 62px; | |
12 | +} | ... | ... |
... | ... | @@ -0,0 +1,15 @@ |
1 | +.social_share_privacy_area.line li div.pinit { | |
2 | + width: 100px; | |
3 | +} | |
4 | +.social_share_privacy_area.box .pinterest .dummy_btn.pinit a { | |
5 | + /* pinterest style bugfix */ | |
6 | + margin-top: 29px!important; | |
7 | +} | |
8 | +.social_share_privacy_area.line .pinterest .dummy_btn img.privacy_dummy { | |
9 | + width: 40px; | |
10 | + height: 20px; | |
11 | +} | |
12 | +.social_share_privacy_area.box .pinterest .dummy_btn img.privacy_dummy { | |
13 | + width: 40px; | |
14 | + height: 50px; | |
15 | +} | ... | ... |
... | ... | @@ -0,0 +1,10 @@ |
1 | +.social_share_privacy_area.line .stumbleupon iframe, | |
2 | +.social_share_privacy_area.line .stumbleupon img { | |
3 | + width: 74px; | |
4 | + height: 18px; | |
5 | +} | |
6 | +.social_share_privacy_area.box .stumbleupon iframe, | |
7 | +.social_share_privacy_area.box .stumbleupon img { | |
8 | + width: 50px; | |
9 | + height: 60px; | |
10 | +} | ... | ... |
... | ... | @@ -0,0 +1,16 @@ |
1 | +.social_share_privacy_area.line .xing img.xing_privacy_dummy { | |
2 | + width: 55px; | |
3 | + height: 20px; | |
4 | + margin-right: 66px; | |
5 | +} | |
6 | +.social_share_privacy_area.box .xing img.xing_privacy_dummy { | |
7 | + width: 55px; | |
8 | + height: 62px; | |
9 | +} | |
10 | +.social_share_privacy_area.box .xing .dummy_btn { | |
11 | + min-width: 55px; | |
12 | + min-height: 62px; | |
13 | +} | |
14 | +.social_share_privacy_area.box .xing .dummy_btn div { | |
15 | + margin: auto; | |
16 | +} | ... | ... |
... | ... | @@ -0,0 +1,16 @@ |
1 | +@import url("common.css"); | |
2 | +@import url("modules/buffer.css"); | |
3 | +@import url("modules/delicious.css"); | |
4 | +@import url("modules/disqus.css"); | |
5 | +@import url("modules/facebook.css"); | |
6 | +@import url("modules/flattr.css"); | |
7 | +@import url("modules/gplus.css"); | |
8 | +@import url("modules/hackernews.css"); | |
9 | +@import url("modules/linkedin.css"); | |
10 | +@import url("modules/mail.css"); | |
11 | +@import url("modules/pinterest.css"); | |
12 | +@import url("modules/reddit.css"); | |
13 | +@import url("modules/stumbleupon.css"); | |
14 | +@import url("modules/tumblr.css"); | |
15 | +@import url("modules/twitter.css"); | |
16 | +@import url("modules/xing.css"); | ... | ... |
... | ... | @@ -1,231 +0,0 @@ |
1 | -.social_share_privacy_area { | |
2 | - clear: both; | |
3 | - margin: 5px 0; | |
4 | - list-style-type: none; | |
5 | - padding: 0; | |
6 | - width: auto; | |
7 | - display: block; | |
8 | -} | |
9 | -.social_share_privacy_area.line { | |
10 | - height: 25px; | |
11 | - line-height: 16px; | |
12 | -} | |
13 | -.social_share_privacy_area.box { | |
14 | - width: 95px; | |
15 | -} | |
16 | -.social_share_privacy_area li { | |
17 | - margin: 0 !important; | |
18 | - padding: 0 !important; | |
19 | - list-style-type: none !important; | |
20 | -} | |
21 | -.social_share_privacy_area.box li { | |
22 | - text-align: center; | |
23 | -} | |
24 | -.social_share_privacy_area.line li { | |
25 | - height: 21px; | |
26 | - float: left; | |
27 | - width: 33%; | |
28 | -} | |
29 | -.social_share_privacy_area li .dummy_btn { | |
30 | - cursor: pointer; | |
31 | - padding: 0; | |
32 | - height: inherit; | |
33 | -} | |
34 | -.social_share_privacy_area.line li .dummy_btn { | |
35 | - float: left; | |
36 | - margin: 0 10px 0 10px; | |
37 | -} | |
38 | -.social_share_privacy_area.box li .dummy_btn { | |
39 | - margin-bottom: 10px; | |
40 | -} | |
41 | -.social_share_privacy_area li .dummy_btn img.privacy_dummy, | |
42 | -.social_share_privacy_area li .dummy_btn iframe { | |
43 | - vertical-align: bottom; | |
44 | -} | |
45 | -.social_share_privacy_area li .dummy_btn iframe { | |
46 | - overflow: hidden; | |
47 | - height: inherit; | |
48 | - width: inherit; | |
49 | - border-style: none; | |
50 | -} | |
51 | -.social_share_privacy_area.line li { | |
52 | - display: inline-block; | |
53 | -} | |
54 | -/* Switch begin */ | |
55 | -.social_share_privacy_area li .switch { | |
56 | - display: inline-block; | |
57 | - text-indent: -9999em; | |
58 | - background: transparent url(../images/socialshareprivacy_on_off.png) no-repeat 0 0 scroll; | |
59 | - width: 23px; | |
60 | - height: 12px; | |
61 | - overflow: hidden; | |
62 | - margin: 4px 0 0; | |
63 | - padding: 0; | |
64 | - cursor: pointer; | |
65 | -} | |
66 | -.social_share_privacy_area.line li .switch { | |
67 | - float: left; | |
68 | -} | |
69 | -.social_share_privacy_area li .switch.on { | |
70 | - background-position: 0 -12px; | |
71 | -} | |
72 | -/* Switch end */ | |
73 | -/* Tooltips begin */ | |
74 | -.social_share_privacy_area li.help_info { | |
75 | - position: relative; | |
76 | -} | |
77 | -.social_share_privacy_area li.settings_info, | |
78 | -.social_share_privacy_area li.help_info .info { | |
79 | - text-align: left; | |
80 | -} | |
81 | -.social_share_privacy_area li.help_info .info, | |
82 | -.social_share_privacy_area li .help_info.icon .info { | |
83 | - display: none; | |
84 | - position: absolute; | |
85 | - bottom: 40px; | |
86 | - width: 290px; | |
87 | - padding: 10px 15px; | |
88 | - margin: 0; | |
89 | - font-size: 12px; | |
90 | - line-height: 16px; | |
91 | - font-weight: bold; | |
92 | - border: 1px solid #ccc; | |
93 | - -moz-border-radius: 4px; | |
94 | - -webkit-border-radius: 4px; | |
95 | - border-radius: 4px; | |
96 | - -moz-box-shadow: 0px 0px 15px rgba(0,0,0,0.4); | |
97 | - -webkit-box-shadow: 0px 0px 15px rgba(0,0,0,0.4); | |
98 | - box-shadow: 0px 0px 15px rgba(0,0,0,0.4); | |
99 | - background-color: #fdfbec; | |
100 | - color: #000; | |
101 | - z-index: 500; | |
102 | -} | |
103 | -.social_share_privacy_area.line li.help_info .info, | |
104 | -.social_share_privacy_area li .help_info.icon .info { | |
105 | - left: 0; | |
106 | -} | |
107 | -.social_share_privacy_area.box li.help_info .info { | |
108 | - left: 100%; | |
109 | - top: 0px; | |
110 | - bottom: auto; | |
111 | -} | |
112 | -.social_share_privacy_area li .help_info.icon .info { | |
113 | - width: 350px; | |
114 | -} | |
115 | -.social_share_privacy_area li.help_info.display .info, | |
116 | -.social_share_privacy_area li .help_info.icon.display .info { | |
117 | - display: block; | |
118 | -} | |
119 | -.social_share_privacy_area li.help_info.info_off.display .info { | |
120 | - display: none; | |
121 | -} | |
122 | -.social_share_privacy_area li .help_info.icon { | |
123 | - background: #fff url(../images/socialshareprivacy_info.png) no-repeat center center scroll; | |
124 | - width: 25px; | |
125 | - height: 20px; | |
126 | - position: relative; | |
127 | - display: inline-block; | |
128 | - vertical-align: top; | |
129 | - border: 2px solid #e7e3e3; | |
130 | - border-right-width: 0; | |
131 | - -moz-border-radius: 5px 0 0 5px; | |
132 | - -webkit-border-radius: 5px 0 0 5px; | |
133 | - border-radius: 5px 0 0 5px; | |
134 | - margin: 0; | |
135 | - padding: 0; | |
136 | -} | |
137 | -.social_share_privacy_area li.settings_info .settings_info_menu.perma_option_off .help_info.icon { | |
138 | - border-right-width: 2px; | |
139 | - -moz-border-radius: 5px; | |
140 | - -webkit-border-radius: 5px; | |
141 | - border-radius: 5px; | |
142 | -} | |
143 | -/* Tooltips end */ | |
144 | -/* Settings/Info begin */ | |
145 | -.social_share_privacy_area li.settings_info { | |
146 | - position: relative; | |
147 | - top: -2px; | |
148 | -} | |
149 | -.social_share_privacy_area li.settings_info a { | |
150 | - text-decoration: none; | |
151 | - margin: 0 !important; | |
152 | -} | |
153 | -.social_share_privacy_area li.settings_info .settings_info_menu { | |
154 | - background-color: #f3f4f5; | |
155 | - color: #000; | |
156 | - border-style: none; | |
157 | - -moz-border-radius: 5px; | |
158 | - -webkit-border-radius: 5px; | |
159 | - border-radius: 5px; | |
160 | - -moz-box-shadow: 0px 0px 15px rgba(0,0,0,0.4); | |
161 | - -webkit-box-shadow: 0px 0px 15px rgba(0,0,0,0.4); | |
162 | - box-shadow: 0px 0px 15px rgba(0,0,0,0.4); | |
163 | - left: 0; | |
164 | - position: absolute; | |
165 | - top: 0; | |
166 | - min-width: 135px; | |
167 | - margin: 0; | |
168 | - padding: 0; | |
169 | -} | |
170 | -.social_share_privacy_area li.settings_info .settings_info_menu.on { | |
171 | - z-index: 1000; | |
172 | -} | |
173 | -.social_share_privacy_area li.settings_info .settings_info_menu.off { | |
174 | - border-width: 0; | |
175 | - -moz-box-shadow: none; | |
176 | - -webkit-box-shadow: none; | |
177 | - box-shadow: none; | |
178 | - background-color: transparent; | |
179 | -} | |
180 | -.social_share_privacy_area li.settings_info .settings_info_menu.off form { | |
181 | - display: none; | |
182 | - margin: 0; | |
183 | - padding: 0; | |
184 | -} | |
185 | -.social_share_privacy_area li.settings_info .settings_info_menu .settings { | |
186 | - text-indent: -9999em; | |
187 | - display: inline-block; | |
188 | - background: #fff url(../images/settings.png) no-repeat center center scroll; | |
189 | - width: 25px; | |
190 | - height: 20px; | |
191 | - border: 2px solid #e7e3e3; | |
192 | - -moz-border-radius: 0 5px 5px 0; | |
193 | - -webkit-border-radius: 0 5px 5px 0; | |
194 | - border-radius: 0 5px 5px 0; | |
195 | - border-left: 1px solid #ddd; | |
196 | - margin: 0; | |
197 | - padding: 0; | |
198 | -} | |
199 | -.social_share_privacy_area li.settings_info .settings_info_menu form fieldset { | |
200 | - border-width: 0; | |
201 | - margin: 0; | |
202 | - padding: 0 10px 10px; | |
203 | -} | |
204 | -.social_share_privacy_area li.settings_info .settings_info_menu form fieldset legend { | |
205 | - font-size: 11px; | |
206 | - font-weight: bold; | |
207 | - line-height: 14px; | |
208 | - margin: 0; | |
209 | - padding: 10px 0; | |
210 | - width: 115px; | |
211 | -} | |
212 | -.social_share_privacy_area li.settings_info .settings_info_menu form fieldset input { | |
213 | - margin: 4px 10px 4px 0; | |
214 | - padding: 0; | |
215 | -} | |
216 | -.social_share_privacy_area li.settings_info .settings_info_menu form fieldset label { | |
217 | - display: block; | |
218 | - font-size: 12px; | |
219 | - font-weight: bold; | |
220 | - line-height: 24px; | |
221 | - -moz-transition: color .5s ease-in; | |
222 | - -webkit-transition: color .5s ease-in; | |
223 | - transition: color .5s ease-in; | |
224 | - margin: 0; | |
225 | - padding: 0; | |
226 | - white-space: nowrap; | |
227 | -} | |
228 | -.social_share_privacy_area li.settings_info .settings_info_menu form fieldset label.checked { | |
229 | - color: #090; | |
230 | -} | |
231 | -/* Settings/Info end */ |
... | ... | @@ -1,14 +0,0 @@ |
1 | -.social_share_privacy_area.line .buffer iframe { | |
2 | - width: 110px; | |
3 | - height: 20px; | |
4 | -} | |
5 | -.social_share_privacy_area.line .buffer img { | |
6 | - width: 55px; | |
7 | - height: 20px; | |
8 | - margin-right: 55px; | |
9 | -} | |
10 | -.social_share_privacy_area.box .buffer iframe, | |
11 | -.social_share_privacy_area.box .buffer img { | |
12 | - width: 55px; | |
13 | - height: 62px; | |
14 | -} |
... | ... | @@ -1,155 +0,0 @@ |
1 | -/* Delicious Button v1.1 | |
2 | -Blog : http://www.moretechtips.net | |
3 | -Project: http://code.google.com/p/delicious-button/ | |
4 | -Copyright 2010 [Mike @ moretechtips.net] | |
5 | -Licensed under the Apache License, Version 2.0 | |
6 | -(the "License"); you may not use this file except in compliance with the License. | |
7 | -You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 */ | |
8 | -.social_share_privacy_area.box .delicious .delicious-widget, | |
9 | -.social_share_privacy_area.box .delicious img.privacy_dummy { | |
10 | - width: 50px; | |
11 | - height: 62px; | |
12 | -} | |
13 | -.social_share_privacy_area.line .delicious .delicious-widget, | |
14 | -.social_share_privacy_area.line .delicious img.privacy_dummy { | |
15 | - width: 75px; | |
16 | - height: 20px; | |
17 | - margin-right: 20px; | |
18 | -} | |
19 | -.social_share_privacy_area.box .delicious div.delicious-widget { | |
20 | - font-family:Arial,Tahoma,Sans-Serif; | |
21 | - font-size:11px; | |
22 | - width:50px; | |
23 | - margin: 0 auto; | |
24 | -} | |
25 | -.social_share_privacy_area.box .delicious a.icon, | |
26 | -.social_share_privacy_area.box .delicious a.count { | |
27 | - color:#FFF!important; | |
28 | - display:block; | |
29 | - -webkit-border-radius:3px; | |
30 | - -moz-border-radius:3px; | |
31 | - -o-border-radius:3px; | |
32 | - border-radius:3px; | |
33 | - outline:none!important; | |
34 | - text-decoration:none!important; | |
35 | -} | |
36 | -.social_share_privacy_area.box .delicious a.icon { | |
37 | - background:#fff; | |
38 | - border:1px solid #ccc; | |
39 | - height:38px; | |
40 | - overflow:hidden; | |
41 | - position:relative; | |
42 | - direction:ltr; | |
43 | -} | |
44 | -.social_share_privacy_area.box .delicious a.icon:hover { | |
45 | - border-color:#666; | |
46 | -} | |
47 | -.social_share_privacy_area.box .delicious a.count { | |
48 | - margin-top:2px; | |
49 | - text-align:center; | |
50 | - font-size:12px; | |
51 | - line-height:18px; | |
52 | - height:18px; | |
53 | - background:#3274D0; | |
54 | - border:#3274D0 1px solid; | |
55 | - text-shadow:#2A5580 1px 1px 0; | |
56 | -} | |
57 | -.social_share_privacy_area.box .delicious a.count:hover { | |
58 | - background:#369; | |
59 | - border-color:#369; | |
60 | -} | |
61 | -.social_share_privacy_area.box .delicious a.count:active { | |
62 | - background:#000; | |
63 | - border:#333 1px solid; | |
64 | - text-shadow:#222 1px 1px 0; | |
65 | - outline:none; | |
66 | -} | |
67 | -.social_share_privacy_area.line .delicious div.delicious-widget { | |
68 | - font-family:Arial,Tahoma,Sans-Serif; | |
69 | - font-size:11px; | |
70 | - width:76px; | |
71 | -} | |
72 | -.social_share_privacy_area.line .delicious a.icon, | |
73 | -.social_share_privacy_area.line .delicious a.count { | |
74 | - display:block; | |
75 | - float:left; | |
76 | - line-height:18px; | |
77 | - border:#666 solid 1px; | |
78 | - -webkit-border-radius:3px; | |
79 | - -moz-border-radius:3px; | |
80 | - -o-border-radius:3px; | |
81 | - border-radius:3px; | |
82 | - outline:none!important; | |
83 | - text-decoration:none!important; | |
84 | - height:18px; | |
85 | - overflow:hidden; | |
86 | - color:#FFF!important; | |
87 | -} | |
88 | -.social_share_privacy_area.line .delicious a.icon { | |
89 | - background:#fff; | |
90 | - border-color:#ccc; | |
91 | - width:20px; | |
92 | - position:relative; | |
93 | - direction:ltr; | |
94 | - margin-right:1px; | |
95 | -} | |
96 | -.social_share_privacy_area.line .delicious a.icon:hover { | |
97 | - border-color:#666; | |
98 | -} | |
99 | -.social_share_privacy_area.line .delicious a.count { | |
100 | - font-size:12px; | |
101 | - background:#3274D0; | |
102 | - border-color:#3274D0; | |
103 | - width:50px; | |
104 | - text-align:center; | |
105 | - text-shadow:#2A5580 1px 1px 0; | |
106 | -} | |
107 | -.social_share_privacy_area.line .delicious a.count:hover { | |
108 | - background:#369; | |
109 | - border-color:#369; | |
110 | - text-shadow:#369 1px 1px 0; | |
111 | -} | |
112 | -.social_share_privacy_area.line .delicious a.count:active { | |
113 | - background:#000; | |
114 | - border-color:#333; | |
115 | - text-shadow:#222 1px 1px 0; | |
116 | -} | |
117 | -.social_share_privacy_area.box .delicious a.icon:hover *, | |
118 | -.social_share_privacy_area.line .delicious a.icon:hover * { | |
119 | - opacity:0.85; | |
120 | - filter:alpha(opacity=85); | |
121 | -} | |
122 | -.social_share_privacy_area.box .delicious a.icon *, | |
123 | -.social_share_privacy_area.line .delicious a.icon * { | |
124 | - width:50%; | |
125 | - height:50%; | |
126 | - position:absolute; | |
127 | - margin:0!important; | |
128 | -} | |
129 | -.social_share_privacy_area.box .delicious div.delicious1, | |
130 | -.social_share_privacy_area.line .delicious div.delicious1 { | |
131 | - background:#3274D0; | |
132 | - left:50%; | |
133 | - top:0; | |
134 | -} | |
135 | -.social_share_privacy_area.box .delicious div.delicious2, | |
136 | -.social_share_privacy_area.line .delicious div.delicious2 { | |
137 | - background:#000; | |
138 | - left:0; | |
139 | - top:50%; | |
140 | -} | |
141 | -.social_share_privacy_area.box .delicious div.delicious3, | |
142 | -.social_share_privacy_area.line .delicious div.delicious3 { | |
143 | - background:#D3D2D2; | |
144 | - left:50%; | |
145 | - top:50%; | |
146 | -} | |
147 | -.social_share_privacy_area.box .delicious a.count i, | |
148 | -.social_share_privacy_area.line .delicious a.count i { | |
149 | - display:none; | |
150 | - font-style:normal; | |
151 | -} | |
152 | -.social_share_privacy_area.box .delicious a.count b, | |
153 | -.social_share_privacy_area.line .delicious a.count b { | |
154 | - font-weight:normal; | |
155 | -} |
... | ... | @@ -1,151 +0,0 @@ |
1 | -.social_share_privacy_area.line .disqus img.privacy_dummy { | |
2 | - width: 49px; | |
3 | - height: 20px; | |
4 | - margin-right: 45px; | |
5 | -} | |
6 | -.social_share_privacy_area.box .disqus img.privacy_dummy { | |
7 | - width: 55px; | |
8 | - height: 61px; | |
9 | -} | |
10 | -.social_share_privacy_area .disqus .disqus-widget { | |
11 | - line-height: 20px; | |
12 | - font-size: 11px; | |
13 | - font-family: Arial, sans-serif; | |
14 | - cursor: text; | |
15 | - white-space: nowrap; | |
16 | - text-align: left; | |
17 | -} | |
18 | -.social_share_privacy_area .disqus .disqus-widget a, | |
19 | -.social_share_privacy_area .disqus .disqus-widget a:hover { | |
20 | - -webkit-text-shadow: none; | |
21 | - -moz-text-shadow: none; | |
22 | - -ms-text-shadow: none; | |
23 | - -o-text-shadow: none; | |
24 | - text-shadow: none; | |
25 | -} | |
26 | -.social_share_privacy_area .disqus .disqus-widget a.name { | |
27 | - overflow: hidden; | |
28 | - font-weight: bold; | |
29 | - text-transform: uppercase; | |
30 | - text-decoration: none; | |
31 | - color: #5E8BA9; | |
32 | - -webkit-text-shadow: 0 1px 0 rgba(255,255,255,0.5); | |
33 | - -moz-text-shadow: 0 1px 0 rgba(255,255,255,0.5); | |
34 | - -ms-text-shadow: 0 1px 0 rgba(255,255,255,0.5); | |
35 | - -o-text-shadow: 0 1px 0 rgba(255,255,255,0.5); | |
36 | - text-shadow: 0 1px 0 rgba(255,255,255,0.5); | |
37 | - height: 18px; | |
38 | - border: 1px solid #ccc; | |
39 | - border-radius: 3px; | |
40 | - background-color: #f8f8f8; | |
41 | - background-image: -webkit-gradient(linear,left top,left bottom,from(#fff),to(#dedede)); | |
42 | - background-image: -moz-linear-gradient(top,#fff,#dedede); | |
43 | - background-image: -o-linear-gradient(top,#fff,#dedede); | |
44 | - background-image: -ms-linear-gradient(top,#fff,#dedede); | |
45 | - background-image: linear-gradient(top,#fff,#dedede); | |
46 | -} | |
47 | -.social_share_privacy_area .disqus .disqus-widget a.name .us { | |
48 | - color: #b84; | |
49 | -} | |
50 | -.social_share_privacy_area.line .disqus .disqus-widget { | |
51 | - min-width: 94px; | |
52 | -} | |
53 | -.social_share_privacy_area.line .disqus .disqus-widget .count, | |
54 | -.social_share_privacy_area.line .disqus .disqus-widget a.name { | |
55 | - display: inline-block; | |
56 | - padding: 0px 4px; | |
57 | - vertical-align: top; | |
58 | -} | |
59 | -.social_share_privacy_area.box .disqus .disqus-widget { | |
60 | - display: block; | |
61 | - width: 55px; | |
62 | - height: 61px; | |
63 | - margin: auto; | |
64 | -} | |
65 | -.social_share_privacy_area.box .disqus .disqus-widget .count, | |
66 | -.social_share_privacy_area.box .disqus .disqus-widget a.name { | |
67 | - display: block; | |
68 | - width: 53px; | |
69 | - text-align: center; | |
70 | -} | |
71 | -.social_share_privacy_area .disqus .disqus-widget a.name:hover { | |
72 | - border-color: #bbb; | |
73 | - background-image: -webkit-gradient(linear,left top,left bottom,from(#f8f8f8),to(#d9d9d9)); | |
74 | - background-image: -moz-linear-gradient(top,#f8f8f8,#d9d9d9); | |
75 | - background-image: -o-linear-gradient(top,#f8f8f8,#d9d9d9); | |
76 | - background-image: -ms-linear-gradient(top,#f8f8f8,#d9d9d9); | |
77 | - background-image: linear-gradient(top,#f8f8f8,#d9d9d9); | |
78 | -} | |
79 | -.social_share_privacy_area .disqus .disqus-widget a.name:active { | |
80 | - background-color: #efefef; | |
81 | - -webkit-box-shadow: inset 0 3px 5px rgba(0,0,0,0.1); | |
82 | - -moz-box-shadow: inset 0 3px 5px rgba(0,0,0,0.1); | |
83 | - box-shadow: inset 0 3px 5px rgba(0,0,0,0.1); | |
84 | -} | |
85 | -.social_share_privacy_area .disqus .disqus-widget .count { | |
86 | - position: relative; | |
87 | - height: 18px; | |
88 | - border: 1px solid #bbb; | |
89 | - background: white; | |
90 | - border-radius: 3px; | |
91 | - text-align: center; | |
92 | -} | |
93 | -.social_share_privacy_area .disqus .disqus-widget .count a { | |
94 | - font-weight: normal; | |
95 | -} | |
96 | -.social_share_privacy_area.line .disqus .disqus-widget .count { | |
97 | - margin-left: 4px; | |
98 | - min-width: 1em; | |
99 | -} | |
100 | -.social_share_privacy_area.box .disqus .disqus-widget .count { | |
101 | - height: 34px; | |
102 | - line-height: 34px; | |
103 | - font-size: 14px; | |
104 | - margin-bottom: 5px; | |
105 | -} | |
106 | -.social_share_privacy_area.line .disqus .disqus-widget .count u, | |
107 | -.social_share_privacy_area.line .disqus .disqus-widget .count i { | |
108 | - position: absolute; | |
109 | - zoom: 1; | |
110 | - line-height: 0; | |
111 | - width: 0; | |
112 | - height: 0; | |
113 | - left: 0; | |
114 | - top: 50%; | |
115 | - margin: -4px 0 0 -4px; | |
116 | - border: 4px transparent solid; | |
117 | - border-right-color: #aaa; | |
118 | - border-left: 0; | |
119 | -} | |
120 | -.social_share_privacy_area.line .disqus .disqus-widget .count u { | |
121 | - margin-left: -3px; | |
122 | - border-right-color: #fff; | |
123 | -} | |
124 | -.social_share_privacy_area.box .disqus .disqus-widget .count u, | |
125 | -.social_share_privacy_area.box .disqus .disqus-widget .count i { | |
126 | - position: absolute; | |
127 | - zoom: 1; | |
128 | - line-height: 0; | |
129 | - top: auto; | |
130 | - left: 50%; | |
131 | - bottom: 0; | |
132 | - right: auto; | |
133 | - margin: 0 0 -4px -4px; | |
134 | - border: 4px transparent solid; | |
135 | - border-top-color: #aaa; | |
136 | - border-bottom: 0; | |
137 | - width: 0; | |
138 | - height: 0; | |
139 | -} | |
140 | -.social_share_privacy_area.box .disqus .disqus-widget .count u { | |
141 | - margin-bottom: -3px; | |
142 | - border-top-color: #fff; | |
143 | -} | |
144 | -.social_share_privacy_area .disqus .disqus-widget .count a { | |
145 | - color: #333; | |
146 | - text-decoration: none; | |
147 | -} | |
148 | -.social_share_privacy_area .disqus .disqus-widget .count a:hover { | |
149 | - color: #333; | |
150 | - text-decoration: underline; | |
151 | -} |
... | ... | @@ -1,29 +0,0 @@ |
1 | -.social_share_privacy_area.line .flattr img { | |
2 | - width: 72px; | |
3 | - height: 20px; | |
4 | - margin-right: 48px; | |
5 | -} | |
6 | -.social_share_privacy_area.line .flattr a, | |
7 | -.social_share_privacy_area.line .flattr iframe { | |
8 | - width: 110px; | |
9 | - height: 20px; | |
10 | - margin-right: 10px; | |
11 | -} | |
12 | -.social_share_privacy_area.line .flattr a { | |
13 | - display: inline-block; | |
14 | -} | |
15 | -.social_share_privacy_area.box .flattr a, | |
16 | -.social_share_privacy_area.box .flattr img, | |
17 | -.social_share_privacy_area.box .flattr iframe { | |
18 | - width: 62px; | |
19 | - height: 62px; | |
20 | -} | |
21 | -.social_share_privacy_area.box .flattr a { | |
22 | - display: block; | |
23 | - visibility: hidden; | |
24 | - margin: auto; | |
25 | -} | |
26 | -.social_share_privacy_area.box .flattr .dummy_btn { | |
27 | - min-width: 62px; | |
28 | - min-height: 67px; | |
29 | -} |
... | ... | @@ -1,128 +0,0 @@ |
1 | -.social_share_privacy_area.line .hackernews img.privacy_dummy { | |
2 | - width: 20px; | |
3 | - height: 20px; | |
4 | - margin-right: 70px; | |
5 | -} | |
6 | -.social_share_privacy_area.box .hackernews img.privacy_dummy { | |
7 | - width: 62px; | |
8 | - height: 62px; | |
9 | -} | |
10 | -.social_share_privacy_area .hackernews .hackernews-widget { | |
11 | - line-height: 20px; | |
12 | - font-size: 11px; | |
13 | - font-family: Arial, sans-serif; | |
14 | - cursor: text; | |
15 | - white-space: nowrap; | |
16 | - text-align: left; | |
17 | -} | |
18 | -.social_share_privacy_area .hackernews .hackernews-widget a.name { | |
19 | - overflow: hidden; | |
20 | - font-weight: bold; | |
21 | - font-size: 12px; | |
22 | - text-decoration: none; | |
23 | - text-align: center; | |
24 | - color: #ffffff; | |
25 | - height: 20px; | |
26 | - border-radius: 3px; | |
27 | - background-color: #ff6600; | |
28 | -} | |
29 | -.social_share_privacy_area.line .hackernews .hackernews-widget { | |
30 | - min-width: 90px; | |
31 | -} | |
32 | -.social_share_privacy_area.line .hackernews .hackernews-widget .points { | |
33 | - display: inline-block; | |
34 | - padding: 0px 4px; | |
35 | - vertical-align: top; | |
36 | -} | |
37 | -.social_share_privacy_area.line .hackernews .hackernews-widget a.name { | |
38 | - display: inline-block; | |
39 | - width: 20px; | |
40 | -} | |
41 | -.social_share_privacy_area.box .hackernews .hackernews-widget { | |
42 | - display: block; | |
43 | - width: 62px; | |
44 | - height: 62px; | |
45 | - margin: auto; | |
46 | -} | |
47 | -.social_share_privacy_area.box .hackernews .hackernews-widget a.name { | |
48 | - display: block; | |
49 | - width: 62px; | |
50 | -} | |
51 | -.social_share_privacy_area .hackernews .hackernews-widget a.name:hover { | |
52 | - background-color: #ff8635; | |
53 | -} | |
54 | -.social_share_privacy_area .hackernews .hackernews-widget a.name:active { | |
55 | - background-color: #ff8635; | |
56 | - -webkit-box-shadow: inset 0 3px 5px rgba(0,0,0,0.1); | |
57 | - -moz-box-shadow: inset 0 3px 5px rgba(0,0,0,0.1); | |
58 | - box-shadow: inset 0 3px 5px rgba(0,0,0,0.1); | |
59 | -} | |
60 | -.social_share_privacy_area .hackernews .hackernews-widget .points { | |
61 | - position: relative; | |
62 | - height: 18px; | |
63 | - border: 1px solid #bbb; | |
64 | - background: white; | |
65 | - border-radius: 3px; | |
66 | - text-align: center; | |
67 | -} | |
68 | -.social_share_privacy_area .hackernews .hackernews-widget .points a { | |
69 | - font-weight: normal; | |
70 | -} | |
71 | -.social_share_privacy_area.line .hackernews .hackernews-widget .points { | |
72 | - margin-left: 4px; | |
73 | - min-width: 1em; | |
74 | -} | |
75 | -.social_share_privacy_area.box .hackernews .hackernews-widget .points { | |
76 | - display: block; | |
77 | - width: 60px; | |
78 | - height: 35px; | |
79 | - line-height: 35px; | |
80 | - font-size: 14px; | |
81 | - margin-bottom: 5px; | |
82 | -} | |
83 | -.social_share_privacy_area.line .hackernews .hackernews-widget .points u, | |
84 | -.social_share_privacy_area.line .hackernews .hackernews-widget .points i { | |
85 | - position: absolute; | |
86 | - zoom: 1; | |
87 | - line-height: 0; | |
88 | - width: 0; | |
89 | - height: 0; | |
90 | - left: 0; | |
91 | - top: 50%; | |
92 | - margin: -4px 0 0 -4px; | |
93 | - border: 4px transparent solid; | |
94 | - border-right-color: #aaa; | |
95 | - border-left: 0; | |
96 | -} | |
97 | -.social_share_privacy_area.line .hackernews .hackernews-widget .points u { | |
98 | - margin-left: -3px; | |
99 | - border-right-color: #fff; | |
100 | -} | |
101 | -.social_share_privacy_area.box .hackernews .hackernews-widget .points u, | |
102 | -.social_share_privacy_area.box .hackernews .hackernews-widget .points i { | |
103 | - position: absolute; | |
104 | - zoom: 1; | |
105 | - line-height: 0; | |
106 | - top: auto; | |
107 | - left: 50%; | |
108 | - bottom: 0; | |
109 | - right: auto; | |
110 | - margin: 0 0 -4px -4px; | |
111 | - border: 4px transparent solid; | |
112 | - border-top-color: #aaa; | |
113 | - border-bottom: 0; | |
114 | - width: 0; | |
115 | - height: 0; | |
116 | -} | |
117 | -.social_share_privacy_area.box .hackernews .hackernews-widget .points u { | |
118 | - margin-bottom: -3px; | |
119 | - border-top-color: #fff; | |
120 | -} | |
121 | -.social_share_privacy_area .hackernews .hackernews-widget .points a { | |
122 | - color: #333; | |
123 | - text-decoration: none; | |
124 | -} | |
125 | -.social_share_privacy_area .hackernews .hackernews-widget .points a:hover { | |
126 | - color: #333; | |
127 | - text-decoration: underline; | |
128 | -} |
... | ... | @@ -1,12 +0,0 @@ |
1 | -.social_share_privacy_area.line .linkedin img.linkedin_privacy_dummy { | |
2 | - width: 63px; | |
3 | - height: 20px; | |
4 | -} | |
5 | -.social_share_privacy_area.box .linkedin img.linkedin_privacy_dummy { | |
6 | - width: 61px; | |
7 | - height: 62px; | |
8 | -} | |
9 | -.social_share_privacy_area.box .linkedin .dummy_btn { | |
10 | - min-width: 61px; | |
11 | - min-height: 62px; | |
12 | -} |
... | ... | @@ -1,15 +0,0 @@ |
1 | -.social_share_privacy_area.line li div.pinit { | |
2 | - width: 100px; | |
3 | -} | |
4 | -.social_share_privacy_area.box .pinterest .dummy_btn.pinit a { | |
5 | - /* pinterest style bugfix */ | |
6 | - margin-top: 29px!important; | |
7 | -} | |
8 | -.social_share_privacy_area.line .pinterest .dummy_btn img.privacy_dummy { | |
9 | - width: 40px; | |
10 | - height: 20px; | |
11 | -} | |
12 | -.social_share_privacy_area.box .pinterest .dummy_btn img.privacy_dummy { | |
13 | - width: 40px; | |
14 | - height: 50px; | |
15 | -} |
... | ... | @@ -1,10 +0,0 @@ |
1 | -.social_share_privacy_area.line .stumbleupon iframe, | |
2 | -.social_share_privacy_area.line .stumbleupon img { | |
3 | - width: 74px; | |
4 | - height: 18px; | |
5 | -} | |
6 | -.social_share_privacy_area.box .stumbleupon iframe, | |
7 | -.social_share_privacy_area.box .stumbleupon img { | |
8 | - width: 50px; | |
9 | - height: 60px; | |
10 | -} |
... | ... | @@ -1,16 +0,0 @@ |
1 | -.social_share_privacy_area.line .xing img.xing_privacy_dummy { | |
2 | - width: 55px; | |
3 | - height: 20px; | |
4 | - margin-right: 66px; | |
5 | -} | |
6 | -.social_share_privacy_area.box .xing img.xing_privacy_dummy { | |
7 | - width: 55px; | |
8 | - height: 62px; | |
9 | -} | |
10 | -.social_share_privacy_area.box .xing .dummy_btn { | |
11 | - min-width: 55px; | |
12 | - min-height: 62px; | |
13 | -} | |
14 | -.social_share_privacy_area.box .xing .dummy_btn div { | |
15 | - margin: auto; | |
16 | -} |
... | ... | @@ -1,16 +0,0 @@ |
1 | -@import url("common.css"); | |
2 | -@import url("modules/buffer.css"); | |
3 | -@import url("modules/delicious.css"); | |
4 | -@import url("modules/disqus.css"); | |
5 | -@import url("modules/facebook.css"); | |
6 | -@import url("modules/flattr.css"); | |
7 | -@import url("modules/gplus.css"); | |
8 | -@import url("modules/hackernews.css"); | |
9 | -@import url("modules/linkedin.css"); | |
10 | -@import url("modules/mail.css"); | |
11 | -@import url("modules/pinterest.css"); | |
12 | -@import url("modules/reddit.css"); | |
13 | -@import url("modules/stumbleupon.css"); | |
14 | -@import url("modules/tumblr.css"); | |
15 | -@import url("modules/twitter.css"); | |
16 | -@import url("modules/xing.css"); |
... | ... | @@ -0,0 +1,56 @@ |
1 | +require File.dirname(__FILE__) + '/../../../../test/test_helper' | |
2 | +require File.dirname(__FILE__) + '/../../../../app/controllers/public/invite_controller' | |
3 | + | |
4 | +# Re-raise errors caught by the controller. | |
5 | +class ContentViewerController; def rescue_action(e) raise e end; end | |
6 | + | |
7 | +class ContentViewerControllerTest < ActionController::TestCase | |
8 | + | |
9 | + def setup | |
10 | + @controller = ContentViewerController.new | |
11 | + @request = ActionController::TestRequest.new | |
12 | + @response = ActionController::TestResponse.new | |
13 | + | |
14 | + @profile = create_user('testinguser').person | |
15 | + @environment = @profile.environment | |
16 | + @environment.enabled_plugins = ['SocialSharePrivacyPlugin'] | |
17 | + @environment.save! | |
18 | + end | |
19 | + | |
20 | + should 'add social content on content view page' do | |
21 | + page = @profile.articles.build(:name => 'test') | |
22 | + page.save! | |
23 | + | |
24 | + get :view_page, :profile => @profile.identifier, :page => ['test'] | |
25 | + | |
26 | + assert_tag :tag => 'script', :attributes => {:src => /\/javascripts\/plugins\/social_share_privacy\/socialshareprivacy\/javascripts\/socialshareprivacy\.js\??\d*/} | |
27 | + assert_tag :tag => 'div', :attributes => {:class => "social-buttons"} | |
28 | + end | |
29 | + | |
30 | + should 'add social share privacy modules acording to networks settings' do | |
31 | + page = @profile.articles.build(:name => 'test') | |
32 | + page.save! | |
33 | + Noosfero::Plugin::Settings.new(@environment, SocialSharePrivacyPlugin, :networks => ['twitter', 'gplus']).save! | |
34 | + | |
35 | + get :view_page, :profile => @profile.identifier, :page => ['test'] | |
36 | + | |
37 | + assert_tag :tag => 'script', :attributes => {:src => /\/javascripts\/plugins\/social_share_privacy\/socialshareprivacy\/javascripts\/modules\/twitter\.js\??\d*/} | |
38 | + assert_tag :tag => 'script', :attributes => {:src => /\/javascripts\/plugins\/social_share_privacy\/socialshareprivacy\/javascripts\/modules\/gplus\.js\??\d*/} | |
39 | + end | |
40 | + | |
41 | + should 'add javascript with string translations if not english' do | |
42 | + page = @profile.articles.build(:name => 'test') | |
43 | + page.save! | |
44 | + FastGettext.stubs(:locale).returns('pt') | |
45 | + | |
46 | + get :view_page, :profile => @profile.identifier, :page => ['test'] | |
47 | + | |
48 | + assert_tag :tag => 'script', :attributes => {:src => /\/javascripts\/plugins\/social_share_privacy\/socialshareprivacy\/javascripts\/locale\/jquery\.socialshareprivacy\.min\.pt\.js\??\d*/} | |
49 | + | |
50 | + FastGettext.stubs(:locale).returns('en') | |
51 | + | |
52 | + get :view_page, :profile => @profile.identifier, :page => ['test'] | |
53 | + | |
54 | + assert_no_tag :tag => 'script', :attributes => {:src => /\/javascripts\/plugins\/social_share_privacy\/socialshareprivacy\/javascripts\/locale\/jquery\.socialshareprivacy\.min\.en\.js\??\d*/} | |
55 | + end | |
56 | +end | ... | ... |
... | ... | @@ -0,0 +1,54 @@ |
1 | +require File.dirname(__FILE__) + '/../../../../test/test_helper' | |
2 | +require File.dirname(__FILE__) + '/../../controllers/social_share_privacy_plugin_admin_controller' | |
3 | + | |
4 | +# Re-raise errors caught by the controller. | |
5 | +class SocialSharePrivacyPluginAdminController; def rescue_action(e) raise e end; end | |
6 | + | |
7 | +class SocialSharePrivacyPluginAdminControllerTest < ActionController::TestCase | |
8 | + | |
9 | + def setup | |
10 | + @environment = Environment.default | |
11 | + @profile = create_user('profile').person | |
12 | + @environment.add_admin(@profile) | |
13 | + login_as(@profile.identifier) | |
14 | + end | |
15 | + | |
16 | + attr_reader :environment | |
17 | + | |
18 | + should 'list networks not selected available in alphabetic order' do | |
19 | + Noosfero::Plugin::Settings.new(environment, SocialSharePrivacyPlugin, :networks => ['gplus']).save! | |
20 | + @controller.stubs(:social_share_privacy_networks).returns(['gplus', 'twitter', 'facebook']) | |
21 | + get :index | |
22 | + assert_equal ['facebook', 'twitter'], assigns(:available_networks) | |
23 | + end | |
24 | + | |
25 | + should 'list networks selected in order' do | |
26 | + Noosfero::Plugin::Settings.new(environment, SocialSharePrivacyPlugin, :networks => ['gplus', 'buffer']).save! | |
27 | + get :index | |
28 | + assert_equal ['gplus', 'buffer'], assigns(:settings).networks | |
29 | + end | |
30 | + | |
31 | + should 'save social networks buttons settings' do | |
32 | + post :index, :settings => {:networks => ['facebook', 'gplus']} | |
33 | + @settings = Noosfero::Plugin::Settings.new(environment.reload, SocialSharePrivacyPlugin) | |
34 | + assert_equal ['facebook', 'gplus'], @settings.settings[:networks] | |
35 | + end | |
36 | + | |
37 | + should 'remove all buttons if none selected' do | |
38 | + Noosfero::Plugin::Settings.new(environment, SocialSharePrivacyPlugin, :networks => ['twitter', 'gplus', 'buffer']).save! | |
39 | + post :index, :settings => {:networks => ['']} | |
40 | + @settings = Noosfero::Plugin::Settings.new(environment.reload, SocialSharePrivacyPlugin) | |
41 | + assert_equal [], @settings.settings[:networks] | |
42 | + end | |
43 | + | |
44 | + should 'ignore unknown networks' do | |
45 | + post :index, :settings => {:networks => ['orkut']} | |
46 | + @settings = Noosfero::Plugin::Settings.new(environment.reload, SocialSharePrivacyPlugin) | |
47 | + assert_equal [], @settings.settings[:networks] | |
48 | + end | |
49 | + | |
50 | + should 'redirect to index after save' do | |
51 | + post :index | |
52 | + assert_redirected_to :controller => 'plugins', :action => 'index' | |
53 | + end | |
54 | +end | ... | ... |
... | ... | @@ -0,0 +1,11 @@ |
1 | +require File.dirname(__FILE__) + '/../../../../test/test_helper' | |
2 | + | |
3 | +class SocialSharePrivacyPluginHelperTest < ActiveSupport::TestCase | |
4 | + | |
5 | + include SocialSharePrivacyPluginHelper | |
6 | + | |
7 | + should 'list social networks provided' do | |
8 | + assert_equal ['buffer', 'facebook', 'gplus', 'mail', 'stumbleupon', 'xing', 'delicious', 'fbshare', 'hackernews', 'pinterest', 'tumblr', 'disqus', 'flattr', 'linkedin', 'reddit', 'twitter'].sort, social_share_privacy_networks.sort | |
9 | + end | |
10 | + | |
11 | +end | ... | ... |
... | ... | @@ -0,0 +1,34 @@ |
1 | +require File.dirname(__FILE__) + '/../../../../test/test_helper' | |
2 | + | |
3 | +class SocialSharePrivacyPluginTest < ActiveSupport::TestCase | |
4 | + | |
5 | + include NoosferoTestHelper | |
6 | + | |
7 | + def setup | |
8 | + @plugin = SocialSharePrivacyPlugin.new | |
9 | + end | |
10 | + | |
11 | + should 'be a noosfero plugin' do | |
12 | + assert_kind_of Noosfero::Plugin, @plugin | |
13 | + end | |
14 | + | |
15 | + should 'have name' do | |
16 | + assert_equal "Social Share Privacy", SocialSharePrivacyPlugin.plugin_name | |
17 | + end | |
18 | + | |
19 | + should 'have description' do | |
20 | + assert_equal "A plugin that adds share buttons from other networks.", SocialSharePrivacyPlugin.plugin_description | |
21 | + end | |
22 | + | |
23 | + should 'have default value for networks setting' do | |
24 | + @settings = Noosfero::Plugin::Settings.new(Environment.default, SocialSharePrivacyPlugin) | |
25 | + assert_equal [], @settings.get_setting(:networks) | |
26 | + end | |
27 | + | |
28 | + should 'return html code for social share privacy buttons' do | |
29 | + self.stubs(:environment).returns(Environment.default) | |
30 | + content = @plugin.social_buttons_contents | |
31 | + assert self.instance_eval(&content) | |
32 | + end | |
33 | + | |
34 | +end | ... | ... |
... | ... | @@ -19,8 +19,8 @@ |
19 | 19 | }); |
20 | 20 | </script> |
21 | 21 | |
22 | -<div id='available-folders'> | |
23 | - <%= labelled_form_field(_('Available networks'), select_tag('networks[]', options_for_select(@tags), {:id => 'social-networks-list', :multiple => true, :size => 6 }) ) %> | |
22 | +<div id='available-networks'> | |
23 | + <%= labelled_form_field(_('Available networks'), select_tag('networks[]', options_for_select(@available_networks), {:id => 'social-networks-list', :multiple => true, :size => 6 }) ) %> | |
24 | 24 | </div> |
25 | 25 | |
26 | 26 | <div id='selection-buttons'> |
... | ... | @@ -29,8 +29,9 @@ |
29 | 29 | </div> |
30 | 30 | |
31 | 31 | <%= form_tag do %> |
32 | - <div id='portal-folders'> | |
33 | - <%= labelled_form_field(_('Selected networks'), select_tag('networks[]', options_for_select(@selected), {:id => 'selected-social-networks', :multiple => true, :size => 6 })) %> | |
32 | + <div id='selected-networks'> | |
33 | + <%= hidden_field_tag 'settings[networks][]' %> | |
34 | + <%= labelled_form_field(_('Selected networks'), select_tag('settings[networks]', options_for_select(@settings.networks), {:id => 'selected-social-networks', :multiple => true, :size => 6 })) %> | |
34 | 35 | </div> |
35 | 36 | |
36 | 37 | <p> | ... | ... |