diff --git a/src/static/js/collab_client.js b/src/static/js/collab_client.js index ad493528..fd0d9d44 100644 --- a/src/static/js/collab_client.js +++ b/src/static/js/collab_client.js @@ -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. * 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; } - + if (userSet[id]) { userSet[id] = userInfo; @@ -405,7 +405,7 @@ function getCollabClient(ace2editor, serverVars, initialUserInfo, options, _pad) $("#chatloadmessagesball").css("display", "none"); // there are less than 100 messages or we reached the top - if(chat.historyPointer <= 0) + if(chat.historyPointer <= 0) $("#chatloadmessagesbutton").css("display", "none"); else // there are still more messages, re-show the load-button $("#chatloadmessagesbutton").css("display", "block"); @@ -414,6 +414,12 @@ function getCollabClient(ace2editor, serverVars, initialUserInfo, options, _pad) { 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}); } @@ -441,7 +447,7 @@ function getCollabClient(ace2editor, serverVars, initialUserInfo, options, _pad) { colorId = clientVars.colorPalette[colorId]; } - + var cssColor = colorId; if (inactive) { diff --git a/src/static/js/pad_userlist.js b/src/static/js/pad_userlist.js index 22dab40a..7ac960d0 100644 --- a/src/static/js/pad_userlist.js +++ b/src/static/js/pad_userlist.js @@ -508,12 +508,18 @@ var paduserlist = (function() }); // }, - users: function(){ - // Returns an object of users who have been on this pad - // Firstly we have to get live data.. - var userList = otherUsersInfo; + usersOnline: function() + { + // Returns an object of users who are currently online on this pad + var userList = [].concat(otherUsersInfo); // Make a copy of the otherUsersInfo, otherwise every call to users modifies the referenced array // Now we need to add ourselves.. userList.push(myUserInfo); + return userList; + }, + users: function(){ + // Returns an object of users who have been on this pad + var userList = self.usersOnline(); + // Now we add historical authors var historical = clientVars.collab_client_vars.historicalAuthorData; for (var key in historical){ @@ -528,7 +534,6 @@ var paduserlist = (function() if(exists === false){ userList.push(historical[key]); } - } return userList; },