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]
- 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]
- 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]
- Don't play sound notifications for OTR messages which are setting up an
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
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
----------------

View File

@ -31,6 +31,8 @@
this.updateSettings({
show_desktop_notifications: true,
chatstate_notification_blacklist: [],
// ^ a list of JIDs to ignore concerning chat state notifications
play_sounds: false,
sounds_path: '/sounds/',
notification_icon: '/logo/conversejs.png'
@ -127,6 +129,10 @@
/* Creates an HTML5 Notification to inform of a change in a
* 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,
message = null;
if (chat_state === 'offline') {