igniterealtime / pade

Pàdé (Yoruba word for Meet) is a browser extension (Chrome/Edge) based unified communications desktop client for Openfire.
https://igniterealtime.github.io/pade/
Apache License 2.0
105 stars 47 forks source link

Add support for message threading #172

Closed deleolajide closed 5 years ago

deleolajide commented 5 years ago

Use the <subject> and the <thread> elements in the XMPP groupchat <message> stanza to implement messaging threading in the style of Zulip.

See https://zulipchat.com/help/about-streams-and-topics

deleolajide commented 5 years ago

Done. Now available in version 1.2.6

Message threading requires a chat room that allows participants to change the room subject. New topics are created every time the chat room subject is changed. The user can select from a list of topics and set an active topic which will be used for the thread value of every message sent and also used to filter messages shown in the Converse chatroom.

For backward compatibility with XMPP clients that don't set a thread value, the user can choose to ignore these messages or set their thread value as the current room subject value. When the user sets an active topic, a groupchat /me message can be optionally broadcast to other participants.

To use, first, enable thread messaging in Converse settings

image

Next open a chatroom with permissions to change the subject and use the /topic command to set the room subject and create a new topic.

image

This should re-open the chat room with the threading now active

image

Check the info panel to see the updated topic threads list

image

Selecting All Topics resets the threading and returns the chat back to un-threaded

image