This commit is contained in:
albert
2012-02-17 19:32:25 -05:00
parent 16a303a816
commit cb26bf5710
2 changed files with 13 additions and 3 deletions

View File

@@ -13,13 +13,23 @@ class PostPresenter < Presenter
html = %{<article class="post-preview" id="post_#{post.id}" data-id="#{post.id}" data-tags="#{h(post.tag_string)}" data-uploader="#{h(post.uploader_name)}" data-rating="#{post.rating}" data-width="#{post.image_width}" data-height="#{post.image_height}" data-flags="#{flags.join(' ')}" data-parent-id="#{post.parent_id}" data-has-children="#{post.has_children?}">}
html << %{<a href="#{path}/#{post.id}">}
html << %{<img style="margin-left: #{margin(post)};" src="#{post.preview_file_url}" alt="#{h(post.tag_string)}">}
html << %{<img style="margin-left: #{margin_left(post)}; margin-top: #{margin_top(post)}" src="#{post.preview_file_url}" alt="#{h(post.tag_string)}">}
html << %{</a>}
html << %{</article>}
html.html_safe
end
def self.margin(post)
def self.margin_top(post)
if post.is_image? && post.image_height > post.image_width && post.image_height < 2 * post.image_width && post.image_height
ratio = Danbooru.config.small_image_width.to_f / post.image_width.to_f
offset = ((ratio * post.image_height) - Danbooru.config.small_image_width).to_i / 2
return "-#{offset}px"
else
0
end
end
def self.margin_left(post)
if post.is_image? && post.image_width > post.image_height && post.image_width.to_i > Danbooru.config.small_image_width
ratio = Danbooru.config.small_image_width.to_f / post.image_height.to_f
offset = ((ratio * post.image_width) - Danbooru.config.small_image_width).to_i / 2

View File

@@ -9,7 +9,7 @@
<% @posts.each do |post| %>
<div class="post">
<div class="preview">
<%= link_to(image_tag(post.preview_file_url, :style => "margin-left: #{PostPresenter.margin(post)};"), post_path(post)) %>
<%= link_to(image_tag(post.preview_file_url, :style => "margin-left: #{PostPresenter.margin_left(post)}; margin-top: #{PostPresenter.margin_top(post)};"), post_path(post)) %>
</div>
<%= render "comments/partials/index/list", :post => post, :comments => post.comments.visible(CurrentUser.user).recent, :show_header => true %>
<div class="clearfix"></div>