Skip to content

Commit d7d810b

Browse files
committed
Improvements to rendering MUC MAM logs before joining
- Add config variable `muc_show_logs_before_join` - Restore nickname form for the original use-case (when not showing MAM logs before joining). - Render nickname form in the `.muc-bottom-panel` when showing MAM logs (instead of in a modal) - Show a message when there aren't any archived messages to show - Fix converse-mam so that chat logs are properly fetched before entering a MUC closes #1266
1 parent a83911d commit d7d810b

13 files changed

+204
-179
lines changed

CHANGES.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,10 @@
1010
To add custom emojis, edit the `emojis.json` file.
1111
- Refactor some presence and status handling code from `converse-core` into `@converse/headless/converse-status`.
1212
- New API [\_converse.api.headlines](https://conversejs.org/docs/html/api/-_converse.api.headlines.html#.get)
13-
- New config option [muc-mention-autocomplete-filter](https://conversejs.org/docs/html/configuration.html#muc-mention-autocomplete-filter)
14-
- New config option [muc-mention-autocomplete-show-avatar](https://conversejs.org/docs/html/configuration.html#muc-mention-autocomplete-show-avatar)
1513
- New config option [allow_message_retraction](https://conversejs.org/docs/html/configuration.html#allow-message-retraction)
14+
- New config option [muc-show-logs-before-join](https://conversejs.org/docs/html/configuration.html#muc-show-logs-before-join)
15+
_ New config option [muc_mention_autocomplete_filter](https://conversejs.org/docs/html/configuration.html#muc_mention_autocomplete_filter)
16+
_ New config option [muc_mention_autocomplete_show_avatar](https://conversejs.org/docs/html/configuration.html#muc_mention_autocomplete_show_avatar)
1617

1718
- #129: Add support for XEP-0156: Disovering Alternative XMPP Connection Methods. Only XML is supported for now.
1819
- #1105: Preliminary support for storing persistent data in IndexedDB instead of localStorage

sass/_chatrooms.scss

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -316,6 +316,18 @@
316316
}
317317
}
318318

319+
.empty-history-feedback {
320+
position: relative;
321+
height: 100%;
322+
color: var(--text-color-lighten-15-percent);
323+
span {
324+
width: 100%;
325+
text-align: center;
326+
position: absolute;
327+
margin-top: 50%;
328+
}
329+
}
330+
319331
.muc-bottom-panel {
320332
border-top: var(--message-input-border-top);
321333
height: 3em;
@@ -324,6 +336,20 @@
324336
font-size: var(--font-size-small);
325337
background-color: var(--chatroom-head-color);
326338
color: white;
339+
340+
&.muc-bottom-panel--nickname {
341+
padding: 0;
342+
height: 16em;
343+
344+
.chatroom-form-container {
345+
border-radius: 0 !important;
346+
347+
.chatroom-form {
348+
padding-top: 2em;
349+
padding-bottom: 0;
350+
}
351+
}
352+
}
327353
}
328354

329355
.sendXMPPMessage {

spec/mam.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@
196196
</iq>`);
197197
_converse.connection._dataRecv(test_utils.createRequest(result));
198198
await u.waitUntil(() => view.model.messages.length === 5);
199-
expect(view.model.fetchArchivedMessages.calls.count()).toBe(3);
199+
expect(view.model.fetchArchivedMessages.calls.count()).toBe(5);
200200
const msg_els = view.content.querySelectorAll('.chat-msg__text');
201201
expect(Array.from(msg_els).map(e => e.textContent).join(' ')).toBe("2nd Message 3rd Message 4th Message 5th Message 6th Message");
202202
done();

spec/muc.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1547,7 +1547,7 @@
15471547
expect(presencebroadcast.length).toBe(1);
15481548
presencebroadcast[0].value = ['moderator'];
15491549

1550-
view.el.querySelector('input[type="submit"]').click();
1550+
view.el.querySelector('.chatroom-form input[type="submit"]').click();
15511551

15521552
const sent_stanza = sent_IQ.nodeTree;
15531553
expect(sent_stanza.querySelector('field[var="muc#roomconfig_membersonly"] value').textContent.trim()).toBe('1');
@@ -2578,7 +2578,7 @@
25782578
expect(el.textContent.trim()).toBe("Configuration for [email protected]");
25792579
sizzle('[name="muc#roomconfig_membersonly"]', chatroomview.el).pop().click();
25802580
sizzle('[name="muc#roomconfig_roomname"]', chatroomview.el).pop().value = "New room name"
2581-
chatroomview.el.querySelector('.btn-primary').click();
2581+
chatroomview.el.querySelector('.chatroom-form input[type="submit"]').click();
25822582

25832583
iq = await u.waitUntil(() => _.filter(IQs, iq => u.matchesSelector(iq, `iq[to="${jid}"][type="set"]`)).pop());
25842584
const result = $iq({

spec/muc_messages.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -979,7 +979,7 @@
979979
await u.waitUntil(() => view.el.querySelector('.chat-msg__text').textContent ===
980980
'hello z3r0 gibson sw0rdf1sh, how are you?', 500);
981981

982-
const correction = _converse.connection.send.calls.all()[2].args[0];
982+
const correction = _converse.connection.send.calls.all()[3].args[0];
983983
expect(correction.toLocaleString())
984984
.toBe(`<message from="[email protected]/orchard" id="${correction.nodeTree.getAttribute("id")}" `+
985985
`to="[email protected]" type="groupchat" `+

0 commit comments

Comments
 (0)