X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=plugins%2FRealtime%2Frealtimeupdate.js;h=267c99f7895d8d71d9b4c215e488e2c4cc57394e;hb=237f2c2d786f0b9fdd2b120d37e21e7ff120b252;hp=ca6ea891a14f4be7b4c4c1351796fa3c3410c325;hpb=8e58f241739b97bd53f78035781f16e2067a31d9;p=quix0rs-gnu-social.git diff --git a/plugins/Realtime/realtimeupdate.js b/plugins/Realtime/realtimeupdate.js index ca6ea891a1..267c99f789 100644 --- a/plugins/Realtime/realtimeupdate.js +++ b/plugins/Realtime/realtimeupdate.js @@ -34,6 +34,11 @@ RealtimeUpdate = { _favorurl: '', _deleteurl: '', _updatecounter: 0, + _maxnotices: 50, + _windowhasfocus: true, + _documenttitle: '', + _paused:false, + _queuedNotices:[], init: function(userid, replyurl, favorurl, deleteurl) { @@ -42,21 +47,18 @@ RealtimeUpdate = { RealtimeUpdate._favorurl = favorurl; RealtimeUpdate._deleteurl = deleteurl; - DT = document.title; + RealtimeUpdate._documenttitle = document.title; - $(window).blur(function() { - $('#notices_primary .notice').css({ - 'border-top-color':$('#notices_primary .notice:last').css('border-top-color'), - 'border-top-style':'dotted' - }); + $(window).bind('focus', function(){ RealtimeUpdate._windowhasfocus = true; }); - $('#notices_primary .notice:first').css({ - 'border-top-color':'#AAAAAA', - 'border-top-style':'solid' - }); + $(window).bind('blur', function() { + $('#notices_primary .notice').removeClass('mark-top'); + + $('#notices_primary .notice:first').addClass('mark-top'); RealtimeUpdate._updatecounter = 0; - document.title = DT; + document.title = RealtimeUpdate._documenttitle; + RealtimeUpdate._windowhasfocus = false; return false; }); @@ -64,23 +66,48 @@ RealtimeUpdate = { receive: function(data) { - setTimeout(function() { - id = data.id; + if (RealtimeUpdate._paused === false) { + RealtimeUpdate.purgeLastNoticeItem(); + + RealtimeUpdate.insertNoticeItem(data); + } + else { + RealtimeUpdate._queuedNotices.push(data); + + RealtimeUpdate.updateQueuedCounter(); + } + + RealtimeUpdate.updateWindowCounter(); + }, - // Don't add it if it already exists - if ($("#notice-"+id).length > 0) { - return; - } + insertNoticeItem: function(data) { + // Don't add it if it already exists + if ($("#notice-"+data.id).length > 0) { + return; + } - var noticeItem = RealtimeUpdate.makeNoticeItem(data); - $("#notices_primary .notices").prepend(noticeItem); - $("#notices_primary .notice:first").css({display:"none"}); - $("#notices_primary .notice:first").fadeIn(1000); - SN.U.NoticeReply(); + var noticeItem = RealtimeUpdate.makeNoticeItem(data); + var noticeItemID = $(noticeItem).attr('id'); + $("#notices_primary .notices").prepend(noticeItem); + $("#notices_primary .notice:first").css({display:"none"}); + $("#notices_primary .notice:first").fadeIn(1000); + + SN.U.FormXHR($('#'+noticeItemID+' .form_favor')); + SN.U.NoticeReplyTo($('#'+noticeItemID)); + }, + + purgeLastNoticeItem: function() { + if ($('#notices_primary .notice').length > RealtimeUpdate._maxnotices) { + $("#notices_primary .notice:last").remove(); + } + }, + + updateWindowCounter: function() { + if (RealtimeUpdate._windowhasfocus === false) { RealtimeUpdate._updatecounter += 1; - document.title = '('+RealtimeUpdate._updatecounter+') ' + DT; - }, 500); + document.title = '('+RealtimeUpdate._updatecounter+') ' + RealtimeUpdate._documenttitle; + } }, makeNoticeItem: function(data) @@ -161,56 +188,97 @@ RealtimeUpdate = { return dl; }, - addPopup: function(url, timeline, iconurl) + initActions: function(url, timeline, path) { - $('#notices_primary').css({'position':'relative'}); - $('#notices_primary').prepend(''); - - $('#realtime_timeline').css({ - 'margin':'0 0 11px 0', - 'background':'transparent url('+ iconurl + ') no-repeat 0% 30%', - 'padding':'0 0 0 20px', - 'display':'block', - 'position':'absolute', - 'top':'-20px', - 'right':'0', - 'border':'none', - 'cursor':'pointer', - 'color':$("a").css("color"), - 'font-weight':'bold', - 'font-size':'1em' - }); + var NP = $('#notices_primary'); + NP.prepend('