From f88256bbf66a81e9cb65f11a05b0bedbc06eb396 Mon Sep 17 00:00:00 2001 From: raytracer Date: Tue, 25 Nov 2014 15:36:01 +0100 Subject: [PATCH] added notifications --- public/js/stream_deps.js | 11 +++++++++++ src/client/stream/receive.js | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/public/js/stream_deps.js b/public/js/stream_deps.js index 2c6072e..82fd207 100644 --- a/public/js/stream_deps.js +++ b/public/js/stream_deps.js @@ -196,6 +196,16 @@ var PostViewModel = function() { var receiveMessageCreator = function(name, postViewModel, friendViewModel) { return function(data) { + var showMessage = function(message) { + if ("Notification" in window && Notification.permission === "granted" && + document.hidden) { + var n = new Notification(message); + n.onshow = function () { + setTimeout(n.close.bind(n), 5000); + }; + } + }; + var localdata = JSON.parse(sessionStorage[name]); var BigInteger = forge.jsbn.BigInteger; var pem = localdata.pem; @@ -217,6 +227,7 @@ var receiveMessageCreator = function(name, postViewModel, friendViewModel) { && postViewModel.ids[data._id] === undefined) { postViewModel.ids[data._id] = data._id; var safemessage = $('
').text(message).html(); + showMessage(safemessage); safemessage = safemessage.replace(/(?:\r\n|\r|\n)/g, '
'); postViewModel.posts.unshift(new Post(data.from, data.time, safemessage, data.recipients, name, friendViewModel)); } diff --git a/src/client/stream/receive.js b/src/client/stream/receive.js index 0d4ef73..d225c05 100644 --- a/src/client/stream/receive.js +++ b/src/client/stream/receive.js @@ -1,5 +1,15 @@ var receiveMessageCreator = function(name, postViewModel, friendViewModel) { return function(data) { + var showMessage = function(message) { + if ("Notification" in window && Notification.permission === "granted" && + document.hidden) { + var n = new Notification(message); + n.onshow = function () { + setTimeout(n.close.bind(n), 5000); + }; + } + }; + var localdata = JSON.parse(sessionStorage[name]); var BigInteger = forge.jsbn.BigInteger; var pem = localdata.pem; @@ -21,6 +31,7 @@ var receiveMessageCreator = function(name, postViewModel, friendViewModel) { && postViewModel.ids[data._id] === undefined) { postViewModel.ids[data._id] = data._id; var safemessage = $('
').text(message).html(); + showMessage(safemessage); safemessage = safemessage.replace(/(?:\r\n|\r|\n)/g, '
'); postViewModel.posts.unshift(new Post(data.from, data.time, safemessage, data.recipients, name, friendViewModel)); }