Fix #4986: Add ability to filter images in /media_assets and /uploads depending on if they have become posts

This commit is contained in:
evazion
2022-02-18 00:14:47 -06:00
parent f54fac74c8
commit 093a808a36
16 changed files with 121 additions and 72 deletions

View File

@@ -1,7 +0,0 @@
<%= render(MediaAssetGalleryComponent.new(size: size, classes: ["upload-media-asset-gallery"])) do |gallery| %>
<% upload.upload_media_assets.order(id: :asc).each do |upload_media_asset| %>
<% gallery.media_asset do %>
<%= render "upload_media_assets/preview", upload_media_asset: upload_media_asset, size: gallery.size %>
<% end %>
<% end %>
<% end %>

View File

@@ -1,7 +1,8 @@
<% upload_media_asset = upload.upload_media_assets.sort_by(&:id).first %>
<% media_asset = upload_media_asset&.media_asset %>
<% link_target = upload.media_asset_count > 1 ? [upload, UploadMediaAsset] : upload %>
<%= render(MediaAssetPreviewComponent.new(media_asset: media_asset, size: size, link_target: upload, save_data: CurrentUser.save_data)) do |preview| %>
<%= render(MediaAssetPreviewComponent.new(media_asset: media_asset, size: size, link_target: link_target, save_data: CurrentUser.save_data)) do |preview| %>
<% preview.missing_image do %>
<% if upload.is_errored? || upload_media_asset&.failed? %>
Upload failed
@@ -20,20 +21,14 @@
<% end %>
<% preview.footer do %>
<div class="text-center text-muted text-xs">
<div class="text-center text-muted text-xs h-4">
<div class="leading-none">
<% if upload.media_asset_count == 1 && media_asset&.post.present? %>
<%= link_to "post ##{media_asset.post.id}", media_asset.post, class: "leading-none" %>
<% else %>
<%= link_to "upload ##{upload.id}", upload, class: "leading-none" %>
<% if upload.media_asset_count == 1 && upload.posts.first&.present? %>
<%= link_to "post ##{upload.posts.first.id}", upload.posts.first, class: "leading-none" %>
<% elsif upload.media_asset_count > 1 && upload.posts.length > 0 %>
<%= link_to "#{upload.posts.length}/#{upload.media_asset_count} posted", posts_path(tags: "id:#{upload.posts.map(&:id).join(",")}"), class: "leading-none" %>
<% end %>
</div>
<% if upload.source.present? %>
<%= external_link_to upload.source, Addressable::URI.parse(upload.source).domain %>
<% else %>
<em>No source</em>
<% end %>
</div>
<% end %>
<% end %>

View File

@@ -1,17 +1,20 @@
<div id="c-uploads">
<div id="a-index">
<div class="flex items-center mb-4">
<h1 class="flex-1">My Uploads</h1>
<h1 class="mb-2">My Uploads</h1>
<span>
<%= render PreviewSizeMenuComponent.new(current_size: @preview_size) %>
<div class="border-b mb-4 flex flex-wrap gap-4">
<%= link_to "All", current_page_path(search: search_params.to_h.without("is_posted")), class: ["inline-block p-1 pb-2", (search_params[:is_posted].nil? ? "border-current border-b-2 -mb-px" : "inactive-link")] %>
<%= link_to "Posted", current_page_path(search: { is_posted: true }), class: ["inline-block p-1 pb-2", (search_params[:is_posted].to_s.truthy? ? "border-current border-b-2 -mb-px" : "inactive-link")] %>
<%= link_to "Unposted", current_page_path(search: { is_posted: false }), class: ["inline-block p-1 pb-2", (search_params[:is_posted].to_s.falsy? ? "border-current border-b-2 -mb-px" : "inactive-link")] %>
<% if @mode == "table" %>
<%= link_to grid_icon, current_page_path(mode: nil), title: "Gallery", class: "inactive-link" %>
<% else %>
<%= link_to list_icon, current_page_path(mode: "table"), title: "Table", class: "inactive-link" %>
<% end %>
</span>
<span class="flex-1"></span>
<%= render PreviewSizeMenuComponent.new(current_size: @preview_size) %>
<% if @mode == "table" %>
<%= link_to grid_icon, current_page_path(mode: nil), title: "Gallery", class: "inline-block p-1 pb-2 rounded inactive-link" %>
<% else %>
<%= link_to list_icon, current_page_path(mode: "table"), title: "Table", class: "inline-block p-1 pb-2 rounded inactive-link" %>
<% end %>
</div>
<% if @mode == "gallery" %>

View File

@@ -1,12 +1,6 @@
<div id="c-uploads">
<div id="a-show">
<div class="flex mb-4">
<h1 class="flex-grow-1">Upload</h1>
<% if @upload.media_asset_count > 1 %>
<%= render PreviewSizeMenuComponent.new(current_size: @preview_size) %>
<% end %>
</div>
<h1 class="mb-4">Upload</h1>
<% if @upload.is_errored? %>
<p>Error: <%= @upload.error %>.</p>
@@ -16,10 +10,6 @@
<% content_for(:html_header) do %>
<meta http-equiv="refresh" content="1">
<% end %>
<% elsif @upload.media_asset_count > 1 %>
<div id="p-multiple-asset-upload">
<%= render "multiple_asset_upload", upload: @upload, size: @preview_size %>
</div>
<% elsif @upload.media_asset_count == 1 %>
<div id="p-single-asset-upload">
<%= render "single_asset_upload", upload_media_asset: @upload.upload_media_assets.first %>