summaryrefslogtreecommitdiff
path: root/plugins/Realtime
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/Realtime')
-rw-r--r--plugins/Realtime/realtimeupdate.js48
1 files changed, 34 insertions, 14 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;
+ });
}
}