From 8d3a6e5ef98a01f41d6a48ca5102412eafae521c Mon Sep 17 00:00:00 2001 From: Richard Hansen Date: Sun, 5 Dec 2021 22:34:57 -0500 Subject: [PATCH] chat: Move chat message handling to `chat.js` --- src/ep.json | 4 +++- src/static/js/chat.js | 26 ++++++++++++++++++++++++++ src/static/js/collab_client.js | 23 ----------------------- 3 files changed, 29 insertions(+), 24 deletions(-) diff --git a/src/ep.json b/src/ep.json index ad357846c..0c3179a64 100644 --- a/src/ep.json +++ b/src/ep.json @@ -15,7 +15,9 @@ { "name": "chat", "client_hooks": { - "aceKeyEvent": "ep_etherpad-lite/static/js/chat" + "aceKeyEvent": "ep_etherpad-lite/static/js/chat", + "handleClientMessage_CHAT_MESSAGE": "ep_etherpad-lite/static/js/chat", + "handleClientMessage_CHAT_MESSAGES": "ep_etherpad-lite/static/js/chat" } }, { diff --git a/src/static/js/chat.js b/src/static/js/chat.js index 43fa8efd4..9dd93932e 100755 --- a/src/static/js/chat.js +++ b/src/static/js/chat.js @@ -306,3 +306,29 @@ exports.aceKeyEvent = (hookName, {evt}) => { evt.preventDefault(); return true; }; + +exports.handleClientMessage_CHAT_MESSAGE = (hookName, {msg}) => { + exports.chat.addMessage(msg.message, true, false); +}; + +exports.handleClientMessage_CHAT_MESSAGES = (hookName, {msg}) => { + for (let i = msg.messages.length - 1; i >= 0; i--) { + exports.chat.addMessage(msg.messages[i], true, true); + } + if (!exports.chat.gotInitalMessages) { + exports.chat.scrollDown(); + exports.chat.gotInitalMessages = true; + exports.chat.historyPointer = clientVars.chatHead - msg.messages.length; + } + + // messages are loaded, so hide the loading-ball + $('#chatloadmessagesball').css('display', 'none'); + + // there are less than 100 messages or we reached the top + if (exports.chat.historyPointer <= 0) { + $('#chatloadmessagesbutton').css('display', 'none'); + } else { + // there are still more messages, re-show the load-button + $('#chatloadmessagesbutton').css('display', 'block'); + } +}; diff --git a/src/static/js/collab_client.js b/src/static/js/collab_client.js index cd6c78ad0..fe6f5319e 100644 --- a/src/static/js/collab_client.js +++ b/src/static/js/collab_client.js @@ -22,7 +22,6 @@ * limitations under the License. */ -const chat = require('./chat').chat; const hooks = require('./pluginfw/hooks'); const browser = require('./vendors/browser'); @@ -266,28 +265,6 @@ const getCollabClient = (ace2editor, serverVars, initialUserInfo, options, _pad) } } else if (msg.type === 'CLIENT_MESSAGE') { callbacks.onClientMessage(msg.payload); - } else if (msg.type === 'CHAT_MESSAGE') { - chat.addMessage(msg.message, true, false); - } else if (msg.type === 'CHAT_MESSAGES') { - for (let i = msg.messages.length - 1; i >= 0; i--) { - chat.addMessage(msg.messages[i], true, true); - } - if (!chat.gotInitalMessages) { - chat.scrollDown(); - chat.gotInitalMessages = true; - chat.historyPointer = clientVars.chatHead - msg.messages.length; - } - - // messages are loaded, so hide the loading-ball - $('#chatloadmessagesball').css('display', 'none'); - - // there are less than 100 messages or we reached the top - if (chat.historyPointer <= 0) { - $('#chatloadmessagesbutton').css('display', 'none'); - } else { - // there are still more messages, re-show the load-button - $('#chatloadmessagesbutton').css('display', 'block'); - } } // HACKISH: User messages do not have "payload" but "userInfo", so that all