uploads: add data attributes to thumbnail html.
Add data attributes to thumbnails on the /uploads, /upload_media_assets, and /media_assets pages. Add a `data-is-posted` attribute for styling thumbnails based on whether they've already been posted.
This commit is contained in:
@@ -317,7 +317,7 @@ module ApplicationHelper
|
||||
end
|
||||
end
|
||||
|
||||
def data_attributes_for(record, prefix, attributes)
|
||||
def data_attributes_for(record, prefix = "data", attributes = record.html_data_attributes)
|
||||
attributes.map do |attr|
|
||||
if attr.is_a?(Array)
|
||||
name = attr.map {|sym| sym.to_s.dasherize.delete("?")}.join('-')
|
||||
|
||||
@@ -119,7 +119,7 @@ class TableBuilder
|
||||
{
|
||||
id: "#{item.model_name.singular.dasherize}-#{item.id}",
|
||||
**row_attributes,
|
||||
**ApplicationController.helpers.data_attributes_for(item, "data", item.html_data_attributes)
|
||||
**ApplicationController.helpers.data_attributes_for(item)
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<%= render(MediaAssetPreviewComponent.new(media_asset: media_asset, size: size, link_target: media_asset)) do |preview| %>
|
||||
<%= render(MediaAssetPreviewComponent.new(media_asset: media_asset, size: size, link_target: media_asset, html: { **data_attributes_for(media_asset), "data-is-posted": media_asset.post.present? })) do |preview| %>
|
||||
<% preview.footer do %>
|
||||
<div class="text-center text-xs h-8">
|
||||
<% if media_asset.post.present? %>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<% media_asset = upload_media_asset.media_asset %>
|
||||
|
||||
<%= render MediaAssetPreviewComponent.new(media_asset: media_asset, size: size, link_target: [upload_media_asset.upload, upload_media_asset], classes: ["upload-media-asset-preview", ("upload-media-asset-loading" if upload_media_asset.loading?)], html: { "data-id": upload_media_asset.id }) do |preview| %>
|
||||
<%= render MediaAssetPreviewComponent.new(media_asset: media_asset, size: size, link_target: [upload_media_asset.upload, upload_media_asset], classes: ["upload-media-asset-preview", ("upload-media-asset-loading" if upload_media_asset.loading?)], html: { **data_attributes_for(upload_media_asset), "data-is-posted": upload_media_asset.post.present? }) do |preview| %>
|
||||
<% preview.missing_image do %>
|
||||
<% if upload_media_asset.failed? %>
|
||||
Failed
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<% 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: link_target, 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, classes: "upload-preview", html: { **data_attributes_for(upload), "data-is-posted": upload.media_asset_count == upload.posts.length })) do |preview| %>
|
||||
<% preview.missing_image do %>
|
||||
<% if upload.is_errored? || upload_media_asset&.failed? %>
|
||||
Upload failed
|
||||
|
||||
Reference in New Issue
Block a user