From 2dcb8f81c1625a88ba8674eff429eaef2d34a1e2 Mon Sep 17 00:00:00 2001 From: Brian Jacobel Date: Tue, 6 Sep 2016 13:54:55 -0400 Subject: [PATCH] Fix issue where duplicate toolbars would be displayed above discussion forum comments while posting TNL-5105 --- common/static/common/js/discussion/utils.js | 2 +- .../discussion/views/thread_response_view.js | 2 +- .../view/thread_response_view_spec.js | 21 ++++++++++++++++++- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/common/static/common/js/discussion/utils.js b/common/static/common/js/discussion/utils.js index de3507495f..8309681e48 100644 --- a/common/static/common/js/discussion/utils.js +++ b/common/static/common/js/discussion/utils.js @@ -309,7 +309,7 @@ var appended_id, editor, elem, id, imageUploadUrl, placeholder, _processor; elem = $local('.' + cls_identifier); placeholder = elem.data('placeholder'); - id = elem.attr('data-id'); + id = elem.data('id'); appended_id = '-' + cls_identifier + '-' + id; imageUploadUrl = this.urlFor('upload'); _processor = function(self) { diff --git a/common/static/common/js/discussion/views/thread_response_view.js b/common/static/common/js/discussion/views/thread_response_view.js index 41ed8691a7..0df491b7ca 100644 --- a/common/static/common/js/discussion/views/thread_response_view.js +++ b/common/static/common/js/discussion/views/thread_response_view.js @@ -72,7 +72,7 @@ container = $('.discussion-module'); } templateData = _.extend(this.model.toJSON(), { - wmdId: (_ref = this.model.id) !== null ? _ref : (new Date()).getTime(), + wmdId: typeof(this.model.id) !== 'undefined' ? this.model.id : (new Date()).getTime(), create_sub_comment: container.data('user-create-subcomment'), readOnly: this.readOnly }); diff --git a/common/static/common/js/spec/discussion/view/thread_response_view_spec.js b/common/static/common/js/spec/discussion/view/thread_response_view_spec.js index e1278ddb59..9ae29752da 100644 --- a/common/static/common/js/spec/discussion/view/thread_response_view_spec.js +++ b/common/static/common/js/spec/discussion/view/thread_response_view_spec.js @@ -1,4 +1,4 @@ -/* globals DiscussionSpecHelper, ResponseCommentView, Thread, ThreadResponseView, ThreadResponseShowView */ +/* globals DiscussionSpecHelper, ResponseCommentView, Thread, ThreadResponseView, ThreadResponseShowView, _ */ (function() { 'use strict'; describe('ThreadResponseView', function() { @@ -89,6 +89,25 @@ return expect(this.view.$('.action-show-comments')).not.toBeVisible(); } ); + it('calls renderTemplate with a temporary id if the model lacks one', function() { + this.view = new ThreadResponseView({ + model: this.response, + el: $('#fixture-element'), + collapseComments: true + }); + spyOn(_, 'extend').and.callThrough(); + spyOn(window, 'Date').and.callFake(function() { + return { + getTime: function() { + return 1; + } + }; + }); + this.view.render(); + expect(_.extend).toHaveBeenCalledWith(jasmine.any(Object), jasmine.objectContaining({ + wmdId: 1 + })); + }); it('populates commentViews and binds events', function() { this.view.createEditView(); spyOn(this.view, 'cancelEdit');