diff --git a/app/javascript/src/styles/common/utilities.scss b/app/javascript/src/styles/common/utilities.scss index 47ccd3079..49fa498e6 100644 --- a/app/javascript/src/styles/common/utilities.scss +++ b/app/javascript/src/styles/common/utilities.scss @@ -122,6 +122,9 @@ $spacer: 0.25rem; /* 4px */ .ml-4 { margin-left: 4 * $spacer; } +.mr-2 { margin-right: 2 * $spacer; } +.mr-4 { margin-right: 4 * $spacer; } + .p-0 { padding: 0; } .p-px { padding: 1px; } .p-0\.5 { padding: 0.5 * $spacer; } diff --git a/app/models/media_asset.rb b/app/models/media_asset.rb index c13387fd5..1bb44d37f 100644 --- a/app/models/media_asset.rb +++ b/app/models/media_asset.rb @@ -499,6 +499,15 @@ class MediaAsset < ApplicationRecord end end + def source_urls + urls = upload_media_assets.map { |uma| Source::URL.page_url(uma.source_url) || uma.page_url || uma.source_url } + urls += [post.normalized_source] if post&.normalized_source.present? + + urls.compact.select do |url| + url.match?(%r{\Ahttps?://}i) && Source::URL.parse(url).recognized? + end.uniq + end + def self.generate_file_key loop do key = SecureRandom.send(:choose, [*"0".."9", *"A".."Z", *"a".."z"], FILE_KEY_LENGTH) # base62 diff --git a/app/views/media_assets/show.html.erb b/app/views/media_assets/show.html.erb index 12bbb39fa..5b851bbb6 100644 --- a/app/views/media_assets/show.html.erb +++ b/app/views/media_assets/show.html.erb @@ -13,6 +13,12 @@ <% if policy(@media_asset).can_see_image? %> <% component.with_footer do %>
+ + <% @media_asset.source_urls.take(5).each do |url| %> + <%= external_link_to url, external_site_icon(Source::URL.site_name(url), class: "h-4"), title: url, class: "inline-block align-top" %> + <% end %> + + <%= link_to @media_asset.original.file_url do %> <%= number_to_human_size(@media_asset.file_size) %> .<%= @media_asset.file_ext %>, <%= @media_asset.image_width %>x<%= @media_asset.image_height %> @@ -50,7 +56,7 @@
- +
@@ -91,6 +97,13 @@ <% end %> + <% @media_asset.source_urls.each do |url| %> + + + + + <% end %> + <% @media_asset.metadata.group_by { |key, value| key.split(":").first }.sort.each do |group, pairs| %>
Metadata
Source<%= external_link_to url %>
<%= group.split(/[ _-]/).map(&:upcase_first).join(" ") %>