Commit ae6a7f4b authored by JC Brand's avatar JC Brand

Option to ignore certain JIDs' chat state notifications

parent 9a449e36
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
As a result `converse.listen.on('message');` has been deprecated, use `converse.stanza.on('message');` instead. [jcbrand] As a result `converse.listen.on('message');` has been deprecated, use `converse.stanza.on('message');` instead. [jcbrand]
- Emit an event `chatBoxInitialized` once a chat box's initialize method has been called. [jcbrand] - Emit an event `chatBoxInitialized` once a chat box's initialize method has been called. [jcbrand]
- Emit an event `statusInitialized` once the user's own status has been initialized upon startup. [jcbrand] - Emit an event `statusInitialized` once the user's own status has been initialized upon startup. [jcbrand]
- New config option [chatstate_notification_blacklist](https://conversejs.org/docs/html/configuration.html#chatstate_notification_blacklist) [jcbrand]
- Split converse.js up into different plugin modules. [jcbrand] - Split converse.js up into different plugin modules. [jcbrand]
- Don't play sound notifications for OTR messages which are setting up an - Don't play sound notifications for OTR messages which are setting up an
encrypted session. [jcbrand] encrypted session. [jcbrand]
......
...@@ -298,6 +298,23 @@ This setting can only be used together with ``allow_otr = true``. ...@@ -298,6 +298,23 @@ This setting can only be used together with ``allow_otr = true``.
to retrieve your private key and read your all the chat messages in your to retrieve your private key and read your all the chat messages in your
current session. Previous sessions however cannot be decrypted. current session. Previous sessions however cannot be decrypted.
chatstate_notification_blacklist
---------------------------------
* Default: ``[]``
A list of JIDs to be ignored when showing desktop notifications of changed chat states.
Some user's clients routinely connect and disconnect (likely on mobile) and
each time a chat state notificaion is received (``online`` when connecting and
then ``offline`` when disconnecting).
When desktop notifications are turned on (see `show-desktop-notifications`_),
then you'll receive notification messages each time this happens.
Receiving constant notifications that a user's client is connecting and disconnecting
is annoying, so this option allows you to ignore those JIDs.
csi_waiting_time csi_waiting_time
---------------- ----------------
......
...@@ -31,6 +31,8 @@ ...@@ -31,6 +31,8 @@
this.updateSettings({ this.updateSettings({
show_desktop_notifications: true, show_desktop_notifications: true,
chatstate_notification_blacklist: [],
// ^ a list of JIDs to ignore concerning chat state notifications
play_sounds: false, play_sounds: false,
sounds_path: '/sounds/', sounds_path: '/sounds/',
notification_icon: '/logo/conversejs.png' notification_icon: '/logo/conversejs.png'
...@@ -127,6 +129,10 @@ ...@@ -127,6 +129,10 @@
/* Creates an HTML5 Notification to inform of a change in a /* Creates an HTML5 Notification to inform of a change in a
* contact's chat state. * contact's chat state.
*/ */
if (_.contains(converse.chatstate_notification_blacklist, contact.get('jid'))) {
// Don't notify if the user is being ignored.
return;
}
var chat_state = contact.chat_status, var chat_state = contact.chat_status,
message = null; message = null;
if (chat_state === 'offline') { if (chat_state === 'offline') {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment