From 7a999ee398595429f70df8e7533e82371af3f3a2 Mon Sep 17 00:00:00 2001 From: Neil Oosten Date: Fri, 7 Oct 2016 21:14:23 -0400 Subject: [PATCH] hooks: allow to set the duration of the gritter notification when a new chat message arrives This is done adding a new "duration" parameter to the chatNewMessage() client side hook. --- doc/api/hooks_client-side.md | 1 + src/static/js/chat.js | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) mode change 100644 => 100755 src/static/js/chat.js diff --git a/doc/api/hooks_client-side.md b/doc/api/hooks_client-side.md index 39fbd638e..799fd5ce5 100755 --- a/doc/api/hooks_client-side.md +++ b/doc/api/hooks_client-side.md @@ -223,6 +223,7 @@ Things in context: 4. sticky (boolean) - if you want the gritter notification bubble to fade out on its own or just sit there 5. timestamp - the timestamp of the chat message 6. timeStr - the timestamp as a formatted string +7. duration - for how long in milliseconds should the gritter notification appear (0 to disable) This hook is called on the client side whenever a chat message is received from the server. It can be used to create different notifications for chat messages. diff --git a/src/static/js/chat.js b/src/static/js/chat.js old mode 100644 new mode 100755 index f9bb47c1b..8cc1d76c1 --- a/src/static/js/chat.js +++ b/src/static/js/chat.js @@ -149,7 +149,8 @@ var chat = (function() "text" : text, "sticky" : false, "timestamp" : msg.time, - "timeStr" : timeStr + "timeStr" : timeStr, + "duration" : 4000 } // is the users focus already in the chatbox? @@ -186,7 +187,7 @@ var chat = (function() count++; $("#chatcounter").text(count); - if(!chatOpen) { + if(!chatOpen && ctx.duration > 0) { $.gritter.add({ // (string | mandatory) the heading of the notification title: ctx.authorName, @@ -195,7 +196,7 @@ var chat = (function() // (bool | optional) if you want it to fade out on its own or just sit there sticky: ctx.sticky, // (int | optional) the time you want it to be alive for before fading out - time: '4000' + time: ctx.duration }); } }