From c0b9c034810708cadc7e9b99fff2aca3c36512b2 Mon Sep 17 00:00:00 2001 From: Arnaud Fontaine Date: Fri, 22 Jun 2018 15:35:25 +0900 Subject: [PATCH 1/3] erp5_web_jabber_client: Desktop Notifications when receiving messages. --- .../web_page_module/jabber_gadget_jio_js.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/bt5/erp5_web_jabber_client/PathTemplateItem/web_page_module/jabber_gadget_jio_js.js b/bt5/erp5_web_jabber_client/PathTemplateItem/web_page_module/jabber_gadget_jio_js.js index 2a8254808f9..465545fd32e 100644 --- a/bt5/erp5_web_jabber_client/PathTemplateItem/web_page_module/jabber_gadget_jio_js.js +++ b/bt5/erp5_web_jabber_client/PathTemplateItem/web_page_module/jabber_gadget_jio_js.js @@ -270,6 +270,19 @@ // Only notify when page has no focused. // It simplifies a lot notification status document.querySelector("link[rel='shortcut icon']").setAttribute("href", "gadget_jabberclient_notification_warning.ico"); + + if ("Notification" in window) { + if (Notification.permission === "granted") { + var notification = new Notification(argument_list[0], {body: argument_list[2]}); + } + else if (Notification.permission !== "denied") { + Notification.requestPermission(function (permission) { + if (permission === "granted") { + var notification = new Notification(argument_list[0], {body: argument_list[2]}); + } + }); + } + } } var gadget = this; -- 2.30.9 From ad602133a0ff199d786d056a0938e378ac7bb9d9 Mon Sep 17 00:00:00 2001 From: Vincent Bechu Date: Wed, 3 Oct 2018 15:42:36 +0000 Subject: [PATCH 2/3] [erp5_web_jabber_client] Use promise instead synchron code --- .../web_page_module/jabber_gadget_jio_js.js | 24 +++++++++---------- .../web_page_module/jabber_gadget_jio_js.xml | 4 ++-- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/bt5/erp5_web_jabber_client/PathTemplateItem/web_page_module/jabber_gadget_jio_js.js b/bt5/erp5_web_jabber_client/PathTemplateItem/web_page_module/jabber_gadget_jio_js.js index 465545fd32e..e65799b1961 100644 --- a/bt5/erp5_web_jabber_client/PathTemplateItem/web_page_module/jabber_gadget_jio_js.js +++ b/bt5/erp5_web_jabber_client/PathTemplateItem/web_page_module/jabber_gadget_jio_js.js @@ -193,6 +193,16 @@ }); } + function createNotification(title, body) { + if (window.Notification !== undefined) { + return window.Notification.requestPermission() + .then(function (result) { + if (result === 'granted') { + return new window.Notification(title, {body: body}); + } + }); + } + } rJS(window) .ready(function (g) { g.props = {}; @@ -265,24 +275,12 @@ .allowPublicAcquisition("notifyXMPPMessageTextReceived", function (argument_list) { - if (!document.hasFocus()) { // Only notify when page has no focused. // It simplifies a lot notification status document.querySelector("link[rel='shortcut icon']").setAttribute("href", "gadget_jabberclient_notification_warning.ico"); - if ("Notification" in window) { - if (Notification.permission === "granted") { - var notification = new Notification(argument_list[0], {body: argument_list[2]}); - } - else if (Notification.permission !== "denied") { - Notification.requestPermission(function (permission) { - if (permission === "granted") { - var notification = new Notification(argument_list[0], {body: argument_list[2]}); - } - }); - } - } + createNotification(argument_list[0], argument_list[0][2]); } var gadget = this; diff --git a/bt5/erp5_web_jabber_client/PathTemplateItem/web_page_module/jabber_gadget_jio_js.xml b/bt5/erp5_web_jabber_client/PathTemplateItem/web_page_module/jabber_gadget_jio_js.xml index 37e5c5bae06..650ae5aef45 100644 --- a/bt5/erp5_web_jabber_client/PathTemplateItem/web_page_module/jabber_gadget_jio_js.xml +++ b/bt5/erp5_web_jabber_client/PathTemplateItem/web_page_module/jabber_gadget_jio_js.xml @@ -230,7 +230,7 @@ serial - 967.46266.46579.39065 + 970.45900.44706.11212 state @@ -248,7 +248,7 @@ - 1526979580.7 + 1538581284.91 UTC -- 2.30.9 From cec042df555461540d4f86ae98e559cd3033f042 Mon Sep 17 00:00:00 2001 From: Vincent Bechu Date: Thu, 4 Oct 2018 14:27:08 +0000 Subject: [PATCH 3/3] [erp5_jabber_client] Handle redirection on desktop notification click --- .../web_page_module/jabber_gadget_jio_js.js | 22 ++++++++++++++++--- .../web_page_module/jabber_gadget_jio_js.xml | 4 ++-- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/bt5/erp5_web_jabber_client/PathTemplateItem/web_page_module/jabber_gadget_jio_js.js b/bt5/erp5_web_jabber_client/PathTemplateItem/web_page_module/jabber_gadget_jio_js.js index e65799b1961..e630238ab34 100644 --- a/bt5/erp5_web_jabber_client/PathTemplateItem/web_page_module/jabber_gadget_jio_js.js +++ b/bt5/erp5_web_jabber_client/PathTemplateItem/web_page_module/jabber_gadget_jio_js.js @@ -193,12 +193,27 @@ }); } - function createNotification(title, body) { + function createNotification(gadget, message) { if (window.Notification !== undefined) { return window.Notification.requestPermission() .then(function (result) { if (result === 'granted') { - return new window.Notification(title, {body: body}); + var notification = new window.Notification(message[0], {body: message[2]}); + notification.onclick = function () { + window.focus(); + return gadget.getUrlParameter('jio_key') + .push(function (key) { + if (key !== message[0]) { + return gadget.redirect({ + 'command': 'change', + 'options': { + 'jio_key': message[0], + 'page': 'jabberclient_dialog' + } + }); + } + }); + }; } }); } @@ -280,7 +295,7 @@ // It simplifies a lot notification status document.querySelector("link[rel='shortcut icon']").setAttribute("href", "gadget_jabberclient_notification_warning.ico"); - createNotification(argument_list[0], argument_list[0][2]); + createNotification(this, argument_list); } var gadget = this; @@ -394,6 +409,7 @@ .declareAcquiredMethod('redirect', 'redirect') .declareAcquiredMethod('getUrlFor', 'getUrlFor') .declareAcquiredMethod('refresh', 'refresh') + .declareAcquiredMethod('getUrlParameter', 'getUrlParameter') .declareMethod('createJio', function () { return this.state_parameter_dict.persistent_jio.createJio({ diff --git a/bt5/erp5_web_jabber_client/PathTemplateItem/web_page_module/jabber_gadget_jio_js.xml b/bt5/erp5_web_jabber_client/PathTemplateItem/web_page_module/jabber_gadget_jio_js.xml index 650ae5aef45..e2d1c6dde7d 100644 --- a/bt5/erp5_web_jabber_client/PathTemplateItem/web_page_module/jabber_gadget_jio_js.xml +++ b/bt5/erp5_web_jabber_client/PathTemplateItem/web_page_module/jabber_gadget_jio_js.xml @@ -230,7 +230,7 @@ serial - 970.45900.44706.11212 + 970.47251.8439.43008 state @@ -248,7 +248,7 @@ - 1538581284.91 + 1538662464.71 UTC -- 2.30.9