uploads: refactor "My Uploads" page for multi-file uploads.
* Make thumbnails on the "My Uploads" page show an icon with an image count when an upload contains multiple files. * Make the "My Uploads" page show each upload, not each individual file. If an upload contains multiple files, they're shown grouped together under a single upload. This does mean that failed or duplicate uploads will show up on this page now. This is because this page shows each upload attempt, not each uniquely uploaded file.
This commit is contained in:
@@ -8,27 +8,11 @@
|
||||
</div>
|
||||
|
||||
<%= render(MediaAssetGalleryComponent.new) do |gallery| %>
|
||||
<% @media_assets.each do |media_asset| %>
|
||||
<% upload = media_asset.uploads.order(id: :desc).select { |upload| upload.uploader == CurrentUser.user }.first %>
|
||||
|
||||
<% gallery.media_asset(media_asset: media_asset, size: gallery.size, link_target: media_asset.post || upload) do |preview| %>
|
||||
<% preview.footer do %>
|
||||
<div class="text-center text-muted text-xs h-12">
|
||||
<% if media_asset.post.present? %>
|
||||
<div class="leading-none">
|
||||
<%= link_to "post ##{media_asset.post.id}", media_asset.post, class: "leading-none" %>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<% if upload.source.present? %>
|
||||
<%= external_link_to upload.source, Addressable::URI.parse(upload.source).domain %>
|
||||
<% else %>
|
||||
<em>No source</em>
|
||||
<% end %>
|
||||
</div>
|
||||
<% end %>
|
||||
<% @uploads.each do |upload| %>
|
||||
<% gallery.media_asset do %>
|
||||
<%= render "uploads/preview", upload: upload, size: gallery.size %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
<%= numbered_paginator(@media_assets) %>
|
||||
<%= numbered_paginator(@uploads) %>
|
||||
|
||||
30
app/views/uploads/_preview.html.erb
Normal file
30
app/views/uploads/_preview.html.erb
Normal file
@@ -0,0 +1,30 @@
|
||||
<% media_asset = upload.upload_media_assets.sort_by(&:id).first&.media_asset %>
|
||||
|
||||
<%= render(MediaAssetPreviewComponent.new(media_asset: media_asset, size: size, link_target: upload, save_data: CurrentUser.save_data)) do |preview| %>
|
||||
<% if upload.media_asset_count > 1 %>
|
||||
<% preview.header do %>
|
||||
<div class="media-asset-image-count-icon absolute top-0.5 right-0.5 p-1 m-0.5 leading-none rounded text-xs font-arial font-bold">
|
||||
<%= multiple_images_icon %>
|
||||
<span class="align-middle"><%= upload.media_asset_count %></span>
|
||||
</div>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
<% preview.footer do %>
|
||||
<div class="text-center text-muted text-xs">
|
||||
<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" %>
|
||||
<% 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 %>
|
||||
@@ -9,28 +9,13 @@
|
||||
|
||||
<%= table_for @uploads, class: "striped", width: "100%" do |t| %>
|
||||
<% t.column "Upload", td: { class: "text-center" } do |upload| %>
|
||||
<% upload.media_assets.first.tap do |media_asset| %>
|
||||
<% if media_asset.present? %>
|
||||
<% if media_asset.post.present? %>
|
||||
<%= render MediaAssetPreviewComponent.new(media_asset: media_asset, link_target: media_asset.post, save_data: CurrentUser.save_data) %>
|
||||
<% else %>
|
||||
<%= render MediaAssetPreviewComponent.new(media_asset: media_asset, link_target: upload, save_data: CurrentUser.save_data) %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<%= render "uploads/preview", upload: upload, size: "180" %>
|
||||
<% end %>
|
||||
|
||||
<% t.column "Info", td: { class: "col-expand" } do |upload| %>
|
||||
<div>
|
||||
<% upload.media_assets.first.tap do |media_asset| %>
|
||||
<% if media_asset&.post.present? %>
|
||||
<strong>Post</strong>
|
||||
<span><%= link_to "##{media_asset.post.id}", media_asset.post %></span>
|
||||
<% else %>
|
||||
<strong>Upload</strong>
|
||||
<span><%= link_to "##{upload.id}", upload %></span>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<strong>Upload</strong>
|
||||
<span><%= link_to "##{upload.id}", upload %></span>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
|
||||
Reference in New Issue
Block a user