mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-04-24 17:36:14 -04:00
chat: Allow chatNewMessage
hook to control rendering
This commit is contained in:
parent
2597b940f4
commit
f1f4ed7c58
4 changed files with 27 additions and 6 deletions
|
@ -132,6 +132,7 @@ exports.chat = (() => {
|
|||
author: msg.userId,
|
||||
text: padutils.escapeHtmlWithClickableLinks(msg.text, '_blank'),
|
||||
message: msg,
|
||||
rendered: null,
|
||||
sticky: false,
|
||||
timestamp: msg.time,
|
||||
timeStr: (() => {
|
||||
|
@ -164,7 +165,7 @@ exports.chat = (() => {
|
|||
|
||||
await hooks.aCallAll('chatNewMessage', ctx);
|
||||
const cls = authorClass(ctx.author);
|
||||
const chatMsg = $('<p>')
|
||||
const chatMsg = ctx.rendered != null ? $(ctx.rendered) : $('<p>')
|
||||
.attr('data-authorId', ctx.author)
|
||||
.addClass(cls)
|
||||
.append($('<b>').text(`${ctx.authorName}:`))
|
||||
|
|
|
@ -79,5 +79,18 @@ describe('chat hooks', function () {
|
|||
helper.sendChatMessage(`${msg}{enter}`),
|
||||
]);
|
||||
});
|
||||
|
||||
it('`rendered` overrides default rendering', async function () {
|
||||
let rendered;
|
||||
await Promise.all([
|
||||
checkHook('chatNewMessage', (context) => {
|
||||
expect(context.rendered == null).to.be.ok();
|
||||
rendered = context.rendered = helper.padChrome$.document.createElement('p');
|
||||
rendered.append('message rendering overridden');
|
||||
}),
|
||||
helper.sendChatMessage(`${this.test.title}{enter}`),
|
||||
]);
|
||||
expect(helper.chatTextParagraphs().last()[0]).to.be(rendered);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue