* Add test and changelog entry
* Also show message subject if available
This commit is contained in:
JC Brand 2019-01-28 10:06:23 +01:00
parent 3c0e3d3fab
commit d97deaea80
6 changed files with 37 additions and 4 deletions

View File

@ -3,6 +3,7 @@
## 4.1.1 (unreleased)
- Accessibility: Tag the chat-content as an ARIA live region, for screen readers
- #1369 Don't wrongly interpret message with `subject` as a topic change.
- #1408 new config option `roomconfig_whitelist`
- #1421 fix direct invite for membersonly room

View File

@ -11912,6 +11912,9 @@ body.converse-fullscreen {
padding-right: 0.5em; }
#conversejs .message.chat-msg.headline .chat-msg__body {
margin-left: 0; }
#conversejs .message.chat-msg .chat-msg__subject {
font-weight: bold;
clear: right; }
#conversejs .message.chat-msg .chat-msg__text {
padding: 0;
color: var(--message-text-color);

6
dist/converse.js vendored
View File

@ -93518,6 +93518,12 @@ __e(o.spoiler_hint) +
__e(o.label_show) +
'</a>\n </div>\n ';
} ;
__p += '\n ';
if (o.subject) { ;
__p += '\n <div class="chat-msg__subject">' +
__e( o.subject ) +
'</div>\n ';
} ;
__p += '\n <div class="chat-msg__text';
if (o.is_spoiler) { ;
__p += ' spoiler collapsed';

View File

@ -149,6 +149,11 @@
}
}
.chat-msg__subject {
font-weight: bold;
clear: right;
}
.chat-msg__text {
padding: 0;
color: var(--message-text-color);

View File

@ -12,7 +12,7 @@
Backbone = converse.env.Backbone,
u = converse.env.utils;
describe("Chatrooms", function () {
describe("Groupchats", function () {
describe("The \"rooms\" API", function () {
@ -1937,7 +1937,7 @@
await test_utils.openAndEnterChatRoom(_converse, 'jdev', 'conference.jabber.org', 'jc');
const text = 'Jabber/XMPP Development | RFCs and Extensions: http://xmpp.org/ | Protocol and XSF discussions: xsf@muc.xmpp.org';
const stanza = Strophe.xmlHtmlNode(
let stanza = Strophe.xmlHtmlNode(
'<message xmlns="jabber:client" to="jc@opkode.com/_converse.js-60429116" type="groupchat" from="jdev@conference.jabber.org/ralphm">'+
' <subject>'+text+'</subject>'+
' <delay xmlns="urn:xmpp:delay" stamp="2014-02-04T09:35:39Z" from="jdev@conference.jabber.org"/>'+
@ -1945,11 +1945,26 @@
'</message>').firstChild;
_converse.connection._dataRecv(test_utils.createRequest(stanza));
const view = _converse.chatboxviews.get('jdev@conference.jabber.org');
await new Promise((resolve, reject) => view.once('messageInserted', resolve));
const chat_content = view.el.querySelector('.chat-content');
await new Promise((resolve, reject) => view.model.once('change:subject', resolve));
let chat_content = view.el.querySelector('.chat-content');
expect(sizzle('.chat-event:last').pop().textContent).toBe('Topic set by ralphm');
expect(sizzle('.chat-topic:last').pop().textContent).toBe(text);
expect(view.el.querySelector('.chatroom-description').textContent).toBe(text);
stanza = Strophe.xmlHtmlNode(
`<message xmlns="jabber:client" to="jc@opkode.com/_converse.js-60429116" type="groupchat" from="jdev@conference.jabber.org/ralphm">
<subject>This is a message subject</subject>
<body>This is a message</body>
</message>`).firstChild;
_converse.connection._dataRecv(test_utils.createRequest(stanza));
await new Promise((resolve, reject) => view.once('messageInserted', resolve));
chat_content = view.el.querySelector('.chat-content');
expect(sizzle('.chat-topic').length).toBe(1);
expect(sizzle('.chat-msg__subject').length).toBe(1);
expect(sizzle('.chat-msg__subject').pop().textContent).toBe('This is a message subject');
expect(sizzle('.chat-msg__text').length).toBe(1);
expect(sizzle('.chat-msg__text').pop().textContent).toBe('This is a message');
expect(view.el.querySelector('.chatroom-description').textContent).toBe(text);
done();
}));

View File

@ -23,6 +23,9 @@
<a class="badge badge-info spoiler-toggle" data-toggle-state="closed" href="#"><i class="fa fa-eye"></i>{{{o.label_show}}}</a>
</div>
{[ } ]}
{[ if (o.subject) { ]}
<div class="chat-msg__subject">{{{ o.subject }}}</div>
{[ } ]}
<div class="chat-msg__text{[ if (o.is_spoiler) { ]} spoiler collapsed{[ } ]}"><!-- message gets added here via renderMessage --></div>
<div class="chat-msg__media"></div>
{[ if (!o.is_me_message) { ]}</div>{[ } ]}