posts: refactor post previews to use ViewComponent.
Refactor the post preview html to use the ViewComponent framework. This lets us encapsulate all the HTML, CSS, and helper methods for a UI component in a single place. See https://viewcomponent.org.
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
|
||||
<%= table_for @commentaries, width: "100%" do |t| %>
|
||||
<% t.column "Post", width: "1%" do |commentary| %>
|
||||
<%= PostPresenter.preview(commentary.post, show_deleted: true) %>
|
||||
<%= post_preview(commentary.post, show_deleted: true) %>
|
||||
<% end %>
|
||||
<% t.column "Original" do |commentary| %>
|
||||
<%= format_commentary_title(commentary.original_title) %>
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
<div id="p-<%= listing_type(:post_id) %>-listing">
|
||||
|
||||
<% if listing_type(:post_id) == :revert && @commentary_versions.present? %>
|
||||
<%= PostPresenter.preview(@commentary_versions.first.post, show_deleted: true) %>
|
||||
<%= post_preview(@commentary_versions.first.post, show_deleted: true) %>
|
||||
<% end %>
|
||||
|
||||
<%= table_for @commentary_versions, class: "striped" do |t| %>
|
||||
<% if listing_type(:post_id) == :standard %>
|
||||
<% t.column "Post", width: "1%" do |commentary_version| %>
|
||||
<%= PostPresenter.preview(commentary_version.post, show_deleted: true) %>
|
||||
<%= post_preview(commentary_version.post, show_deleted: true) %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<% if listing_type(:post_id) == :standard %>
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
<%= table_for @comment_votes, class: "striped autofit" do |t| %>
|
||||
<% t.column "Post" do |vote| %>
|
||||
<%= PostPresenter.preview(vote.comment.post, show_deleted: true) %>
|
||||
<%= post_preview(vote.comment.post, show_deleted: true) %>
|
||||
<% end %>
|
||||
<% t.column "Comment", td: {class: "col-expand"} do |vote| %>
|
||||
<div class="prose">
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div class="list-of-comments list-of-messages">
|
||||
<% @comments.each do |comment| %>
|
||||
<% if CurrentUser.is_moderator? || (params[:search] && params[:search][:is_deleted] =~ /t/) || !comment.is_deleted? %>
|
||||
<%= content_tag(:div, { id: "post_#{comment.post.id}", class: ["post", *PostPresenter.preview_class(comment.post)].join(" ") }.merge(PostPresenter.data_attributes(comment.post))) do %>
|
||||
<%= tag.div id: "post_#{comment.post.id}", **PostPreviewComponent.new(post: comment.post).article_attrs("post") do %>
|
||||
<div class="preview">
|
||||
<% if policy(comment.post).visible? %>
|
||||
<%= link_to(image_tag(comment.post.preview_file_url), post_path(comment.post)) %>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
<% @posts.select(&:visible?).each do |post| %>
|
||||
<% if post.comments.unhidden(CurrentUser.user).any? || post.comments.hidden(CurrentUser.user).any? %>
|
||||
<%= content_tag(:div, { id: "post_#{post.id}", class: ["post", *PostPresenter.preview_class(post)].join(" ") }.merge(PostPresenter.data_attributes(post))) do %>
|
||||
<%= tag.div id: "post_#{post.id}", **PostPreviewComponent.new(post: post).article_attrs("post") do %>
|
||||
<div class="preview">
|
||||
<%= link_to(image_tag(post.preview_file_url), post_path(post)) %>
|
||||
</div>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<ul id="sortable">
|
||||
<% @favorite_group.posts.limit(1_000).each do |post| %>
|
||||
<li class="ui-state-default" id="favorite_group[post_ids]_<%= post.id %>">
|
||||
<%= PostPresenter.preview(post, show_deleted: true).presence || "Hidden: Post ##{post.id}" %>
|
||||
<%= post_preview(post, show_deleted: true).presence || "Hidden: Post ##{post.id}" %>
|
||||
</li>
|
||||
<% end %>
|
||||
</ul>
|
||||
|
||||
@@ -14,13 +14,13 @@
|
||||
|
||||
<span class="iqdb-posts-high-similarity">
|
||||
<% @high_similarity_matches.each do |match| %>
|
||||
<%= PostPresenter.preview(match["post"], show_deleted: true, similarity: match["score"], size: true) %>
|
||||
<%= post_preview(match["post"], show_deleted: true, similarity: match["score"], size: true) %>
|
||||
<% end %>
|
||||
</span>
|
||||
|
||||
<span class="iqdb-posts-low-similarity" style="display: none">
|
||||
<% @low_similarity_matches.each do |match| %>
|
||||
<%= PostPresenter.preview(match["post"], show_deleted: true, similarity: match["score"], size: true) %>
|
||||
<%= post_preview(match["post"], show_deleted: true, similarity: match["score"], size: true) %>
|
||||
<% end %>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<h1>Move Favorites to Parent</h1>
|
||||
|
||||
<div>
|
||||
<%= PostPresenter.preview(@post, show_deleted: true) %>
|
||||
<%= post_preview(@post, show_deleted: true) %>
|
||||
</div>
|
||||
|
||||
<p style="clear: both;">This will move all the post's favorites to its parent post. Are you sure?</p>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<%= content_tag(:div, { id: "post-#{post.id}", class: ["post", "mod-queue-preview", "column-container", *PostPresenter.preview_class(post)].join(" ") }.merge(PostPresenter.data_attributes(post))) do %>
|
||||
<%= tag.div id: "post-#{post.id}", **PostPreviewComponent.new(post: post).article_attrs("post mod-queue-preview column-container") do %>
|
||||
<aside class="column column-shrink">
|
||||
<%= PostPresenter.preview(post, size: true, show_deleted: true) %>
|
||||
<%= post_preview(post, size: true, show_deleted: true) %>
|
||||
</aside>
|
||||
|
||||
<section class="column column-expand">
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
<ul id="sortable">
|
||||
<% @pool.posts.each do |post| %>
|
||||
<li class="ui-state-default" id="pool[post_ids]_<%= post.id %>">
|
||||
<%= PostPresenter.preview(post, show_deleted: true).presence || "Hidden: Post ##{post.id}" %>
|
||||
<%= post_preview(post, show_deleted: true).presence || "Hidden: Post ##{post.id}" %>
|
||||
</li>
|
||||
<% end %>
|
||||
</ul>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
<section>
|
||||
<% @pools.each do |pool| %>
|
||||
<%= PostPresenter.preview(pool.cover_post, link_target: pool, pool: pool, show_deleted: true) %>
|
||||
<%= post_preview(pool.cover_post, link_target: pool, pool: pool, show_deleted: true) %>
|
||||
<% end %>
|
||||
|
||||
<%= numbered_paginator(@pools) %>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
<%= table_for @post_appeals, width: "100%" do |t| %>
|
||||
<% t.column "Post", width: "1%" do |post_appeal| %>
|
||||
<%= PostPresenter.preview(post_appeal.post, show_deleted: true) %>
|
||||
<%= post_preview(post_appeal.post, show_deleted: true) %>
|
||||
<% end %>
|
||||
<% t.column "Reason" do |post_appeal| %>
|
||||
<span class="prose">
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
<%= table_for @post_approvals, width: "100%" do |t| %>
|
||||
<% t.column "Post", width: "1%" do |post_approval| %>
|
||||
<%= PostPresenter.preview(post_approval.post, show_deleted: true) %>
|
||||
<%= post_preview(post_approval.post, show_deleted: true) %>
|
||||
<% end %>
|
||||
<% t.column "Approver", width: "15%" do |post_approval| %>
|
||||
<%= link_to_user post_approval.user %>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
<%= table_for @post_flags, width: "100%" do |t| %>
|
||||
<% t.column "Post", width: "1%" do |post_flag| %>
|
||||
<%= PostPresenter.preview(post_flag.post, show_deleted: true) %>
|
||||
<%= post_preview(post_flag.post, show_deleted: true) %>
|
||||
<% end %>
|
||||
<% t.column "Reason" do |post_flag| %>
|
||||
<span class="prose">
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
<%= table_for @post_replacements, class: "striped autofit", width: "100%" do |t| %>
|
||||
<% t.column "Post", width: "1%" do |post_replacement| %>
|
||||
<%= PostPresenter.preview(post_replacement.post, show_deleted: true) %>
|
||||
<%= post_preview(post_replacement.post, show_deleted: true) %>
|
||||
<% end %>
|
||||
<% t.column "Source" do |post_replacement| %>
|
||||
<dl>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<div id="p-<%= listing_type(:post_id) %>-listing">
|
||||
<% if listing_type(:post_id) == :revert %>
|
||||
<%= PostPresenter.preview(@post_versions.first.post, show_deleted: true) %>
|
||||
<%= post_preview(@post_versions.first.post, show_deleted: true) %>
|
||||
<% end %>
|
||||
|
||||
<%= table_for @post_versions, id: "post-versions-table", class: "striped autofit", width: "100%" do |t| %>
|
||||
@@ -11,7 +11,7 @@
|
||||
<% end %>
|
||||
<% if listing_type(:post_id) == :standard %>
|
||||
<% t.column "Post", width: "1%" do |post_version| %>
|
||||
<%= PostPresenter.preview(post_version.post, show_deleted: true) %>
|
||||
<%= post_preview(post_version.post, show_deleted: true) %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<% t.column "Version", width: "1%" do |post_version| %>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
<%= table_for @post_votes, class: "striped autofit" do |t| %>
|
||||
<% t.column "Post" do |vote| %>
|
||||
<%= PostPresenter.preview(vote.post, show_deleted: true) %>
|
||||
<%= post_preview(vote.post, show_deleted: true) %>
|
||||
<% end %>
|
||||
<% t.column "Tags", td: {class: "col-expand"} do |vote| %>
|
||||
<%= TagSetPresenter.new(vote.post.tag_array).inline_tag_list_html %>
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
<div id="posts" class="user-disable-cropped-<%= CurrentUser.user.disable_cropped_thumbnails? %>">
|
||||
<div id="posts-container">
|
||||
<%= post_set.post_previews_html(self) %>
|
||||
<% if post_set.shown_posts.empty? %>
|
||||
<%= render "post_sets/blank" %>
|
||||
<% else %>
|
||||
<%= post_previews_html(post_set.posts, show_deleted: post_set.show_deleted?, show_cropped: true, tags: post_set.tag_string) %>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<% if post_set.hidden_posts.present? %>
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
<%= content_tag(:article, article_attrs) do -%>
|
||||
<%= link_to polymorphic_path(link_target, link_params) do -%>
|
||||
<%= content_tag(:picture) do -%>
|
||||
<%= tag.source media: "(max-width: 660px)", srcset: cropped_url -%>
|
||||
<%= tag.source media: "(min-width: 660px)", srcset: preview_url -%>
|
||||
<%= tag.img class: "has-cropped-#{has_cropped}", src: preview_url, style: "min-width: #{preview_width}px; min-height: #{preview_height}px;", title: tooltip, alt: alt_text -%>
|
||||
<% end -%>
|
||||
<% end -%>
|
||||
<% if pool -%>
|
||||
<p class="desc">
|
||||
<%= link_to pool.pretty_name.truncate(80), pool %>
|
||||
</p>
|
||||
<% end -%>
|
||||
<% if similarity -%>
|
||||
<p class="desc">
|
||||
<% if post.source =~ %r!\Ahttps?://!i %>
|
||||
<%= external_link_to post.normalized_source, post.source_domain %>
|
||||
(<%= time_ago_in_words_tagged(post.created_at, compact: true) %>)
|
||||
<% else %>
|
||||
<%= time_ago_in_words_tagged(post.created_at, compact: true) %>
|
||||
<% end %>
|
||||
</p>
|
||||
<% end %>
|
||||
<% if size -%>
|
||||
<p class="desc">
|
||||
<%= link_to number_to_human_size(size), post.file_url %>
|
||||
(<%= width %>x<%= height %>)
|
||||
</p>
|
||||
<% end -%>
|
||||
<% if similarity -%>
|
||||
<p class="desc">
|
||||
<%= link_to "#{similarity}%", iqdb_queries_path(post_id: post.id) %> similarity
|
||||
</p>
|
||||
<% end -%>
|
||||
|
||||
<% if recommended -%>
|
||||
<p class="desc recommended">
|
||||
<%= link_to recommended_posts_path(search: { post_id: post.id }), class: "more-recommended-posts", "data-post-id": post.id do %>
|
||||
<%= post.fav_count %>
|
||||
|
||||
<i class="far fa-heart fa-xs"></i>
|
||||
|
||||
<br>more »
|
||||
<% end %>
|
||||
</p>
|
||||
<% end -%>
|
||||
<% end -%>
|
||||
@@ -39,7 +39,7 @@
|
||||
<div class="post-tooltip-body <%= "has-preview" if params[:preview].truthy? %>">
|
||||
<div class="post-tooltip-body-left">
|
||||
<% if params[:preview].truthy? %>
|
||||
<%= PostPresenter.preview(@post, show_deleted: true, compact: true) %>
|
||||
<%= post_preview(@post, show_deleted: true, compact: true) %>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
|
||||
<%= render "posts/partials/show/notices", :post => @post %>
|
||||
|
||||
<%= content_tag(:section, class: "image-container note-container", **PostPresenter.data_attributes(@post)) do -%>
|
||||
<%= content_tag(:section, class: "image-container note-container", **PostPreviewComponent.new(post: @post).data_attributes) do -%>
|
||||
<%= render "posts/partials/show/embedded", post: @post %>
|
||||
<div id="note-preview"></div>
|
||||
<% end -%>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<% if @post.valid? %>
|
||||
var $post = $("#post_<%= @post.id %>");
|
||||
var $new_post = $("<%= j PostPresenter.preview(@post, show_deleted: true) %>");
|
||||
var $new_post = $("<%= j post_preview(@post, show_deleted: true) %>");
|
||||
Danbooru.Blacklist.apply_post($new_post.get(0));
|
||||
$("#post_<%= @post.id %>").replaceWith($new_post);
|
||||
<% if params[:mode] == "quick-edit" %>
|
||||
|
||||
@@ -4,6 +4,6 @@
|
||||
<% end %>
|
||||
|
||||
<% @recs.each do |rec| %>
|
||||
<%= PostPresenter.preview(rec[:post], recommended: 100*rec[:score]) %>
|
||||
<%= post_preview(rec[:post], recommended: 100*rec[:score]) %>
|
||||
<% end %>
|
||||
</section>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
<%= table_for @upload_reports do |t| %>
|
||||
<% t.column "Post ID", width: "10%" do |upload_report| %>
|
||||
<%= PostPresenter.preview(upload_report.becomes(Post), show_deleted: true, tags: "user:#{upload_report.uploader.name}") %>
|
||||
<%= post_preview(upload_report.becomes(Post), show_deleted: true, tags: "user:#{upload_report.uploader.name}") %>
|
||||
<% end %>
|
||||
<% t.column "Tags added by uploader", width: "45%" do |upload_report| %>
|
||||
<%= TagSetPresenter.new(upload_report.uploader_tags_array).inline_tag_list_html %>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
<div>
|
||||
<% source.related_posts.each do |post| %>
|
||||
<%= PostPresenter.preview(post, show_deleted: true, size: true) %>
|
||||
<%= post_preview(post, show_deleted: true, size: true) %>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
<%= table_for @uploads, class: "striped autofit", width: "100%" do |t| %>
|
||||
<% t.column "Upload" do |upload| %>
|
||||
<%= PostPresenter.preview(upload.post, tags: "user:#{upload.uploader.name}", show_deleted: true) %>
|
||||
<%= post_preview(upload.post, tags: "user:#{upload.uploader.name}", show_deleted: true) %>
|
||||
<% end %>
|
||||
<% t.column "Info", td: {class: "col-expand upload-info"} do |upload| %>
|
||||
<span class="info">
|
||||
|
||||
@@ -4,9 +4,7 @@
|
||||
<%= link_to "Uploads", posts_path(:tags => "user:#{user.name}") %>
|
||||
</h2>
|
||||
<div>
|
||||
<% presenter.uploads.each do |post| %>
|
||||
<%= PostPresenter.preview(post, :tags => "user:#{user.name}") %>
|
||||
<% end %>
|
||||
<%= post_previews_html(presenter.uploads, tags: "user:#{user.name}") %>
|
||||
</div>
|
||||
</div>
|
||||
<% end %>
|
||||
@@ -17,9 +15,7 @@
|
||||
<%= link_to "Favorites", posts_path(tags: "ordfav:#{user.name}") %>
|
||||
</h2>
|
||||
<div>
|
||||
<% presenter.favorites.each do |post| %>
|
||||
<%= PostPresenter.preview(post, tags: "ordfav:#{user.name}") %>
|
||||
<% end %>
|
||||
<%= post_previews_html(presenter.favorites, tags: "ordfav:#{user.name}") %>
|
||||
</div>
|
||||
</div>
|
||||
<% end %>
|
||||
@@ -33,9 +29,7 @@
|
||||
</h2>
|
||||
|
||||
<div class="box">
|
||||
<% presenter.posts_for_saved_search_category(label).each do |post| %>
|
||||
<%= PostPresenter.preview(post, :tags => "search:#{label}") %>
|
||||
<% end %>
|
||||
<%= post_previews_html(presenter.posts_for_saved_search_category, tags: "search:#{label}") %>
|
||||
</div>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
Reference in New Issue
Block a user