UltrasonicNXT has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/329648 )
Change subject: Only show username & avatar once when a user sends multiple messages ...................................................................... Only show username & avatar once when a user sends multiple messages Bug:T146232 Change-Id: I35eac53c152b7fc6e31206581285b296409b8c25 --- M MediaWikiChat.js M extension.json 2 files changed, 32 insertions(+), 28 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/MediaWikiChat refs/changes/48/329648/1 diff --git a/MediaWikiChat.js b/MediaWikiChat.js index d53930b..2044f3c 100644 --- a/MediaWikiChat.js +++ b/MediaWikiChat.js @@ -283,46 +283,50 @@ }, addMessage: function( userId, message, timestamp ) { + var fromUser = MediaWikiChat.userData[userId]; + var currentUser = MediaWikiChat.userData[mw.config.get( 'wgUserId' )] + if ( message.substring( 0, 4 ) == '/me ' && mw.config.get( 'wgChatMeCommand' ) ) { - return MediaWikiChat.addSystemMessage( '* ' + MediaWikiChat.userData[userId].name + message.substring( 3 ), timestamp ); + return MediaWikiChat.addSystemMessage( '* ' + fromUser.name + message.substring( 3 ), timestamp ); } - var user = MediaWikiChat.userData[userId]; - var html = '<tr class="mwchat-message">'; var mention = false; - - if ( - mw.config.get( 'wgUserId' ) != userId && // prevents flashing when you sent the message yourself - message.toLowerCase().indexOf( mw.user.getName().toLowerCase() ) != -1 - ) { - mention = true; - MediaWikiChat.flashMention( mw.message( 'chat-mentioned-by', user.name, user.gender ).text(), message ); - } else { - if ( userId != mw.user.getId() ) { // don't flash if we sent the message - MediaWikiChat.flash( mw.message( 'chat-message-from', user.name, user.gender ).text(), message ); + if ( fromUser.name != currentUser.name ) { // prevents flashing when you sent the message yourself + if ( message.toLowerCase().indexOf( currentUser.name.toLowerCase() ) != -1) { + mention = true; + MediaWikiChat.flashMention( mw.message( 'chat-mentioned-by', fromUser.name, fromUser.gender ).text(), message ); + } else { + MediaWikiChat.flash( mw.message( 'chat-message-from', fromUser.name, fromUser.gender ).text(), message ); } } + var messages = $( '#mwchat-table tr.mwchat-parent' ); + var lastParent = $( messages[messages.length - 1] ); + + if ( lastParent.attr( 'data-username' ) == fromUser.name ) { + lastParent.children( '.mwchat-rowspan' ).attr( 'rowspan', Number( lastParent.children( '.mwchat-rowspan' ).attr( 'rowspan' ) ) + 1 ); // increment the rowspan - html += '<td class="mwchat-item-user">'; - if ( mw.config.get( 'wgChatLinkUsernames' ) ) { - var userURL = mw.config.get( 'wgScriptPath' ) + '/index.php?title=User:' + mw.html.escape( user.name ); - var userTitle = mw.config.get( 'wgFormattedNamespaces' )[2] + ':' + mw.html.escape( user.name ); // @see T140546 - html += '<a href="' + userURL + '" title="' + userTitle + '" target="_blank">' + mw.html.escape( user.name ) + '</a>'; + var html = '<tr data-username="' + fromUser.name + '" class="mwchat-message">'; } else { - html += mw.html.escape( user.name ); - } - html += '</td>'; - html += '<td class="mwchat-item-avatar">'; - if ( mw.config.get( 'wgChatSocialAvatars' ) ) { - html += '<img src="' + user.avatar + '" /></td>'; + var html = '<tr data-username="' + fromUser.name + '" class="mwchat-message mwchat-parent">'; + + html += '<td rowspan=1 class="mwchat-item-user mwchat-rowspan">'; + if ( mw.config.get( 'wgChatLinkUsernames' ) ) { + var userURL = mw.config.get( 'wgScriptPath' ) + '/index.php?title=User:' + mw.html.escape( fromUser.name ); + var userTitle = mw.config.get( 'wgFormattedNamespaces' )[2] + ':' + mw.html.escape( fromUser.name ); // @see T140546 + html += '<a href="' + userURL + '" title="' + userTitle + '" target="_blank">' + mw.html.escape( fromUser.name ) + '</a>'; + } else { + html += mw.html.escape( fromUser.name ); + } + html += '</td><td rowspan=1 class="mwchat-item-avatar mwchat-rowspan">'; + if ( mw.config.get( 'wgChatSocialAvatars' ) ) { + html += '<img src="' + fromUser.avatar + '" /></td>'; + } } html += '<td class="mwchat-item-messagecell"><span class="mwchat-item-message"'; if ( mention ) { html += ' data-read="true"'; } - html += '>'; - html += message; - html += '</span>'; + html += '>'+ message + '</span>'; html += MediaWikiChat.htmlTimestamp( timestamp ); html += '</td></tr>'; diff --git a/extension.json b/extension.json index 41bb56c..52d5fd2 100644 --- a/extension.json +++ b/extension.json @@ -1,6 +1,6 @@ { "name": "MediaWikiChat", - "version": "2.17.5", + "version": "2.18.0", "author": [ "Adam Carter/UltrasonicNXT" ], -- To view, visit https://gerrit.wikimedia.org/r/329648 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I35eac53c152b7fc6e31206581285b296409b8c25 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/MediaWikiChat Gerrit-Branch: master Gerrit-Owner: UltrasonicNXT <adamr_car...@btinternet.com> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits