From d070f74a509b61e0e8451c4fab2a15023af9653e Mon Sep 17 00:00:00 2001 From: Larissa Reis Date: Thu, 31 Jul 2014 06:08:41 -0300 Subject: [PATCH] social-share: updates upstream os it\'s the same as merge request --- plugins/social_share_privacy/controllers/social_share_privacy_plugin_admin_controller.rb | 25 +++++++++++++++++-------- plugins/social_share_privacy/lib/social_share_privacy_plugin.rb | 17 ++++++++++++----- plugins/social_share_privacy/lib/social_share_privacy_plugin_helper.rb | 7 +++++++ plugins/social_share_privacy/public/socialshareprivacy/images/box_fbshare.png | Bin 0 -> 4676 bytes plugins/social_share_privacy/public/socialshareprivacy/images/box_mail.png | Bin 0 -> 2313 bytes plugins/social_share_privacy/public/socialshareprivacy/images/box_tumblr.png | Bin 0 -> 2480 bytes plugins/social_share_privacy/public/socialshareprivacy/images/de/dummy_box_facebook.png | Bin 0 -> 1038 bytes plugins/social_share_privacy/public/socialshareprivacy/images/de/dummy_facebook.png | Bin 0 -> 884 bytes plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_buffer.png | Bin 0 -> 1564 bytes plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_delicious.png | Bin 0 -> 870 bytes plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_disqus.png | Bin 0 -> 984 bytes plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_facebook.png | Bin 0 -> 782 bytes plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_flattr.png | Bin 0 -> 1112 bytes plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_gplus.png | Bin 0 -> 842 bytes plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_hackernews.png | Bin 0 -> 644 bytes plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_linkedin.png | Bin 0 -> 1662 bytes plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_pinterest.png | Bin 0 -> 1532 bytes plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_reddit.png | Bin 0 -> 964 bytes plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_stumbleupon.png | Bin 0 -> 1077 bytes plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_twitter.png | Bin 0 -> 1067 bytes plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_xing.png | Bin 0 -> 1248 bytes plugins/social_share_privacy/public/socialshareprivacy/images/dummy_buffer.png | Bin 0 -> 1318 bytes plugins/social_share_privacy/public/socialshareprivacy/images/dummy_delicious.png | Bin 0 -> 877 bytes plugins/social_share_privacy/public/socialshareprivacy/images/dummy_disqus.png | Bin 0 -> 856 bytes plugins/social_share_privacy/public/socialshareprivacy/images/dummy_facebook.png | Bin 0 -> 651 bytes plugins/social_share_privacy/public/socialshareprivacy/images/dummy_flattr.png | Bin 0 -> 825 bytes plugins/social_share_privacy/public/socialshareprivacy/images/dummy_gplus.png | Bin 0 -> 661 bytes plugins/social_share_privacy/public/socialshareprivacy/images/dummy_gplus_alt.png | Bin 0 -> 409 bytes plugins/social_share_privacy/public/socialshareprivacy/images/dummy_hackernews.png | Bin 0 -> 343 bytes plugins/social_share_privacy/public/socialshareprivacy/images/dummy_linkedin.png | Bin 0 -> 1277 bytes plugins/social_share_privacy/public/socialshareprivacy/images/dummy_pinterest.png | Bin 0 -> 1145 bytes plugins/social_share_privacy/public/socialshareprivacy/images/dummy_reddit.png | Bin 0 -> 1018 bytes plugins/social_share_privacy/public/socialshareprivacy/images/dummy_stumbleupon.png | Bin 0 -> 1107 bytes plugins/social_share_privacy/public/socialshareprivacy/images/dummy_twitter.png | Bin 0 -> 965 bytes plugins/social_share_privacy/public/socialshareprivacy/images/dummy_xing.png | Bin 0 -> 1077 bytes plugins/social_share_privacy/public/socialshareprivacy/images/es/dummy_box_facebook.png | Bin 0 -> 880 bytes plugins/social_share_privacy/public/socialshareprivacy/images/es/dummy_facebook.png | Bin 0 -> 760 bytes plugins/social_share_privacy/public/socialshareprivacy/images/fbshare.png | Bin 0 -> 1085 bytes plugins/social_share_privacy/public/socialshareprivacy/images/fr/dummy_box_facebook.png | Bin 0 -> 713 bytes plugins/social_share_privacy/public/socialshareprivacy/images/fr/dummy_facebook.png | Bin 0 -> 768 bytes plugins/social_share_privacy/public/socialshareprivacy/images/fr/dummy_twitter.png | Bin 0 -> 985 bytes plugins/social_share_privacy/public/socialshareprivacy/images/mail.png | Bin 0 -> 1157 bytes plugins/social_share_privacy/public/socialshareprivacy/images/nl/dummy_box_facebook.png | Bin 0 -> 713 bytes plugins/social_share_privacy/public/socialshareprivacy/images/nl/dummy_facebook.png | Bin 0 -> 518 bytes plugins/social_share_privacy/public/socialshareprivacy/images/nl/dummy_twitter.png | Bin 0 -> 740 bytes plugins/social_share_privacy/public/socialshareprivacy/images/pt/dummy_box_facebook.png | Bin 0 -> 738 bytes plugins/social_share_privacy/public/socialshareprivacy/images/pt/dummy_box_twitter.png | Bin 0 -> 960 bytes plugins/social_share_privacy/public/socialshareprivacy/images/pt/dummy_facebook.png | Bin 0 -> 540 bytes plugins/social_share_privacy/public/socialshareprivacy/images/pt/dummy_twitter.png | Bin 0 -> 801 bytes plugins/social_share_privacy/public/socialshareprivacy/images/ru/dummy_box_facebook.png | Bin 0 -> 870 bytes plugins/social_share_privacy/public/socialshareprivacy/images/ru/dummy_facebook.png | Bin 0 -> 742 bytes plugins/social_share_privacy/public/socialshareprivacy/images/settings.png | Bin 0 -> 658 bytes plugins/social_share_privacy/public/socialshareprivacy/images/socialshareprivacy_info.png | Bin 0 -> 151 bytes plugins/social_share_privacy/public/socialshareprivacy/images/socialshareprivacy_on_off.png | Bin 0 -> 1301 bytes plugins/social_share_privacy/public/socialshareprivacy/images/tumblr.png | Bin 0 -> 1746 bytes plugins/social_share_privacy/public/socialshareprivacy/javascripts/autoload.js | 4 ++++ plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.de.js | 1 + plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.es.js | 1 + plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.fr.js | 1 + plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.it.js | 1 + plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.nl.js | 1 + plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.pl.js | 1 + plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.pt.js | 1 + plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.ru.js | 1 + plugins/social_share_privacy/public/socialshareprivacy/javascripts/localstorage.js | 31 +++++++++++++++++++++++++++++++ plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/buffer.js | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/delicious.js | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/disqus.js | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/facebook.js | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/fbshare.js | 38 ++++++++++++++++++++++++++++++++++++++ plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/flattr.js | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/gplus.js | 44 ++++++++++++++++++++++++++++++++++++++++++++ plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/hackernews.js | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/linkedin.js | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/mail.js | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/pinterest.js | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/reddit.js | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/stumbleupon.js | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/tumblr.js | 113 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/twitter.js | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/xing.js | 40 ++++++++++++++++++++++++++++++++++++++++ plugins/social_share_privacy/public/socialshareprivacy/javascripts/settings.js | 23 +++++++++++++++++++++++ plugins/social_share_privacy/public/socialshareprivacy/javascripts/socialshareprivacy.js | 803 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ plugins/social_share_privacy/public/socialshareprivacy/stylesheets/common.css | 231 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ plugins/social_share_privacy/public/socialshareprivacy/stylesheets/modules/buffer.css | 14 ++++++++++++++ plugins/social_share_privacy/public/socialshareprivacy/stylesheets/modules/delicious.css | 155 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ plugins/social_share_privacy/public/socialshareprivacy/stylesheets/modules/disqus.css | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ plugins/social_share_privacy/public/socialshareprivacy/stylesheets/modules/facebook.css | 11 +++++++++++ plugins/social_share_privacy/public/socialshareprivacy/stylesheets/modules/flattr.css | 29 +++++++++++++++++++++++++++++ plugins/social_share_privacy/public/socialshareprivacy/stylesheets/modules/gplus.css | 10 ++++++++++ plugins/social_share_privacy/public/socialshareprivacy/stylesheets/modules/hackernews.css | 128 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ plugins/social_share_privacy/public/socialshareprivacy/stylesheets/modules/linkedin.css | 12 ++++++++++++ plugins/social_share_privacy/public/socialshareprivacy/stylesheets/modules/mail.css | 12 ++++++++++++ plugins/social_share_privacy/public/socialshareprivacy/stylesheets/modules/pinterest.css | 15 +++++++++++++++ plugins/social_share_privacy/public/socialshareprivacy/stylesheets/modules/reddit.css | 8 ++++++++ plugins/social_share_privacy/public/socialshareprivacy/stylesheets/modules/stumbleupon.css | 10 ++++++++++ plugins/social_share_privacy/public/socialshareprivacy/stylesheets/modules/tumblr.css | 12 ++++++++++++ plugins/social_share_privacy/public/socialshareprivacy/stylesheets/modules/twitter.css | 11 +++++++++++ plugins/social_share_privacy/public/socialshareprivacy/stylesheets/modules/xing.css | 16 ++++++++++++++++ plugins/social_share_privacy/public/socialshareprivacy/stylesheets/socialshareprivacy.css | 16 ++++++++++++++++ plugins/social_share_privacy/test/functional/content_viewer_controller_test.rb | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ plugins/social_share_privacy/test/functional/social_share_privacy_plugin_admin_controller_test.rb | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ plugins/social_share_privacy/test/unit/social_share_privacy_helper_test.rb | 11 +++++++++++ plugins/social_share_privacy/test/unit/social_share_privacy_test.rb | 34 ++++++++++++++++++++++++++++++++++ plugins/social_share_privacy/views/social_share_privacy_plugin_admin/index.html.erb | 9 +++++---- 105 files changed, 2953 insertions(+), 17 deletions(-) create mode 100644 plugins/social_share_privacy/lib/social_share_privacy_plugin_helper.rb create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/box_fbshare.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/box_mail.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/box_tumblr.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/de/dummy_box_facebook.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/de/dummy_facebook.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_buffer.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_delicious.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_disqus.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_facebook.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_flattr.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_gplus.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_hackernews.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_linkedin.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_pinterest.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_reddit.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_stumbleupon.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_twitter.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_xing.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/dummy_buffer.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/dummy_delicious.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/dummy_disqus.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/dummy_facebook.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/dummy_flattr.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/dummy_gplus.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/dummy_gplus_alt.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/dummy_hackernews.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/dummy_linkedin.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/dummy_pinterest.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/dummy_reddit.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/dummy_stumbleupon.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/dummy_twitter.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/dummy_xing.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/es/dummy_box_facebook.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/es/dummy_facebook.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/fbshare.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/fr/dummy_box_facebook.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/fr/dummy_facebook.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/fr/dummy_twitter.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/mail.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/nl/dummy_box_facebook.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/nl/dummy_facebook.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/nl/dummy_twitter.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/pt/dummy_box_facebook.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/pt/dummy_box_twitter.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/pt/dummy_facebook.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/pt/dummy_twitter.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/ru/dummy_box_facebook.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/ru/dummy_facebook.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/settings.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/socialshareprivacy_info.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/socialshareprivacy_on_off.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/images/tumblr.png create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/javascripts/autoload.js create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.de.js create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.es.js create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.fr.js create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.it.js create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.nl.js create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.pl.js create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.pt.js create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.ru.js create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/javascripts/localstorage.js create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/buffer.js create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/delicious.js create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/disqus.js create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/facebook.js create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/fbshare.js create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/flattr.js create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/gplus.js create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/hackernews.js create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/linkedin.js create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/mail.js create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/pinterest.js create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/reddit.js create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/stumbleupon.js create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/tumblr.js create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/twitter.js create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/xing.js create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/javascripts/settings.js create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/javascripts/socialshareprivacy.js create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/stylesheets/common.css create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/stylesheets/modules/buffer.css create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/stylesheets/modules/delicious.css create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/stylesheets/modules/disqus.css create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/stylesheets/modules/facebook.css create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/stylesheets/modules/flattr.css create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/stylesheets/modules/gplus.css create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/stylesheets/modules/hackernews.css create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/stylesheets/modules/linkedin.css create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/stylesheets/modules/mail.css create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/stylesheets/modules/pinterest.css create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/stylesheets/modules/reddit.css create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/stylesheets/modules/stumbleupon.css create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/stylesheets/modules/tumblr.css create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/stylesheets/modules/twitter.css create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/stylesheets/modules/xing.css create mode 100644 plugins/social_share_privacy/public/socialshareprivacy/stylesheets/socialshareprivacy.css create mode 100644 plugins/social_share_privacy/test/functional/content_viewer_controller_test.rb create mode 100644 plugins/social_share_privacy/test/functional/social_share_privacy_plugin_admin_controller_test.rb create mode 100644 plugins/social_share_privacy/test/unit/social_share_privacy_helper_test.rb create mode 100644 plugins/social_share_privacy/test/unit/social_share_privacy_test.rb diff --git a/plugins/social_share_privacy/controllers/social_share_privacy_plugin_admin_controller.rb b/plugins/social_share_privacy/controllers/social_share_privacy_plugin_admin_controller.rb index 0968588..a64f6fa 100644 --- a/plugins/social_share_privacy/controllers/social_share_privacy_plugin_admin_controller.rb +++ b/plugins/social_share_privacy/controllers/social_share_privacy_plugin_admin_controller.rb @@ -1,17 +1,26 @@ class SocialSharePrivacyPluginAdminController < AdminController append_view_path File.join(File.dirname(__FILE__) + '/../views') + protect 'edit_environment_features', :environment + + include SocialSharePrivacyPluginHelper + def index - available_networks = Dir[SocialSharePrivacyPlugin.root_path + 'public/javascripts/modules/*.js'].map { |entry| entry.split('/').last.gsub(/\.js$/,'') } - @selected = environment.socialshare - @tags = available_networks - @selected + @settings = Noosfero::Plugin::Settings.new(environment, SocialSharePrivacyPlugin, params[:settings]) + @settings.networks ||= [] + + @available_networks = social_share_privacy_networks.sort + @settings.networks &= @available_networks + @available_networks -= @settings.networks + if request.post? - networks = params[:networks].map{ |network| network.strip } if params[:networks] - environment.socialshare = networks - if environment.save - session[:notice] = _('Saved the selected social buttons') - redirect_to :controller => 'plugins', :action => 'index' + begin + @settings.save! + session[:notice] = _('Option updated successfully.') + rescue Exception => exception + session[:notice] = _('Option wasn\'t updated successfully.') end + redirect_to :controller => 'plugins', :action => 'index' end end diff --git a/plugins/social_share_privacy/lib/social_share_privacy_plugin.rb b/plugins/social_share_privacy/lib/social_share_privacy_plugin.rb index 3cd560d..3399c5d 100644 --- a/plugins/social_share_privacy/lib/social_share_privacy_plugin.rb +++ b/plugins/social_share_privacy/lib/social_share_privacy_plugin.rb @@ -8,16 +8,23 @@ class SocialSharePrivacyPlugin < Noosfero::Plugin _("A plugin that adds share buttons from other networks.") end + def self.networks_default_setting + [] + end + def stylesheet? true end - def social_buttons_javascript(article) + def social_buttons_contents proc do - javascript_include_tag('plugins/social_share_privacy/javascripts/socialshareprivacy.js') + - javascript_include_tag(environment.socialshare.map { |service| "plugins/social_share_privacy/javascripts/modules/#{service}.js" }) + - 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'});});") + - content_tag(:div, '',:class => "social-buttons") + settings = Noosfero::Plugin::Settings.new(environment, SocialSharePrivacyPlugin) + locale = FastGettext.locale + javascript_include_tag('plugins/social_share_privacy/socialshareprivacy/javascripts/socialshareprivacy.js') + + javascript_include_tag(settings.get_setting(:networks).map { |service| "plugins/social_share_privacy/socialshareprivacy/javascripts/modules/#{service}.js" }) + + (locale != 'en' ? javascript_include_tag("plugins/social_share_privacy/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.#{locale}.js") : '') + + 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'});});") + + content_tag(:div, '', :class => "social-buttons") end end diff --git a/plugins/social_share_privacy/lib/social_share_privacy_plugin_helper.rb b/plugins/social_share_privacy/lib/social_share_privacy_plugin_helper.rb new file mode 100644 index 0000000..a5bd299 --- /dev/null +++ b/plugins/social_share_privacy/lib/social_share_privacy_plugin_helper.rb @@ -0,0 +1,7 @@ +module SocialSharePrivacyPluginHelper + + def social_share_privacy_networks + Dir[SocialSharePrivacyPlugin.root_path + 'public/socialshareprivacy/javascripts/modules/*.js'].map { |entry| entry.split('/').last.gsub(/\.js$/,'') } + end + +end diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/box_fbshare.png b/plugins/social_share_privacy/public/socialshareprivacy/images/box_fbshare.png new file mode 100644 index 0000000..0d722c1 Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/box_fbshare.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/box_mail.png b/plugins/social_share_privacy/public/socialshareprivacy/images/box_mail.png new file mode 100644 index 0000000..f2692c0 Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/box_mail.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/box_tumblr.png b/plugins/social_share_privacy/public/socialshareprivacy/images/box_tumblr.png new file mode 100644 index 0000000..1689426 Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/box_tumblr.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/de/dummy_box_facebook.png b/plugins/social_share_privacy/public/socialshareprivacy/images/de/dummy_box_facebook.png new file mode 100644 index 0000000..23000bd Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/de/dummy_box_facebook.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/de/dummy_facebook.png b/plugins/social_share_privacy/public/socialshareprivacy/images/de/dummy_facebook.png new file mode 100644 index 0000000..7a220b8 Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/de/dummy_facebook.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_buffer.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_buffer.png new file mode 100644 index 0000000..3b5a630 Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_buffer.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_delicious.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_delicious.png new file mode 100644 index 0000000..28333a3 Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_delicious.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_disqus.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_disqus.png new file mode 100644 index 0000000..16f0819 Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_disqus.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_facebook.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_facebook.png new file mode 100644 index 0000000..5bed654 Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_facebook.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_flattr.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_flattr.png new file mode 100644 index 0000000..bc22c8f Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_flattr.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_gplus.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_gplus.png new file mode 100644 index 0000000..56907e1 Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_gplus.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_hackernews.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_hackernews.png new file mode 100644 index 0000000..d9b68c3 Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_hackernews.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_linkedin.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_linkedin.png new file mode 100644 index 0000000..07049e3 Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_linkedin.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_pinterest.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_pinterest.png new file mode 100644 index 0000000..7523008 Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_pinterest.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_reddit.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_reddit.png new file mode 100644 index 0000000..80449e9 Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_reddit.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_stumbleupon.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_stumbleupon.png new file mode 100644 index 0000000..f585e5e Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_stumbleupon.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_twitter.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_twitter.png new file mode 100644 index 0000000..84f7c6d Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_twitter.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_xing.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_xing.png new file mode 100644 index 0000000..5540388 Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_xing.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_buffer.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_buffer.png new file mode 100644 index 0000000..c0f46eb Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_buffer.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_delicious.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_delicious.png new file mode 100644 index 0000000..c81ef75 Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_delicious.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_disqus.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_disqus.png new file mode 100644 index 0000000..d821173 Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_disqus.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_facebook.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_facebook.png new file mode 100644 index 0000000..0efb45c Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_facebook.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_flattr.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_flattr.png new file mode 100644 index 0000000..2f1ffa5 Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_flattr.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_gplus.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_gplus.png new file mode 100644 index 0000000..5ced5dc Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_gplus.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_gplus_alt.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_gplus_alt.png new file mode 100644 index 0000000..64b9a9e Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_gplus_alt.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_hackernews.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_hackernews.png new file mode 100644 index 0000000..a946131 Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_hackernews.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_linkedin.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_linkedin.png new file mode 100644 index 0000000..5d6f965 Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_linkedin.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_pinterest.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_pinterest.png new file mode 100644 index 0000000..7ff138d Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_pinterest.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_reddit.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_reddit.png new file mode 100644 index 0000000..6433355 Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_reddit.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_stumbleupon.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_stumbleupon.png new file mode 100644 index 0000000..aba0d14 Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_stumbleupon.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_twitter.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_twitter.png new file mode 100644 index 0000000..2865660 Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_twitter.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_xing.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_xing.png new file mode 100644 index 0000000..5b969f1 Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_xing.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/es/dummy_box_facebook.png b/plugins/social_share_privacy/public/socialshareprivacy/images/es/dummy_box_facebook.png new file mode 100644 index 0000000..78c4093 Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/es/dummy_box_facebook.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/es/dummy_facebook.png b/plugins/social_share_privacy/public/socialshareprivacy/images/es/dummy_facebook.png new file mode 100644 index 0000000..ce6c90e Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/es/dummy_facebook.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/fbshare.png b/plugins/social_share_privacy/public/socialshareprivacy/images/fbshare.png new file mode 100644 index 0000000..5e2a84c Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/fbshare.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/fr/dummy_box_facebook.png b/plugins/social_share_privacy/public/socialshareprivacy/images/fr/dummy_box_facebook.png new file mode 100644 index 0000000..0ad503e Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/fr/dummy_box_facebook.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/fr/dummy_facebook.png b/plugins/social_share_privacy/public/socialshareprivacy/images/fr/dummy_facebook.png new file mode 100644 index 0000000..772ab1b Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/fr/dummy_facebook.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/fr/dummy_twitter.png b/plugins/social_share_privacy/public/socialshareprivacy/images/fr/dummy_twitter.png new file mode 100644 index 0000000..bae309d Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/fr/dummy_twitter.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/mail.png b/plugins/social_share_privacy/public/socialshareprivacy/images/mail.png new file mode 100644 index 0000000..690cc66 Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/mail.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/nl/dummy_box_facebook.png b/plugins/social_share_privacy/public/socialshareprivacy/images/nl/dummy_box_facebook.png new file mode 100644 index 0000000..77edbee Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/nl/dummy_box_facebook.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/nl/dummy_facebook.png b/plugins/social_share_privacy/public/socialshareprivacy/images/nl/dummy_facebook.png new file mode 100644 index 0000000..b8e15e5 Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/nl/dummy_facebook.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/nl/dummy_twitter.png b/plugins/social_share_privacy/public/socialshareprivacy/images/nl/dummy_twitter.png new file mode 100644 index 0000000..392a5c6 Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/nl/dummy_twitter.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/pt/dummy_box_facebook.png b/plugins/social_share_privacy/public/socialshareprivacy/images/pt/dummy_box_facebook.png new file mode 100644 index 0000000..9f6a226 Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/pt/dummy_box_facebook.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/pt/dummy_box_twitter.png b/plugins/social_share_privacy/public/socialshareprivacy/images/pt/dummy_box_twitter.png new file mode 100644 index 0000000..ad809fd Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/pt/dummy_box_twitter.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/pt/dummy_facebook.png b/plugins/social_share_privacy/public/socialshareprivacy/images/pt/dummy_facebook.png new file mode 100644 index 0000000..6f69ed7 Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/pt/dummy_facebook.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/pt/dummy_twitter.png b/plugins/social_share_privacy/public/socialshareprivacy/images/pt/dummy_twitter.png new file mode 100644 index 0000000..09cae2f Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/pt/dummy_twitter.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/ru/dummy_box_facebook.png b/plugins/social_share_privacy/public/socialshareprivacy/images/ru/dummy_box_facebook.png new file mode 100644 index 0000000..6b43084 Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/ru/dummy_box_facebook.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/ru/dummy_facebook.png b/plugins/social_share_privacy/public/socialshareprivacy/images/ru/dummy_facebook.png new file mode 100644 index 0000000..5a46d95 Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/ru/dummy_facebook.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/settings.png b/plugins/social_share_privacy/public/socialshareprivacy/images/settings.png new file mode 100644 index 0000000..3016b7b Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/settings.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/socialshareprivacy_info.png b/plugins/social_share_privacy/public/socialshareprivacy/images/socialshareprivacy_info.png new file mode 100644 index 0000000..733238d Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/socialshareprivacy_info.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/socialshareprivacy_on_off.png b/plugins/social_share_privacy/public/socialshareprivacy/images/socialshareprivacy_on_off.png new file mode 100644 index 0000000..8e9e725 Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/socialshareprivacy_on_off.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/tumblr.png b/plugins/social_share_privacy/public/socialshareprivacy/images/tumblr.png new file mode 100644 index 0000000..c8c759c Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/tumblr.png differ diff --git a/plugins/social_share_privacy/public/socialshareprivacy/javascripts/autoload.js b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/autoload.js new file mode 100644 index 0000000..1c43bec --- /dev/null +++ b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/autoload.js @@ -0,0 +1,4 @@ +jQuery(document).ready(function ($) { + $('*[data-social-share-privacy=true]:not([data-init=true])'). + socialSharePrivacy().attr('data-init','true'); +}); diff --git a/plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.de.js b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.de.js new file mode 100644 index 0000000..1ec2c30 --- /dev/null +++ b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.de.js @@ -0,0 +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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",settings_perma:"Dauerhaft aktivieren und Datenüber­tragung zustimmen:",language:"de"}); diff --git a/plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.es.js b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.es.js new file mode 100644 index 0000000..3602b9b --- /dev/null +++ b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.es.js @@ -0,0 +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 i",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 i",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 i",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 i",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 i",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 i",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 i",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 i",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 i",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 i",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 i",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 i",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 i",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 i.",settings_perma:"Activar permanentemente y aceptar el envio de datos a terceros:",language:"es"}); diff --git a/plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.fr.js b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.fr.js new file mode 100644 index 0000000..a7688fd --- /dev/null +++ b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.fr.js @@ -0,0 +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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",settings_perma:"Activer en permanence et accepter la transmission de données:",language:"fr"}); diff --git a/plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.it.js b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.it.js new file mode 100644 index 0000000..9baedb7 --- /dev/null +++ b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.it.js @@ -0,0 +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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",settings_perma:"Attivare in modo permanente i pulsanti di condivisione:",language:"it"}); diff --git a/plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.nl.js b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.nl.js new file mode 100644 index 0000000..de02b22 --- /dev/null +++ b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.nl.js @@ -0,0 +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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",settings_perma:"Activeer al je social media accounts:",language:"nl"}); diff --git a/plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.pl.js b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.pl.js new file mode 100644 index 0000000..f14af34 --- /dev/null +++ b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.pl.js @@ -0,0 +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 i, 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 i, 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 i, 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 i, 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 i, 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 i, 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 i, 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 i, 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 i, 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 i, 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 i, 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 i, 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 i, 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 i, aby dowiedzieć się więcej.",settings_perma:"Aktywuj na staƂe następujące przyciski:",language:"pl"}); diff --git a/plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.pt.js b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.pt.js new file mode 100644 index 0000000..22f86ee --- /dev/null +++ b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.pt.js @@ -0,0 +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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",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 i.",settings_perma:"Habilitar os seguintes botões permanentemente:",language:"pt"}); diff --git a/plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.ru.js b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.ru.js new file mode 100644 index 0000000..3648046 --- /dev/null +++ b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.ru.js @@ -0,0 +1 @@ +jQuery.extend(!0,jQuery.fn.socialSharePrivacy.settings,{services:{buffer:{txt_info:"ДĐČа ĐșлОĐșа ĐŽĐ»Ń Đ±ĐŸĐ»ŃŒŃˆĐ”Đč ĐșĐŸĐœŃ„Đ”ĐŽĐžŃ†ĐžĐ°Đ»ŃŒĐœĐŸŃŃ‚Đž: ĐšĐœĐŸĐżĐșа Buffer аĐșтоĐČĐžŃ€ŃƒĐ”Ń‚ŃŃ ДслО ĐșĐ»ĐžĐœĐžŃ‚Đ” ĐżĐŸ ĐœĐ”Đč ĐŒŃ‹ŃˆĐșĐŸĐč. АĐșтоĐČацоя ĐșĐœĐŸĐżĐșĐž ĐŸŃ‚ĐżŃ€Đ°ĐČĐ»ŃĐ”Ń‚ Đž Ń…Ń€Đ°ĐœĐžŃ‚ ĐŽĐ°ĐœĐœŃ‹Đ” ĐœĐ° сДрĐČДрах Buffer – ĐŽĐ»Ń ĐżĐŸĐŽŃ€ĐŸĐ±ĐœĐŸĐč ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžĐž ĐœĐ°Đ¶ĐŒĐžŃ‚Đ” i.",txt_off:"ĐĐ” ŃĐŸĐ”ĐŽĐžĐœŃŃ‚ŃŒŃŃ с Buffer",txt_on:"ĐĄĐŸĐ”ĐŽĐžĐœĐžŃ‚ŃŒŃŃ с Buffer"},delicious:{txt_info:"ДĐČа ĐșлОĐșа ĐŽĐ»Ń Đ±ĐŸĐ»ŃŒŃˆĐ”Đč ĐșĐŸĐœŃ„Đ”ĐŽĐžŃ†ĐžĐ°Đ»ŃŒĐœĐŸŃŃ‚Đž: ĐšĐœĐŸĐżĐșа Delicious аĐșтоĐČĐžŃ€ŃƒĐ”Ń‚ŃŃ ДслО ĐșĐ»ĐžĐœĐžŃ‚Đ” ĐżĐŸ ĐœĐ”Đč ĐŒŃ‹ŃˆĐșĐŸĐč. АĐșтоĐČацоя ĐșĐœĐŸĐżĐșĐž ĐŸŃ‚ĐżŃ€Đ°ĐČĐ»ŃĐ”Ń‚ Đž Ń…Ń€Đ°ĐœĐžŃ‚ ĐŽĐ°ĐœĐœŃ‹Đ” ĐœĐ° сДрĐČДрах Delicious – ĐŽĐ»Ń ĐżĐŸĐŽŃ€ĐŸĐ±ĐœĐŸĐč ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžĐž ĐœĐ°Đ¶ĐŒĐžŃ‚Đ” i.",txt_off:"ĐĐ” ŃĐŸĐ”ĐŽĐžĐœŃŃ‚ŃŒŃŃ с Delicious",txt_on:"ĐĄĐŸĐ”ĐŽĐžĐœĐžŃ‚ŃŒŃŃ с Delicious",txt_button:"Delicious"},disqus:{txt_info:"ДĐČа ĐșлОĐșа ĐŽĐ»Ń Đ±ĐŸĐ»ŃŒŃˆĐ”Đč ĐșĐŸĐœŃ„Đ”ĐŽĐžŃ†ĐžĐ°Đ»ŃŒĐœĐŸŃŃ‚Đž: ĐšĐœĐŸĐżĐșа Disqus аĐșтоĐČĐžŃ€ŃƒĐ”Ń‚ŃŃ ДслО ĐșĐ»ĐžĐœĐžŃ‚Đ” ĐżĐŸ ĐœĐ”Đč ĐŒŃ‹ŃˆĐșĐŸĐč. АĐșтоĐČацоя ĐșĐœĐŸĐżĐșĐž ĐŸŃ‚ĐżŃ€Đ°ĐČĐ»ŃĐ”Ń‚ Đž Ń…Ń€Đ°ĐœĐžŃ‚ ĐŽĐ°ĐœĐœŃ‹Đ” ĐœĐ° сДрĐČДрах Disqus – ĐŽĐ»Ń ĐżĐŸĐŽŃ€ĐŸĐ±ĐœĐŸĐč ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžĐž ĐœĐ°Đ¶ĐŒĐžŃ‚Đ” i.",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 – ĐŽĐ»Ń ĐżĐŸĐŽŃ€ĐŸĐ±ĐœĐŸĐč ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžĐž ĐœĐ°Đ¶ĐŒĐžŃ‚Đ” i.",txt_off:"ĐĐ” ŃĐŸĐ”ĐŽĐžĐœŃŃ‚ŃŒŃŃ с Facebook",txt_on:"ĐĄĐŸĐ”ĐŽĐžĐœĐžŃ‚ŃŒŃŃ с Facebook"},flattr:{txt_info:"ДĐČа ĐșлОĐșа ĐŽĐ»Ń Đ±ĐŸĐ»ŃŒŃˆĐ”Đč ĐșĐŸĐœŃ„Đ”ĐŽĐžŃ†ĐžĐ°Đ»ŃŒĐœĐŸŃŃ‚Đž: ĐšĐœĐŸĐżĐșа Flattr аĐșтоĐČĐžŃ€ŃƒĐ”Ń‚ŃŃ ДслО ĐșĐ»ĐžĐœĐžŃ‚Đ” ĐżĐŸ ĐœĐ”Đč ĐŒŃ‹ŃˆĐșĐŸĐč. АĐșтоĐČацоя ĐșĐœĐŸĐżĐșĐž ĐŸŃ‚ĐżŃ€Đ°ĐČĐ»ŃĐ”Ń‚ Đž Ń…Ń€Đ°ĐœĐžŃ‚ ĐŽĐ°ĐœĐœŃ‹Đ” ĐœĐ° сДрĐČДрах Flattr – ĐŽĐ»Ń ĐżĐŸĐŽŃ€ĐŸĐ±ĐœĐŸĐč ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžĐž ĐœĐ°Đ¶ĐŒĐžŃ‚Đ” i.",txt_off:"ĐĐ” ŃĐŸĐ”ĐŽĐžĐœŃŃ‚ŃŒŃŃ с Flattr",txt_on:"ĐĄĐŸĐ”ĐŽĐžĐœĐžŃ‚ŃŒŃŃ с Flattr"},gplus:{txt_info:"ДĐČа ĐșлОĐșа ĐŽĐ»Ń Đ±ĐŸĐ»ŃŒŃˆĐ”Đč ĐșĐŸĐœŃ„Đ”ĐŽĐžŃ†ĐžĐ°Đ»ŃŒĐœĐŸŃŃ‚Đž: ĐšĐœĐŸĐżĐșа Google+ аĐșтоĐČĐžŃ€ŃƒĐ”Ń‚ŃŃ ДслО ĐșĐ»ĐžĐœĐžŃ‚Đ” ĐżĐŸ ĐœĐ”Đč ĐŒŃ‹ŃˆĐșĐŸĐč. АĐșтоĐČацоя ĐșĐœĐŸĐżĐșĐž ĐŸŃ‚ĐżŃ€Đ°ĐČĐ»ŃĐ”Ń‚ Đž Ń…Ń€Đ°ĐœĐžŃ‚ ĐŽĐ°ĐœĐœŃ‹Đ” ĐœĐ° сДрĐČДрах Google – ĐŽĐ»Ń ĐżĐŸĐŽŃ€ĐŸĐ±ĐœĐŸĐč ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžĐž ĐœĐ°Đ¶ĐŒĐžŃ‚Đ” i.",txt_off:"ĐĐ” ŃĐŸĐ”ĐŽĐžĐœŃŃ‚ŃŒŃŃ с Google+",txt_on:"ĐĄĐŸĐ”ĐŽĐžĐœĐžŃ‚ŃŒŃŃ с Google+"},hackernews:{txt_info:"ДĐČа ĐșлОĐșа ĐŽĐ»Ń Đ±ĐŸĐ»ŃŒŃˆĐ”Đč ĐșĐŸĐœŃ„Đ”ĐŽĐžŃ†ĐžĐ°Đ»ŃŒĐœĐŸŃŃ‚Đž: ĐšĐœĐŸĐżĐșа Hacker News аĐșтоĐČĐžŃ€ŃƒĐ”Ń‚ŃŃ ДслО ĐșĐ»ĐžĐœĐžŃ‚Đ” ĐżĐŸ ĐœĐ”Đč ĐŒŃ‹ŃˆĐșĐŸĐč. АĐșтоĐČацоя ĐșĐœĐŸĐżĐșĐž ĐŸŃ‚ĐżŃ€Đ°ĐČĐ»ŃĐ”Ń‚ Đž Ń…Ń€Đ°ĐœĐžŃ‚ ĐŽĐ°ĐœĐœŃ‹Đ” ĐœĐ° сДрĐČДрах Buffer – ĐŽĐ»Ń ĐżĐŸĐŽŃ€ĐŸĐ±ĐœĐŸĐč ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžĐž ĐœĐ°Đ¶ĐŒĐžŃ‚Đ” i.",txt_off:"ĐĐ” ŃĐŸĐ”ĐŽĐžĐœŃŃ‚ŃŒŃŃ с Hacker News",txt_on:"ĐĄĐŸĐ”ĐŽĐžĐœĐžŃ‚ŃŒŃŃ с Hacker News",txt_n_points:"{} ĐŸŃƒĐœĐșт",txt_one_point:"1 ĐŸŃƒĐœĐșт"},linkedin:{txt_info:"ДĐČа ĐșлОĐșа ĐŽĐ»Ń Đ±ĐŸĐ»ŃŒŃˆĐ”Đč ĐșĐŸĐœŃ„Đ”ĐŽĐžŃ†ĐžĐ°Đ»ŃŒĐœĐŸŃŃ‚Đž: ĐšĐœĐŸĐżĐșа LinkedIn аĐșтоĐČĐžŃ€ŃƒĐ”Ń‚ŃŃ ДслО ĐșĐ»ĐžĐœĐžŃ‚Đ” ĐżĐŸ ĐœĐ”Đč ĐŒŃ‹ŃˆĐșĐŸĐč. АĐșтоĐČацоя ĐșĐœĐŸĐżĐșĐž ĐŸŃ‚ĐżŃ€Đ°ĐČĐ»ŃĐ”Ń‚ Đž Ń…Ń€Đ°ĐœĐžŃ‚ ĐŽĐ°ĐœĐœŃ‹Đ” ĐœĐ° сДрĐČДрах LinkedIn – ĐŽĐ»Ń ĐżĐŸĐŽŃ€ĐŸĐ±ĐœĐŸĐč ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžĐž ĐœĐ°Đ¶ĐŒĐžŃ‚Đ” i.",txt_off:"ĐĐ” ŃĐŸĐ”ĐŽĐžĐœŃŃ‚ŃŒŃŃ с LinkedIn",txt_on:"ĐĄĐŸĐ”ĐŽĐžĐœĐžŃ‚ŃŒŃŃ с LinkedIn"},mail:{txt_info:"ОтпраĐČоть ĐżĐŸ ŃĐ»Đ”ĐșŃ‚Ń€ĐŸĐœĐœĐŸĐč ĐżĐŸŃ‡Ń‚Đ” Юругу.",txt_button:"ОтпраĐČоть E-Mail"},pinterest:{txt_info:"ДĐČа ĐșлОĐșа ĐŽĐ»Ń Đ±ĐŸĐ»ŃŒŃˆĐ”Đč ĐșĐŸĐœŃ„Đ”ĐŽĐžŃ†ĐžĐ°Đ»ŃŒĐœĐŸŃŃ‚Đž: ĐšĐœĐŸĐżĐșа Pinterest аĐșтоĐČĐžŃ€ŃƒĐ”Ń‚ŃŃ ДслО ĐșĐ»ĐžĐœĐžŃ‚Đ” ĐżĐŸ ĐœĐ”Đč ĐŒŃ‹ŃˆĐșĐŸĐč. АĐșтоĐČацоя ĐșĐœĐŸĐżĐșĐž ĐŸŃ‚ĐżŃ€Đ°ĐČĐ»ŃĐ”Ń‚ Đž Ń…Ń€Đ°ĐœĐžŃ‚ ĐŽĐ°ĐœĐœŃ‹Đ” ĐœĐ° сДрĐČДрах Pinterest – ĐŽĐ»Ń ĐżĐŸĐŽŃ€ĐŸĐ±ĐœĐŸĐč ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžĐž ĐœĐ°Đ¶ĐŒĐžŃ‚Đ” i.",txt_off:"ĐĐ” ŃĐŸĐ”ĐŽĐžĐœŃŃ‚ŃŒŃŃ с Pinterest",txt_on:"ĐĄĐŸĐ”ĐŽĐžĐœĐžŃ‚ŃŒŃŃ с Pinterest"},reddit:{txt_info:"ДĐČа ĐșлОĐșа ĐŽĐ»Ń Đ±ĐŸĐ»ŃŒŃˆĐ”Đč ĐșĐŸĐœŃ„Đ”ĐŽĐžŃ†ĐžĐ°Đ»ŃŒĐœĐŸŃŃ‚Đž: ĐšĐœĐŸĐżĐșа Reddit аĐșтоĐČĐžŃ€ŃƒĐ”Ń‚ŃŃ ДслО ĐșĐ»ĐžĐœĐžŃ‚Đ” ĐżĐŸ ĐœĐ”Đč ĐŒŃ‹ŃˆĐșĐŸĐč. АĐșтоĐČацоя ĐșĐœĐŸĐżĐșĐž ĐŸŃ‚ĐżŃ€Đ°ĐČĐ»ŃĐ”Ń‚ Đž Ń…Ń€Đ°ĐœĐžŃ‚ ĐŽĐ°ĐœĐœŃ‹Đ” ĐœĐ° сДрĐČДрах Reddit – ĐŽĐ»Ń ĐżĐŸĐŽŃ€ĐŸĐ±ĐœĐŸĐč ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžĐž ĐœĐ°Đ¶ĐŒĐžŃ‚Đ” i.",txt_off:"ĐĐ” ŃĐŸĐ”ĐŽĐžĐœŃŃ‚ŃŒŃŃ Reddit",txt_on:"ĐĄĐŸĐ”ĐŽĐžĐœĐžŃ‚ŃŒŃŃ с Reddit"},stumbleupon:{txt_info:"ДĐČа ĐșлОĐșа ĐŽĐ»Ń Đ±ĐŸĐ»ŃŒŃˆĐ”Đč ĐșĐŸĐœŃ„Đ”ĐŽĐžŃ†ĐžĐ°Đ»ŃŒĐœĐŸŃŃ‚Đž: ĐšĐœĐŸĐżĐșа StumbleUpon аĐșтоĐČĐžŃ€ŃƒĐ”Ń‚ŃŃ ДслО ĐșĐ»ĐžĐœĐžŃ‚Đ” ĐżĐŸ ĐœĐ”Đč ĐŒŃ‹ŃˆĐșĐŸĐč. АĐșтоĐČацоя ĐșĐœĐŸĐżĐșĐž ĐŸŃ‚ĐżŃ€Đ°ĐČĐ»ŃĐ”Ń‚ Đž Ń…Ń€Đ°ĐœĐžŃ‚ ĐŽĐ°ĐœĐœŃ‹Đ” ĐœĐ° сДрĐČДрах StumbleUpon – ĐŽĐ»Ń ĐżĐŸĐŽŃ€ĐŸĐ±ĐœĐŸĐč ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžĐž ĐœĐ°Đ¶ĐŒĐžŃ‚Đ” i.",txt_off:"ĐĐ” ŃĐŸĐ”ĐŽĐžĐœŃŃ‚ŃŒŃŃ с StumbleUpon",txt_on:"ĐĄĐŸĐ”ĐŽĐžĐœĐžŃ‚ŃŒŃŃ с StumbleUpon"},tumblr:{txt_info:"ОтпраĐČоть ĐșĐŸĐœŃ‚Đ”ĐœŃ‚ ĐœĐ° Tumblr.",txt_button:"Tumblr"},twitter:{txt_info:"ДĐČа ĐșлОĐșа ĐŽĐ»Ń Đ±ĐŸĐ»ŃŒŃˆĐ”Đč ĐșĐŸĐœŃ„Đ”ĐŽĐžŃ†ĐžĐ°Đ»ŃŒĐœĐŸŃŃ‚Đž: ĐšĐœĐŸĐżĐșа Tweet аĐșтоĐČĐžŃ€ŃƒĐ”Ń‚ŃŃ ДслО ĐșĐ»ĐžĐœĐžŃ‚Đ” ĐżĐŸ ĐœĐ”Đč ĐŒŃ‹ŃˆĐșĐŸĐč. АĐșтоĐČацоя ĐșĐœĐŸĐżĐșĐž ĐŸŃ‚ĐżŃ€Đ°ĐČĐ»ŃĐ”Ń‚ Đž Ń…Ń€Đ°ĐœĐžŃ‚ ĐŽĐ°ĐœĐœŃ‹Đ” ĐœĐ° сДрĐČДрах Twitter – ĐŽĐ»Ń ĐżĐŸĐŽŃ€ĐŸĐ±ĐœĐŸĐč ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžĐž ĐœĐ°Đ¶ĐŒĐžŃ‚Đ” i.",txt_off:"ĐĐ” ŃĐŸĐ”ĐŽĐžĐœŃŃ‚ŃŒŃŃ с Twitter",txt_on:"ĐĄĐŸĐ”ĐŽĐžĐœĐžŃ‚ŃŒŃŃ с Twitter"},xing:{txt_info:"ДĐČа ĐșлОĐșа ĐŽĐ»Ń Đ±ĐŸĐ»ŃŒŃˆĐ”Đč ĐșĐŸĐœŃ„Đ”ĐŽĐžŃ†ĐžĐ°Đ»ŃŒĐœĐŸŃŃ‚Đž: ĐšĐœĐŸĐżĐșа XING аĐșтоĐČĐžŃ€ŃƒĐ”Ń‚ŃŃ ДслО ĐșĐ»ĐžĐœĐžŃ‚Đ” ĐżĐŸ ĐœĐ”Đč ĐŒŃ‹ŃˆĐșĐŸĐč. АĐșтоĐČацоя ĐșĐœĐŸĐżĐșĐž ĐŸŃ‚ĐżŃ€Đ°ĐČĐ»ŃĐ”Ń‚ Đž Ń…Ń€Đ°ĐœĐžŃ‚ ĐŽĐ°ĐœĐœŃ‹Đ” ĐœĐ° сДрĐČДрах XING – ĐŽĐ»Ń ĐżĐŸĐŽŃ€ĐŸĐ±ĐœĐŸĐč ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžĐž ĐœĐ°Đ¶ĐŒĐžŃ‚Đ” i.",txt_off:"ĐĐ” ŃĐŸĐ”ĐŽĐžĐœŃŃ‚ŃŒŃŃ с XING",txt_on:"ĐĄĐŸĐ”ĐŽĐžĐœĐžŃ‚ŃŒŃŃ с XING"}},info_link:"http://www.m0fx64.name/socialshareprivacy",txt_settings:"ĐĐ°ŃŃ‚Ń€ĐŸĐčĐșĐž",txt_help:"ЕслО ĐČы аĐșтоĐČĐžŃ€ŃƒĐ”Ń‚Đ” этох ĐżĐŸĐ»Ń с ĐżĐŸĐŒĐŸŃ‰ŃŒŃŽ ĐŒŃ‹ŃˆĐž, ĐŽĐ°ĐœĐœŃ‹Đ” Đ±ŃƒĐŽŃƒŃ‚ пДрДЎаĐČаться Ń‚Ń€Đ”Ń‚ŃŒĐ”Đč ŃŃ‚ĐŸŃ€ĐŸĐœĐ” (Facebook, Twitter, Google, ...) Đž Ń…Ń€Đ°ĐœĐžŃ‚ŃŃ Ń‚Đ°ĐŒ. Đ”Đ»Ń Đ±ĐŸĐ»Đ”Đ” ĐżĐŸĐŽŃ€ĐŸĐ±ĐœĐŸĐč ĐžĐœŃ„ĐŸŃ€ĐŒĐ°Ń†ĐžĐž ĐœĐ°Đ¶ĐŒĐžŃ‚Đ” i.",settings_perma:"ВĐșĐ»ŃŽŃ‡ĐžŃ‚ŃŒ ĐżĐŸŃŃ‚ĐŸŃĐœĐœĐŸ:",language:"ru"}); diff --git a/plugins/social_share_privacy/public/socialshareprivacy/javascripts/localstorage.js b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/localstorage.js new file mode 100644 index 0000000..239fb1c --- /dev/null +++ b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/localstorage.js @@ -0,0 +1,31 @@ +/* + * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz + * + * Copyright (c) 2012 Mathias Panzenböck + * + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php + * + * Spread the word, link to us if you can. + */ +(function ($, undefined) { + "use strict"; + + $.extend($.fn.socialSharePrivacy.settings, { + // Set perma_option to true. + // Initially it is only set to true if jQuery.cookie is available. + perma_option: true, + set_perma_option: function (service_name) { + localStorage.setItem('socialSharePrivacy_'+service_name, 'perma_on'); + }, + del_perma_option: function (service_name) { + localStorage.removeItem('socialSharePrivacy_'+service_name); + }, + // Only one of the two methods "get_perma_options" and "get_perma_option" has + // to be implemented. Though the other has to be set to null, so the default + // cookie based method is not used. + get_perma_options: null, + get_perma_option: function (service_name) { + return localStorage.getItem('socialSharePrivacy_'+service_name) === 'perma_on'; + } + }); +})(jQuery); diff --git a/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/buffer.js b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/buffer.js new file mode 100644 index 0000000..93989e2 --- /dev/null +++ b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/buffer.js @@ -0,0 +1,54 @@ +/* + * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz + * + * http://www.heise.de/extras/socialshareprivacy/ + * http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html + * + * Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt, + * Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de + * + * Copyright (c) 2012 Mathias Panzenböck + * + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php + * + * Spread the word, link to us if you can. + */ +(function ($, undefined) { + "use strict"; + + function get (self, options, uri, settings, name) { + var value = options[name]; + if (typeof value === "function") { + return value.call(self, options, uri, settings); + } + return String(value); + } + + $.fn.socialSharePrivacy.settings.services.buffer = { + 'status' : true, + 'dummy_line_img' : 'images/dummy_buffer.png', + 'dummy_box_img' : 'images/dummy_box_buffer.png', + 'dummy_alt' : '"Buffer"-Dummy', + '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 i.', + 'txt_off' : 'not connected to Buffer', + 'txt_on' : 'connected to Buffer', + 'perma_option' : true, + 'display_name' : 'Buffer', + 'referrer_track' : '', + 'via' : '', + 'text' : $.fn.socialSharePrivacy.getTitle, + 'picture' : $.fn.socialSharePrivacy.getImage, + 'button' : function (options, uri, settings) { + return $('').attr( + 'src', 'https://widgets.bufferapp.com/button/?'+$.param({ + count : settings.layout === 'line' ? 'horizontal' : 'vertical', + via : get(this, options, uri, settings, 'via'), + text : $.fn.socialSharePrivacy.abbreviateText( + get(this, options, uri, settings, 'text'), 120), + picture : get(this, options, uri, settings, 'picture'), + url : uri + options.referrer_track, + source : 'button' + })); + } + }; +})(jQuery); diff --git a/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/delicious.js b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/delicious.js new file mode 100644 index 0000000..d8502d4 --- /dev/null +++ b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/delicious.js @@ -0,0 +1,85 @@ +/* + * jquery.socialshareprivacy.js + * + * Copyright (c) 2012 Mathias Panzenböck + * + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php + * + * Code inspired by Delicious Button v1.1: + * http://code.google.com/p/delicious-button/ + * + * Warning: this button uses plaintext http and can be harmful to users under opressive regimes + * + */ +(function ($, undefined) { + "use strict"; + + $.fn.socialSharePrivacy.settings.services.delicious = { + 'status' : true, + 'dummy_line_img' : 'images/dummy_delicious.png', + 'dummy_box_img' : 'images/dummy_box_delicious.png', + 'dummy_alt' : '"Delicious"-Dummy', + '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 i.', + 'txt_off' : 'not connected to Delicious', + 'txt_on' : 'connected to Delicious', + 'perma_option' : true, + 'display_name' : 'Delicious', + 'txt_button' : 'Save', + 'referrer_track' : '', + 'title' : $.fn.socialSharePrivacy.getTitle, + 'button' : function (options, uri, settings) { + var $button = $('
'); + var url = uri + options.referrer_track; + + $.ajax({ + url: "http://feeds.delicious.com/v2/json/urlinfo/data", + data: {url: url}, + dataType: "jsonp", + success: function (counts) { + var hash, total_posts, title, txt_button; + for (var i = 0; i < counts.length; ++ i) { + var count = counts[i]; + if (count.url === url) { + total_posts = parseInt(count.total_posts, 10); + hash = count.hash; + title = count.title; + break; + } + } + if (total_posts) txt_button = $.fn.socialSharePrivacy.formatNumber(total_posts); + else txt_button = options.txt_button; + var save_url = "http://delicious.com/save?"+$.param({ + v: "5", + url: url, + title: (typeof options.title === "function" ? + options.title.call(this, options, uri, settings) : + String(options.title)) || title + }); + + $button.html('
'); + $button.find('i').text(options.txt_button); + $button.find('b').text(txt_button); + $button.find('a.icon').attr("href", hash ? "http://delicious.com/url/" + hash : save_url); + var $count = $button.find('a.count').attr("href", save_url).click(function (event) { + window.open(save_url + "&noui&jump=close", "delicious", "toolbar=no,width=555,height=555"); + event.preventDefault(); + }); + + if (total_posts) { + $count.hover(function () { + var $self = $(this); + $self.find("b").stop(1, 1).css("display", "none"); + $self.find("i").fadeIn(); + }, function () { + var $self = $(this); + $self.find("i").stop(1, 1).css("display", "none"); + $self.find("b").fadeIn(); + }); + } + } + }); + + return $button; + } + }; +})(jQuery); diff --git a/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/disqus.js b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/disqus.js new file mode 100644 index 0000000..f8e60b5 --- /dev/null +++ b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/disqus.js @@ -0,0 +1,77 @@ +/* + * jquery.socialshareprivacy.js + * + * Copyright (c) 2012 Mathias Panzenböck + * + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php + * + */ +(function ($, undefined) { + "use strict"; + + var DISQUSWIDGETS = { + displayCount: function (data) { + $('.social_share_privacy_area .disqus .disqus-widget:not(.init)').each(function () { + var $widget = $(this); + var uri = data.counts[0].id; + if ($widget.attr("data-uri") === uri) { + var key = $widget.attr("data-count"); + var count = data.counts[0][key]; + var text = data.text[key]; + var scount = $.fn.socialSharePrivacy.formatNumber(count); + $widget.attr('title', count === 0 ? text.zero : count === 1 ? text.one : text.multiple.replace('{num}', scount)); + $widget.find('.count a').text(scount); + $widget.addClass('init'); + } + }); + } + }; + + $.fn.socialSharePrivacy.settings.services.disqus = { + 'status' : true, + 'dummy_line_img' : 'images/dummy_disqus.png', + 'dummy_box_img' : 'images/dummy_box_disqus.png', + 'dummy_alt' : '"Disqus"-Dummy', + '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 i.', + 'txt_off' : 'not connected to Disqus', + 'txt_on' : 'connected to Disqus', + 'perma_option' : true, + 'display_name' : 'Disqus', + 'referrer_track' : '', + 'shortname' : '', + 'count' : 'comments', + 'onclick' : null, + 'button' : function (options, uri, settings) { + var shortname = options.shortname || window.disqus_shortname || ''; + var $code; + if (settings.layout === 'line') { + $code = $('
'+ + 'Disqus'+ + ' 
'); + } + else { + $code = $('
'+ + ''+ + 'Disqus
'); + } + + $code.attr({ + 'data-count' : options.count, + 'data-shortname' : shortname, + 'data-uri' : uri + options.referrer_track + }); + + if (options.onclick) { + $code.find('a').click(typeof options.onclick === "function" ? + options.onclick : new Function("event", options.onclick)); + } + + // this breaks every other usage of the disqus count API: + window.DISQUSWIDGETS = DISQUSWIDGETS; + + $.getScript('https://'+shortname+'.disqus.com/count-data.js?2='+encodeURIComponent(uri + options.referrer_track)); + + return $code; + } + }; +})(jQuery); diff --git a/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/facebook.js b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/facebook.js new file mode 100644 index 0000000..d2d05c3 --- /dev/null +++ b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/facebook.js @@ -0,0 +1,81 @@ +/* + * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz + * + * http://www.heise.de/extras/socialshareprivacy/ + * http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html + * + * Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt, + * Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de + * + * Copyright (c) 2012 Mathias Panzenböck + * + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php + * + * Spread the word, link to us if you can. + */ +(function ($, undefined) { + "use strict"; + + 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"]}; + + $.fn.socialSharePrivacy.settings.services.facebook = { + 'status' : true, + 'button_class' : 'fb_like', + 'dummy_line_img' : 'images/dummy_facebook.png', + 'dummy_box_img' : 'images/dummy_box_facebook.png', + 'dummy_alt' : 'Facebook "Like"-Dummy', + '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 i.', + 'txt_off' : 'not connected to Facebook', + 'txt_on' : 'connected to Facebook', + 'perma_option' : true, + 'display_name' : 'Facebook Like/Recommend', + 'referrer_track' : '', + 'action' : 'like', + 'colorscheme' : 'light', + 'font' : '', + 'button' : function (options, uri, settings) { + // ensure a locale that is supported by facebook + // otherwise facebook renders nothing + var match = /^([a-z]{2})_([A-Z]{2})$/.exec(options.language); + var locale = "en_US"; + + if (match) { + if (match[1] in locales) { + var subs = locales[match[1]]; + if ($.inArray(match[2], subs) !== -1) { + locale = options.language; + } + else { + locale = match[1]+"_"+subs[0]; + } + } + } + else if (options.language in locales) { + locale = options.language+"_"+locales[options.language][0]; + } + + var params = { + locale : locale, + href : uri + options.referrer_track, + send : 'false', + show_faces : 'false', + action : options.action, + colorscheme: options.colorscheme + }; + if (options.font) params.font = options.font; + + if (settings.layout === 'line') { + params.width = '120'; + params.height = '20'; + params.layout = 'button_count'; + } + else { + params.width = 62; + params.height = 61; + params.layout = 'box_count'; + } + return $('').attr( + 'src', 'https://www.facebook.com/plugins/like.php?'+$.param(params)); + } + }; +})(jQuery); diff --git a/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/fbshare.js b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/fbshare.js new file mode 100644 index 0000000..09ddc8f --- /dev/null +++ b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/fbshare.js @@ -0,0 +1,38 @@ +/* + * Facebook share module for jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz + * + * http://www.heise.de/extras/socialshareprivacy/ + * http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html + * + * Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt, + * Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de + * + * Copyright (c) 2012 Mathias Panzenböck + * + * Fbshare module: + * copyright (c) 2013 zzzen.com + * + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php + * + * Spread the word, link to us if you can. + */ +(function ($, undefined) { + "use strict"; + + $.fn.socialSharePrivacy.settings.services.fbshare = { + 'status' : true, + 'privacy' : 'safe', + 'button_class' : 'fbshare', + 'line_img' : 'images/fbshare.png', + 'box_img' : 'images/box_fbshare.png', + 'txt_info' : 'Share via facebook.', + 'txt_button' : 'Facebook Share', + 'display_name' : 'Facebook Share', + 'referrer_track' : '', + 'button' : function (options, uri, settings) { + return $('', {target: '_blank', href: 'https://www.facebook.com/sharer/sharer.php?'+$.param({u:uri + options.referrer_track})}).append( + $('', {alt: options.txt_button, + src: options.path_prefix + (settings.layout === 'line' ? options.line_img : options.box_img)})); + } + }; +})(jQuery); diff --git a/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/flattr.js b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/flattr.js new file mode 100644 index 0000000..636764e --- /dev/null +++ b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/flattr.js @@ -0,0 +1,72 @@ +/* + * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz + * + * Copyright (c) 2012 Mathias Panzenböck + * + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php + * + * Spread the word, link to us if you can. + */ + +(function ($, undefined) { + "use strict"; + + function get (self, options, uri, settings, name) { + var value = options[name]; + if (typeof value === "function") { + return value.call(self, options, uri, settings); + } + return String(value); + } + + // using an unsupported language breaks the flattr button + 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}; + + $.fn.socialSharePrivacy.settings.services.flattr = { + 'status' : true, + 'button_class' : 'flattr', + 'dummy_line_img' : 'images/dummy_flattr.png', + 'dummy_box_img' : 'images/dummy_box_flattr.png', + 'dummy_alt' : '"Flattr"-Dummy', + '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 i.', + 'txt_off' : 'not connected to Flattr', + 'txt_on' : 'connected to Flattr', + 'perma_option' : true, + 'display_name' : 'Flattr', + 'referrer_track' : '', + 'title' : $.fn.socialSharePrivacy.getTitle, + 'description' : $.fn.socialSharePrivacy.getDescription, + 'uid' : '', + 'category' : '', + 'tags' : '', + 'popout' : '', + 'hidden' : '', + 'button' : function (options, uri, settings) { + var attrs = { + href : uri + options.referrer_track, + title : get(this, options, uri, settings, 'title') + }; + if (options.uid) attrs['data-flattr-uid'] = options.uid; + if (options.hidden) attrs['data-flattr-hidden'] = options.hidden; + if (options.popout) attrs['data-flattr-popout'] = options.popout; + if (options.category) attrs['data-flattr-category'] = options.category; + if (options.tags) attrs['data-flattr-tags'] = options.tags; + if (options.language) { + var lang = String(options.language).replace('-','_'); + var baselang = lang.split('_')[0]; + if (langs[baselang] === true) { + attrs['data-flattr-language'] = attrs.lang = lang; + } + } + if (settings.layout === 'line') attrs['data-flattr-button'] = 'compact'; + + var $code = $('' + get(this, options, uri, settings, 'description') + + ''); + + $code.filter('a').attr(attrs); + + return $code; + } + }; +})(jQuery); diff --git a/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/gplus.js b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/gplus.js new file mode 100644 index 0000000..5cf21e5 --- /dev/null +++ b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/gplus.js @@ -0,0 +1,44 @@ +/* + * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz + * + * http://www.heise.de/extras/socialshareprivacy/ + * http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html + * + * Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt, + * Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de + * + * Copyright (c) 2012 Mathias Panzenböck + * + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php + * + * Spread the word, link to us if you can. + */ +(function ($, undefined) { + "use strict"; + + $.fn.socialSharePrivacy.settings.services.gplus = { + 'status' : true, + 'button_class' : 'gplusone', + 'dummy_line_img' : 'images/dummy_gplus.png', + 'dummy_box_img' : 'images/dummy_box_gplus.png', + 'dummy_alt' : '"Google+1"-Dummy', + '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 i.', + 'txt_off' : 'not connected to Google+', + 'txt_on' : 'connected to Google+', + 'perma_option' : true, + 'display_name' : 'Google+', + 'referrer_track' : '', + 'button' : function (options, uri, settings) { + // we use the Google+ "asynchronous" code, standard code is flaky if inserted into dom after load + var $code = $('
'); + $code.filter('.g-plusone').attr({ + 'data-href': uri + options.referrer_track, + 'data-size': settings.layout === 'line' ? 'medium' : 'tall' + }); + return $code; + } + }; +})(jQuery); diff --git a/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/hackernews.js b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/hackernews.js new file mode 100644 index 0000000..563c920 --- /dev/null +++ b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/hackernews.js @@ -0,0 +1,68 @@ +/* + * jquery.socialshareprivacy.js + * + * Copyright (c) 2012 Mathias Panzenböck + * + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php + * + */ +(function ($, undefined) { + "use strict"; + + $.fn.socialSharePrivacy.settings.services.hackernews = { + 'status' : true, + 'dummy_line_img' : 'images/dummy_hackernews.png', + 'dummy_box_img' : 'images/dummy_box_hackernews.png', + 'dummy_alt' : '"Hacker News"-Dummy', + '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 i.', + 'txt_off' : 'not connected to Hacker News', + 'txt_on' : 'connected to Hacker News', + 'perma_option' : true, + 'display_name' : 'Hacker News', + 'txt_n_points' : '{points} points', + 'txt_one_point' : '1 point', + 'referrer_track' : '', + 'title' : $.fn.socialSharePrivacy.getTitle, + 'button' : function (options, uri, settings) { + var url = uri + options.referrer_track; + var title = typeof(options.title) === 'function' ? + options.title.call(this, options, uri, settings) : + String(options.title); + + var $code; + if (settings.layout === 'line') { + $code = $('
'+ + 'Y'+ + 'submit
'); + } + else { + $code = $('
'+ + ''+ + 'Y
'); + } + + $code.find("a").attr("href", "https://news.ycombinator.com/submitlink?"+$.param({ + "u": url, + "t": title + })); + + $.ajax("https://api.thriftdb.com/api.hnsearch.com/items/_search?filter[fields][url][]="+encodeURIComponent(url), { + dataType: "jsonp", + success: function (data) { + var item = data.results[0]; + if (item) { + item = item.item; + var points = $.fn.socialSharePrivacy.formatNumber(item.points); + $code.find("a").attr("href", "https://news.ycombinator.com/item?id="+item.id); + $code.find(".points a").text(points).attr('title', + item.points === 1 ? + options.txt_one_point : + options.txt_n_points.replace(/{points}/g, points)); + } + } + }); + + return $code; + } + }; +})(jQuery); diff --git a/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/linkedin.js b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/linkedin.js new file mode 100644 index 0000000..43e5961 --- /dev/null +++ b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/linkedin.js @@ -0,0 +1,53 @@ +/* + * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz + * + * http://www.heise.de/extras/socialshareprivacy/ + * http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html + * + * Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt, + * Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de + * + * Copyright (c) 2012 Mathias Panzenböck + * + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php + * + * Spread the word, link to us if you can. + */ +(function ($, undefined) { + "use strict"; + + $.fn.socialSharePrivacy.settings.services.linkedin = { + 'status' : true, + 'dummy_line_img' : 'images/dummy_linkedin.png', + 'dummy_box_img' : 'images/dummy_box_linkedin.png', + 'dummy_alt' : '"LinkedIn"-Dummy', + '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 i.', + 'txt_off' : 'not connected to LinkedIn', + 'txt_on' : 'connected to LinkedIn', + 'perma_option' : true, + 'display_name' : 'LinkedIn', + 'referrer_track' : '', + 'onsuccess' : null, + 'onerror' : null, + 'showzero' : false, + 'button' : function (options, uri, settings) { + var attrs = { + 'data-counter' : settings.layout === 'line' ? 'right' : 'top', + 'data-url' : uri + options.referrer_track, + 'data-showzero': String(options.showzero) + }; + if (options.onsuccess) attrs['data-onsuccess'] = options.onsuccess; + if (options.onerror) attrs['data-onerror'] = options.onerror; + var $code = $('').attr(attrs); + + if (window.IN && window.IN.parse) { + $code = $code.add(''); + } + else if ($('script[src^="https://platform.linkedin.com/"]').length === 0) { + $code = $code.add(''); + } + + return $code; + } + }; +})(jQuery); diff --git a/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/mail.js b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/mail.js new file mode 100644 index 0000000..9d73ca2 --- /dev/null +++ b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/mail.js @@ -0,0 +1,50 @@ +/* + * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz + * + * Copyright (c) 2012 Mathias Panzenböck + * + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php + * + * Spread the word, link to us if you can. + */ +(function ($, undefined) { + "use strict"; + + function get (self, options, uri, settings, name) { + var value = options[name]; + if (typeof value === "function") { + value = value.call(self, options, uri, settings); + } + return String(value); + } + + var getDescription = $.fn.socialSharePrivacy.getDescription; + + function getBody (options, uri, settings) { + return getDescription.call(this, options, uri, settings) + '\n\n' + uri + options.referrer_track; + } + + $.fn.socialSharePrivacy.settings.services.mail = { + 'status' : true, + 'privacy' : 'safe', + 'button_class' : 'mail', + 'line_img' : 'images/mail.png', + 'box_img' : 'images/box_mail.png', + 'txt_info' : 'Send this via email to a friend.', + 'txt_button' : 'Send Email', + 'display_name' : 'Mail', + 'referrer_track' : '', + 'subject' : $.fn.socialSharePrivacy.getTitle, + 'body' : getBody, + 'button' : function (options, uri, settings) { + return $('').attr( + 'href', 'mailto:?'+$.param({ + subject : get(this, options, uri, settings, 'subject'), + body : get(this, options, uri, settings, 'body') + }).replace(/\+/g,'%20')).append($('', { + alt: options.txt_button, + src: options.path_prefix + (settings.layout === 'line' ? options.line_img : options.box_img) + })); + } + }; +})(jQuery); diff --git a/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/pinterest.js b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/pinterest.js new file mode 100644 index 0000000..7e57c20 --- /dev/null +++ b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/pinterest.js @@ -0,0 +1,83 @@ +/* + * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz + * + * http://www.heise.de/extras/socialshareprivacy/ + * http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html + * + * Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt, + * Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de + * + * Copyright (c) 2012 Mathias Panzenböck + * + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php + * + * Spread the word, link to us if you can. + */ + +(function ($, undefined) { + "use strict"; + + function get (self, options, uri, settings, name) { + var value = options[name]; + if (typeof value === "function") { + return value.call(self, options, uri, settings); + } + return String(value); + } + + var loadingScript = false; + function loadScript () { + // prevent already loaded buttons from being broken: + $('.social_share_privacy_area .pinterest .pinit a[data-pin-log]').attr('data-pin-do','ignore'); + $.ajax({ + url : 'https://assets.pinterest.com/js/pinit.js', + dataType : 'script', + cache : true + }); + // because there is no callback yet I have no choice but to do this now: + loadingScript = false; + } + + $.fn.socialSharePrivacy.settings.services.pinterest = { + 'status' : true, + 'button_class' : 'pinit', + 'dummy_line_img' : 'images/dummy_pinterest.png', + 'dummy_box_img' : 'images/dummy_box_pinterest.png', + 'dummy_alt' : '"Pin it"-Dummy', + '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 i.', + 'txt_off' : 'not connected to Pinterest', + 'txt_on' : 'connected to Pinterest', + 'perma_option' : true, + 'display_name' : 'Pinterest', + 'referrer_track' : '', + 'title' : $.fn.socialSharePrivacy.getTitle, + 'description' : $.fn.socialSharePrivacy.getDescription, + 'media' : $.fn.socialSharePrivacy.getImage, + 'button' : function (options, uri, settings) { + var params = { + url : uri + options.referrer_track, + media : get(this, options, uri, settings, 'media') + }; + var title = get(this, options, uri, settings, 'title'); + var description = get(this, options, uri, settings, 'description'); + if (title) params.title = title; + if (description) params.description = description; + + var $code = $(''); + + $code.filter('a').attr({ + 'data-pin-config' : settings.layout === 'line' ? 'beside' : 'above', + href : 'https://pinterest.com/pin/create/button/?'+$.param(params) + }).find('img').attr('src', 'https://assets.pinterest.com/images/pidgets/pin_it_button.png'); + + // This way when the user has permanently enabled pinterest and there are several pinterest + // buttons on one webpage it will load the script only once and so the buttons will work: + if (!loadingScript) { + loadingScript = true; + setTimeout(loadScript, 10); + } + + return $code; + } + }; +})(jQuery); diff --git a/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/reddit.js b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/reddit.js new file mode 100644 index 0000000..1692981 --- /dev/null +++ b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/reddit.js @@ -0,0 +1,72 @@ +/* + * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz + * + * http://www.heise.de/extras/socialshareprivacy/ + * http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html + * + * Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt, + * Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de + * + * Copyright (c) 2012 Mathias Panzenböck + * + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php + * + * Spread the word, link to us if you can. + */ + +(function ($, undefined) { + "use strict"; + + function get (self, options, uri, settings, name) { + var value = options[name]; + if (typeof value === "function") { + return value.call(self, options, uri, settings); + } + return String(value); + } + + $.fn.socialSharePrivacy.settings.services.reddit = { + 'status' : true, + 'button_class' : 'reddit', + 'dummy_line_img' : 'images/dummy_reddit.png', + 'dummy_box_img' : 'images/dummy_box_reddit.png', + 'dummy_alt' : '"Reddit this!"-Dummy', + '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 i.', + 'txt_off' : 'not connected to reddit', + 'txt_on' : 'connected to reddit', + 'perma_option' : true, + 'display_name' : 'Reddit', + 'referrer_track' : '', + 'title' : $.fn.socialSharePrivacy.getTitle, + 'target' : '', + 'newwindow' : '1', + 'bgcolor' : 'transparent', + 'bordercolor' : '', + 'button' : function (options, uri, settings) { + var base_url, w, layout; + if (settings.layout === 'line') { + w = 120; + layout = '/button/button1.html?'; + } + else { + w = 58; + layout = '/button/button2.html?'; + } + base_url = 'https://redditstatic.s3.amazonaws.com'; + var params = { + url : uri + options.referrer_track, + width : String(w) + }; + var title = get(this, options, uri, settings, 'title'); + var target = get(this, options, uri, settings, 'target'); + if (title) params.title = title; + if (target) params.target = target; + if (options.bgcolor) params.bgcolor = options.bgcolor; + if (options.bordercolor) params.bordercolor = options.bordercolor; + if (options.newwindow) params.newwindow = options.newwindow; + + return $('').attr( + 'src', base_url+layout+$.param(params)); + } + }; +})(jQuery); diff --git a/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/stumbleupon.js b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/stumbleupon.js new file mode 100644 index 0000000..9a634d9 --- /dev/null +++ b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/stumbleupon.js @@ -0,0 +1,55 @@ +/* + * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz + * + * http://www.heise.de/extras/socialshareprivacy/ + * http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html + * + * Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt, + * Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de + * + * Copyright (c) 2012 Mathias Panzenböck + * + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php + * + * Warning: this button uses plaintext http and can be harmful to users under opressive regimes + * + */ + +(function ($, undefined) { + "use strict"; + + $.fn.socialSharePrivacy.settings.services.stumbleupon = { + 'status' : true, + 'button_class' : 'stumbleupon', + 'dummy_line_img' : 'images/dummy_stumbleupon.png', + 'dummy_box_img' : 'images/dummy_box_stumbleupon.png', + 'dummy_alt' : '"Stumble!"-Dummy', + '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 i.', + 'txt_off' : 'not connected to StumbleUpon', + 'txt_on' : 'connected to StumbleUpon', + 'perma_option' : true, + 'display_name' : 'Stumble Upon', + 'referrer_track' : '', + 'button' : function (options, uri, settings) { + var base_url = 'https:' === document.location.protocol ? 'https://' : 'http://'; + var w, h; + + if (settings.layout === 'line') { + w = '74'; + h = '18'; + base_url += 'badge.stumbleupon.com/badge/embed/1/?'; + } + else { + w = '50'; + h = '60'; + base_url += 'badge.stumbleupon.com/badge/embed/5/?'; + } + + return $('').attr({ + src: base_url+$.param({url: uri + options.referrer_track}), + width: w, + height: h + }); + } + }; +})(jQuery); diff --git a/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/tumblr.js b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/tumblr.js new file mode 100644 index 0000000..5d6e794 --- /dev/null +++ b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/tumblr.js @@ -0,0 +1,113 @@ +/* + * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz + * + * Copyright (c) 2012 Mathias Panzenböck + * + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php + * + * Spread the word, link to us if you can. + */ +(function ($, undefined) { + "use strict"; + + function getQuote (options, uri, settings) { + var text = $.trim($('article, p').text()); + + if (text.length <= 600) { + return text; + } + + var abbrev = text.slice(0, 597); + if (/^\w+$/.test(text.slice(596,598))) { + var match = /^(.*)\s\S*$/.exec(abbrev); + if (match) { + abbrev = match[1]; + } + } + return $.trim(abbrev) + "\u2026"; + } + + function getClickthru (options, uri) { + return uri + options.referrer_track; + } + + function get (self, options, uri, settings, name) { + var value = options[name]; + if (typeof value === "function") { + return value.call(self, options, uri, settings); + } + return String(value); + } + + function openTumblr (event) { + var winx = window.screenX || window.screenLeft; + var winy = window.screenY || window.screenTop; + var winw = window.outerWidth || window.innerWidth; + var winh = window.outerHeight || window.innerHeight; + var width = 450; + var height = 430; + var x = Math.round(winx + (winw - width) * 0.5); + var y = Math.round(winy + (winh - height) * 0.5); + window.open(this.href, 't', 'left='+x+',top='+y+',toolbar=0,resizable=0,status=0,menubar=0,width='+width+',height='+height); + event.preventDefault(); + } + + $.fn.socialSharePrivacy.settings.services.tumblr = { + 'status' : true, + 'privacy' : 'safe', + 'button_class' : 'tumblr', + 'line_img' : 'images/tumblr.png', + 'box_img' : 'images/box_tumblr.png', + 'txt_info' : 'Post this on Tumblr.', + 'txt_button' : 'Share on Tubmlr', + 'display_name' : 'Tumblr', + 'referrer_track' : '', + 'type' : 'link', // possible values are 'link', 'quote', 'photo' or 'video' + // type: 'link': + 'name' : $.fn.socialSharePrivacy.getTitle, + 'description' : $.fn.socialSharePrivacy.getDescription, + // type: 'quote': + 'quote' : getQuote, + // type: 'photo': + 'photo' : $.fn.socialSharePrivacy.getImage, + 'clickthrou' : getClickthru, + // type: 'video': + 'embed' : $.fn.socialSharePrivacy.getEmbed, + // type: 'photo' or 'video': + 'caption' : $.fn.socialSharePrivacy.getDescription, + 'button' : function (options, uri, settings) { + var $code = $('').click(openTumblr); + $('', { + alt: options.txt_button, + src: options.path_prefix + (settings.layout === 'line' ? options.line_img : options.box_img) + }).appendTo($code); + switch (options.type) { + case 'link': + return $code.attr('href', 'https://www.tumblr.com/share/link?'+$.param({ + url : uri + options.referrer_track, + name : get(this, options, uri, settings, 'name'), + description : get(this, options, uri, settings, 'description') + })); + + case 'quote': + return $code.attr('href', 'https://www.tumblr.com/share/quote?'+$.param({ + source : uri + options.referrer_track, + quote : get(this, options, uri, settings, 'quote') + })); + + case 'photo': + return $code.attr('href', 'https://www.tumblr.com/share/photo?'+$.param({ + source : get(this, options, uri, settings, 'photo'), + caption : get(this, options, uri, settings, 'caption'), + clickthrou : get(this, options, uri, settings, 'clickthrou') + })); + + case 'video': + return $code.attr('href', 'https://www.tumblr.com/share/video?'+$.param({ + embed : get(this, options, uri, settings, 'embed'), + caption : get(this, options, uri, settings, 'caption') + })); + } + } + }; +})(jQuery); diff --git a/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/twitter.js b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/twitter.js new file mode 100644 index 0000000..815cfc7 --- /dev/null +++ b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/twitter.js @@ -0,0 +1,62 @@ +/* + * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz + * + * http://www.heise.de/extras/socialshareprivacy/ + * http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html + * + * Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt, + * Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de + * + * Copyright (c) 2012 Mathias Panzenböck + * + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php + * + * Spread the word, link to us if you can. + */ + +(function ($, undefined) { + "use strict"; + + $.fn.socialSharePrivacy.settings.services.twitter = { + 'status' : true, + 'button_class' : 'tweet', + 'dummy_line_img' : 'images/dummy_twitter.png', + 'dummy_box_img' : 'images/dummy_box_twitter.png', + 'dummy_alt' : '"Tweet this"-Dummy', + '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 i.', + 'txt_off' : 'not connected to Twitter', + 'txt_on' : 'connected to Twitter', + 'perma_option' : true, + 'display_name' : 'Twitter', + 'referrer_track' : '', + 'via' : '', + 'related' : '', + 'hashtags' : '', + 'dnt' : true, + 'text' : $.fn.socialSharePrivacy.getTitle, + 'button' : function (options, uri, settings) { + var text = typeof(options.text) === 'function' ? + options.text.call(this, options, uri, settings) : + String(options.text); + // 120 is the max character count left after twitters automatic + // url shortening with t.co + text = $.fn.socialSharePrivacy.abbreviateText(text, 120); + + var params = { + url : uri + options.referrer_track, + counturl: uri, + text : text, + count : settings.layout === 'line' ? 'horizontal' : 'vertical', + lang : options.language + }; + if (options.via) params.via = options.via; + if (options.related) params.related = options.related; + if (options.hashtags) params.hashtags = options.hashtags; + if (options.dnt) params.dnt = options.dnt; + + return $('').attr( + 'src', 'https://platform.twitter.com/widgets/tweet_button.html?' + + $.param(params).replace(/\+/g,'%20')); + } + }; +})(jQuery); diff --git a/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/xing.js b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/xing.js new file mode 100644 index 0000000..a958bf7 --- /dev/null +++ b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/xing.js @@ -0,0 +1,40 @@ +/* + * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz + * + * http://www.heise.de/extras/socialshareprivacy/ + * http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html + * + * Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt, + * Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de + * + * Copyright (c) 2012 Mathias Panzenböck + * + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php + * + * Spread the word, link to us if you can. + */ +(function ($, undefined) { + "use strict"; + + $.fn.socialSharePrivacy.settings.services.xing = { + 'status' : true, + 'dummy_line_img' : 'images/dummy_xing.png', + 'dummy_box_img' : 'images/dummy_box_xing.png', + 'dummy_alt' : '"XING"-Dummy', + '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 i.', + 'txt_off' : 'not connected to XING', + 'txt_on' : 'connected to XING', + 'perma_option' : true, + 'display_name' : 'XING', + 'referrer_track' : '', + 'button' : function (options, uri, settings) { + var $code = $('').attr({ + 'data-counter' : settings.layout === 'line' ? 'right' : 'top', + 'data-url' : uri + options.referrer_track, + 'data-lang' : options.language + }); + + return $code.add(""); + } + }; +})(jQuery); diff --git a/plugins/social_share_privacy/public/socialshareprivacy/javascripts/settings.js b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/settings.js new file mode 100644 index 0000000..f7efd77 --- /dev/null +++ b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/settings.js @@ -0,0 +1,23 @@ +/** + * @license + * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz + * + * Copyright (c) 2012-2013 Mathias Panzenböck + * + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php + * + * Spread the word, link to us if you can. + */ + +// load global settings +jQuery(document).ready(function ($) { + "use strict"; + + $('script[type="application/x-social-share-privacy-settings"]').each(function () { + var settings = (new Function('return ('+(this.textContent||this.innerText||this.text)+');')).call(this); + + if (typeof settings === "object") { + $.extend(true, $.fn.socialSharePrivacy.settings, settings); + } + }); +}); diff --git a/plugins/social_share_privacy/public/socialshareprivacy/javascripts/socialshareprivacy.js b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/socialshareprivacy.js new file mode 100644 index 0000000..576688e --- /dev/null +++ b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/socialshareprivacy.js @@ -0,0 +1,803 @@ +/** + * @license + * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz + * + * http://www.heise.de/extras/socialshareprivacy/ + * http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html + * + * Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt, + * Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de + * + * Copyright (c) 2012-2013 Mathias Panzenböck + * + * is released under the MIT License http://www.opensource.org/licenses/mit-license.php + * + * Spread the word, link to us if you can. + */ +(function ($, undefined) { + "use strict"; + + /* + * helper functions + */ + + /** + * Build an absolute url using a base url. + * The provided base url has to be a valid absolute url. It will not be validated! + * If no base url is given the document location is used. + * Schemes that behave other than http might not work. + * This function tries to support file:-urls, but might fail in some cases. + * email:-urls aren't supported at all (don't make sense anyway). + */ + function absurl (url, base) { + if (!base) base = document.baseURI || $("html > head > base").last().attr("href") || document.location.href; + if (!url) { + return base; + } + else if (/^[a-z][-+\.a-z0-9]*:/i.test(url)) { + // The scheme actually could contain any kind of alphanumerical unicode + // character, but JavaScript regular expressions don't support unicode + // character classes. Maybe /^[^:]+:/ or even /^.*:/ would be sufficient? + return url; + } + else if (url.slice(0,2) === '//') { + return /^[^:]+:/.exec(base)[0]+url; + } + + var ch = url.charAt(0); + if (ch === '/') { + if (/^file:/i.test(base)) { + // file scheme has no hostname + return 'file://'+url; + } + else { + return /^[^:]+:\/*[^\/]+/i.exec(base)[0]+url; + } + } + else if (ch === '#') { + // assume "#" only occures at the end indicating the fragment + return base.replace(/#.*$/,'')+url; + } + else if (ch === '?') { + // assume "?" and "#" only occure at the end indicating the query + // and the fragment + return base.replace(/[\?#].*$/,'')+url; + } + else { + var path; + if (/^file:/i.test(base)) { + path = base.replace(/^file:\/{0,2}/i,''); + base = "file://"; + } + else { + var match = /^([^:]+:\/*[^\/]+)(\/.*?)?(\?.*?)?(#.*)?$/.exec(base); + base = match[1]; + path = match[2]||"/"; + } + + path = path.split("/"); + path.pop(); + if (path.length === 0) { + // Ensure leading "/". Of course this is only valid on + // unix like filesystems. More magic would be needed to + // support other filesystems. + path.push(""); + } + path.push(url); + return base+path.join("/"); + } + } + + function formatNumber (number) { + number = Number(number); + + var prefix = ""; + var suffix = ""; + if (number < 0) { + prefix = "-"; + number = -number; + } + + if (number === Infinity) { + return prefix + "Infinity"; + } + + if (number > 9999) { + number = number / 1000; + suffix = "K"; + } + + number = Math.round(number); + if (number === 0) { + return "0"; + } + + var buf = []; + while (number > 0) { + var part = String(number % 1000); + + number = Math.floor(number / 1000); + if (number) { + while (part.length < 3) { + part = "0"+part; + } + } + + buf.unshift(part); + } + + return prefix + buf.join(",") + suffix; + } + + // helper function that gets the title of the current page + function getTitle (options, uri, settings) { + var title = settings && settings.title; + if (typeof title === "function") { + title = title.call(this, options, uri, settings); + } + + if (title) { + return title; + } + + var title = $('meta[name="DC.title"]').attr('content'); + var creator = $('meta[name="DC.creator"]').attr('content'); + + if (title && creator) { + return title + ' - ' + creator; + } else { + return title || $('meta[property="og:title"]').attr('content') || $('title').text(); + } + } + + function getDescription (options, uri, settings) { + var description = settings && settings.description; + if (typeof description === "function") { + description = description.call(this, options, uri, settings); + } + + if (description) { + return description; + } + + return abbreviateText( + $('meta[name="twitter:description"]').attr('content') || + $('meta[itemprop="description"]').attr('content') || + $('meta[name="description"]').attr('content') || + $.trim($('article, p').first().text()) || $.trim($('body').text()), 3500); + } + + var IMAGE_ATTR_MAP = { + META : 'content', + IMG : 'src', + A : 'href', + IFRAME : 'src', + LINK : 'href' + }; + + // find the largest image of the website + // if no image at all is found use googles favicon service, which + // defaults to a small globe (so there is always some image) + function getImage (options, uri, settings) { + var imgs, img = settings && settings.image; + if (typeof img === "function") { + img = img.call(this, options, uri, settings); + } + + if (!img) { + 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(); + if (imgs.length > 0) { + img = imgs.attr(IMAGE_ATTR_MAP[imgs[0].nodeName]); + } + } + + if (img) { + return absurl(img); + } + + imgs = $('img').filter(':visible').filter(function () { + return $(this).parents('.social_share_privacy_area').length === 0; + }); + if (imgs.length === 0) { + img = $('link[rel~="shortcut"][rel~="icon"]').attr('href'); + if (img) return absurl(img); + return 'http://www.google.com/s2/favicons?'+$.param({domain:location.hostname}); + } + imgs.sort(function (lhs, rhs) { + return rhs.offsetWidth * rhs.offsetHeight - lhs.offsetWidth * lhs.offsetHeight; + }); + // browser makes src absolute: + return imgs[0].src; + } + + // abbreviate at last blank before length and add "\u2026" (horizontal ellipsis) + function abbreviateText (text, length) { + // length of UTF-8 encoded string + if (unescape(encodeURIComponent(text)).length <= length) { + return text; + } + + // "\u2026" is actually 3 bytes long in UTF-8 + // TODO: if any of the last 3 characters is > 1 byte long this truncates too much + var abbrev = text.slice(0, length - 3); + + if (!/\W/.test(text.charAt(length - 3))) { + var match = /^(.*)\s\S*$/.exec(abbrev); + if (match) { + abbrev = match[1]; + } + } + return abbrev + "\u2026"; + } + + var HTML_CHAR_MAP = { + '<': '<', + '>': '>', + '&': '&', + '"': '"', + "'": ''' + }; + + function escapeHtml (s) { + return s.replace(/[<>&"']/g, function (ch) { + return HTML_CHAR_MAP[ch]; + }); + } + + function getEmbed (options, uri, settings) { + var embed = settings && settings.embed; + if (typeof embed === "function") { + embed = embed.call(this, options, uri, settings); + } + + if (embed) { + return embed; + } + + embed = [''); + return embed.join(''); + } + + // build URI from rel="canonical" or document.location + function getURI (options) { + var uri = document.location.href; + var canonical = $("link[rel=canonical]").attr("href") || $('head meta[property="og:url"]').attr("content"); + + if (canonical) { + uri = absurl(canonical); + } + else if (options && options.ignore_fragment) { + uri = uri.replace(/#.*$/,''); + } + + return uri; + } + + function buttonClickHandler (service_name) { + function onclick (event) { + var $container = $(this).parents('li.help_info').first(); + var $share = $container.parents('.social_share_privacy_area').first().parent(); + var options = $share.data('social-share-privacy-options'); + var service = options.services[service_name]; + var button_class = service.button_class || service_name; + var uri = options.uri; + if (typeof uri === 'function') { + uri = uri.call($share[0], options); + } + var $switch = $container.find('span.switch'); + if ($switch.hasClass('off')) { + $container.addClass('info_off'); + $switch.addClass('on').removeClass('off').html(service.txt_on||'\u00a0'); + $container.find('img.privacy_dummy').replaceWith( + typeof(service.button) === "function" ? + service.button.call($container.parent().parent()[0],service,uri,options) : + service.button); + $share.trigger({type: 'socialshareprivacy:enable', serviceName: service_name, isClick: !event.isTrigger}); + } else { + $container.removeClass('info_off'); + $switch.addClass('off').removeClass('on').html(service.txt_off||'\u00a0'); + $container.find('.dummy_btn').empty(). + append($('').addClass(button_class+'_privacy_dummy privacy_dummy'). + attr({ + alt: service.dummy_alt, + src: service.path_prefix + (options.layout === 'line' ? + service.dummy_line_img : service.dummy_box_img) + }).click(onclick)); + $share.trigger({type: 'socialshareprivacy:disable', serviceName: service_name, isClick: !event.isTrigger}); + } + }; + return onclick; + } + + // display info-overlays a tiny bit delayed + function enterHelpInfo () { + var $info_wrapper = $(this); + if ($info_wrapper.hasClass('info_off')) return; + var timeout_id = window.setTimeout(function () { + $info_wrapper.addClass('display'); + $info_wrapper.removeData('timeout_id'); + }, 500); + $info_wrapper.data('timeout_id', timeout_id); + } + + function leaveHelpInfo () { + var $info_wrapper = $(this); + var timeout_id = $info_wrapper.data('timeout_id'); + if (timeout_id !== undefined) { + window.clearTimeout(timeout_id); + } + $info_wrapper.removeClass('display'); + } + + function permCheckChangeHandler () { + var $input = $(this); + var $share = $input.parents('.social_share_privacy_area').first().parent(); + var options = $share.data('social-share-privacy-options'); + if ($input.is(':checked')) { + options.set_perma_option($input.attr('data-service'), options); + $input.parent().addClass('checked'); + } else { + options.del_perma_option($input.attr('data-service'), options); + $input.parent().removeClass('checked'); + } + } + + function enterSettingsInfo () { + var $settings = $(this); + var timeout_id = window.setTimeout(function () { + $settings.find('.settings_info_menu').removeClass('off').addClass('on'); + $settings.removeData('timeout_id'); + }, 500); + $settings.data('timeout_id', timeout_id); + } + + function leaveSettingsInfo () { + var $settings = $(this); + var timeout_id = $settings.data('timeout_id'); + if (timeout_id !== undefined) { + window.clearTimeout(timeout_id); + } + $settings.find('.settings_info_menu').removeClass('on').addClass('off'); + } + + function setPermaOption (service_name, options) { + $.cookie('socialSharePrivacy_'+service_name, 'perma_on', options.cookie_expires, options.cookie_path, options.cookie_domain); + } + + function delPermaOption (service_name, options) { + $.cookie('socialSharePrivacy_'+service_name, null, -1, options.cookie_path, options.cookie_domain); + } + + function getPermaOption (service_name, options) { + return !!options.get_perma_options(options)[service_name]; + } + + function getPermaOptions (options) { + var cookies = $.cookie(); + var permas = {}; + for (var name in cookies) { + var match = /^socialSharePrivacy_(.+)$/.exec(name); + if (match) { + permas[match[1]] = cookies[name] === 'perma_on'; + } + } + return permas; + } + + + // extend jquery with our plugin function + function socialSharePrivacy (options) { + + if (typeof options === "string") { + var command = options; + if (arguments.length === 1) { + switch (command) { + case "enable": + this.find('.switch.off').click(); + break; + + case "disable": + this.find('.switch.on').click(); + break; + + case "toggle": + this.find('.switch').click(); + break; + + case "options": + return this.data('social-share-privacy-options'); + + case "destroy": + this.trigger({type: 'socialshareprivacy:destroy'}); + this.children('.social_share_privacy_area').remove(); + this.removeData('social-share-privacy-options'); + break; + + case "enabled": + var enabled = {}; + this.each(function () { + var $self = $(this); + var options = $self.data('social-share-privacy-options'); + for (var name in options.services) { + enabled[name] = $self.find('.'+(options.services[name].class_name||name)+' .switch').hasClass('on'); + } + }); + return enabled; + + case "disabled": + var disabled = {}; + this.each(function () { + var $self = $(this); + var options = $self.data('social-share-privacy-options'); + for (var name in options.services) { + disabled[name] = $self.find('.'+(options.services[name].class_name||name)+' .switch').hasClass('off'); + } + }); + return disabled; + + default: + throw new Error("socialSharePrivacy: unknown command: "+command); + } + } + else { + var arg = arguments[1]; + switch (command) { + case "enable": + this.each(function () { + var $self = $(this); + var options = $self.data('social-share-privacy-options'); + $self.find('.'+(options.services[arg].class_name||arg)+' .switch.off').click(); + }); + break; + + case "disable": + this.each(function () { + var $self = $(this); + var options = $self.data('social-share-privacy-options'); + $self.find('.'+(options.services[arg].class_name||arg)+' .switch.on').click(); + }); + break; + + case "toggle": + this.each(function () { + var $self = $(this); + var options = $self.data('social-share-privacy-options'); + $self.find('.'+(options.services[arg].class_name||arg)+' .switch').click(); + }); + break; + + case "option": + if (arguments.length > 2) { + var value = {}; + value[arg] = arguments[2]; + this.each(function () { + $.extend(true, $(this).data('social-share-privacy-options'), value); + }); + } + else { + return this.data('social-share-privacy-options')[arg]; + } + break; + + case "options": + $.extend(true, options, arg); + break; + + case "enabled": + var options = this.data('social-share-privacy-options'); + return this.find('.'+(options.services[arg].class_name||arg)+' .switch').hasClass('on'); + + case "disabled": + var options = this.data('social-share-privacy-options'); + return this.find('.'+(options.services[arg].class_name||arg)+' .switch').hasClass('off'); + + default: + throw new Error("socialSharePrivacy: unknown command: "+command); + } + } + return this; + } + + return this.each(function () { + // parse options passed via data-* attributes: + var data = {}; + if (this.lang) data.language = this.lang; + for (var i = 0, attrs = this.attributes; i < attrs.length; ++ i) { + var attr = attrs[i]; + if (/^data-./.test(attr.name)) { + var path = attr.name.slice(5).replace(/-/g,"_").split("."); + var ctx = data, j = 0; + for (; j < path.length-1; ++ j) { + var name = path[j]; + if (name in ctx) { + ctx = ctx[name]; + if (typeof ctx === "string") { + ctx = (new Function("$", "return ("+ctx+");")).call(this, $); + } + } + else { + ctx = ctx[name] = {}; + } + } + var name = path[j]; + if (typeof ctx[name] === "object") { + ctx[name] = $.extend(true, (new Function("$", "return ("+attr.value+");")).call(this, $), ctx[name]); + } + else { + ctx[name] = attr.value; + } + } + } + // parse global option values: + if ('cookie_expires' in data) data.cookie_expires = Number(data.cookie_expires); + if ('perma_option' in data) data.perma_option = $.trim(data.perma_option).toLowerCase() === "true"; + if ('ignore_fragment' in data) data.ignore_fragment = $.trim(data.ignore_fragment).toLowerCase() === "true"; + if ('set_perma_option' in data) { + data.set_perma_option = new Function("service_name", "options", data.set_perma_option); + } + if ('del_perma_option' in data) { + data.del_perma_option = new Function("service_name", "options", data.del_perma_option); + } + if ('get_perma_option' in data) { + data.get_perma_option = new Function("service_name", "options", data.get_perma_option); + } + if ('get_perma_options' in data) { + data.get_perma_options = new Function("options", data.get_perma_options); + } + if ('order' in data) { + data.order = $.trim(data.order); + if (data.order) { + data.order = data.order.split(/\s+/g); + } + else { + delete data.order; + } + } + if (typeof data.services === "string") { + data.services = (new Function("$", "return ("+data.services+");")).call(this, $); + } + if ('options' in data) { + data = $.extend(data, (new Function("$", "return ("+data.options+");")).call(this, $)); + delete data.options; + } + if ('services' in data) { + for (var service_name in data.services) { + var service = data.services[service_name]; + if (typeof service === "string") { + data.services[service_name] = (new Function("$", "return ("+service+");")).call(this, $); + } + // only values of common options are parsed: + if (typeof service.status === "string") { + service.status = $.trim(service.status).toLowerCase() === "true"; + } + if (typeof service.perma_option === "string") { + service.perma_option = $.trim(service.perma_option).toLowerCase() === "true"; + } + } + } + // overwrite default values with user settings + var this_options = $.extend(true,{},socialSharePrivacy.settings,options,data); + var order = this_options.order || []; + + var dummy_img = this_options.layout === 'line' ? 'dummy_line_img' : 'dummy_box_img'; + var any_on = false; + var any_perm = false; + var any_unsafe = false; + var unordered = []; + for (var service_name in this_options.services) { + var service = this_options.services[service_name]; + if (service.status) { + any_on = true; + if ($.inArray(service_name, order) === -1) { + unordered.push(service_name); + } + if (service.privacy !== 'safe') { + any_unsafe = true; + if (service.perma_option) { + any_perm = true; + } + } + } + if (!('language' in service)) { + service.language = this_options.language; + } + if (!('path_prefix' in service)) { + service.path_prefix = this_options.path_prefix; + } + if (!('referrer_track' in service)) { + service.referrer_track = ''; + } + } + unordered.sort(); + order = order.concat(unordered); + + // check if at least one service is activated + if (!any_on) { + return; + } + + // insert stylesheet into document and prepend target element + if (this_options.css_path) { + var css_path = (this_options.path_prefix||"") + this_options.css_path; + // IE fix (needed for IE < 9 - but done for all IE versions) + if (document.createStyleSheet) { + document.createStyleSheet(css_path); + } else if ($('link[href="'+css_path+'"]').length === 0) { + $('',{rel:'stylesheet',type:'text/css',href:css_path}).appendTo(document.head); + } + } + + // get stored perma options + var permas; + if (this_options.perma_option && any_perm) { + if (this_options.get_perma_options) { + permas = this_options.get_perma_options(this_options); + } + else { + permas = {}; + for (var service_name in this_options.services) { + permas[service_name] = this_options.get_perma_option(service_name, this_options); + } + } + } + + // canonical uri that will be shared + var uri = this_options.uri; + if (typeof uri === 'function') { + uri = uri.call(this, this_options); + } + + var $context = $('').addClass(this_options.layout); + var $share = $(this); + + $share.prepend($context).data('social-share-privacy-options',this_options); + + for (var i = 0; i < order.length; ++ i) { + var service_name = order[i]; + var service = this_options.services[service_name]; + + if (service && service.status) { + var class_name = service.class_name || service_name; + var button_class = service.button_class || service_name; + var $help_info; + + if (service.privacy === 'safe') { + $help_info = $('
  • ' + + service.txt_info + '
  • ').addClass(class_name); + $help_info.find('.dummy_btn'). + addClass(button_class). + append(service.button.call(this,service,uri,this_options)); + } + else { + $help_info = $('
  • ' + + service.txt_info + '
    ' + (service.txt_off||'\u00a0') + + '
  • ').addClass(class_name); + $help_info.find('.dummy_btn'). + addClass(button_class). + append($('').addClass(button_class+'_privacy_dummy privacy_dummy'). + attr({ + alt: service.dummy_alt, + src: service.path_prefix + service[dummy_img] + })); + + $help_info.find('.dummy_btn img.privacy_dummy, span.switch').click( + buttonClickHandler(service_name)); + } + $context.append($help_info); + } + } + + // + // append Info/Settings-area + // + if (any_unsafe) { + var $settings_info = $('
  • '); + var $info_link = $settings_info.find('> .settings_info_menu > a').attr('href', this_options.info_link); + if (this_options.info_link_target) { + $info_link.attr("target",this_options.info_link_target); + } + $context.append($settings_info); + + $context.find('.help_info').on('mouseenter', enterHelpInfo).on('mouseleave', leaveHelpInfo); + + // menu for permanently enabling of service buttons + if (this_options.perma_option && any_perm) { + + // define container + var $container_settings_info = $context.find('li.settings_info'); + + // remove class that fomrats the i-icon, because perma-options are shown + var $settings_info_menu = $container_settings_info.find('.settings_info_menu'); + $settings_info_menu.removeClass('perma_option_off'); + + // append perma-options-icon (.settings) and form (hidden) + $settings_info_menu.append( + '' + this_options.txt_settings + '
    ' + + this_options.settings_perma + '
    '); + + // write services with and