}
/**
- * Trusts the Sone with the given ID.
- *
- * @param soneId
- * The ID of the Sone to trust
- */
-function trustSone(soneId) {
- ajaxGet("trustSone.ajax", { "formPassword" : getFormPassword(), "sone" : soneId }, function(data) {
- if ((data != null) && data.success) {
- updateTrustControls(soneId, data.trustValue);
- }
- });
-}
-
-/**
- * Distrusts the Sone with the given ID, i.e. assigns a negative trust value.
- *
- * @param soneId
- * The ID of the Sone to distrust
- */
-function distrustSone(soneId) {
- ajaxGet("distrustSone.ajax", { "formPassword" : getFormPassword(), "sone" : soneId }, function(data) {
- if ((data != null) && data.success) {
- updateTrustControls(soneId, data.trustValue);
- }
- });
-}
-
-/**
- * Untrusts the Sone with the given ID, i.e. removes any trust assignment.
- *
- * @param soneId
- * The ID of the Sone to untrust
- */
-function untrustSone(soneId) {
- ajaxGet("untrustSone.ajax", { "formPassword" : getFormPassword(), "sone" : soneId }, function(data) {
- if ((data != null) && data.success) {
- updateTrustControls(soneId, data.trustValue);
- }
- });
-}
-
-/**
- * Updates the trust controls for all posts and replies of the given Sone,
- * according to the given trust value.
- *
- * @param soneId
- * The ID of the Sone to update all trust controls for
- * @param trustValue
- * The trust value for the Sone
- */
-function updateTrustControls(soneId, trustValue) {
- sone.find(".post").each(function() {
- if (getPostAuthor(this) === soneId) {
- getPostElement(this).find(".post-trust").toggleClass("hidden", trustValue != null);
- getPostElement(this).find(".post-distrust").toggleClass("hidden", trustValue != null);
- getPostElement(this).find(".post-untrust").toggleClass("hidden", trustValue == null);
- }
- });
- sone.find(".reply").each(function() {
- if (getReplyAuthor(this) === soneId) {
- getReplyElement(this).find(".reply-trust").toggleClass("hidden", trustValue != null);
- getReplyElement(this).find(".reply-distrust").toggleClass("hidden", trustValue != null);
- getReplyElement(this).find(".reply-untrust").toggleClass("hidden", trustValue == null);
- }
- });
-}
-
-/**
* Bookmarks the post with the given ID.
*
* @param postId
});
}
+function followSone(soneId) {
+ return function() {
+ const followElement = this;
+ ajaxGet("followSone.ajax", {"sone": soneId, "formPassword": getFormPassword()}, function () {
+ $(followElement).addClass("hidden");
+ $(followElement).parent().find(".unfollow").removeClass("hidden");
+ sone.find(".sone-menu").each(function () {
+ if (getMenuSone(this) === soneId) {
+ $(".follow", this).toggleClass("hidden", true);
+ $(".unfollow", this).toggleClass("hidden", false);
+ }
+ });
+ });
+ return false;
+ }
+}
+
+function unfollowSone(soneId) {
+ return function() {
+ const unfollowElement = this;
+ ajaxGet("unfollowSone.ajax", {"sone": soneId, "formPassword": getFormPassword()}, function () {
+ $(unfollowElement).addClass("hidden");
+ $(unfollowElement).parent().find(".follow").removeClass("hidden");
+ sone.find(".sone-menu").each(function () {
+ if (getMenuSone(this) === soneId) {
+ $(".follow", this).toggleClass("hidden", false);
+ $(".unfollow", this).toggleClass("hidden", true);
+ }
+ });
+ });
+ return false;
+ }
+};
+
/**
* Ajaxifies the given post by enhancing all eligible elements with AJAX.
*
return false;
});
- /* convert trust control buttons to javascript functions. */
- $(postElement).find(".post-trust").submit(function() {
- trustSone(getPostAuthor(this));
- return false;
- });
- $(postElement).find(".post-distrust").submit(function() {
- distrustSone(getPostAuthor(this));
- return false;
- });
- $(postElement).find(".post-untrust").submit(function() {
- untrustSone(getPostAuthor(this));
- return false;
- });
-
/* convert bookmark/unbookmark buttons to javascript functions. */
$(postElement).find(".bookmark").submit(function() {
bookmarkPost(getPostId(this));
});
/* convert “show more” link into javascript function. */
- $(postElement).find(".expand-post-text").each(function() {
- $(this).click(function() {
- $(".post-text.text", getPostElement(this)).toggleClass("hidden");
- $(".post-text.short-text", getPostElement(this)).toggleClass("hidden");
- $(".expand-post-text", getPostElement(this)).toggleClass("hidden");
- $(".shrink-post-text", getPostElement(this)).toggleClass("hidden");
- return false;
- });
- });
- $(postElement).find(".shrink-post-text").each(function() {
+ const toggleShowMore = function() {
$(this).click(function() {
$(".post-text.text", getPostElement(this)).toggleClass("hidden");
$(".post-text.short-text", getPostElement(this)).toggleClass("hidden");
$(".shrink-post-text", getPostElement(this)).toggleClass("hidden");
return false;
});
- });
+ };
+ $(postElement).find(".expand-post-text").each(toggleShowMore);
+ $(postElement).find(".shrink-post-text").each(toggleShowMore);
/* ajaxify author/post links */
$(".post-status-line .permalink a", postElement).click(function() {
});
(function(postElement) {
const soneId = $(".sone-menu-id:first", postElement).text();
- $(".sone-post-menu .follow", postElement).click(function() {
- const followElement = this;
- ajaxGet("followSone.ajax", { "sone": soneId, "formPassword": getFormPassword() }, function() {
- $(followElement).addClass("hidden");
- $(followElement).parent().find(".unfollow").removeClass("hidden");
- sone.find(".sone-menu").each(function() {
- if (getMenuSone(this) === soneId) {
- $(".follow", this).toggleClass("hidden", true);
- $(".unfollow", this).toggleClass("hidden", false);
- }
- });
- });
- return false;
- });
- $(".sone-post-menu .unfollow", postElement).click(function() {
- const unfollowElement = this;
- ajaxGet("unfollowSone.ajax", { "sone": soneId, "formPassword": getFormPassword() }, function() {
- $(unfollowElement).addClass("hidden");
- $(unfollowElement).parent().find(".follow").removeClass("hidden");
- sone.find(".sone-menu").each(function() {
- if (getMenuSone(this) === soneId) {
- $(".follow", this).toggleClass("hidden", false);
- $(".unfollow", this).toggleClass("hidden", true);
- }
- });
- });
- return false;
- });
+ $(".sone-post-menu .follow", postElement).click(followSone(soneId));
+ $(".sone-post-menu .unfollow", postElement).click(unfollowSone(soneId));
})(postElement);
}
});
/* convert “show more” link into javascript function. */
- $(replyElement).find(".expand-reply-text").each(function() {
- $(this).click(function() {
- $(".reply-text.text", getReplyElement(this)).toggleClass("hidden");
- $(".reply-text.short-text", getReplyElement(this)).toggleClass("hidden");
- $(".expand-reply-text", getReplyElement(this)).toggleClass("hidden");
- $(".shrink-reply-text", getReplyElement(this)).toggleClass("hidden");
- return false;
- });
- });
- $(replyElement).find(".shrink-reply-text").each(function() {
+ const toggleShowMore = function() {
$(this).click(function() {
$(".reply-text.text", getReplyElement(this)).toggleClass("hidden");
$(".reply-text.short-text", getReplyElement(this)).toggleClass("hidden");
$(".shrink-reply-text", getReplyElement(this)).toggleClass("hidden");
return false;
});
- });
-
- /* convert trust control buttons to javascript functions. */
- $(replyElement).find(".reply-trust").submit(function() {
- trustSone(getReplyAuthor(this));
- return false;
- });
- $(replyElement).find(".reply-distrust").submit(function() {
- distrustSone(getReplyAuthor(this));
- return false;
- });
- $(replyElement).find(".reply-untrust").submit(function() {
- untrustSone(getReplyAuthor(this));
- return false;
- });
+ };
+ $(replyElement).find(".expand-reply-text").each(toggleShowMore);
+ $(replyElement).find(".shrink-reply-text").each(toggleShowMore);
/* show Sone menu when hovering over the avatar. */
$(replyElement).find(".reply-avatar").mouseover(function() {
});
(function(replyElement) {
const soneId = $(".sone-menu-id", replyElement).text();
- $(".sone-menu .follow", replyElement).click(function() {
- const followElement = this;
- ajaxGet("followSone.ajax", { "sone": soneId, "formPassword": getFormPassword() }, function() {
- $(followElement).addClass("hidden");
- $(followElement).parent().find(".unfollow").removeClass("hidden");
- sone.find(".sone-menu").each(function() {
- if (getMenuSone(this) === soneId) {
- $(".follow", this).toggleClass("hidden", true);
- $(".unfollow", this).toggleClass("hidden", false);
- }
- });
- });
- return false;
- });
- $(".sone-menu .unfollow", replyElement).click(function() {
- const followElement = this;
- ajaxGet("unfollowSone.ajax", { "sone": soneId, "formPassword": getFormPassword() }, function() {
- $(unfollowElement).addClass("hidden");
- $(unfollowElement).parent().find(".follow").removeClass("hidden");
- sone.find(".sone-menu").each(function() {
- if (getMenuSone(this) === soneId) {
- $(".follow", this).toggleClass("hidden", false);
- $(".unfollow", this).toggleClass("hidden", true);
- }
- });
- });
- return false;
- });
+ $(".sone-menu .follow", replyElement).click(followSone(soneId));
+ $(".sone-menu .unfollow", replyElement).click(unfollowSone(soneId));
})(replyElement);
}
/**
* Returns the content of the page-id attribute.
*
- * @returns The page ID
+ * @returns String The page ID
*/
function getPageId() {
return sone.find(".page-id").text();
/**
* Updates the time of the reply with the given ID.
*
- * @param postId
+ * @param replyId
* The ID of the reply to update
* @param timeText
* The text of the time to show
/**
* Requests new rendered times for the posts with the given IDs.
*
- * @param postIds
+ * @param replyIds
* Comma-separated post IDs
*/
function updateReplyTimes(replyIds) {