media assets: add thumbnail view to /media_assets page.

Add a thumbnail view to the /media_assets page. This page lets you see
all images uploaded to Danbooru by all users (although you can't see who
the uploader is). Also add a link to this page in the subnav bar on the
upload page.
This commit is contained in:
evazion
2022-02-01 23:43:12 -06:00
parent 317d369c6a
commit 92a4d045e2
13 changed files with 140 additions and 35 deletions

View File

@@ -3,7 +3,7 @@
<div id="c-iqdb-queries">
<div id="a-check">
<h1>Similar Images Search</h1>
<h1>Reverse Images Search</h1>
<section>
<p>Paste a URL or upload a file to perform a reverse image search on <%= Danbooru.config.app_name %>.</p>
@@ -19,3 +19,5 @@
<%= render "iqdb_queries/matches" %>
</div>
</div>
<%= render "uploads/secondary_links" %>

View File

@@ -0,0 +1,15 @@
<%= render(MediaAssetGalleryComponent.new) do |gallery| %>
<% @media_assets.each do |media_asset| %>
<% if policy(media_asset).can_see_image? %>
<% gallery.media_asset(media_asset: media_asset, size: gallery.size, link_target: media_asset) do |preview| %>
<% preview.footer do %>
<div class="text-center text-xs h-8">
<% if media_asset.post.present? %>
<%= link_to "post ##{media_asset.post.id}", media_asset.post %>
<% end %>
</div>
<% end %>
<% end %>
<% end %>
<% end %>
<% end %>

View File

@@ -0,0 +1,20 @@
<%= table_for @media_assets, class: "striped autofit" do |t| %>
<% t.column "File", td: { class: "text-center" } do |media_asset| %>
<% if policy(media_asset).can_see_image? %>
<%= render MediaAssetPreviewComponent.new(media_asset: media_asset, save_data: CurrentUser.save_data, shrink_to_fit: false) %>
<% end %>
<% end %>
<% t.column :image_width %>
<% t.column :image_height %>
<% t.column :file_size %>
<% t.column :file_ext %>
<% t.column "Metadata" do |media_asset| %>
<%= link_to pluralize(media_asset.metadata.size, "tags"), media_asset %>
<% end %>
<% t.column "Created" do |media_asset| %>
<%= time_ago_in_words_tagged(media_asset.created_at) %>
<% end %>
<% end %>

View File

@@ -1,42 +1,27 @@
<div id="c-media-assets">
<div id="a-index">
<%= search_form_for(media_assets_path) do |f| %>
<%= f.input :md5, input_html: { value: params[:search][:md5] } %>
<%= f.input :image_width, input_html: { value: params[:search][:image_width] } %>
<%= f.input :image_height, input_html: { value: params[:search][:image_height] } %>
<%= f.input :file_size, input_html: { value: params[:search][:file_size] } %>
<%= f.input :file_ext, input_html: { value: params[:search][:file_ext] } %>
<h1>All Uploads</h1>
<%= f.simple_fields_for :metadata do |meta| %>
<% params.dig(:search, :metadata).to_h.each do |key, value| %>
<%= meta.input key, label: key, input_html: { value: value } %>
<% if params[:search].present? %>
<%= search_form_for(media_assets_path) do |f| %>
<%= f.simple_fields_for :metadata do |meta| %>
<% params.dig(:search, :metadata).to_h.each do |key, value| %>
<%= meta.input key, label: key, input_html: { value: value } %>
<% end %>
<% end %>
<% end %>
<%= f.submit "Search" %>
<%= f.submit "Search" %>
<% end %>
<% end %>
<%= table_for @media_assets, class: "striped autofit" do |t| %>
<% t.column "File", td: { class: "text-center" } do |media_asset| %>
<% if policy(media_asset).can_see_image? %>
<%= render MediaAssetPreviewComponent.new(media_asset: media_asset, save_data: CurrentUser.save_data, shrink_to_fit: false) %>
<% end %>
<% end %>
<% t.column :image_width %>
<% t.column :image_height %>
<% t.column :file_size %>
<% t.column :file_ext %>
<% t.column "Metadata" do |media_asset| %>
<%= link_to pluralize(media_asset.metadata.size, "tags"), media_asset %>
<% end %>
<% t.column "Created" do |media_asset| %>
<%= time_ago_in_words_tagged(media_asset.created_at) %>
<% end %>
<% if params[:mode] == "table" %>
<%= render "media_assets/table" %>
<% else %>
<%= render "media_assets/gallery" %>
<% end %>
<%= numbered_paginator(@media_assets) %>
</div>
</div>
<%= render "uploads/secondary_links" %>

View File

@@ -30,3 +30,5 @@
</table>
</div>
</div>
<%= render "uploads/secondary_links" %>

View File

@@ -1,7 +1,8 @@
<% content_for(:secondary_links) do %>
<%= subnav_link_to "My Uploads", uploads_path %>
<%= subnav_link_to "New Upload", new_upload_path %>
<%= subnav_link_to "Batch Upload", batch_uploads_path %>
<%= subnav_link_to "Reverse Image Search", iqdb_queries_path %>
<%= subnav_link_to "Batch Upload", batch_uploads_path %> |
<%= subnav_link_to "My Uploads", uploads_path %>
<%= subnav_link_to "All Uploads", media_assets_path %>
<%= subnav_link_to "Reverse Image Search", iqdb_queries_path %> |
<%= subnav_link_to "Help", wiki_page_path("help:upload") %>
<% end %>