X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=view%2Fjs%2Fmain.js;h=86131539871b8e4848abbaa3726c8dbe30d2cf71;hb=7e37378c2a453cae4c3e47a8ba93f61318917003;hp=c6cf0a85b337b2f60e0a518df6a43770c1b19464;hpb=cfeef7afeddc92bb4159b20b32c052b908458deb;p=friendica.git diff --git a/view/js/main.js b/view/js/main.js index c6cf0a85b3..8613153987 100644 --- a/view/js/main.js +++ b/view/js/main.js @@ -33,15 +33,6 @@ function _resizeIframe(obj, desth) { setTimeout(_resizeIframe, 100, obj, ch); } -function getCookie(name) { - var value = "; " + document.cookie; - var parts = value.split("; " + name + "="); - - if (parts.length == 2) { - return parts.pop().split(";").shift(); - } -} - function initWidget(inflated, deflated) { var elInf = document.getElementById(inflated); var elDef = document.getElementById(deflated); @@ -49,7 +40,7 @@ function initWidget(inflated, deflated) { if (!elInf || !elDef) { return; } - if (getCookie(window.location.pathname + ":" + inflated) != "none") { + if (localStorage.getItem(window.location.pathname.split("/")[1] + ":" + inflated) != "none") { elInf.style.display = "block"; elDef.style.display = "none"; } else { @@ -69,11 +60,11 @@ function openCloseWidget(inflated, deflated) { if (window.getComputedStyle(elInf).display === "none") { elInf.style.display = "block"; elDef.style.display = "none"; - document.cookie = window.location.pathname + ":" + inflated + "=block"; + localStorage.setItem(window.location.pathname.split("/")[1] + ":" + inflated, "block"); } else { elInf.style.display = "none"; elDef.style.display = "block"; - document.cookie = window.location.pathname + ":" + inflated + "=none"; + localStorage.setItem(window.location.pathname.split("/")[1] + ":" + inflated, "none"); } } @@ -113,6 +104,20 @@ function decodeHtml(html) { return txt.value; } +/** + * Retrieves a single named query string parameter + * + * @param {string} name + * @returns {string} + * @see https://davidwalsh.name/query-string-javascript + */ +function getUrlParameter(name) { + name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]'); + var regex = new RegExp('[\\?&]' + name + '=([^&#]*)'); + var results = regex.exec(location.search); + return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' ')); +}; + var src = null; var prev = null; var livetime = null; @@ -129,6 +134,7 @@ var commentBusy = false; var last_popup_menu = null; var last_popup_button = null; var lockLoadContent = false; +var originalTitle = document.title; const urlRegex = /^(?:https?:\/\/|\s)[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})(?:\/+[a-z0-9_.:;-]*)*(?:\?[&%|+a-z0-9_=,.:;-]*)?(?:[&%|+&a-z0-9_=,:;.-]*)(?:[!#\/&%|+a-z0-9_=,:;.-]*)}*$/i; @@ -169,23 +175,6 @@ $(function() { $(textarea).trigger('change'); }); - /* setup onoff widgets */ - $(".onoff input").each(function() { - val = $(this).val(); - id = $(this).attr("id"); - $("#"+id+"_onoff ." + (val == 0 ? "on":"off")).addClass("hidden"); - }); - - $(".onoff > a").click(function(event) { - event.preventDefault(); - var input = $(this).siblings("input"); - var val = 1-input.val(); - var id = input.attr("id"); - $("#"+id+"_onoff ." + (val == 0 ? "on":"off")).addClass("hidden"); - $("#"+id+"_onoff ." + (val == 1 ? "on":"off")).removeClass("hidden"); - input.val(val); - }); - /* popup menus */ function close_last_popup_menu() { if (last_popup_menu) { @@ -254,7 +243,14 @@ $(function() { window.location.href=window.location.href } - ['net', 'home', 'intro', 'mail', 'events', 'birthdays', 'notify'].forEach(function(type) { + let tabNotifications = data.mail + data.notification; + if (tabNotifications > 0) { + document.title = '(' + tabNotifications + ') ' + originalTitle; + } else { + document.title = originalTitle; + } + + ['net', 'home', 'intro', 'mail', 'events', 'birthdays', 'notification'].forEach(function(type) { var number = data[type]; if (number == 0) { number = ''; @@ -308,19 +304,19 @@ $(function() { var notification_id = 0; // Insert notifs into the notifications-menu - $(data.notifications).each(function(key, notif) { - var text = notif.message.format('' + notif.name + ''); - var contact = ('' + notif.name + ''); - var seenclass = (notif.seen == 1) ? "notify-seen" : "notify-unseen"; + $(data.notifications).each(function(key, notification) { + var text = notification.message.format('' + notification.name + ''); + var contact = ('' + notification.name + ''); + var seenclass = (notification.seen == 1) ? "notification-seen" : "notification-unseen"; var html = notifications_tpl.format( - notif.href, // {0} // link to the source - notif.photo, // {1} // photo of the contact + notification.href, // {0} // link to the source + notification.photo, // {1} // photo of the contact text, // {2} // preformatted text (autor + text) - notif.date, // {3} // date of notification (time ago) + notification.date, // {3} // date of notification (time ago) seenclass, // {4} // visited status of the notification - new Date(notif.timestamp*1000), // {5} // date of notification - notif.url, // {6} // profile url of the contact - notif.message.format(contact), // {7} // preformatted html (text including author profile url) + new Date(notification.timestamp*1000), // {5} // date of notification + notification.url, // {6} // profile url of the contact + notification.message.format(contact), // {7} // preformatted html (text including author profile url) '' // {8} // Deprecated ); nnm.append(html); @@ -358,7 +354,7 @@ $(function() { }); } - var notif = data['notify']; + var notif = data['notification']; if (notif > 0) { $("#nav-notifications-linkmenu").addClass("on"); } else { @@ -507,7 +503,7 @@ function insertBBCodeInTextarea(BBCode, textarea) { function NavUpdate() { if (!stopped) { - var pingCmd = 'ping?format=json' + ((localUser != 0) ? '&f=&uid=' + localUser : ''); + var pingCmd = 'ping?format=json' + ((localUser != 0) ? '&uid=' + localUser : ''); $.get(pingCmd, function(data) { if (data.result) { // send nav-update event @@ -537,7 +533,13 @@ function updateConvItems(data) { var ident = $(this).attr('id'); // Add new top-level item. - if ($('#' + ident).length == 0 && profile_page == 1) { + if ($('#' + ident).length === 0 + && (!getUrlParameter('page') + && !getUrlParameter('max_id') + && !getUrlParameter('since_id') + || getUrlParameter('page') === '1' + ) + ) { $('#' + prev).after($(this)); // Replace already existing thread. @@ -599,7 +601,18 @@ function liveUpdate(src) { var orgHeight = $("section").height(); var udargs = ((netargs.length) ? '/' + netargs : ''); - var update_url = 'update_' + src + udargs + '&p=' + profile_uid + '&page=' + profile_page + '&force=' + ((force_update) ? 1 : 0) + '&item=' + update_item; + + var update_url = 'update_' + src + udargs + '&p=' + profile_uid + '&force=' + ((force_update) ? 1 : 0) + '&item=' + update_item; + + if (getUrlParameter('page')) { + update_url += '&page=' + getUrlParameter('page'); + } + if (getUrlParameter('since_id')) { + update_url += '&since_id=' + getUrlParameter('since_id'); + } + if (getUrlParameter('max_id')) { + update_url += '&max_id=' + getUrlParameter('max_id'); + } $.get(update_url,function(data) { in_progress = false; @@ -957,8 +970,8 @@ function checkboxhighlight(box) { } } -function notifyMarkAll() { - $.get('notify/mark/all', function(data) { +function notificationMarkAll() { + $.get('notification/mark/all', function(data) { if (timer) { clearTimeout(timer); } @@ -989,7 +1002,7 @@ Array.prototype.remove = function(item) { function previewTheme(elm) { theme = $(elm).val(); - $.getJSON('pretheme?f=&theme=' + theme,function(data) { + $.getJSON('pretheme?theme=' + theme,function(data) { $('#theme-preview').html('
' + data.desc + '
' + data.version + '
' + data.credits + '
' + theme + ''); });