diff --git a/app/helpers/sockets_helper.rb b/app/helpers/sockets_helper.rb index 27a86a8e5..f13576306 100644 --- a/app/helpers/sockets_helper.rb +++ b/app/helpers/sockets_helper.rb @@ -22,6 +22,8 @@ module SocketsHelper if object.is_a? Photo action_hash[:photo_hash] = object.thumb_hash + elsif object.is_a? StatusMessage + action_hash[:status_message_hash] = object.latest_hash end action_hash.to_json diff --git a/app/models/status_message.rb b/app/models/status_message.rb index accad2a8c..fe641bdb2 100644 --- a/app/models/status_message.rb +++ b/app/models/status_message.rb @@ -21,9 +21,8 @@ class StatusMessage < Post XML end - def ==(other) - (self.message == other.message) && (self.person.email == other.person.email) + def latest_hash + {:mine? => self.person == User.owner, :text => message} end - end diff --git a/app/views/js/_websocket_js.haml b/app/views/js/_websocket_js.haml index 218fe8fd6..768c03cb7 100644 --- a/app/views/js/_websocket_js.haml +++ b/app/views/js/_websocket_js.haml @@ -20,9 +20,13 @@ }else if (obj['class']=='photos' && onPageForClass('albums')){ processPhotoInAlbum(obj['photo_hash']) + }else if (obj['class']=='status_messages'){ + processStatusMessage(obj['class'], obj['html'], obj['status_message_hash']) }else{ processPost(obj['class'], obj['html']) } + + }; ws.onclose = function() { debug("socket closed"); }; ws.onopen = function() { @@ -56,6 +60,18 @@ } } + function processStatusMessage(className, html, messageHash){ + processPost(className, html); + if(messageHash['mine?']){ + updateMyLatestStatus(messageHash); + } + } + + function updateMyLatestStatus(messageHash){ + $("#latest_message").text(messageHash['text']); + $("#latest_message_time").text(' - just now'); + } + function processPhotoInAlbum(photoHash){ if (location.href.indexOf(photoHash['album_id']) == -1){ return ; @@ -65,7 +81,7 @@ \"New \ " $("#thumbnails").append( $(html) ) - $(".image_thumb img").load( function() { + $("#"+ photoHash['id'] + " img").load( function() { $(this).fadeIn("slow"); }); } diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml index 31388333b..35298bdaf 100644 --- a/app/views/layouts/application.html.haml +++ b/app/views/layouts/application.html.haml @@ -50,9 +50,9 @@ = link_to current_user.real_name, root_path %span#latest_message = my_latest_message - - unless @latest_status_message.nil? - %span{:style => "font-size: small"} - = " - #{how_long_ago @latest_status_message}" + - unless @latest_status_message.nil? + %span{:style => "font-size: small", :id => 'latest_message_time'} + = " - #{how_long_ago @latest_status_message}" %ul.nav %li= link_to "home", root_path diff --git a/public/javascripts/publisher.js b/public/javascripts/publisher.js index 85b16a478..f8e0f369d 100644 --- a/public/javascripts/publisher.js +++ b/public/javascripts/publisher.js @@ -7,8 +7,6 @@ $("#new_status_message").submit(function() { - var new_status = $('#status_message_message').val() + " - just now"; - $('#latest_message').text( new_status ); }); function selectPublisherTab(evt){ diff --git a/public/stylesheets/application.css b/public/stylesheets/application.css index c50e1e9ff..efa4b50fa 100644 --- a/public/stylesheets/application.css +++ b/public/stylesheets/application.css @@ -177,6 +177,11 @@ form { #user_name #latest_message span { size: small; font-style: italic; } + #user_name #latest_message_time{ + font-weight: normal; + color: #999999; + size: small; + font-style: italic; } #user_name ul { display: inline; margin: 0;