From: David ‘Bombe’ Roden Date: Fri, 12 Nov 2010 23:45:25 +0000 (+0100) Subject: Factor out method that adds comment links to a single element. X-Git-Tag: 0.2.3~3 X-Git-Url: https://git.pterodactylus.net/?a=commitdiff_plain;h=c2db2042b846b7a220e1b2bcbce538e42cd2de3f;p=Sone.git Factor out method that adds comment links to a single element. --- diff --git a/src/main/resources/static/javascript/sone.js b/src/main/resources/static/javascript/sone.js index 01f13e3..bd372c1 100644 --- a/src/main/resources/static/javascript/sone.js +++ b/src/main/resources/static/javascript/sone.js @@ -43,28 +43,40 @@ function addCommentLinks() { } $("#sone .post").each(function() { postId = $(this).attr("id"); - commentElement = (function(postId) { - var commentElement = $("
Comment
").addClass("show-reply-form").click(function() { - replyElement = $("#sone .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); - replyElement.find("input.reply-input").focus(); - }); - return commentElement; - })(postId); - $(this).find(".create-reply").addClass("hidden"); - $(this).find(".status-line .time").each(function() { - $(this).after(commentElement.clone(true)); + addCommentLink(postId, $(this)); + }); +} + +/** + * Adds a “comment” link to all status lines contained in the given element. + * + * @param postId + * The ID of the post + * @param element + * The element to add a “comment” link to + */ +function addCommentLink(postId, element) { + commentElement = (function(postId) { + var commentElement = $("
Comment
").addClass("show-reply-form").click(function() { + replyElement = $("#sone .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); + replyElement.find("input.reply-input").focus(); }); + return commentElement; + })(postId); + element.find(".create-reply").addClass("hidden"); + element.find(".status-line .time").each(function() { + $(this).after(commentElement.clone(true)); }); }