mirror of
https://github.com/Karaka-Management/jsOMS.git
synced 2026-02-15 00:38:42 +00:00
Added notification manager
This commit is contained in:
parent
5aa746a72d
commit
cb26a4b36b
|
|
@ -27,19 +27,19 @@
|
||||||
{
|
{
|
||||||
let self = this;
|
let self = this;
|
||||||
|
|
||||||
if(Notification.permission !== 'granted') {
|
if(Notification.permission !== 'granted' && Notification.permission !== 'denied') {
|
||||||
Notification.requestPermission(function(permission) {
|
Notification.requestPermission(function(permission) {
|
||||||
if(permission === 'granted') {
|
if(permission === 'granted') {
|
||||||
let msg = new jsOMS.Message.Notification.NotificationMessage();
|
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 || {}));
|
}(window.jsOMS = window.jsOMS || {}));
|
||||||
|
|
@ -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 || {}));
|
||||||
20
Message/Notification/NotificationType.enum.js
Normal file
20
Message/Notification/NotificationType.enum.js
Normal 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 || {}));
|
||||||
Loading…
Reference in New Issue
Block a user