From cb26a4b36bff193877fd0601ea50a519d1fa0448 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Sat, 26 Aug 2017 19:35:32 +0200 Subject: [PATCH] Added notification manager --- .../Browser/BrowserNotification.js | 8 ++-- Message/Notification/NotificationManager.js | 40 +++++++++++++++++++ Message/Notification/NotificationType.enum.js | 20 ++++++++++ .../ServiceWorker/ServiceWorkerNotification | 0 4 files changed, 64 insertions(+), 4 deletions(-) create mode 100644 Message/Notification/NotificationType.enum.js delete mode 100644 Message/Notification/ServiceWorker/ServiceWorkerNotification diff --git a/Message/Notification/Browser/BrowserNotification.js b/Message/Notification/Browser/BrowserNotification.js index b5a83b8..2a66166 100644 --- a/Message/Notification/Browser/BrowserNotification.js +++ b/Message/Notification/Browser/BrowserNotification.js @@ -27,19 +27,19 @@ { let self = this; - if(Notification.permission !== 'granted') { + if(Notification.permission !== 'granted' && Notification.permission !== 'denied') { Notification.requestPermission(function(permission) { if(permission === 'granted') { let msg = new jsOMS.Message.Notification.NotificationMessage(); - self.notify(msg); + self.send(msg); } }); } }; - jsOMS.Message.Notification.Browser.BrowserNotification.prototype.notify = function(msg) + jsOMS.Message.Notification.Browser.BrowserNotification.prototype.send = function(msg) { - + let n = new Notification(/* ... */); }; }(window.jsOMS = window.jsOMS || {})); \ No newline at end of file diff --git a/Message/Notification/NotificationManager.js b/Message/Notification/NotificationManager.js index e69de29..9868838 100644 --- a/Message/Notification/NotificationManager.js +++ b/Message/Notification/NotificationManager.js @@ -0,0 +1,40 @@ +/** + * Browser notification. + * + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @since 1.0.0 + */ +(function (jsOMS) +{ + "use strict"; + + /** @namespace jsOMS.Message.Notification */ + jsOMS.Autoloader.defineNamespace('jsOMS.Message.Notification'); + + jsOMS.Message.Notification.NotificationManager = function() + { + this.appNotifier = new jsOMS.Message.Notification.App.AppNotification(); + this.browserNotifier = new jsOMS.Message.Notification.Browser.BrowserNotification(); + }; + + jsOMS.Message.Notification.NotificationManager.prototype.send = function(message, type) + { + if(jsOMS.Message.Notification.NotificationType.APP_NOTIFICATION === type) { + this.appNotifier.send(message); + } else { + this.browserNotifier.send(message); + } + }; + + jsOMS.Message.Notification.NotificationManager.prototype.getAppNotifier = function() + { + return this.appNotifier; + }; + + jsOMS.Message.Notification.NotificationManager.prototype.getBrowserNotifier = function() + { + return this.browserNotifier; + }; +}(window.jsOMS = window.jsOMS || {})); \ No newline at end of file diff --git a/Message/Notification/NotificationType.enum.js b/Message/Notification/NotificationType.enum.js new file mode 100644 index 0000000..ae4dbcc --- /dev/null +++ b/Message/Notification/NotificationType.enum.js @@ -0,0 +1,20 @@ +/** + * Notification data enum. + * + * @copyright Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @since 1.0.0 + */ +(function (jsOMS) +{ + "use strict"; + + /** @namespace jsOMS.Message.Notification */ + jsOMS.Autoloader.defineNamespace('jsOMS.Message.Notification'); + + jsOMS.Message.Notification.NotificationType = Object.freeze({ + APP_NOTIFICATION: 1, + BROWSER_NOTIFICATION: 2, + }); +}(window.jsOMS = window.jsOMS || {})); diff --git a/Message/Notification/ServiceWorker/ServiceWorkerNotification b/Message/Notification/ServiceWorker/ServiceWorkerNotification deleted file mode 100644 index e69de29..0000000