From 3d43ba81ce47454083977e7f80dc060d585cfea9 Mon Sep 17 00:00:00 2001 From: Rocky Duan Date: Fri, 20 Jul 2012 12:19:20 -0400 Subject: [PATCH] some basic functionalities of discussion --- lms/static/coffee/src/discussion.coffee | 135 ++++++++++++++++++++++++ lms/static/sass/_discussion.scss | 97 ++++++++++++++--- lms/static/sass/application.scss | 1 + lms/templates/discussion.html | 48 ++++++--- 4 files changed, 252 insertions(+), 29 deletions(-) create mode 100644 lms/static/coffee/src/discussion.coffee diff --git a/lms/static/coffee/src/discussion.coffee b/lms/static/coffee/src/discussion.coffee new file mode 100644 index 0000000000..aaefa7deb4 --- /dev/null +++ b/lms/static/coffee/src/discussion.coffee @@ -0,0 +1,135 @@ +$ -> + + DEBUG = true + + $(".discussion-title").click -> + $thread = $(this).parent().children(".thread") + if $thread.css("display") == "none" + $thread.show() + else + $thread.hide() + + $(".thread-title").click -> + $comments = $(this).parent().parent().children(".comments") + if $comments.css("display") == "none" + $comments.show() + else + $comments.hide() + + getDiscussionContentLink = ($elem, selector) -> + $elem.children(".discussion-content-view").children(".info").children(selector) + + discussionContentHoverIn = -> + status = $(this).attr("status") || "normal" + if status == "normal" + getDiscussionContentLink($(this), ".discussion-link").show() + else if status == "reply" + getDiscussionContentLink($(this), ".discussion-cancel-reply").show() + getDiscussionContentLink($(this), ".discussion-submit-reply").show() + else if status == "edit" + getDiscussionContentLink($(this), ".discussion-cancel-edit").show() + getDiscussionContentLink($(this), ".discussion-update-edit").show() + + discussionContentHoverOut = -> + getDiscussionContentLink($(this), ".discussion-link").hide() + + $(".discussion-content").hover(discussionContentHoverIn, discussionContentHoverOut) + + $(".discussion-reply").click -> + handleReply(this) + + $(".discussion-cancel-reply").click -> + handleCancelReply(this) + + discussionLink = (cls, txt, handler) -> + $("").addClass("discussion-link"). + attr("href", "javascript:void(0)"). + addClass(cls).html(txt). + click(-> handler(this)) + + handleReply = (elem) -> + discussionContent = $(elem).parents(".discussion-content") + editView = discussionContent.children(".discussion-content-edit") + if editView.length + editView.show() + else + editView = $("
").addClass("discussion-content-edit") + editView.append($("