uploads: autorefresh thumbnails on multi-file uploads page.

Automatically refresh thumbnails on the multi-file upload page as images
are processed in the background.
This commit is contained in:
evazion
2022-02-15 00:47:21 -06:00
parent 37075988ce
commit 36265dbff0
10 changed files with 32 additions and 10 deletions

View File

@@ -3,14 +3,15 @@
class MediaAssetGalleryComponent < ApplicationComponent
DEFAULT_SIZE = 180
attr_reader :inline, :size, :options
attr_reader :inline, :size, :classes
renders_many :media_assets
renders_one :footer
def initialize(inline: false, size: DEFAULT_SIZE)
def initialize(inline: false, size: DEFAULT_SIZE, classes: [])
super
@inline = inline
@size = size
@classes = classes
end
end

View File

@@ -1,4 +1,4 @@
<div class="media-asset-gallery media-asset-gallery-<%= size %>">
<%= tag.div class: ["media-asset-gallery", "media-asset-gallery-#{size}", *classes], "data-size": size do %>
<% if media_assets.empty? %>
<p>No results found.</p>
<% else %>
@@ -10,4 +10,4 @@
<% end %>
<%= footer %>
</div>
<% end %>

View File

@@ -5,7 +5,7 @@
class MediaAssetPreviewComponent < ApplicationComponent
DEFAULT_SIZE = 180
attr_reader :media_asset, :size, :link_target, :classes, :save_data
attr_reader :media_asset, :size, :link_target, :classes, :html, :save_data
delegate :duration_to_hhmmss, :sound_icon, to: :helpers
renders_one :header
@@ -17,12 +17,13 @@ class MediaAssetPreviewComponent < ApplicationComponent
# @param link_target [ApplicationRecord] What the thumbnail links to (default: the media asset).
# @param save_data [Boolean] If true, save data by not serving higher quality thumbnails
# on 2x pixel density displays. Default: false.
def initialize(media_asset:, size: DEFAULT_SIZE, link_target: media_asset, classes: [], save_data: CurrentUser.save_data)
def initialize(media_asset:, size: DEFAULT_SIZE, link_target: media_asset, classes: [], html: {}, save_data: CurrentUser.save_data)
super
@media_asset = media_asset
@size = size.presence&.to_i || DEFAULT_SIZE
@link_target = link_target
@classes = classes
@html = html
@save_data = save_data
end

View File

@@ -1,4 +1,4 @@
<%= tag.article class: ["media-asset-preview media-asset-preview-#{size}", *classes] do -%>
<%= tag.article class: ["media-asset-preview media-asset-preview-#{size}", *classes], **html do -%>
<%= link_to link_target, class: "inline-block relative", draggable: "false" do -%>
<%= header %>