X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fresources%2Fstatic%2Fjavascript%2Fsone.js;h=77d401a73b8a8ccf05f1f97b2da07ad98ec0e571;hb=300e86aca77eb58e0cfa93b7f640ad91e67364ec;hp=898c3c052ffb714865c35e2af37adbdb85a181a2;hpb=a4f8fd83799515684b86e2257b4fcc7a15cbe670;p=Sone.git diff --git a/src/main/resources/static/javascript/sone.js b/src/main/resources/static/javascript/sone.js index 898c3c0..77d401a 100644 --- a/src/main/resources/static/javascript/sone.js +++ b/src/main/resources/static/javascript/sone.js @@ -672,19 +672,39 @@ function isKnownSonesPage() { return getPageId() == "known-sones"; } -var loadedPosts = {}; -var loadedReplies = {}; +/** + * Returns whether a post with the given ID exists on the current page. + * + * @param postId + * The post ID to check for + * @returns {Boolean} true if a post with the given ID already + * exists on the page, false otherwise + */ +function hasPost(postId) { + return $(".post#" + postId).length > 0; +} + +/** + * Returns whether a reply with the given ID exists on the current page. + * + * @param replyId + * The reply ID to check for + * @returns {Boolean} true if a reply with the given ID already + * exists on the page, false otherwise + */ +function hasReply(replyId) { + return $("#sone .reply#" + replyId).length > 0; +} function loadNewPost(postId) { - if (postId in loadedPosts) { + if (hasPost(postId)) { return; } $.getJSON("getPost.ajax", { "post" : postId }, function(data, textStatus) { if ((data != null) && data.success) { - if (data.post.id in loadedPosts) { + if (hasPost(data.post.id)) { return; } - loadedPosts[data.post.id] = true; if (!isIndexPage() && !(isViewSonePage() && ((getShownSoneId() == data.post.sone) || (getShownSoneId() == data.post.recipient)))) { return; } @@ -709,16 +729,15 @@ function loadNewPost(postId) { } function loadNewReply(replyId) { - if (replyId in loadedReplies) { + if (hasReply(replyId)) { return; } $.getJSON("getReply.ajax", { "reply": replyId }, function(data, textStatus) { /* find post. */ if ((data != null) && data.success) { - if (data.reply.id in loadedReplies) { + if (hasReply(data.reply.id)) { return; } - loadedReplies[data.reply.id] = true; $("#sone .post#" + data.reply.postId).each(function() { var firstNewerReply = null; $(this).find(".replies .reply").each(function() {