Refactor post preview attributes into one method

This commit is contained in:
Toks
2013-07-11 16:52:42 -04:00
parent 161c7cb4f5
commit ebcc465216
3 changed files with 20 additions and 3 deletions

View File

@@ -14,7 +14,7 @@ class PostPresenter < Presenter
path = options[:path_prefix] || "/posts"
html = %{<article class="#{preview_class(post)}" 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="#{post.status_flags}" data-parent-id="#{post.parent_id}" data-has-children="#{post.has_children?}" data-score="#{post.score}" data-fav-count="#{post.fav_count}">}
html = %{<article class="#{preview_class(post)}" #{preview_attributes(post)}>}
if options[:tags].present?
tag_param = "?tags=#{CGI::escape(options[:tags])}"
elsif options[:pool_id]
@@ -39,6 +39,23 @@ class PostPresenter < Presenter
klass
end
def self.preview_attributes(post)
%{
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="#{post.status_flags}"
data-parent-id="#{post.parent_id}"
data-has-children="#{post.has_children?}"
data-score="#{post.score}"
data-fav-count="#{post.fav_count}"
}.html_safe
end
def initialize(post)
@post = post
end

View File

@@ -5,7 +5,7 @@
<div class="comments-for-post">
<div class="list-of-comments">
<% @comments.each do |comment| %>
<div class="post <%= PostPresenter.preview_class(comment.post) %>" data-tags="<%= comment.post.tag_string %>" data-uploader="<%= comment.post.uploader_name %>" data-rating="<%= comment.post.rating %>" data-flags="<%= comment.post.status %>" data-score="<%= comment.post.score %>" data-fav-count="<%= comment.post.fav_count %>" data-parent-id="<%= comment.post.parent_id %>" data-has-children="<%= comment.post.has_children? %>">
<div class="post <%= PostPresenter.preview_class(comment.post) %>" <%= PostPresenter.preview_attributes(comment.post) %>>
<div class="preview">
<%= link_to(image_tag(comment.post.preview_file_url), post_path(comment.post)) %>
</div>

View File

@@ -7,7 +7,7 @@
<% end %>
<% @posts.select {|x| Danbooru.config.can_user_see_post?(CurrentUser.user, x)}.each do |post| %>
<div class="post <%= PostPresenter.preview_class(post) %>" data-tags="<%= post.tag_string %>" data-uploader="<%= post.uploader_name %>" data-rating="<%= post.rating %>" data-flags="<%= post.status %>" data-score="<%= post.score %>" data-fav-count="<%= post.fav_count %>" data-parent-id="<%= post.parent_id %>" data-has-children="<%= post.has_children? %>" data-id="<%= post.id %>" data-width="<%= post.image_width %>" data-height="<%= post.image_height %>">
<div class="post <%= PostPresenter.preview_class(post) %>" <%= PostPresenter.preview_attributes(post) %>>
<div class="preview">
<%= link_to(image_tag(post.preview_file_url), post_path(post)) %>
</div>