X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fresources%2Fstatic%2Fjavascript%2Fsone.js;h=49f372f03306c4f3c8a61fcc3a1c87835f6c7353;hb=refs%2Ftags%2F0.8.2;hp=e27124661b0b7d52c26e611091815cf8105bae91;hpb=cfcacd4a1983a0f24a99eb6c94af9e2314a2001b;p=Sone.git
diff --git a/src/main/resources/static/javascript/sone.js b/src/main/resources/static/javascript/sone.js
index e271246..49f372f 100644
--- a/src/main/resources/static/javascript/sone.js
+++ b/src/main/resources/static/javascript/sone.js
@@ -67,30 +67,31 @@ function addCommentLink(postId, author, element, insertAfterThisElement) {
if (($(element).find(".show-reply-form").length > 0) || (getPostElement(element).find(".create-reply").length == 0)) {
return;
}
- commentElement = (function(postId, author) {
+ (function(postId, author, insertAfterThisElement) {
separator = $(" · ").addClass("separator");
- var commentElement = $("
Comment
").addClass("show-reply-form").click(function() {
- replyElement = $("#sone .post#post-" + postId + " .create-reply");
- replyElement.removeClass("hidden");
- replyElement.removeClass("light");
- (function(replyElement) {
- replyElement.find("input.reply-input").blur(function() {
- if ($(this).hasClass("default")) {
- replyElement.addClass("light");
- }
- }).focus(function() {
- replyElement.removeClass("light");
- });
- })(replyElement);
- textArea = replyElement.find("input.reply-input").focus().data("textarea");
- if (author != getCurrentSoneId()) {
- textArea.val(textArea.val() + "@sone://" + author + " ");
- }
+ getTranslation("WebInterface.Button.Comment", function(text) {
+ commentElement = $("" + text + "
").addClass("show-reply-form").click(function() {
+ replyElement = $("#sone .post#post-" + postId + " .create-reply");
+ replyElement.removeClass("hidden");
+ replyElement.removeClass("light");
+ (function(replyElement) {
+ replyElement.find("input.reply-input").blur(function() {
+ if ($(this).hasClass("default")) {
+ replyElement.addClass("light");
+ }
+ }).focus(function() {
+ replyElement.removeClass("light");
+ });
+ })(replyElement);
+ textArea = replyElement.find("input.reply-input").focus().data("textarea");
+ if (author != getCurrentSoneId()) {
+ textArea.val(textArea.val() + "@sone://" + author + " ");
+ }
+ });
+ $(insertAfterThisElement).after(commentElement.clone(true));
+ $(insertAfterThisElement).after(separator);
});
- return commentElement;
- })(postId, author);
- $(insertAfterThisElement).after(commentElement.clone(true));
- $(insertAfterThisElement).after(separator);
+ })(postId, author, insertAfterThisElement);
}
var translations = {};
@@ -806,7 +807,7 @@ function ajaxifyPost(postElement) {
$(".expand-post-text", getPostElement(this)).toggleClass("hidden");
$(".shrink-post-text", getPostElement(this)).toggleClass("hidden");
return false;
- })
+ });
});
/* ajaxify author/post links */
@@ -846,12 +847,14 @@ function ajaxifyPost(postElement) {
});
/* mark everything as known on click. */
- $(postElement).click(function(event) {
- if ($(event.target).hasClass("click-to-show")) {
- return false;
- }
- markPostAsKnown(this);
- });
+ (function(postElement) {
+ $(postElement).click(function(event) {
+ if ($(event.target).hasClass("click-to-show")) {
+ return false;
+ }
+ markPostAsKnown(postElement, false);
+ });
+ })(postElement);
/* hide reply input field. */
$(postElement).find(".create-reply").addClass("hidden");
@@ -874,7 +877,7 @@ function ajaxifyPost(postElement) {
}
});
(function(postElement) {
- var soneId = $(".sone-menu-id", postElement).text();
+ var soneId = $(".sone-menu-id:first", postElement).text();
$(".sone-post-menu .follow", postElement).click(function() {
var followElement = this;
ajaxGet("followSone.ajax", { "sone": soneId, "formPassword": getFormPassword() }, function() {
@@ -1062,7 +1065,7 @@ function ajaxifyNotification(notification) {
}
notification.find("form.mark-as-read button").click(function() {
allIds = $(":input[name=id]", this.form).val().split(" ");
- for (index = 0; index < allIds.length; index += 16) {
+ for (var index = 0; index < allIds.length; index += 16) {
ids = allIds.slice(index, index + 16).join(" ");
ajaxGet("markAsKnown.ajax", {"formPassword": getFormPassword(), "type": $(":input[name=type]", this.form).val(), "id": ids});
}
@@ -1190,7 +1193,7 @@ function checkForRemovedReplies(oldNotification, newNotification) {
}
function getStatus() {
- ajaxGet("getStatus.ajax", isViewSonePage() ? {"soneIds": getShownSoneId() } : {"loadAllSones": isKnownSonesPage()}, function(data, textStatus) {
+ ajaxGet("getStatus.ajax", isViewSonePage() ? {"soneIds": getShownSoneId() } : isKnownSonesPage() ? {"soneIds": getShownSoneIds() } : {}, function(data, textStatus) {
if ((data != null) && data.success) {
/* process Sone information. */
$.each(data.sones, function(index, value) {
@@ -1203,15 +1206,15 @@ function getStatus() {
if (data.notificationHash != getNotificationHash()) {
console.log("Old hash: ", getNotificationHash(), ", new hash: ", data.notificationHash);
requestNotifications();
+ /* process new posts. */
+ $.each(data.newPosts, function(index, value) {
+ loadNewPost(value.id, value.sone, value.recipient, value.time);
+ });
+ /* process new replies. */
+ $.each(data.newReplies, function(index, value) {
+ loadNewReply(value.id, value.sone, value.post, value.postSone);
+ });
}
- /* process new posts. */
- $.each(data.newPosts, function(index, value) {
- loadNewPost(value.id, value.sone, value.recipient, value.time);
- });
- /* process new replies. */
- $.each(data.newReplies, function(index, value) {
- loadNewReply(value.id, value.sone, value.post, value.postSone);
- });
/* do it again in 5 seconds. */
setTimeout(getStatus, 5000);
} else {
@@ -1356,6 +1359,20 @@ function getShownSoneId() {
}
/**
+ * Returns the ID of all currently visible Sones. This is mainly used on the
+ * âKnown Sonesâ page.
+ *
+ * @returns The ID of the currently shown Sones
+ */
+function getShownSoneIds() {
+ var soneIds = new Array();
+ $("#sone #known-sones .sone .id").each(function() {
+ soneIds.push($(this).text());
+ });
+ return soneIds.join(",");
+}
+
+/**
* Returns whether the current page is a âview postâ page.
*
* @returns {Boolean} true
if the current page is a âview postâ
@@ -1535,7 +1552,7 @@ function markPostAsKnown(postElements, skipRequest) {
}
$(".click-to-show", postElement).removeClass("new");
});
- markReplyAsKnown($(postElements).find(".reply"));
+ markReplyAsKnown($(postElements).find(".reply"), true);
}
function markReplyAsKnown(replyElements, skipRequest) {
@@ -1862,6 +1879,14 @@ var currentSoneMenuTimeoutHandler;
$(document).ready(function() {
+ /* rip out the status update textarea. */
+ $("#sone .rip-out").each(function() {
+ var oldElement = $(this);
+ newElement = $("");
+ newElement.attr("class", oldElement.attr("class")).attr("name", oldElement.attr("name"));
+ oldElement.before(newElement).remove();
+ });
+
/* this initializes the status update input field. */
getTranslation("WebInterface.DefaultText.StatusUpdate", function(defaultText) {
registerInputTextareaSwap("#sone #update-status .status-input", defaultText, "text", false, false);
@@ -1923,8 +1948,10 @@ $(document).ready(function() {
getTranslation("WebInterface.Confirmation.DeletePostButton", function(text) {
getTranslation("WebInterface.Confirmation.DeleteReplyButton", function(text) {
getTranslation("WebInterface.DefaultText.Reply", function(text) {
- $("#sone .post").each(function() {
- ajaxifyPost(this);
+ getTranslation("WebInterface.Button.Comment", function(text) {
+ $("#sone .post").each(function() {
+ ajaxifyPost(this);
+ });
});
});
});
@@ -1944,7 +1971,7 @@ $(document).ready(function() {
allReplies = $(this).find(".reply");
if (allReplies.length > 2) {
newHidden = false;
- for (replyIndex = 0; !newHidden && (replyIndex < (allReplies.length - 2)); ++replyIndex) {
+ for (replyIndex = 0; replyIndex < (allReplies.length - 2); ++replyIndex) {
$(allReplies[replyIndex]).addClass("hidden");
newHidden |= $(allReplies[replyIndex]).hasClass("new");
}