wip. Person#as_json is breaking right now
This commit is contained in:
parent
8f31e99535
commit
675d9d7485
6 changed files with 55 additions and 14 deletions
|
|
@ -106,7 +106,12 @@ class PeopleController < ApplicationController
|
||||||
if params[:only_posts]
|
if params[:only_posts]
|
||||||
render :partial => 'shared/stream', :locals => {:posts => @posts}
|
render :partial => 'shared/stream', :locals => {:posts => @posts}
|
||||||
else
|
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
|
end
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
|
||||||
|
|
@ -220,13 +220,14 @@ class Person < ActiveRecord::Base
|
||||||
end
|
end
|
||||||
|
|
||||||
def as_json(opts={})
|
def as_json(opts={})
|
||||||
{
|
json = {
|
||||||
:id => self.guid,
|
:id => self.id,
|
||||||
:name => self.name,
|
:name => self.name,
|
||||||
:avatar => self.profile.image_url(:thumb_small),
|
:avatar => self.profile.image_url(:thumb_small),
|
||||||
:handle => self.diaspora_handle,
|
:handle => self.diaspora_handle,
|
||||||
:url => "/people/#{self.id}"
|
:url => "/people/#{self.id}"
|
||||||
}
|
}
|
||||||
|
json.merge(:aspect_ids => opts[:aspect_ids])
|
||||||
end
|
end
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
= person_image_link(comment.author)
|
= person_image_link(comment.author)
|
||||||
.content
|
.content
|
||||||
%span.from
|
%span.from
|
||||||
= person_link(comment.author)
|
= person_link(comment.author, :class => "author")
|
||||||
|
|
||||||
%span{:class => direction_for(comment.text)}
|
%span{:class => direction_for(comment.text)}
|
||||||
= markdownify(comment.text, :youtube_maps => comment.youtube_titles)
|
= markdownify(comment.text, :youtube_maps => comment.youtube_titles)
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,12 @@
|
||||||
|
|
||||||
#hovercard
|
#hovercard
|
||||||
%img.avatar
|
%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
|
%ul#user_menu.dropdown
|
||||||
%li
|
%li
|
||||||
|
|
|
||||||
|
|
@ -6,11 +6,12 @@
|
||||||
this.hoverCard = {
|
this.hoverCard = {
|
||||||
tip: $("#hovercard"),
|
tip: $("#hovercard"),
|
||||||
offset: {
|
offset: {
|
||||||
left: -30,
|
left: 00,
|
||||||
top: -60
|
top: 20
|
||||||
},
|
},
|
||||||
personLink: $("#hovercard").find("a.person"),
|
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);
|
$(document.body).delegate("a.author", "hover", this.handleHoverEvent);
|
||||||
|
|
@ -32,26 +33,26 @@
|
||||||
if(!self.hoverCardTimeout) {
|
if(!self.hoverCardTimeout) {
|
||||||
self.clearTimeout(false);
|
self.clearTimeout(false);
|
||||||
}
|
}
|
||||||
self.timeout = setTimeout(self.showHoverCard, 30);
|
self.timeout = setTimeout(self.showHoverCard, 100);
|
||||||
};
|
};
|
||||||
|
|
||||||
this.showHoverCard = function() {
|
this.showHoverCard = function() {
|
||||||
self.hoverCard.tip.hide();
|
self.hoverCard.tip.fadeOut('fast');
|
||||||
self.hoverCard.tip.prependTo(self.target.parent());
|
self.hoverCard.tip.prependTo(self.target.parent());
|
||||||
|
|
||||||
$.getJSON(self.target.attr("href"), function(person) {
|
$.getJSON(self.target.attr("href"), function(person) {
|
||||||
var position = self.target.position();
|
var position = self.target.position();
|
||||||
self.hoverCard.tip.css({
|
self.hoverCard.tip.css({
|
||||||
position: "absolute",
|
|
||||||
left: position.left + self.hoverCard.offset.left,
|
left: position.left + self.hoverCard.offset.left,
|
||||||
top: position.top + self.hoverCard.offset.top
|
top: position.top + self.hoverCard.offset.top
|
||||||
});
|
});
|
||||||
|
|
||||||
self.hoverCard.avatar.attr("src", person.avatar);
|
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.personLink.text(person.name);
|
||||||
|
self.hoverCard.dropdown.attr("data-person-id", person.id);
|
||||||
|
|
||||||
self.hoverCard.tip.show();
|
self.hoverCard.tip.fadeIn('fast');
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3071,8 +3071,37 @@ ul.left_nav
|
||||||
:display none
|
:display none
|
||||||
|
|
||||||
#hovercard
|
#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
|
:display none
|
||||||
:background
|
:background
|
||||||
:color black
|
:color $background
|
||||||
|
:padding 5px
|
||||||
|
:bottom 25px
|
||||||
|
|
||||||
|
:border 1px solid #ddd
|
||||||
|
|
||||||
|
:width 240px
|
||||||
|
|
||||||
:z
|
:z
|
||||||
:index 10
|
:index 10
|
||||||
|
|
||||||
|
.hovercard_footer
|
||||||
|
:position absolute
|
||||||
|
:bottom 0
|
||||||
|
:left 0
|
||||||
|
:background
|
||||||
|
:color #eee
|
||||||
|
:width 100%
|
||||||
|
|
||||||
|
.footer_container
|
||||||
|
:padding 0 10px
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue