From 864233eb63eb2b1510c0640a531c834b82afb3b3 Mon Sep 17 00:00:00 2001
From: Dan Hansen <mokker1234@gmail.com>
Date: Thu, 2 Jun 2011 17:34:03 -0500
Subject: [PATCH] fix status message show page and break out Post to it's own
 javascript widget

---
 app/views/status_messages/show.html.haml | 66 ++++++++++++++----------
 config/assets.yml                        |  1 +
 public/javascripts/content-updater.js    | 13 +++++
 public/javascripts/stream.js             | 24 +--------
 public/stylesheets/sass/application.sass | 28 ++++++++++
 spec/javascripts/support/jasmine.yml     |  1 +
 6 files changed, 82 insertions(+), 51 deletions(-)

diff --git a/app/views/status_messages/show.html.haml b/app/views/status_messages/show.html.haml
index 83cada8575..59d12ef3fa 100644
--- a/app/views/status_messages/show.html.haml
+++ b/app/views/status_messages/show.html.haml
@@ -1,32 +1,42 @@
 -#   Copyright (c) 2010, Diaspora Inc.  This file is
 -#   licensed under the Affero General Public License version 3 or later.  See
 -#   the COPYRIGHT file.
-
-
 .span-16.append-4.prepend-4.last
-  #original_post_info
-    = render 'shared/author_info', :person => @status_message.author, :post => @status_message
-
-  #show_text
-    %p
-      = markdownify(@status_message.text, :youtube_maps => @status_message[:youtube_titles])
-
-    - for photo in @status_message.photos
-      = link_to (image_tag photo.url(:thumb_small), :class => 'thumb_small'), photo_path(photo)
-
-  %p.time
-    = how_long_ago(@status_message)
-
-  %hr
-
-  = link_to t('.permalink'), post_path(@status_message) if @status_message.public
-  %br
-  - if current_user.owns? @status_message
-    = link_to t('.destroy'), @status_message, :confirm => t('are_you_sure'), :method => :delete
-
-
-  %h5
-    = t('_comments')
-  #status_message_stream.stream.show
-    %div{:data=>{:guid=>@status_message.id}}
-      = render "comments/comments", :post => @status_message, :comments => @status_message.comments, :always_expanded => true
+  #main_stream.stream.status_message_show
+    = render 'shared/stream_element', :post => @status_message, :all_aspects => @status_message.aspects
+%br
+%br
+%br
+/.span-16.append-4.prepend-4.last
+/  #original_post_info
+/    = render 'shared/author_info', :person => @status_message.author, :post => @status_message
+/
+/  #show_text
+/    %p
+/      = markdownify(@status_message.text, :youtube_maps => @status_message[:youtube_titles])
+/
+/    - for photo in @status_message.photos
+/      = link_to (image_tag photo.url(:thumb_small), :class => 'thumb_small'), photo_path(photo)
+/
+/  %p.time
+/    = how_long_ago(@status_message)
+/  - unless (defined?(@commenting_disabled) && @commenting_disabled)
+/    %span.like_action
+/      = like_action(@status_message, current_user)
+/
+/  %hr
+//
+/  = link_to t('.permalink'), post_path(@status_message) if @status_message.public
+/  %br
+/  - if current_user.owns? @status_message
+/    = link_to t('.destroy'), @status_message, :confirm => t('are_you_sure'), :method => :delete
+/
+/
+//
+/  .likes
+/    - if @status_message.likes.count > 0
+/      = render "likes/likes", :post_id => @status_message.id, :likes => @status_message.likes, :dislikes => @status_message.dislikes, :current_user => current_user
+/
+/  #status_message_stream.stream.show
+/    %div{:data=>{:guid=>@status_message.id}}
+/      = render "comments/comments", :post => @status_message, :comments => @status_message.comments, :always_expanded => true
diff --git a/config/assets.yml b/config/assets.yml
index d354dd0e87..e18c138ec1 100644
--- a/config/assets.yml
+++ b/config/assets.yml
@@ -34,6 +34,7 @@ javascripts:
     - public/javascripts/widgets/directionDetector.js
     - public/javascripts/widgets/notifications.js
     - public/javascripts/widgets/flashes.js
+    - public/javascripts/widgets/post.js
     - public/javascripts/view.js
     - public/javascripts/stream.js
     - public/javascripts/content-updater.js
diff --git a/public/javascripts/content-updater.js b/public/javascripts/content-updater.js
index 7cb24d3085..0f1e115c77 100644
--- a/public/javascripts/content-updater.js
+++ b/public/javascripts/content-updater.js
@@ -4,6 +4,9 @@
 */
 
 var ContentUpdater = {
+  elementWithGuid: function(selector, guid) {
+    return $(selector + "[data-guid='" + guid + "']");
+  },
   addPostToStream: function(html) {
     var streamElement = $(html);
     var postId = streamElement.attr("data-guid");
@@ -21,5 +24,15 @@ var ContentUpdater = {
       Diaspora.widgets.timeago.updateTimeAgo();
       Diaspora.widgets.directionDetector.updateBinds();
     }
+  },
+
+  addLikesToPost: function(postId, html) {
+    var post = ContentUpdater.elementWithGuid("div", postId);
+
+    $(".likes_container", post)
+      .fadeOut("fast")
+      .html(html)
+      .fadeIn("fast");
   }
+  
 };
\ No newline at end of file
diff --git a/public/javascripts/stream.js b/public/javascripts/stream.js
index 0b8ac86e1b..14cb9ee51d 100644
--- a/public/javascripts/stream.js
+++ b/public/javascripts/stream.js
@@ -42,15 +42,6 @@ var Stream = {
 
     this.setUpComments();
 
-    $("a.expand_likes", this.selector).live('click',function(evt) {
-      evt.preventDefault();
-      $(this).siblings(".likes_list").fadeToggle("fast");
-    });
-
-    $("a.expand_dislikes", this.selector).live('click',function(evt) {
-      evt.preventDefault();
-      $(this).siblings(".dislikes_list").fadeToggle("fast");
-    });
   },
 
   setUpComments: function(){
@@ -88,21 +79,8 @@ var Stream = {
     });
   },
 
-  setUpLikes: function() {
-    var likes = $(".like_it, .dislike_it", this.selector);
-
-    likes.live("ajax:loading", function() {
-      $(this).parent().fadeOut("fast");
-    });
-
-    likes.live("ajax:failure", function() {
-      Diaspora.widgets.alert.alert(Diaspora.widgets.i18n.t("failed_to_like"));
-      $(this).parent().fadeIn("fast");
-    });
-  },
-
   setUpAudioLinks: function() {
-    $(".stream a[target='_blank']").each(function() {
+    $(".stream a[target='_blank']").each(function(r){
       var link = $(this);
       if(this.href.match(/\.mp3$|\.ogg$/)) {
         $("<audio/>", {
diff --git a/public/stylesheets/sass/application.sass b/public/stylesheets/sass/application.sass
index c8e0cdc33f..556af64dba 100644
--- a/public/stylesheets/sass/application.sass
+++ b/public/stylesheets/sass/application.sass
@@ -456,7 +456,24 @@ ul.dropdown
     .from
       a
         :color $blue
+.status_message_show
+  .stream_element
+    .content
+      p
+      :font
+        :size 1em
+
+  .comments
+    :padding
+      :bottom 6px
+    > li:last-child
+      :border-bottom none
+  .comment_box
+    :width 475px
+    :margin
+      :bottom 5px
 
+  
 .time,
 .timeago,
 .via
@@ -583,10 +600,21 @@ ul.dropdown
 
 
 .stream ul.comments
+  :padding
+    :bottom 6px
+    
+  > li:last-child
+    :border-bottom none
+    
   .avatar
     :width 30px
     :height 30px
 
+  .comment_box
+    :margin
+      :bottom 5px
+
+
 .submit_button
   :text
     :align right
diff --git a/spec/javascripts/support/jasmine.yml b/spec/javascripts/support/jasmine.yml
index 4c2e7b2876..5bd842d0d7 100644
--- a/spec/javascripts/support/jasmine.yml
+++ b/spec/javascripts/support/jasmine.yml
@@ -32,6 +32,7 @@ src_files:
   - public/javascripts/widgets/infinite-scroll.js
   - public/javascripts/widgets/notifications.js
   - public/javascripts/widgets/flashes.js
+  - public/javascripts/widgets/post.js
   - public/javascripts/mobile.js
   - public/javascripts/contact-list.js
   - public/javascripts/web-socket-receiver.js
-- 
GitLab