laravelEcomm/public/Dashboard/js/desktop-notification.js
2024-07-12 12:51:02 +05:45

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