feat: add new client side hooks

v1.18.x
Barış Soner Uşaklı 4 years ago
parent 4404e32ed9
commit a15ef53c70

@ -338,7 +338,13 @@ define('forum/topic/postTools', [
function bookmarkPost(button, pid) {
var method = button.attr('data-bookmarked') === 'false' ? 'put' : 'del';
api[method](`/posts/${pid}/bookmark`, undefined, undefined, 'default');
api[method](`/posts/${pid}/bookmark`, undefined, function (err) {
if (err) {
return app.alertError(err);
}
var type = method === 'put' ? 'bookmark' : 'unbookmark';
$(window).trigger('action:post.' + type, { pid: pid });
});
return false;
}
@ -429,6 +435,7 @@ define('forum/topic/postTools', [
$(window).trigger('action:composer.topic.new', {
cid: ajaxify.data.cid,
body: body,
fromStaleTopic: true,
});
});
},

@ -58,14 +58,22 @@ define('forum/topic/votes', [
var currentState = post.find(className).length;
const method = currentState ? 'del' : 'put';
api[method](`/posts/${post.attr('data-pid')}/vote`, {
var pid = post.attr('data-pid');
api[method](`/posts/${pid}/vote`, {
delta: delta,
}).catch((err) => {
app.alertError(err.message);
if (err.message === '[[error:not-logged-in]]') {
ajaxify.go('login');
}, function (err) {
if (err) {
if (err.message === '[[error:not-logged-in]]') {
ajaxify.go('login');
return;
}
return app.alertError(err.message);
}
$(window).trigger('action:post.toggleVote', {
pid: pid,
delta: delta,
unvote: method === 'del',
});
});
return false;

@ -9,6 +9,10 @@ define('share', function () {
function openShare(url, urlToPost, width, height) {
window.open(url + encodeURIComponent(baseUrl + config.relative_path + urlToPost), '_blank', 'width=' + width + ',height=' + height + ',scrollbars=no,status=no');
$(window).trigger('action:share.open', {
url: url,
urlToPost: urlToPost,
});
return false;
}

Loading…
Cancel
Save