Option to ignore certain JIDs' chat state notifications

This commit is contained in:
JC Brand 2016-03-18 09:10:14 +00:00
parent 9a449e3615
commit ae6a7f4b02
3 changed files with 24 additions and 0 deletions

View File

@ -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]

View File

@ -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
---------------- ----------------

View File

@ -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 @@
/* 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') {