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