X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=plugins%2FRealtime%2Frealtimeupdate.js;h=a2c4da113e01efe8f9100ab18af3ee13f9d03f2e;hb=cac5a417f2a81b974781d4dbc40fd9d718a7a7f2;hp=d1cf1d5070792f9d28eb2241b32b142269ccce41;hpb=007418fdab8f9f0c718a18568bfbf4377bb85364;p=quix0rs-gnu-social.git diff --git a/plugins/Realtime/realtimeupdate.js b/plugins/Realtime/realtimeupdate.js index d1cf1d5070..a2c4da113e 100644 --- a/plugins/Realtime/realtimeupdate.js +++ b/plugins/Realtime/realtimeupdate.js @@ -36,6 +36,9 @@ RealtimeUpdate = { _updatecounter: 0, _maxnotices: 50, _windowhasfocus: true, + _documenttitle: '', + _paused:false, + _queuedNotices:[], init: function(userid, replyurl, favorurl, deleteurl) { @@ -44,7 +47,7 @@ RealtimeUpdate = { RealtimeUpdate._favorurl = favorurl; RealtimeUpdate._deleteurl = deleteurl; - DT = document.title; + RealtimeUpdate._documenttitle = document.title; $(window).bind('focus', function(){ RealtimeUpdate._windowhasfocus = true; }); @@ -54,7 +57,7 @@ RealtimeUpdate = { $('#notices_primary .notice:first').addClass('mark-top'); RealtimeUpdate._updatecounter = 0; - document.title = DT; + document.title = RealtimeUpdate._documenttitle; RealtimeUpdate._windowhasfocus = false; return false; @@ -63,31 +66,48 @@ RealtimeUpdate = { receive: function(data) { - id = data.id; + if (RealtimeUpdate._paused === false) { + RealtimeUpdate.purgeLastNoticeItem(); - // Don't add it if it already exists - if ($("#notice-"+id).length > 0) { - return; + RealtimeUpdate.insertNoticeItem(data); } + else { + RealtimeUpdate._queuedNotices.push(data); - var noticeItem = RealtimeUpdate.makeNoticeItem(data); - $("#notices_primary .notices").prepend(noticeItem); - $("#notices_primary .notice:first").css({display:"none"}); - $("#notices_primary .notice:first").fadeIn(1000); - - if ($('#notices_primary .notice').length > RealtimeUpdate._maxnotices) { - $("#notices_primary .notice:last .form_disfavor").unbind('submit'); - $("#notices_primary .notice:last .form_favor").unbind('submit'); - $("#notices_primary .notice:last .notice_reply").unbind('click'); - $("#notices_primary .notice:last").remove(); + RealtimeUpdate.updateQueuedCounter(); } - SN.U.NoticeReply(); - SN.U.NoticeFavor(); + RealtimeUpdate.updateWindowCounter(); + }, + + 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(); + SN.U.NoticeFavor(); + }, + + purgeLastNoticeItem: function() { + if ($('#notices_primary .notice').length > RealtimeUpdate._maxnotices) { + $("#notices_primary .notice:last .form_disfavor").unbind('submit'); + $("#notices_primary .notice:last .form_favor").unbind('submit'); + $("#notices_primary .notice:last .notice_reply").unbind('click'); + $("#notices_primary .notice:last").remove(); + } + }, + updateWindowCounter: function() { if (RealtimeUpdate._windowhasfocus === false) { RealtimeUpdate._updatecounter += 1; - document.title = '('+RealtimeUpdate._updatecounter+') ' + DT; + document.title = '('+RealtimeUpdate._updatecounter+') ' + RealtimeUpdate._documenttitle; } }, @@ -169,30 +189,83 @@ RealtimeUpdate = { return dl; }, - addPopup: function(url, timeline, iconurl) + initActions: function(url, timeline, path) { - var NP = $('#notices_primary'); - NP.css({'position':'relative'}); - NP.prepend(''); - - var RT = $('#realtime_timeline'); - RT.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' - }); - $('#showstream #notices_primary').css({'margin-top':'18px'}); + var NP = $('#notices_primary'); + NP.prepend('