Fix handleClientMessage_USER_* payloads not containing user info

pull/2866/head
Mikk Andresen 2015-12-31 14:19:23 +02:00
parent 4ad759dd25
commit aab7186486
1 changed files with 10 additions and 4 deletions

View File

@ -1,5 +1,5 @@
/** /**
* This code is mostly from the old Etherpad. Please help us to comment this code. * This code is mostly from the old Etherpad. Please help us to comment this code.
* This helps other people to understand this code better and helps them to improve it. * This helps other people to understand this code better and helps them to improve it.
* TL;DR COMMENTS ON THIS FILE ARE HIGHLY APPRECIATED * TL;DR COMMENTS ON THIS FILE ARE HIGHLY APPRECIATED
*/ */
@ -351,7 +351,7 @@ function getCollabClient(ace2editor, serverVars, initialUserInfo, options, _pad)
msg.userInfo.colorId = initialUserInfo.globalUserColor; msg.userInfo.colorId = initialUserInfo.globalUserColor;
} }
if (userSet[id]) if (userSet[id])
{ {
userSet[id] = userInfo; userSet[id] = userInfo;
@ -405,7 +405,7 @@ function getCollabClient(ace2editor, serverVars, initialUserInfo, options, _pad)
$("#chatloadmessagesball").css("display", "none"); $("#chatloadmessagesball").css("display", "none");
// there are less than 100 messages or we reached the top // there are less than 100 messages or we reached the top
if(chat.historyPointer <= 0) if(chat.historyPointer <= 0)
$("#chatloadmessagesbutton").css("display", "none"); $("#chatloadmessagesbutton").css("display", "none");
else // there are still more messages, re-show the load-button else // there are still more messages, re-show the load-button
$("#chatloadmessagesbutton").css("display", "block"); $("#chatloadmessagesbutton").css("display", "block");
@ -414,6 +414,12 @@ function getCollabClient(ace2editor, serverVars, initialUserInfo, options, _pad)
{ {
callbacks.onServerMessage(msg.payload); callbacks.onServerMessage(msg.payload);
} }
//HACKISH: User messages do not have "payload" but "userInfo", so that all "handleClientMessage_USER_" hooks would work, populate payload
//FIXME: USER_* messages to have "payload" property instead of "userInfo", seems like a quite a big work
if(msg.type.indexOf("USER_") > -1) {
msg.payload = msg.userInfo;
}
hooks.callAll('handleClientMessage_' + msg.type, {payload: msg.payload}); hooks.callAll('handleClientMessage_' + msg.type, {payload: msg.payload});
} }
@ -441,7 +447,7 @@ function getCollabClient(ace2editor, serverVars, initialUserInfo, options, _pad)
{ {
colorId = clientVars.colorPalette[colorId]; colorId = clientVars.colorPalette[colorId];
} }
var cssColor = colorId; var cssColor = colorId;
if (inactive) if (inactive)
{ {