Added notification manager

This commit is contained in:
Dennis Eichhorn 2017-08-26 19:35:32 +02:00
parent 5aa746a72d
commit cb26a4b36b
4 changed files with 64 additions and 4 deletions

View File

@ -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 || {}));

View File

@ -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 || {}));

View File

@ -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 || {}));