diff options
author | Sarven Capadisli <csarven@controlyourself.ca> | 2009-05-01 00:16:25 +0000 |
---|---|---|
committer | Sarven Capadisli <csarven@controlyourself.ca> | 2009-05-01 00:16:25 +0000 |
commit | d30df0790818d77b81ee8b271b9bd8ebe3063ee7 (patch) | |
tree | d3a9b32815252caabcf16f593fbf4e2080cff93f /plugins/Comet/updatetimeline.js | |
parent | f798d1ea430d25c2f4a60179c65b39b1257a5340 (diff) | |
parent | b79fef307481b36b4d04dbabb54e3f6d9edf6896 (diff) |
Merge branch '0.7.x' into 0.8.x
Resolved Conflicts:
lib/queuehandler.php
lib/util.php
theme/base/css/display.css
Diffstat (limited to 'plugins/Comet/updatetimeline.js')
-rw-r--r-- | plugins/Comet/updatetimeline.js | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/plugins/Comet/updatetimeline.js b/plugins/Comet/updatetimeline.js new file mode 100644 index 000000000..de750baba --- /dev/null +++ b/plugins/Comet/updatetimeline.js @@ -0,0 +1,77 @@ +// update the local timeline from a Comet server +// + +var updater = function() +{ + var _cometd; + + return { + init: function(server, timeline) + { + _cometd = $.cometd; // Uses the default Comet object + _cometd.setLogLevel('debug'); + _cometd.init(server); + _cometd.subscribe(timeline, receive); + $(window).unload(leave); + } + } + + function leave() + { + _cometd.disconnect(); + } + + function receive(message) + { + id = message.data.id; + + // Don't add it if it already exists + + if ($("#notice-"+id).length > 0) { + return; + } + + var noticeItem = makeNoticeItem(message.data); + $("#notices_primary .notices").prepend(noticeItem, true); + $("#notices_primary .notice:first").css({display:"none"}); + $("#notices_primary .notice:first").fadeIn(2500); + NoticeHover(); + NoticeReply(); + } + + function makeNoticeItem(data) + { + user = data['user']; + html = data['html'].replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>'); + + ni = "<li class=\"hentry notice\" id=\"notice-"+data['id']+"\">"+ + "<div class=\"entry-title\">"+ + "<span class=\"vcard author\">"+ + "<a href=\""+user['profile_url']+"\" class=\"url\">"+ + "<img src=\""+user['profile_image_url']+"\" class=\"avatar photo\" width=\"48\" height=\"48\" alt=\""+user['screen_name']+"\"/>"+ + "<span class=\"nickname fn\">"+user['screen_name']+"</span>"+ + "</a>"+ + "</span>"+ + "<p class=\"entry-content\">"+html+"</p>"+ + "</div>"+ + "<div class=\"entry-content\">"+ + "<dl class=\"timestamp\">"+ + "<dt>Published</dt>"+ + "<dd>"+ + "<a rel=\"bookmark\" href=\""+data['url']+"\" >"+ + "<abbr class=\"published\" title=\""+data['created_at']+"\">a few seconds ago</abbr>"+ + "</a> "+ + "</dd>"+ + "</dl>"+ + "<dl class=\"device\">"+ + "<dt>From</dt> "+ + "<dd>"+data['source']+"</dd>"+ + "</dl>"+ + "</div>"+ + "<div class=\"notice-options\">"+ + "</div>"+ + "</li>"; + return ni; + } +}(); + |