From 8297f7b5692d27045ae4e0b68c81192db2e64bfd Mon Sep 17 00:00:00 2001 From: Rocky Duan Date: Fri, 3 Aug 2012 12:45:30 -0400 Subject: [PATCH 1/3] slight changes --- lms/static/coffee/src/discussion/content.coffee | 10 ++++------ .../coffee/src/discussion/discussion.coffee | 1 + lms/static/coffee/src/discussion/utils.coffee | 16 ++++++++++++++++ 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/lms/static/coffee/src/discussion/content.coffee b/lms/static/coffee/src/discussion/content.coffee index b60020cf3d..25683d00d9 100644 --- a/lms/static/coffee/src/discussion/content.coffee +++ b/lms/static/coffee/src/discussion/content.coffee @@ -76,6 +76,7 @@ Discussion = @Discussion $comment = $(response.html) $content.children(".comments").prepend($comment) Discussion.setWmdContent $content, $local, "reply-body", "" + Discussion.setContentInfo id, 'editable', true Discussion.initializeContent($comment) Discussion.bindContentEvents($comment) $local(".discussion-reply-new").hide() @@ -200,9 +201,7 @@ Discussion = @Discussion type: "GET" dataType: 'json' success: (response, textStatus) -> - if not $$annotated_content_info? - window.$$annotated_content_info = {} - window.$$annotated_content_info = $.extend $$annotated_content_info, response['annotated_content_info'] + Discussion.bulkExtendContentInfo response['annotated_content_info'] $content.append(response['html']) $content.find(".comment").each (index, comment) -> Discussion.initializeContent(comment) @@ -251,6 +250,5 @@ Discussion = @Discussion $contentBody.html(converter.makeHtml(raw_text)) MathJax.Hub.Queue ["Typeset", MathJax.Hub, $contentBody.attr("id")] id = $content.attr("_id") - if $$annotated_content_info? - if not ($$annotated_content_info[id] || [])['editable'] - $local(".discussion-edit").remove() + if not Discussion.getContentInfo id, 'editable' + $local(".discussion-edit").remove() diff --git a/lms/static/coffee/src/discussion/discussion.coffee b/lms/static/coffee/src/discussion/discussion.coffee index 5b90b08caa..26398be6ac 100644 --- a/lms/static/coffee/src/discussion/discussion.coffee +++ b/lms/static/coffee/src/discussion/discussion.coffee @@ -108,6 +108,7 @@ initializeFollowThread = (index, thread) -> $thread = $(response.html) $discussion.children(".threads").prepend($thread) Discussion.setWmdContent $discussion, $local, "new-post-body", "" + Discussion.setContentInfo id, 'editable', true Discussion.initializeContent($thread) Discussion.bindContentEvents($thread) $(".new-post-form").hide() diff --git a/lms/static/coffee/src/discussion/utils.coffee b/lms/static/coffee/src/discussion/utils.coffee index d4ec6c2d08..cfb5e05278 100644 --- a/lms/static/coffee/src/discussion/utils.coffee +++ b/lms/static/coffee/src/discussion/utils.coffee @@ -109,3 +109,19 @@ wmdEditors = {} console.log wmdEditors console.log "#{cls_identifier}-#{id}" wmdEditors["#{cls_identifier}-#{id}"].refreshPreview() + + getContentInfo: (id, attr) -> + if not window.$$annotated_content_info? + window.$$annotated_content_info = {} + (window.$$annotated_content_info[id] || {})[attr] + + setContentInfo: (id, attr, value) -> + if not window.$$annotated_content_info? + window.$$annotated_content_info = {} + window.$$annotated_content_info[id] ||= {} + window.$$annotated_content_info[id][attr] = value + + bulkExtendContentInfo: (newInfos) -> + if not window.$$annotated_content_info? + window.$$annotated_content_info = {} + window.$$annotated_content_info = $.extend window.$$annotated_content_info, newInfos From fd922cf755e91f5f11e613fa1bde5033201e8f54 Mon Sep 17 00:00:00 2001 From: Rocky Duan Date: Fri, 3 Aug 2012 12:49:35 -0400 Subject: [PATCH 2/3] slight changes --- lms/static/coffee/src/discussion/content.coffee | 2 -- lms/static/coffee/src/discussion/discussion.coffee | 1 - lms/static/coffee/src/discussion/utils.coffee | 3 --- 3 files changed, 6 deletions(-) diff --git a/lms/static/coffee/src/discussion/content.coffee b/lms/static/coffee/src/discussion/content.coffee index bb53739732..7b1e74cccf 100644 --- a/lms/static/coffee/src/discussion/content.coffee +++ b/lms/static/coffee/src/discussion/content.coffee @@ -27,7 +27,6 @@ Discussion = @Discussion Discussion.makeWmdEditor $content, $local, "reply-body" $local(".discussion-submit-post").click -> handleSubmitReply(this) $local(".discussion-cancel-post").click -> handleCancelReply(this) - $local(".discussion-link").hide() $discussionContent.attr("status", "reply") handleCancelReply = (elem) -> @@ -61,7 +60,6 @@ Discussion = @Discussion anonymous: anonymous autowatch: autowatch success: Discussion.formErrorHandler($local(".discussion-errors"), (response, textStatus) -> - console.log response $comment = $(response.html) $content.children(".comments").prepend($comment) Discussion.setWmdContent $content, $local, "reply-body", "" diff --git a/lms/static/coffee/src/discussion/discussion.coffee b/lms/static/coffee/src/discussion/discussion.coffee index 936c604e67..f092ca114b 100644 --- a/lms/static/coffee/src/discussion/discussion.coffee +++ b/lms/static/coffee/src/discussion/discussion.coffee @@ -104,7 +104,6 @@ initializeFollowThread = (index, thread) -> body: body tags: tags success: Discussion.formErrorHandler($local(".new-post-form-error"), (response, textStatus) -> - console.log response $thread = $(response.html) $discussion.children(".threads").prepend($thread) Discussion.setWmdContent $discussion, $local, "new-post-body", "" diff --git a/lms/static/coffee/src/discussion/utils.coffee b/lms/static/coffee/src/discussion/utils.coffee index cfb5e05278..38272e504a 100644 --- a/lms/static/coffee/src/discussion/utils.coffee +++ b/lms/static/coffee/src/discussion/utils.coffee @@ -92,7 +92,6 @@ wmdEditors = {} imageUploadUrl = Discussion.urlFor('upload') editor = Markdown.makeWmdEditor elem, appended_id, imageUploadUrl wmdEditors["#{cls_identifier}-#{id}"] = editor - console.log wmdEditors editor getWmdEditor: ($content, $local, cls_identifier) -> @@ -106,8 +105,6 @@ wmdEditors = {} setWmdContent: ($content, $local, cls_identifier, text) -> id = $content.attr("_id") $local("#wmd-input-#{cls_identifier}-#{id}").val(text) - console.log wmdEditors - console.log "#{cls_identifier}-#{id}" wmdEditors["#{cls_identifier}-#{id}"].refreshPreview() getContentInfo: (id, attr) -> From 9b2578c79c661869f6e81eb5e2a095bd548f3776 Mon Sep 17 00:00:00 2001 From: Rocky Duan Date: Fri, 3 Aug 2012 13:35:15 -0400 Subject: [PATCH 3/3] fix reply & some random stuff --- .../django_comment_client/base/views.py | 28 +++++++++++++++---- .../django_comment_client/forum/views.py | 2 +- .../coffee/src/discussion/content.coffee | 7 +++-- .../coffee/src/discussion/discussion.coffee | 2 +- lms/static/coffee/src/discussion/utils.coffee | 4 +-- ...ent_only.html => ajax_create_comment.html} | 0 ...read_only.html => ajax_create_thread.html} | 0 7 files changed, 31 insertions(+), 12 deletions(-) rename lms/templates/discussion/{ajax_comment_only.html => ajax_create_comment.html} (100%) rename lms/templates/discussion/{ajax_thread_only.html => ajax_create_thread.html} (100%) diff --git a/lms/djangoapps/django_comment_client/base/views.py b/lms/djangoapps/django_comment_client/base/views.py index 601efa8122..6b8986a918 100644 --- a/lms/djangoapps/django_comment_client/base/views.py +++ b/lms/djangoapps/django_comment_client/base/views.py @@ -38,7 +38,7 @@ def comment_author_only(fn): return JsonError("unauthorized") return verified_fn -def instructor_only(fn): #TODO add instructor verification +def instructor_only(fn): def verified_fn(request, *args, **kwargs): if not request.user.is_staff: return JsonError("unauthorized") @@ -46,8 +46,6 @@ def instructor_only(fn): #TODO add instructor verification return fn(request, *args, **kwargs) return verified_fn - - @login_required @require_POST def create_thread(request, course_id, commentable_id): @@ -64,9 +62,10 @@ def create_thread(request, course_id, commentable_id): 'course_id': course_id, 'thread': response, } - html = render_to_string('discussion/ajax_thread_only.html', context) + html = render_to_string('discussion/ajax_create_thread.html', context) return JsonResponse({ 'html': html, + 'content': response, }) else: return JsonResponse(response) @@ -77,6 +76,15 @@ def create_thread(request, course_id, commentable_id): def update_thread(request, course_id, thread_id): attributes = extract(request.POST, ['body', 'title', 'tags']) response = comment_client.update_thread(thread_id, attributes) + if response.is_ajax(): + context = { + 'thread': response, + } + html = render_to_string('discussion/ajax_update_thread.html', context) + return JsonResponse({ + 'html': html, + 'content': response, + }) return JsonResponse(response) def _create_comment(request, course_id, _response_from_attributes): @@ -92,9 +100,10 @@ def _create_comment(request, course_id, _response_from_attributes): context = { 'comment': response, } - html = render_to_string('discussion/ajax_comment_only.html', context) + html = render_to_string('discussion/ajax_create_comment.html', context) return JsonResponse({ 'html': html, + 'content': response, }) else: return JsonResponse(response) @@ -119,6 +128,15 @@ def delete_thread(request, course_id, thread_id): def update_comment(request, course_id, comment_id): attributes = extract(request.POST, ['body']) response = comment_client.update_comment(comment_id, attributes) + if response.is_ajax(): + context = { + 'comment': response, + } + html = render_to_string('discussion/ajax_update_comment.html', context) + return JsonResponse({ + 'html': html, + 'content': response, + }) return JsonResponse(response) @instructor_only diff --git a/lms/djangoapps/django_comment_client/forum/views.py b/lms/djangoapps/django_comment_client/forum/views.py index b5794fd899..cbdf3e26c5 100644 --- a/lms/djangoapps/django_comment_client/forum/views.py +++ b/lms/djangoapps/django_comment_client/forum/views.py @@ -19,7 +19,7 @@ import comment_client import dateutil -THREADS_PER_PAGE = 20 +THREADS_PER_PAGE = 5 PAGES_NEARBY_DELTA = 2 def render_accordion(request, course, discussion_id): diff --git a/lms/static/coffee/src/discussion/content.coffee b/lms/static/coffee/src/discussion/content.coffee index 7b1e74cccf..f613c36ab6 100644 --- a/lms/static/coffee/src/discussion/content.coffee +++ b/lms/static/coffee/src/discussion/content.coffee @@ -25,9 +25,9 @@ Discussion = @Discussion } $discussionContent.append Mustache.render Discussion.replyTemplate, view Discussion.makeWmdEditor $content, $local, "reply-body" + $local(".discussion-reply").hide() $local(".discussion-submit-post").click -> handleSubmitReply(this) $local(".discussion-cancel-post").click -> handleCancelReply(this) - $discussionContent.attr("status", "reply") handleCancelReply = (elem) -> $replyView = $local(".discussion-reply-new") @@ -35,7 +35,7 @@ Discussion = @Discussion $replyView.hide() #reply = Discussion.generateDiscussionLink("discussion-reply", "Reply", handleReply) #$(elem).replaceWith(reply) - $discussionContent.attr("status", "normal") + $local(".discussion-reply").show() handleSubmitReply = (elem) -> if $content.hasClass("thread") @@ -63,10 +63,11 @@ Discussion = @Discussion $comment = $(response.html) $content.children(".comments").prepend($comment) Discussion.setWmdContent $content, $local, "reply-body", "" - Discussion.setContentInfo id, 'editable', true + Discussion.setContentInfo response.content['id'], 'editable', true Discussion.initializeContent($comment) Discussion.bindContentEvents($comment) $local(".discussion-reply-new").hide() + $local(".discussion-reply").show() $discussionContent.attr("status", "normal") ) diff --git a/lms/static/coffee/src/discussion/discussion.coffee b/lms/static/coffee/src/discussion/discussion.coffee index f092ca114b..3bd6718562 100644 --- a/lms/static/coffee/src/discussion/discussion.coffee +++ b/lms/static/coffee/src/discussion/discussion.coffee @@ -107,7 +107,7 @@ initializeFollowThread = (index, thread) -> $thread = $(response.html) $discussion.children(".threads").prepend($thread) Discussion.setWmdContent $discussion, $local, "new-post-body", "" - Discussion.setContentInfo id, 'editable', true + Discussion.setContentInfo response.content['id'], 'editable', true Discussion.initializeContent($thread) Discussion.bindContentEvents($thread) $(".new-post-form").hide() diff --git a/lms/static/coffee/src/discussion/utils.coffee b/lms/static/coffee/src/discussion/utils.coffee index 38272e504a..ffb25ea0ae 100644 --- a/lms/static/coffee/src/discussion/utils.coffee +++ b/lms/static/coffee/src/discussion/utils.coffee @@ -26,8 +26,8 @@ wmdEditors = {} delete_thread : "/courses/#{$$course_id}/discussion/threads/#{param}/delete" upvote_thread : "/courses/#{$$course_id}/discussion/threads/#{param}/upvote" downvote_thread : "/courses/#{$$course_id}/discussion/threads/#{param}/downvote" - follow_thread : "/courses/#{$$course_id}/discussion/threads/#{param}/follow" - unfollow_thread : "/courses/#{$$course_id}/discussion/threads/#{param}/unfollow" + follow_thread : "/courses/#{$$course_id}/discussion/threads/#{param}/follow" + unfollow_thread : "/courses/#{$$course_id}/discussion/threads/#{param}/unfollow" update_comment : "/courses/#{$$course_id}/discussion/comments/#{param}/update" endorse_comment : "/courses/#{$$course_id}/discussion/comments/#{param}/endorse" create_sub_comment : "/courses/#{$$course_id}/discussion/comments/#{param}/reply" diff --git a/lms/templates/discussion/ajax_comment_only.html b/lms/templates/discussion/ajax_create_comment.html similarity index 100% rename from lms/templates/discussion/ajax_comment_only.html rename to lms/templates/discussion/ajax_create_comment.html diff --git a/lms/templates/discussion/ajax_thread_only.html b/lms/templates/discussion/ajax_create_thread.html similarity index 100% rename from lms/templates/discussion/ajax_thread_only.html rename to lms/templates/discussion/ajax_create_thread.html