diff options
-rw-r--r-- | plugins/Realtime/realtimeupdate.js | 48 | ||||
-rw-r--r-- | theme/base/css/display.css | 2 |
2 files changed, 35 insertions, 15 deletions
diff --git a/plugins/Realtime/realtimeupdate.js b/plugins/Realtime/realtimeupdate.js index 9b9991b9e..4444d801d 100644 --- a/plugins/Realtime/realtimeupdate.js +++ b/plugins/Realtime/realtimeupdate.js @@ -34,6 +34,8 @@ RealtimeUpdate = { _favorurl: '', _deleteurl: '', _updatecounter: 0, + _maxnotices: 50, + _windowhasfocus: false, init: function(userid, replyurl, favorurl, deleteurl) { @@ -44,6 +46,8 @@ RealtimeUpdate = { DT = document.title; + $(window).bind('focus', function(){ RealtimeUpdate._windowhasfocus = true; }); + $(window).blur(function() { $('#notices_primary .notice').removeClass('mark-top'); @@ -51,6 +55,7 @@ RealtimeUpdate = { RealtimeUpdate._updatecounter = 0; document.title = DT; + RealtimeUpdate._windowhasfocus = false; return false; }); @@ -58,23 +63,32 @@ RealtimeUpdate = { receive: function(data) { - setTimeout(function() { - id = data.id; + id = data.id; + + // Don't add it if it already exists + if ($("#notice-"+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); - // Don't add it if it already exists - if ($("#notice-"+id).length > 0) { - return; - } + 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(); + } - 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.NoticeReply(); + SN.U.NoticeFavor(); + if (RealtimeUpdate._windowhasfocus === false) { RealtimeUpdate._updatecounter += 1; document.title = '('+RealtimeUpdate._updatecounter+') ' + DT; - }, 500); + } }, makeNoticeItem: function(data) @@ -178,9 +192,9 @@ RealtimeUpdate = { }); $('#showstream #notices_primary').css({'margin-top':'18px'}); - RT.click(function() { + RT.bind('click', function() { window.open(url, - timeline, + '', 'toolbar=no,resizable=yes,scrollbars=yes,status=yes,width=500,height=550'); return false; @@ -208,6 +222,12 @@ RealtimeUpdate = { 'left':'auto', 'right':'0' }); + + $('.notices .entry-title a, .notices .entry-content a').bind('click', function() { + window.open(this.href, ''); + + return false; + }); } } diff --git a/theme/base/css/display.css b/theme/base/css/display.css index ccac7af2c..e5f5df68c 100644 --- a/theme/base/css/display.css +++ b/theme/base/css/display.css @@ -639,7 +639,7 @@ font-style:italic; float:right; margin-left:2%; margin-bottom:18px; -max-width:25%; +min-width:21%; } .entity_actions h2 { display:none; |