wip. Person#as_json is breaking right now

This commit is contained in:
danielgrippi 2011-07-03 16:29:49 -07:00
parent 8f31e99535
commit 675d9d7485
6 changed files with 55 additions and 14 deletions

View file

@ -106,7 +106,12 @@ class PeopleController < ApplicationController
if params[:only_posts]
render :partial => 'shared/stream', :locals => {:posts => @posts}
else
respond_with @person, :locals => {:post_type => :all}
respond_to do |format|
format.all { respond_with @person, :locals => {:post_type => :all} }
format.json {
render :json => @person.to_json(:aspect_ids => @aspects_with_person.to_json)
}
end
end
else

View file

@ -220,13 +220,14 @@ class Person < ActiveRecord::Base
end
def as_json(opts={})
{
:id => self.guid,
json = {
:id => self.id,
:name => self.name,
:avatar => self.profile.image_url(:thumb_small),
:handle => self.diaspora_handle,
:url => "/people/#{self.id}"
}
json.merge(:aspect_ids => opts[:aspect_ids])
end
protected

View file

@ -9,7 +9,7 @@
= person_image_link(comment.author)
.content
%span.from
= person_link(comment.author)
= person_link(comment.author, :class => "author")
%span{:class => direction_for(comment.text)}
= markdownify(comment.text, :youtube_maps => comment.youtube_titles)

View file

@ -54,7 +54,12 @@
#hovercard
%img.avatar
%a.person
%h4
%a.person
= render 'aspect_memberships/aspect_dropdown', :contact => Contact.new, :person => Person.new, :hang => 'left'
.hovercard_footer
.footer_container
Message
%ul#user_menu.dropdown
%li

View file

@ -6,11 +6,12 @@
this.hoverCard = {
tip: $("#hovercard"),
offset: {
left: -30,
top: -60
left: 00,
top: 20
},
personLink: $("#hovercard").find("a.person"),
avatar: $("#hovercard").find(".avatar")
avatar: $("#hovercard").find(".avatar"),
dropdown: $("#hovercard").find(".dropdown_list")
};
$(document.body).delegate("a.author", "hover", this.handleHoverEvent);
@ -32,26 +33,26 @@
if(!self.hoverCardTimeout) {
self.clearTimeout(false);
}
self.timeout = setTimeout(self.showHoverCard, 30);
self.timeout = setTimeout(self.showHoverCard, 100);
};
this.showHoverCard = function() {
self.hoverCard.tip.hide();
self.hoverCard.tip.fadeOut('fast');
self.hoverCard.tip.prependTo(self.target.parent());
$.getJSON(self.target.attr("href"), function(person) {
var position = self.target.position();
self.hoverCard.tip.css({
position: "absolute",
left: position.left + self.hoverCard.offset.left,
top: position.top + self.hoverCard.offset.top
});
self.hoverCard.avatar.attr("src", person.avatar);
self.hoverCard.personLink.attr("href", self.target.attr("href"));
self.hoverCard.personLink.attr("href", person.url);
self.hoverCard.personLink.text(person.name);
self.hoverCard.dropdown.attr("data-person-id", person.id);
self.hoverCard.tip.show();
self.hoverCard.tip.fadeIn('fast');
});
};

View file

@ -3071,8 +3071,37 @@ ul.left_nav
:display none
#hovercard
@include box-shadow(0,0,7px,#333)
@include border-radius(2px)
.avatar
:position relative
:height 70px
:width 70px
:margin
:right 10px
:position absolute
:display none
:background
:color black
:color $background
:padding 5px
:bottom 25px
:border 1px solid #ddd
:width 240px
:z
:index 10
.hovercard_footer
:position absolute
:bottom 0
:left 0
:background
:color #eee
:width 100%
.footer_container
:padding 0 10px