X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=js%2Fmain.js;h=455df9bb09161dc3103ffdb2c817ac23eaf0ce5a;hb=d8f69737ab01ad49eeaac253f88fa9c7990bf81a;hp=23f63f8224616274d08e5c61c45e0d4dae5eb39d;hpb=3c6bfe603310812a2f922287f58d01fb4ef30cf3;p=friendica.git diff --git a/js/main.js b/js/main.js index 23f63f8224..455df9bb09 100644 --- a/js/main.js +++ b/js/main.js @@ -1,3 +1,7 @@ + function resizeIframe(obj) { + obj.style.height = 0; + obj.style.height = obj.contentWindow.document.body.scrollHeight + 'px'; + } function openClose(theID) { if(document.getElementById(theID).style.display == "block") { @@ -71,14 +75,14 @@ setupFieldRichtext(); /* popup menus */ - function close_last_popup_menu() { - if(last_popup_menu) { - last_popup_menu.hide(); - last_popup_button.removeClass("selected"); - last_popup_menu = null; - last_popup_button = null; - } - } + function close_last_popup_menu() { + if(last_popup_menu) { + last_popup_menu.hide(); + last_popup_button.removeClass("selected"); + last_popup_menu = null; + last_popup_button = null; + } + } $('a[rel^=#]').click(function(e){ e.preventDefault(); var parent = $(this).parent(); @@ -101,7 +105,7 @@ return false; }); $('html').click(function() { - close_last_popup_menu(); + close_last_popup_menu(); }); // fancyboxes @@ -177,12 +181,42 @@ nnm = $("#nav-notifications-menu"); nnm.html(notifications_all + notifications_mark); //nnm.attr('popup','true'); + + var notification_lastitem = localStorage.getItem("notification-lastitem"); + var notification_first_id = 0; + eNotif.children("note").each(function(){ e = $(this); text = e.text().format(""+e.attr('name')+""); html = notifications_tpl.format(e.attr('href'),e.attr('photo'), text, e.attr('date'), e.attr('seen')); nnm.append(html); + + var notification_id = e.attr('href').match(/\d+$/)[0]; + if (notification_lastitem!== null && notification_id!=notification_lastitem) { + if (notification_first_id===0) notification_first_id = notification_id; + if (getNotificationPermission()==="granted") { + var notification = new Notification(document.title, { + body: e.text().replace('→ ','').format(e.attr('name')), + icon: e.attr('photo'), + }); + // close notification after 5 secs. + // see https://developer.mozilla.org/en-US/docs/Web/API/Notifications_API/Using_the_Notifications_API#Closing_notifications + setTimeout(notification.close.bind(notification), 5000); + + notification.addEventListener("click", function(ev){ + window.location = ev.target.data; + }); + } + } + if (notification_id == notification_lastitem) { + if (notification_first_id===0) notification_first_id = notification_id; + notification_lastitem = null; + } + + }); + if (notification_first_id!==0) notification_lastitem = notification_first_id; + localStorage.setItem("notification-lastitem", notification_lastitem) $("img[data-src]", nnm).each(function(i, el){ // Add src attribute for images with a data-src attribute @@ -210,7 +244,7 @@ }); eSysmsg.children("info").each(function(){ text = $(this).text(); - $.jGrowl(text, { sticky: false, theme: 'info', life: 10000 }); + $.jGrowl(text, { sticky: false, theme: 'info', life: 5000 }); }); }); @@ -290,7 +324,7 @@ if(livetime) { clearTimeout(livetime); } - livetime = setTimeout(liveUpdate, 10000); + livetime = setTimeout(liveUpdate, 5000); return; } if(livetime != null) @@ -746,3 +780,16 @@ function previewTheme(elm) { }); } + +// notification permission settings in localstorage +// set by settings page +function getNotificationPermission() { + if (window["Notification"] === undefined) { + return null; + } + if (Notification.permission === 'granted') { + return localStorage.getItem('notification-permissions'); + } else { + return Notification.permission; + } +}