moved the duplicated sharing code to requirejs module

v1.18.x
barisusakli 11 years ago
parent 1d3c25fdcc
commit 273f499cc2

@ -1,7 +1,7 @@
"use strict";
/* global define, config, templates, app, ajaxify, socket, translator */
define(['composer', 'forum/pagination'], function(composer, pagination) {
define(['composer', 'forum/pagination', 'share'], function(composer, pagination, share) {
var Category = {},
loadingMoreTopics = false;
@ -10,33 +10,7 @@ define(['composer', 'forum/pagination'], function(composer, pagination) {
app.enterRoom('category_' + cid);
$('.twitter-share').on('click', function () {
window.open('https://twitter.com/intent/tweet?url=' + encodeURIComponent(window.location.href) + '&text=' + encodeURIComponent(ajaxify.variables.get('category_name')), '_blank', 'width=550,height=420,scrollbars=no,status=no');
return false;
});
$('.facebook-share').on('click', function () {
window.open('https://www.facebook.com/sharer/sharer.php?u=' + encodeURIComponent(window.location.href), '_blank', 'width=626,height=436,scrollbars=no,status=no');
return false;
});
$('.google-share').on('click', function () {
window.open('https://plus.google.com/share?url=' + encodeURIComponent(window.location.href), '_blank', 'width=500,height=570,scrollbars=no,status=no');
return false;
});
$('.share-dropdown').on('shown.bs.dropdown', function() {
$('#category-link').val(window.location.protocol + '//' + window.location.host + window.location.pathname);
// without the setTimeout can't select the text in the input
setTimeout(function() {
$('#category-link').putCursorAtEnd().select();
}, 50);
});
$('.post-link').on('click', function(e) {
e.preventDefault();
return false;
});
share.addShareHandlers(ajaxify.variables.get('category_name'));
$('#new_post').on('click', function () {
composer.newTopic(cid);

@ -2,7 +2,7 @@
/* globals define, app, translator, ajaxify, socket, bootbox */
define(['composer'], function(composer) {
define(['composer', 'share'], function(composer, share) {
var PostTools = {},
topicName;
@ -12,7 +12,7 @@ define(['composer'], function(composer) {
addPostHandlers(tid, threadState);
addShareHandlers();
share.addShareHandlers(topicName);
};
function addPostHandlers(tid, threadState) {
@ -21,6 +21,7 @@ define(['composer'], function(composer) {
onReplyClicked($(this), tid, topicName);
}
});
var postContainer = $('#post-container');
postContainer.on('click', '.quote', function() {
@ -228,39 +229,5 @@ define(['composer'], function(composer) {
return false;
}
function addShareHandlers() {
function openShare(url, pid, width, height) {
window.open(url + encodeURIComponent(window.location.protocol + '//' + window.location.host + window.location.pathname + '#' + pid), '_blank', 'width=' + width + ',height=' + height + ',scrollbars=no,status=no');
return false;
}
$('#post-container').on('shown.bs.dropdown', '.share-dropdown', function() {
var pid = getPid($(this));
$('#post_' + pid + '_link').val(window.location.protocol + '//' + window.location.host + window.location.pathname + '#' + pid);
// without the setTimeout can't select the text in the input
setTimeout(function() {
$('#post_' + pid + '_link').putCursorAtEnd().select();
}, 50);
});
$('#post-container').on('click', '.post-link', function(e) {
e.preventDefault();
return false;
});
$('#post-container').on('click', '.twitter-share', function () {
return openShare('https://twitter.com/intent/tweet?text=' + topicName + '&url=', getPid($(this)), 550, 420);
});
$('#post-container').on('click', '.facebook-share', function () {
return openShare('https://www.facebook.com/sharer/sharer.php?u=', getPid($(this)), 626, 436);
});
$('#post-container').on('click', '.google-share', function () {
return openShare('https://plus.google.com/share?url=', getPid($(this)), 500, 570);
});
}
return PostTools;
});

@ -0,0 +1,56 @@
'use strict';
/* globals define, app, translator, ajaxify, socket, bootbox */
define(function() {
var module = {};
module.addShareHandlers = function(name) {
var baseUrl = window.location.protocol + '//' + window.location.host + window.location.pathname;
function openShare(url, hash, width, height) {
window.open(url + encodeURIComponent(baseUrl + hash), '_blank', 'width=' + width + ',height=' + height + ',scrollbars=no,status=no');
return false;
}
$('#content').on('shown.bs.dropdown', '.share-dropdown', function() {
var postLink = $(this).find('.post-link');
postLink.val(baseUrl + getPostHash($(this)));
// without the setTimeout can't select the text in the input
setTimeout(function() {
postLink.putCursorAtEnd().select();
}, 50);
});
$('#content').on('click', '.post-link', function(e) {
e.preventDefault();
return false;
});
$('#content').on('click', '.twitter-share', function () {
return openShare('https://twitter.com/intent/tweet?text=' + name + '&url=', getPostHash($(this)), 550, 420);
});
$('#content').on('click', '.facebook-share', function () {
return openShare('https://www.facebook.com/sharer/sharer.php?u=', getPostHash($(this)), 626, 436);
});
$('#content').on('click', '.google-share', function () {
return openShare('https://plus.google.com/share?url=', getPostHash($(this)), 500, 570);
});
};
function getPostHash(clickedElement) {
var pid = clickedElement.parents('.post-row').attr('data-pid');
if (pid) {
return '#' + pid;
}
return '';
}
return module;
});
Loading…
Cancel
Save