X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=js%2Fmain.js;h=455df9bb09161dc3103ffdb2c817ac23eaf0ce5a;hb=d8f69737ab01ad49eeaac253f88fa9c7990bf81a;hp=a7ffca8d8620b0744babffa2d28d675e09485b77;hpb=f1aa549e6322d252a25d7b38ed4c0cd0c29abdd8;p=friendica.git diff --git a/js/main.js b/js/main.js index a7ffca8d86..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") { @@ -22,7 +26,6 @@ var prev = null; var livetime = null; var force_update = false; - var msie = false; var stopped = false; var totStopped = false; var timer = null; @@ -37,8 +40,6 @@ $(function() { $.ajaxSetup({cache: false}); - msie = $.browser.msie ; - /* setup tooltips *//* $("a,.tt").each(function(){ var e = $(this); @@ -74,40 +75,40 @@ 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(); + var isSelected = (last_popup_button && parent.attr('id') == last_popup_button.attr('id')); close_last_popup_menu(); + if(isSelected) return false; menu = $( $(this).attr('rel') ); e.preventDefault(); e.stopPropagation(); if (menu.attr('popup')=="false") return false; - $(this).parent().toggleClass("selected"); + parent.toggleClass("selected"); menu.toggle(); if (menu.css("display") == "none") { last_popup_menu = null; last_popup_button = null; } else { last_popup_menu = menu; - last_popup_button = $(this).parent(); + last_popup_button = parent; } return false; }); $('html').click(function() { - close_last_popup_menu(); + close_last_popup_menu(); }); // fancyboxes - /*$("a.popupbox").fancybox({ - 'transitionIn' : 'elastic', - 'transitionOut' : 'elastic' - });*/ $("a.popupbox").colorbox({ 'inline' : true, 'transition' : 'elastic' @@ -180,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 @@ -213,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 }); }); }); @@ -293,7 +324,7 @@ if(livetime) { clearTimeout(livetime); } - livetime = setTimeout(liveUpdate, 10000); + livetime = setTimeout(liveUpdate, 5000); return; } if(livetime != null) @@ -307,7 +338,7 @@ force_update = true; var udargs = ((netargs.length) ? '/' + netargs : ''); - var update_url = 'update_' + src + udargs + '&p=' + profile_uid + '&page=' + profile_page + '&msie=' + ((msie) ? 1 : 0) + '&force=' + ((force_update) ? 1 : 0); + var update_url = 'update_' + src + udargs + '&p=' + profile_uid + '&page=' + profile_page + '&force=' + ((force_update) ? 1 : 0); $.get(update_url,function(data) { in_progress = false; @@ -441,13 +472,33 @@ $('#star-' + ident).addClass('hidden'); $('#unstar-' + ident).removeClass('hidden'); } - else { + else { $('#starred-' + ident).addClass('unstarred'); $('#starred-' + ident).removeClass('starred'); $('#star-' + ident).removeClass('hidden'); $('#unstar-' + ident).addClass('hidden'); } - $('#like-rotator-' + ident).hide(); + $('#like-rotator-' + ident).hide(); + }); + } + + function doignore(ident) { + ident = ident.toString(); + $('#like-rotator-' + ident).show(); + $.get('ignored/' + ident, function(data) { + if(data.match(/1/)) { + $('#ignored-' + ident).addClass('ignored'); + $('#ignored-' + ident).removeClass('unignored'); + $('#ignore-' + ident).addClass('hidden'); + $('#unignore-' + ident).removeClass('hidden'); + } + else { + $('#ignored-' + ident).addClass('unignored'); + $('#ignored-' + ident).removeClass('ignored'); + $('#ignore-' + ident).removeClass('hidden'); + $('#unignore-' + ident).addClass('hidden'); + } + $('#like-rotator-' + ident).hide(); }); } @@ -686,6 +737,7 @@ function setupFieldRichtext(){ theme_advanced_toolbar_location : "top", theme_advanced_toolbar_align : "center", theme_advanced_blockformats : "blockquote,code", + theme_advanced_resizing : true, paste_text_sticky : true, entity_encoding : "raw", add_unload_trigger : false, @@ -728,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; + } +}