X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fresources%2Fstatic%2Fjavascript%2Fsone.js;h=01dd77c576c2d726bf4f8fcd221550e092cd036e;hb=96fcb6d250349cb1c02df44d6e3acdb93c8e7370;hp=472df5a82e836f18a5c360b83bcf45cbd399386d;hpb=42beabd1ccb9ce725041a4efcaff95513c9f89b1;p=Sone.git
diff --git a/src/main/resources/static/javascript/sone.js b/src/main/resources/static/javascript/sone.js
index 472df5a..01dd77c 100644
--- a/src/main/resources/static/javascript/sone.js
+++ b/src/main/resources/static/javascript/sone.js
@@ -497,6 +497,11 @@ function ajaxifyPost(postElement) {
});
});
+ /* mark everything as known on click. */
+ $(postElement).click(function() {
+ markPostAsKnown(this);
+ });
+
/* hide reply input field. */
$(postElement).find(".create-reply").addClass("hidden");
}
@@ -526,6 +531,11 @@ function ajaxifyReply(replyElement) {
});
})(replyElement);
addCommentLink(getPostId(replyElement), replyElement, $(replyElement).find(".reply-status-line .time"));
+
+ /* mark post and all replies as known on click. */
+ $(replyElement).click(function() {
+ markPostAsKnown(getPostElement(replyElement));
+ });
}
/**
@@ -591,6 +601,45 @@ function getStatus() {
})
}
+/**
+ * Returns the content of the page-id attribute.
+ *
+ * @returns The page ID
+ */
+function getPageId() {
+ return $("#sone .page-id").text();
+}
+
+/**
+ * Returns whether the current page is the index page.
+ *
+ * @returns {Boolean} true
if the current page is the index page,
+ * false
otherwise
+ */
+function isIndexPage() {
+ return getPageId() == "index";
+}
+
+/**
+ * Returns whether the current page is a âview Soneâ page.
+ *
+ * @returns {Boolean} true
if the current page is a âview Soneâ
+ * page, false
otherwise
+ */
+function isViewSonePage() {
+ return getPageId() == "view-sone";
+}
+
+/**
+ * Returns the ID of the currently shown Sone. This will only return a sensible
+ * value if isViewSonePage() returns true
.
+ *
+ * @returns The ID of the currently shown Sone
+ */
+function getSoneId() {
+ return $("#sone .sone-id").text();
+}
+
var loadedPosts = {};
var loadedReplies = {};
@@ -601,6 +650,9 @@ function loadNewPost(postId) {
loadedPosts[postId] = true;
$.getJSON("ajax/getPost.ajax", { "post" : postId }, function(data, textStatus) {
if ((data != null) && data.success) {
+ if (!isIndexPage() && !(isViewSonePage() && (getSoneId() == data.post.sone))) {
+ return;
+ }
var firstOlderPost = null;
$("#sone .post").each(function() {
if (getPostTime(this) < data.post.time) {
@@ -612,7 +664,7 @@ function loadNewPost(postId) {
if (firstOlderPost != null) {
newPost.insertBefore(firstOlderPost);
} else {
- $("#sone #posts").append(newPost);
+ $("#sone .post:last").append(newPost);
}
ajaxifyPost(newPost);
newPost.slideDown();
@@ -690,9 +742,11 @@ function resetActivity() {
}
function setActivity() {
- title = document.title;
- if (title.indexOf('(') != 0) {
- document.title = "(!) " + title;
+ if (!focus) {
+ title = document.title;
+ if (title.indexOf('(') != 0) {
+ document.title = "(!) " + title;
+ }
}
}
@@ -741,6 +795,21 @@ $(document).ready(function() {
});
});
+ /* ajaxify input field on âview Soneâ page. */
+ getTranslation("WebInterface.DefaultText.Message", function(defaultText) {
+ registerInputTextareaSwap("#sone #post-message input[name=text]", defaultText, "text", false, false);
+ $("#sone #post-message").submit(function() {
+ text = $(this).find(":input:enabled").val();
+ $.getJSON("ajax/createPost.ajax", { "formPassword": getFormPassword(), "recipient": $("#sone #sone-id").text(), "text": text }, function(data, textStatus) {
+ if ((data != null) && data.success) {
+ loadNewPost(data.postId);
+ }
+ });
+ $(this).find(":input:enabled").val("").blur();
+ return false;
+ });
+ });
+
/* Ajaxifies all posts. */
/* calling getTranslation here will cache the necessary values. */
getTranslation("WebInterface.Confirmation.DeletePostButton", function(text) {