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>
This commit is contained in:
parent
002018d8ad
commit
0db3a413b3
2 changed files with 4 additions and 0 deletions
Binary file not shown.
|
@ -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]');
|
||||
|
|
Loading…
Reference in a new issue