From c2db2042b846b7a220e1b2bcbce538e42cd2de3f Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= Date: Sat, 13 Nov 2010 00:45:25 +0100 Subject: [PATCH] Factor out method that adds comment links to a single element. --- src/main/resources/static/javascript/sone.js | 54 +++++++++++++++++----------- 1 file changed, 33 insertions(+), 21 deletions(-) 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)); }); } -- 2.7.4