X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fresources%2Fstatic%2Fjavascript%2Fsone.js;h=be7deaa074a21800c90274564c5609039fca55e8;hb=c80d8668e387886c7fbda86e4196f65ba2e3a49c;hp=63b8361f5169c25cdafdbc84add012fa3150e827;hpb=47df88512f5288d6a1f5f268cdf787bb4bf169c7;p=Sone.git diff --git a/src/main/resources/static/javascript/sone.js b/src/main/resources/static/javascript/sone.js index 63b8361..be7deaa 100644 --- a/src/main/resources/static/javascript/sone.js +++ b/src/main/resources/static/javascript/sone.js @@ -1,5 +1,9 @@ /* Sone JavaScript functions. */ +function isOnline() { + return $("#sone").hasClass("online"); +} + function registerInputTextareaSwap(inputSelector, defaultText, inputFieldName, optional) { $(inputSelector).each(function() { textarea = $("").blur(function() { @@ -42,6 +46,9 @@ function registerInputTextareaSwap(inputSelector, defaultText, inputFieldName, o /* hide all the “create reply” forms until a link is clicked. */ function addCommentLinks() { + if (!isOnline()) { + return; + } $("#sone .post").each(function() { postId = $(this).attr("id"); commentElement = (function(postId) { @@ -238,7 +245,7 @@ function getFormPassword() { } function getSoneElement(element) { - return $(element).parent(".sone"); + return $(element).parents(".sone"); } /** @@ -251,3 +258,36 @@ function getSoneElement(element) { function getSoneId(element) { return getSoneElement(element).find(".id").text(); } + +function getPostElement(element) { + return $(element).parents(".post"); +} + +function getPostId(element) { + return getPostElement(element).attr("id"); +} + +function likePost(postId) { + $.getJSON("ajax/likePost.ajax", { "post" : postId, "formPassword": getFormPassword() }, function() { + $("#sone .post#" + postId + " > .status-line .like").addClass("hidden"); + $("#sone .post#" + postId + " > .status-line .unlike").removeClass("hidden"); + updatePostLikes(postId); + }); +} + +function unlikePost(postId) { + $.getJSON("ajax/unlikePost.ajax", { "post" : postId, "formPassword": getFormPassword() }, function() { + $("#sone .post#" + postId + " > .status-line .unlike").addClass("hidden"); + $("#sone .post#" + postId + " > .status-line .like").removeClass("hidden"); + updatePostLikes(postId); + }); +} + +function updatePostLikes(postId) { + $.getJSON("ajax/getPostLikes.ajax", { "post": postId }, function(data, textStatus) { + if (data.success) { + $("#sone .post#" + postId + " > .status-line .likes").toggleClass("hidden", data.likes == 0) + $("#sone .post#" + postId + " > .status-line .likes span.like-count").text(data.likes); + } + }); +}