{% compress js %} <script type="text/javascript"> $(document).ready(function () { function ajax_vote(url, id, delta, on_success) { return $.ajax({ url: url, type: 'POST', data: { id: id }, success: function (data, textStatus, jqXHR) { var score = $('#pagevote-score-' + id); score.text(parseInt(score.text()) + delta); if (typeof on_success !== 'undefined') on_success(); }, error: function (data, textStatus, jqXHR) { alert('Could not vote: ' + data.responseText); } }); } function ajax_bookmark(url, id, on_success) { return $.ajax({ url: url, type: 'POST', data: { id: id }, success: function (data, textStatus, jqXHR) { if (typeof on_success !== 'undefined') on_success(); }, error: function (data, textStatus, jqXHR) { alert('Could not bookmark: ' + data.responseText); } }); } window.bookmark = function(id, e) { e.stopPropagation(); var $bookmark = $('#bookmark-button-' + id); if ($bookmark.hasClass('bookmarked')) { ajax_bookmark('{{ url('undobookmark') }}', id, function () { $bookmark.removeClass('bookmarked'); }); } else { ajax_bookmark('{{ url('dobookmark') }}', id, function () { if ($bookmark.hasClass('bookmarked')) $bookmark.removeClass('bookmarked'); $bookmark.addClass('bookmarked'); }); } } var get_$votes = function (id) { var $post = $('#page-vote-' + id); return { upvote: $('#like-button-' + id), downvote: $('#dislike-button-' + id), }; }; window.pagevote_upvote = function (id, e) { e.stopPropagation(); var $votes = get_$votes(id); if ($votes.upvote.hasClass('voted')) { ajax_vote('{{ url('pagevote_downvote') }}', id, -1, function () { $votes.upvote.removeClass('voted'); }); } else { var delta = 1; if ($votes.downvote.hasClass('voted')) { delta = 2; } for (let i = 0; i < delta; i++) { ajax_vote('{{ url('pagevote_upvote') }}', id, 1, function () { if ($votes.downvote.hasClass('voted')) $votes.downvote.removeClass('voted'); $votes.upvote.addClass('voted'); }); } } }; window.pagevote_downvote = function (id, e) { e.stopPropagation(); var $votes = get_$votes(id); if ($votes.downvote.hasClass('voted')) { ajax_vote('{{ url('pagevote_upvote') }}', id, 1, function () { $votes.downvote.removeClass('voted'); }); } else { var delta = -1; if ($votes.upvote.hasClass('voted')) { delta = -2; } for (let i = 0; i > delta; i--) { ajax_vote('{{ url('pagevote_downvote') }}', id, -1, function () { if ($votes.upvote.hasClass('voted')) $votes.upvote.removeClass('voted'); $votes.downvote.addClass('voted'); }); } } }; window.actionbar_share = function(element, e) { e.stopPropagation(); link = $(element).attr("share-url") || window.location.href; navigator.clipboard .writeText(link) .then(() => { showTooltip(element, "{{_('Copied link')}}", 'n'); }); }; $('.actionbar-comment').on('click', function() { if ($('#comment-section').css('display') == 'none') { $('#comment-section').show(); } else { $('#write-comment').click(); } }) }); </script> {% endcompress %}