From b4493344620a526019db82d2b2ddbf77ab274ade Mon Sep 17 00:00:00 2001 From: Mike Chen Date: Thu, 9 Aug 2012 12:04:38 -0400 Subject: [PATCH] generate permanent link for thread/comment on client side --- lms/static/coffee/src/discussion/content.coffee | 9 +++++++++ lms/static/coffee/src/discussion/utils.coffee | 4 +++- lms/templates/discussion/_thread.html | 1 + 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/lms/static/coffee/src/discussion/content.coffee b/lms/static/coffee/src/discussion/content.coffee index daf25405cf..16c224d165 100644 --- a/lms/static/coffee/src/discussion/content.coffee +++ b/lms/static/coffee/src/discussion/content.coffee @@ -367,6 +367,15 @@ initializeFollowThread = (thread) -> MathJax.Hub.Queue ["Typeset", MathJax.Hub, $contentBody.attr("id")] id = $content.attr("_id") + + discussion_id = $content.parents(".discussion").attr("_id") + if $content.hasClass("thread") + permalink = Discussion.urlFor("permanent_link_thread", discussion_id, id) + else + thread_id = $content.parents(".thread").attr("_id") + permalink = Discussion.urlFor("permanent_link_comment", discussion_id, thread_id, id) + $local(".discussion-permanent-link").attr "href", permalink + if not Discussion.getContentInfo id, 'editable' $local(".discussion-edit").remove() if not Discussion.getContentInfo id, 'can_reply' diff --git a/lms/static/coffee/src/discussion/utils.coffee b/lms/static/coffee/src/discussion/utils.coffee index 0443f4a03d..47e6ba9131 100644 --- a/lms/static/coffee/src/discussion/utils.coffee +++ b/lms/static/coffee/src/discussion/utils.coffee @@ -16,7 +16,7 @@ wmdEditors = {} .addClass(cls).html(txt) .click -> handler(this) - urlFor: (name, param, param1) -> + urlFor: (name, param, param1, param2) -> { follow_discussion : "/courses/#{$$course_id}/discussion/#{param}/follow" unfollow_discussion : "/courses/#{$$course_id}/discussion/#{param}/unfollow" @@ -43,6 +43,8 @@ wmdEditors = {} tags_autocomplete : "/courses/#{$$course_id}/discussion/threads/tags/autocomplete" retrieve_discussion : "/courses/#{$$course_id}/discussion/forum/#{param}/inline" retrieve_single_thread : "/courses/#{$$course_id}/discussion/forum/#{param}/threads/#{param1}" + permanent_link_thread : "/courses/#{$$course_id}/discussion/forum/#{param}/threads/#{param1}" + permanent_link_comment : "/courses/#{$$course_id}/discussion/forum/#{param}/threads/#{param1}##{param2}" }[name] safeAjax: (params) -> diff --git a/lms/templates/discussion/_thread.html b/lms/templates/discussion/_thread.html index 6ba88c1b67..653b982503 100644 --- a/lms/templates/discussion/_thread.html +++ b/lms/templates/discussion/_thread.html @@ -88,6 +88,7 @@ ${render_info(content)} ${render_link("discussion-link discussion-reply discussion-reply-" + type, "Reply")} ${render_link("discussion-link discussion-edit", "Edit")} + ${render_link("discussion-link discussion-permanent-link", "Permanent Link")} % if content.get('endorsed', False):