cryptpad/www/common/common-notifier.js

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