X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=view%2Fjs%2Fmain.js;h=4788d90a830cc6e4296c024d66d956253b42024f;hb=f9fe162f2fa4a2142e8157ca2a7f20f7b0efeced;hp=475e81087013ae2985bbd58cdc4f6919a8b712a3;hpb=efb2b58c478bcfc45a8a2775298193643987f9b5;p=friendica.git diff --git a/view/js/main.js b/view/js/main.js index 475e810870..4788d90a83 100644 --- a/view/js/main.js +++ b/view/js/main.js @@ -302,7 +302,12 @@ $(function() { $('#nav-notifications-menu').perfectScrollbar('update'); }); - NavUpdate(); + // Asynchronous calls are deferred until the very end of the page load to ease on slower connections + window.addEventListener("load", function(){ + NavUpdate(); + acl.get(0, 100); + }); + // Allow folks to stop the ajax page updates with the pause/break key $(document).keydown(function(event) { if (event.keyCode == '8') { @@ -378,7 +383,7 @@ function NavUpdate() { $('nav').trigger('nav-update', data.result); // start live update - ['network', 'profile', 'community', 'notes', 'display'].forEach(function (src) { + ['network', 'profile', 'community', 'notes', 'display', 'contacts'].forEach(function (src) { if ($('#live-' + src).length) { liveUpdate(src); } @@ -395,6 +400,47 @@ function NavUpdate() { timer = setTimeout(NavUpdate, updateInterval); } +function updateConvItems(data) { + // add a new thread + $('.toplevel_item',data).each(function() { + var ident = $(this).attr('id'); + + // Add new top-level item. + if ($('#' + ident).length == 0 && profile_page == 1) { + $('#' + prev).after($(this)); + + // Replace already existing thread. + } else { + // Find out if the hidden comments are open, so we can keep it that way + // if a new comment has been posted + var id = $('.hide-comments-total', this).attr('id'); + if (typeof id != 'undefined') { + id = id.split('-')[3]; + var commentsOpen = $("#collapsed-comments-" + id).is(":visible"); + } + + $('#' + ident).replaceWith($(this)); + + if (typeof id != 'undefined') { + if (commentsOpen) { + showHideComments(id); + } + } + } + prev = ident; + }); + + $('.like-rotator').hide(); + if (commentBusy) { + commentBusy = false; + $('body').css('cursor', 'auto'); + } + /* autocomplete @nicknames */ + $(".comment-edit-form textarea").editor_autocomplete(baseurl+"/acl"); + /* autocomplete bbcode */ + $(".comment-edit-form textarea").bbco_autocomplete('bbcode'); +} + function liveUpdate(src) { if ((src == null) || stopped || !profile_uid) { $('.like-rotator').hide(); return; @@ -418,6 +464,9 @@ function liveUpdate(src) { if ($(document).scrollTop() == 0) { force_update = true; } + + 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; @@ -426,50 +475,17 @@ function liveUpdate(src) { force_update = false; update_item = 0; - // add a new thread - $('.toplevel_item',data).each(function() { - var ident = $(this).attr('id'); - - if ($('#' + ident).length == 0 && profile_page == 1) { - $('img',this).each(function() { - $(this).attr('src',$(this).attr('dst')); - }); - $('#' + prev).after($(this)); - } else { - // Find out if the hidden comments are open, so we can keep it that way - // if a new comment has been posted - var id = $('.hide-comments-total', this).attr('id'); - if (typeof id != 'undefined') { - id = id.split('-')[3]; - var commentsOpen = $("#collapsed-comments-" + id).is(":visible"); - } - - $('img',this).each(function() { - $(this).attr('src',$(this).attr('dst')); - }); - $('html').height($('html').height()); - $('#' + ident).replaceWith($(this)); + $('.wall-item-body', data).imagesLoaded(function() { + updateConvItems(data); - if (typeof id != 'undefined') { - if (commentsOpen) { - showHideComments(id); - } - } - $('html').height('auto'); - } - prev = ident; + // Update the scroll position. + $(window).scrollTop($(window).scrollTop() + $("section").height() - orgHeight); }); - $('.like-rotator').hide(); - if (commentBusy) { - commentBusy = false; - $('body').css('cursor', 'auto'); - } - /* autocomplete @nicknames */ - $(".comment-edit-form textarea").editor_autocomplete(baseurl+"/acl"); - /* autocomplete bbcode */ - $(".comment-edit-form textarea").bbco_autocomplete('bbcode'); + callAddonHooks("postprocess_liveupdate"); + }); + } function imgbright(node) {