diff --git a/common/static/coffee/spec/discussion/discussion_spec_helper.coffee b/common/static/coffee/spec/discussion/discussion_spec_helper.coffee index 0fee756658..0b052bc7ba 100644 --- a/common/static/coffee/spec/discussion/discussion_spec_helper.coffee +++ b/common/static/coffee/spec/discussion/discussion_spec_helper.coffee @@ -67,5 +67,6 @@ class @DiscussionSpecHelper data-course-name="Fake Course" data-user-create-comment="true" data-user-create-subcomment="true" + data-read-only="false" > """) diff --git a/common/static/coffee/src/discussion/views/discussion_thread_show_view.coffee b/common/static/coffee/src/discussion/views/discussion_thread_show_view.coffee index 5a1a0a5b29..75c6e9d5ac 100644 --- a/common/static/coffee/src/discussion/views/discussion_thread_show_view.coffee +++ b/common/static/coffee/src/discussion/views/discussion_thread_show_view.coffee @@ -13,7 +13,8 @@ if Backbone? mode: @mode, flagged: @model.isFlagged(), author_display: @getAuthorDisplay(), - cid: @model.cid + cid: @model.cid, + readOnly: $('.discussion-module').data('read-only') }, @model.attributes, ) diff --git a/common/static/coffee/src/discussion/views/discussion_thread_view.coffee b/common/static/coffee/src/discussion/views/discussion_thread_view.coffee index 798a4022b6..f9a6d21b00 100644 --- a/common/static/coffee/src/discussion/views/discussion_thread_view.coffee +++ b/common/static/coffee/src/discussion/views/discussion_thread_view.coffee @@ -23,6 +23,8 @@ if Backbone? if @mode not in ["tab", "inline"] throw new Error("invalid mode: " + @mode) + @readOnly = $(".discussion-module").data('read-only') + # Quick fix to have an actual model when we're receiving new models from # the server. @model.collection.on "reset", (collection) => @@ -51,12 +53,15 @@ if Backbone? renderTemplate: -> @template = _.template($("#thread-template").html()) - templateData = @model.toJSON() container = $("#discussion-container") if !container.length # inline discussion container = $(".discussion-module") - templateData.can_create_comment = container.data("user-create-comment") + templateData = _.extend( + @model.toJSON(), + readOnly: @readOnly, + can_create_comment: container.data("user-create-comment") + ) @template(templateData) render: -> diff --git a/common/static/coffee/src/discussion/views/response_comment_show_view.coffee b/common/static/coffee/src/discussion/views/response_comment_show_view.coffee index 51432770a2..059e63f65c 100644 --- a/common/static/coffee/src/discussion/views/response_comment_show_view.coffee +++ b/common/static/coffee/src/discussion/views/response_comment_show_view.coffee @@ -9,7 +9,8 @@ if Backbone? _.extend( { cid: @model.cid, - author_display: @getAuthorDisplay() + author_display: @getAuthorDisplay(), + readOnly: $('.discussion-module').data('read-only') }, @model.attributes ) diff --git a/common/static/coffee/src/discussion/views/thread_response_show_view.coffee b/common/static/coffee/src/discussion/views/thread_response_show_view.coffee index 6d634dd481..3e72cd56d9 100644 --- a/common/static/coffee/src/discussion/views/thread_response_show_view.coffee +++ b/common/static/coffee/src/discussion/views/thread_response_show_view.coffee @@ -10,7 +10,8 @@ if Backbone? { cid: @model.cid, author_display: @getAuthorDisplay(), - endorser_display: @getEndorserDisplay() + endorser_display: @getEndorserDisplay(), + readOnly: $('.discussion-module').data('read-only') }, @model.attributes ) diff --git a/common/static/coffee/src/discussion/views/thread_response_view.coffee b/common/static/coffee/src/discussion/views/thread_response_view.coffee index a299738d6f..9d91d1361c 100644 --- a/common/static/coffee/src/discussion/views/thread_response_view.coffee +++ b/common/static/coffee/src/discussion/views/thread_response_view.coffee @@ -13,17 +13,21 @@ if Backbone? initialize: (options) -> @collapseComments = options.collapseComments @createShowView() + @readOnly = $('.discussion-module').data('read-only') renderTemplate: -> @template = _.template($("#thread-response-template").html()) - templateData = @model.toJSON() - templateData.wmdId = @model.id ? (new Date()).getTime() container = $("#discussion-container") if !container.length # inline discussion container = $(".discussion-module") - templateData.create_sub_comment = container.data("user-create-subcomment") + templateData = _.extend( + @model.toJSON(), + wmdId: @model.id ? (new Date()).getTime(), + create_sub_comment: container.data("user-create-subcomment"), + readOnly: @readOnly + ) @template(templateData) render: -> @@ -88,7 +92,10 @@ if Backbone? comment.set('thread', @model.get('thread')) view = new ResponseCommentView(model: comment) view.render() - @$el.find(".comments .new-comment").before(view.el) + if @readOnly + @$el.find('.comments').append(view.el) + else + @$el.find(".comments .new-comment").before(view.el) view.bind "comment:edit", (event) => @cancelEdit(event) if @editView? @cancelCommentEdits() diff --git a/common/static/common/templates/discussion/forum-actions.underscore b/common/static/common/templates/discussion/forum-actions.underscore index 9fd9714a3e..5401e41180 100644 --- a/common/static/common/templates/discussion/forum-actions.underscore +++ b/common/static/common/templates/discussion/forum-actions.underscore @@ -1,16 +1,18 @@ -