80 lines
1.8 KiB
JavaScript
80 lines
1.8 KiB
JavaScript
|
(function($) {
|
||
|
'use strict';
|
||
|
$.fn.easyNotify = function(options) {
|
||
|
|
||
|
var settings = $.extend({
|
||
|
title: "Notification",
|
||
|
options: {
|
||
|
body: "",
|
||
|
icon: "",
|
||
|
lang: 'pt-BR',
|
||
|
onClose: "",
|
||
|
onClick: "",
|
||
|
onError: ""
|
||
|
}
|
||
|
}, options);
|
||
|
|
||
|
this.init = function() {
|
||
|
var notify = this;
|
||
|
if (!("Notification" in window)) {
|
||
|
alert("This browser does not support desktop notification");
|
||
|
} else if (Notification.permission === "granted") {
|
||
|
|
||
|
var notification = new Notification(settings.title, settings.options);
|
||
|
|
||
|
notification.onclose = function() {
|
||
|
if (typeof settings.options.onClose === 'function') {
|
||
|
settings.options.onClose();
|
||
|
}
|
||
|
};
|
||
|
|
||
|
notification.onclick = function() {
|
||
|
if (typeof settings.options.onClick === 'function') {
|
||
|
settings.options.onClick();
|
||
|
}
|
||
|
};
|
||
|
|
||
|
notification.onerror = function() {
|
||
|
if (typeof settings.options.onError === 'function') {
|
||
|
settings.options.onError();
|
||
|
}
|
||
|
};
|
||
|
|
||
|
} else if (Notification.permission !== 'denied') {
|
||
|
Notification.requestPermission(function(permission) {
|
||
|
if (permission === "granted") {
|
||
|
notify.init();
|
||
|
}
|
||
|
|
||
|
});
|
||
|
}
|
||
|
|
||
|
};
|
||
|
|
||
|
this.init();
|
||
|
return this;
|
||
|
};
|
||
|
|
||
|
|
||
|
//Initialise notification
|
||
|
var myFunction = function() {
|
||
|
alert('Click function');
|
||
|
};
|
||
|
var myImg = "https://unsplash.it/600/600?image=777";
|
||
|
|
||
|
$("form").submit(function(event) {
|
||
|
event.preventDefault();
|
||
|
|
||
|
var options = {
|
||
|
title: $("#title").val(),
|
||
|
options: {
|
||
|
body: $("#message").val(),
|
||
|
icon: myImg,
|
||
|
lang: 'en-US',
|
||
|
onClick: myFunction
|
||
|
}
|
||
|
};
|
||
|
console.log(options);
|
||
|
$("#easyNotify").easyNotify(options);
|
||
|
});
|
||
|
}(jQuery));
|