diff --git a/Changelog.md b/Changelog.md index 3c5d535d22ea9c189cb7b04cd7f1e10e7b599b9a..fe35c254e1bf3845cfec11642bb772b95cc8cf70 100644 --- a/Changelog.md +++ b/Changelog.md @@ -28,7 +28,7 @@ ## Bug fixes * Fix regression caused by using after_commit with nested '#save' which lead to an infinite recursion [#4715](https://github.com/diaspora/diaspora/issues/4715) - +* Save textarea value before rendering comments when clicked 'show more...' [#4514](https://github.com/diaspora/diaspora/issues/4514) # 0.3.0.0 ## Pod statistics diff --git a/app/assets/javascripts/app/views/comment_stream_view.js b/app/assets/javascripts/app/views/comment_stream_view.js index 0a6bd11c6fb2c2b4ade30e628cccdda9f54c383b..db30390ca69960d7d937ccc377c2db13b2e73797 100644 --- a/app/assets/javascripts/app/views/comment_stream_view.js +++ b/app/assets/javascripts/app/views/comment_stream_view.js @@ -19,6 +19,7 @@ app.views.CommentStream = app.views.Base.extend({ setupBindings: function() { this.model.comments.bind('add', this.appendComment, this); + this.model.bind("commentsExpanded", this.storeTextareaValue, this); this.model.bind("commentsExpanded", this.render, this); }, @@ -28,6 +29,7 @@ app.views.CommentStream = app.views.Base.extend({ // add autoexpanders to new comment textarea this.$("textarea").autoResize({'extraSpace' : 10}); + this.$('textarea').val(this.textareaValue); }, presenter: function(){ @@ -73,6 +75,10 @@ app.views.CommentStream = app.views.Base.extend({ this.$("form").removeClass('hidden').addClass("open"); }, + storeTextareaValue: function(){ + this.textareaValue = this.$('textarea').val(); + }, + expandComments: function(evt){ if(evt){ evt.preventDefault(); } diff --git a/spec/javascripts/app/views/comment_stream_view_spec.js b/spec/javascripts/app/views/comment_stream_view_spec.js index 22b2db68d550554310fc17542a485ef91a1950f1..fa009b92c0be8d73b0b00df428bede8bc918abfd 100644 --- a/spec/javascripts/app/views/comment_stream_view_spec.js +++ b/spec/javascripts/app/views/comment_stream_view_spec.js @@ -98,7 +98,10 @@ describe("app.views.CommentStream", function(){ this.view.expandComments(); - mostRecentAjaxRequest().response({ comments : [] }); + mostRecentAjaxRequest().response({ + status: 200, + responseText: JSON.stringify([factory.comment()]) + }); expect(this.view.$("textarea").val()).toEqual("great post!"); });