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:
evazion
2022-02-18 15:44:12 -06:00
parent fc5aec7de0
commit a1d2572bad
5 changed files with 5 additions and 5 deletions

View File

@@ -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('-')

View File

@@ -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

View File

@@ -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? %>

View File

@@ -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

View File

@@ -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