summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--askbot/conf/social_sharing.py11
-rw-r--r--askbot/media/js/post.js33
-rw-r--r--askbot/templates/meta/bottom_scripts.html3
3 files changed, 37 insertions, 10 deletions
diff --git a/askbot/conf/social_sharing.py b/askbot/conf/social_sharing.py
index 6f39043a..e57dec28 100644
--- a/askbot/conf/social_sharing.py
+++ b/askbot/conf/social_sharing.py
@@ -3,7 +3,7 @@ Social sharing settings
"""
from askbot.conf.settings_wrapper import settings
from askbot.conf.super_groups import EXTERNAL_SERVICES
-from askbot.deps.livesettings import ConfigurationGroup, BooleanValue
+from askbot.deps.livesettings import ConfigurationGroup, BooleanValue, StringValue
from django.utils.translation import ugettext_lazy as _
SOCIAL_SHARING = ConfigurationGroup(
@@ -22,6 +22,15 @@ settings.register(
)
settings.register(
+ StringValue(
+ SOCIAL_SHARING,
+ 'SHARING_SUFFIX_TEXT',
+ default='',
+ description=_('Hashtag or suffix to sharing messages')
+ )
+)
+
+settings.register(
BooleanValue(
SOCIAL_SHARING,
'ENABLE_SHARING_TWITTER',
diff --git a/askbot/media/js/post.js b/askbot/media/js/post.js
index e30a0c88..aa3437cb 100644
--- a/askbot/media/js/post.js
+++ b/askbot/media/js/post.js
@@ -2073,18 +2073,28 @@ var socialSharing = function(){
var share_page = function(service_name){
if (SERVICE_DATA[service_name]){
var url = SERVICE_DATA[service_name]['url'];
+ url = url.replace('{TEXT}', TEXT);
+ url = url.replace('{URL}', URL);
+ var params = SERVICE_DATA[service_name]['params'];
+ debugger;
+ if(!window.open(url, "sharing", params)){
+ window.location.href=url;
+ }
+ return false;
+ //@todo: change to some other url shortening service
$.ajax({
- async: false,
url: "http://json-tinyurl.appspot.com/?&callback=?",
dataType: "json",
data: {'url':URL},
- success: function(data){
+ success: function(data) {
url = url.replace('{URL}', data.tinyurl);
},
- error: function(data){
+ error: function(xhr, opts, error) {
+ debugger;
url = url.replace('{URL}', URL);
},
- complete: function(data){
+ complete: function(data) {
+ debugger;
url = url.replace('{TEXT}', TEXT);
var params = SERVICE_DATA[service_name]['params'];
if(!window.open(url, "sharing", params)){
@@ -2098,7 +2108,14 @@ var socialSharing = function(){
return {
init: function(){
URL = window.location.href;
+ var urlBits = URL.split('/');
+ URL = urlBits.slice(0, -2).join('/') + '/';
TEXT = escape($('h1 > a').html());
+ var hashtag = encodeURIComponent(
+ askbot['settings']['sharingSuffixText']
+ );
+ TEXT = TEXT.substr(0, 134 - URL.length - hashtag.length);
+ TEXT = TEXT + '... ' + hashtag;
var fb = $('a.facebook-share')
var tw = $('a.twitter-share');
var ln = $('a.linkedin-share');
@@ -2107,10 +2124,10 @@ var socialSharing = function(){
copyAltToTitle(tw);
copyAltToTitle(ln);
copyAltToTitle(ica);
- setupButtonEventHandlers(fb, function(){share_page("facebook")});
- setupButtonEventHandlers(tw, function(){share_page("twitter")});
- setupButtonEventHandlers(ln, function(){share_page("linkedin")});
- setupButtonEventHandlers(ica, function(){share_page("identica")});
+ setupButtonEventHandlers(fb, function(){ share_page("facebook") });
+ setupButtonEventHandlers(tw, function(){ share_page("twitter") });
+ setupButtonEventHandlers(ln, function(){ share_page("linkedin") });
+ setupButtonEventHandlers(ica, function(){ share_page("identica") });
}
}
}();
diff --git a/askbot/templates/meta/bottom_scripts.html b/askbot/templates/meta/bottom_scripts.html
index c62f26dc..1a910672 100644
--- a/askbot/templates/meta/bottom_scripts.html
+++ b/askbot/templates/meta/bottom_scripts.html
@@ -29,7 +29,8 @@
askbot['urls']['ask'] = '{% url "ask" %}';
askbot['urls']['questions'] = '{% url "questions" %}';
askbot['settings']['static_url'] = '{{ settings.STATIC_URL }}';
- askbot['settings']['minSearchWordLength'] = {{settings.MIN_SEARCH_WORD_LENGTH}};
+ askbot['settings']['minSearchWordLength'] = {{ settings.MIN_SEARCH_WORD_LENGTH }};
+ askbot['settings']['sharingSuffixText'] = '{{ settings.SHARING_SUFFIX_TEXT|escape }}';
</script>
<script
type="text/javascript"