diff --git a/app/helpers/sockets_helper.rb b/app/helpers/sockets_helper.rb index 5b84cbee3583512142a1a9685e4e29b9d28157ab..1e9dcc5084dd97c6a2ec77a87ead479894078f66 100644 --- a/app/helpers/sockets_helper.rb +++ b/app/helpers/sockets_helper.rb @@ -18,7 +18,11 @@ module SocketsHelper puts e.message raise e end - {:class =>object.class.to_s.underscore.pluralize, :html => v, :post_id => obj_id(object)}.to_json + if object.is_a? Photo + {:class =>object.class.to_s.underscore.pluralize, :html => v, :post_id => obj_id(object), :photo_hash => object.thumb_hash }.to_json + else + {:class =>object.class.to_s.underscore.pluralize, :html => v, :post_id => obj_id(object)}.to_json + end end diff --git a/app/models/photo.rb b/app/models/photo.rb index 3498a2e3b76a506dc656304996ece008d98b4091..91a4421fff18ee1f12273f38bd9580a367945a5a 100644 --- a/app/models/photo.rb +++ b/app/models/photo.rb @@ -51,4 +51,8 @@ class Photo < Post user.profile.update_attributes!(:image_url => nil) end end + + def thumb_hash + {:thumb_url => image.url(:thumb_medium), :id => id, :album_id => album_id} + end end diff --git a/app/views/albums/show.html.haml b/app/views/albums/show.html.haml index f118cf7da66fa26ce743ba7f90b7cdd8bae51698..253d94d19792b666ba909a39765d8bf6cf03c21e 100644 --- a/app/views/albums/show.html.haml +++ b/app/views/albums/show.html.haml @@ -17,9 +17,10 @@ -unless mine? @album %h4= "by #{@album.person.real_name}" -- for photo in @album_photos - .image_thumb - = link_to (image_tag photo.image.url(:thumb_medium)), object_path(photo) +#thumbnails + - for photo in @album_photos + .image_thumb + = link_to (image_tag photo.image.url(:thumb_medium)), object_path(photo) #content_bottom .back diff --git a/app/views/js/_websocket_js.haml b/app/views/js/_websocket_js.haml index a4ec035e209762736ae6aca4f0622ef90b65f2f6..52b2237d4045820c91127439a10d10f14e8a4a1b 100644 --- a/app/views/js/_websocket_js.haml +++ b/app/views/js/_websocket_js.haml @@ -18,6 +18,8 @@ }else if (obj['class']=="comments"){ processComment(obj['post_id'], obj['html']) + }else if (obj['class']=='photos' && onPageForClass('albums')){ + processPhotoInAlbum(obj['photo_hash']) }else{ processPost(obj['class'], obj['html']) } @@ -53,6 +55,15 @@ ); } } + + function processPhotoInAlbum(photoHash){ + if (location.href.indexOf(photoHash['album_id']) == -1){ + return ; + } + html = "<div class=\'image_thumb\'> <a href=\"/photos/"+ photoHash['id'] +"\"><img alt=\"New thumbnail\" src=\""+ photoHash['thumb_url'] +"\" style=\"display:inline;\" /> </a> </div>" + $("#thumbnails").append( $(html).fadeIn("fast") ) + + } function onPageForClass(className){ return ((location.href.indexOf(className) != -1 ) || (location.pathname == '/')) && onPageOne();