diff options
author | Daniel Calviño Sánchez <danxuliu@gmail.com> | 2017-05-08 22:00:00 +0200 |
---|---|---|
committer | Daniel Calviño Sánchez <danxuliu@gmail.com> | 2017-05-08 22:24:33 +0200 |
commit | 0db3a413b3255885e21821830943476c83b091b0 (patch) | |
tree | 78d179fb2d9eb76a5edd1f84bb876e59d1a51332 /apps/comments/tests | |
parent | 002018d8ada703db05302260e192aa6d183a8f32 (diff) | |
download | nextcloud-server-0db3a413b3255885e21821830943476c83b091b0.tar.gz nextcloud-server-0db3a413b3255885e21821830943476c83b091b0.zip |
Fix mentioned user not clickable after posting or editing a comment
The contactsMenu plugin was called on avatar elements from
_postRenderItem, which is called when a new comment is added to the
collection. Due to this contactsMenu was not called when messages were
edited; when a new comment is posted _postRenderItem is called, but at
that time the "mentions" attribute is not filled yet, so "@username" is
not replaced by avatars in the message and thus contactsMenu has no
avatars to be called on.
Calling contactsMenu was moved to a new method, _postRenderMessage,
which is called from _postRenderItem and from the success callback when
fetching the model in _onSubmitSuccess (which replaces "@username" by
avatars in the message after posting or editing a comment).
Fixes #4555
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
Diffstat (limited to 'apps/comments/tests')
-rw-r--r-- | apps/comments/tests/js/commentstabviewSpec.js | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/apps/comments/tests/js/commentstabviewSpec.js b/apps/comments/tests/js/commentstabviewSpec.js index b991e0d6804..63a27956f9f 100644 --- a/apps/comments/tests/js/commentstabviewSpec.js +++ b/apps/comments/tests/js/commentstabviewSpec.js @@ -154,9 +154,11 @@ describe('OCA.Comments.CommentsTabView tests', function() { expect($comment.length).toEqual(1); expect($comment.find('.avatar[data-user=macbeth]').length).toEqual(1); expect($comment.find('strong:first').text()).toEqual('Thane of Cawdor'); + expect($comment.find('.avatar[data-user=macbeth] ~ .contactsmenu-popover').length).toEqual(1); expect($comment.find('.avatar[data-user=banquo]').length).toEqual(1); expect($comment.find('.avatar-name-wrapper:last-child strong').text()).toEqual('Lord Banquo'); + expect($comment.find('.avatar[data-user=banquo] ~ .contactsmenu-popover').length).toEqual(1); }); }); @@ -292,6 +294,7 @@ describe('OCA.Comments.CommentsTabView tests', function() { expect($message.find('.avatar').length).toEqual(1); expect($message.find('.avatar[data-user=anotheruser]').length).toEqual(1); expect($message.find('.avatar[data-user=anotheruser] ~ strong').text()).toEqual('Another User'); + expect($message.find('.avatar[data-user=anotheruser] ~ .contactsmenu-popover').length).toEqual(1); }); it('does not create a comment if the field is empty', function() { view.$el.find('.message').val(' '); @@ -502,6 +505,7 @@ describe('OCA.Comments.CommentsTabView tests', function() { expect($message.find('.avatar').length).toEqual(1); expect($message.find('.avatar[data-user=anotheruser]').length).toEqual(1); expect($message.find('.avatar[data-user=anotheruser] ~ strong').text()).toEqual('Another User'); + expect($message.find('.avatar[data-user=anotheruser] ~ .contactsmenu-popover').length).toEqual(1); // form row is gone $formRow = view.$el.find('.newCommentRow.comment[data-id=3]'); |