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() {