You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.1 KiB
JavaScript
42 lines
1.1 KiB
JavaScript
define([
|
|
'/common/visible.js',
|
|
'/common/notify.js'
|
|
], function (Visible, Notify) {
|
|
var Notifier = {};
|
|
|
|
var notify = {};
|
|
Notifier.unnotify = function () {
|
|
if (notify.tabNotification &&
|
|
typeof(notify.tabNotification.cancel) === 'function') {
|
|
notify.tabNotification.cancel();
|
|
}
|
|
};
|
|
|
|
Notifier.notify = function (data) {
|
|
if (Visible.isSupported() && (!Visible.currently() || (data && data.force))) {
|
|
if (data) {
|
|
var title = data.title;
|
|
if (document.title) { title += ' (' + document.title + ')'; }
|
|
Notify.system(data.msg, title);
|
|
return;
|
|
}
|
|
Notifier.unnotify();
|
|
notify.tabNotification = Notify.tab(1000, 10);
|
|
}
|
|
};
|
|
|
|
Notifier.getPermission = function () {
|
|
if (Notify.isSupported()) {
|
|
Notify.getPermission();
|
|
}
|
|
};
|
|
|
|
if (Visible.isSupported()) {
|
|
Visible.onChange(function (yes) {
|
|
if (yes) { Notifier.unnotify(); }
|
|
});
|
|
}
|
|
|
|
return Notifier;
|
|
});
|