diff options
| author | erdgeist <erdgeist@erdgeist.org> | 2026-07-20 19:45:43 +0200 |
|---|---|---|
| committer | erdgeist <erdgeist@erdgeist.org> | 2026-07-20 19:45:43 +0200 |
| commit | 836308471f8d31ccdcdd3a5bd88bc76cc1c0831b (patch) | |
| tree | 821a526d4d10870654a38d07a4eb53a2180ba313 /app/views/assets/show.html.erb | |
| parent | d89e2de48a5e16ff01ec627e79c76b833e4618cf (diff) | |
Make headline images explicit, add asset credits
- related_assets gains a `headline` boolean (DB-enforced: at most one
per page), replacing "first image by position" as the headline
rule. A rake task backfills the current first image on every live
head/draft, so nothing changes visually until an editor changes it.
- The image picker sidebar gets a star toggle reflecting the flag;
the TinyMCE inline-image picker's badge now reads it too, instead
of assuming position 0.
- No headline chosen (or none attached) now falls back to the
gallery-count caption itself becoming the lightbox trigger, instead
of the gallery being unreachable.
- Assets gain creator, source_url, and license_key (against a new
config/asset_licenses.yml dictionary). asset_credit renders a
degrading attribution line, reused as a hidden per-image glightbox
caption so credit is one click away for every image, not only the
headline's always-visible one.
- Fixed: asset thumbnails rendered unconditionally regardless of
whether a real variant exists on disk. Asset#has_variant? checks
file existence, not content type -- some legacy PDFs have real
pre-rewrite thumbnails a content-type check would have hidden.
- assets#new/edit rebuilt onto the same node_description/node_content
layout as assets#show, picking up the three new fields in the
process.
Diffstat (limited to 'app/views/assets/show.html.erb')
| -rw-r--r-- | app/views/assets/show.html.erb | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/app/views/assets/show.html.erb b/app/views/assets/show.html.erb index ff00883c..a0e4e464 100644 --- a/app/views/assets/show.html.erb +++ b/app/views/assets/show.html.erb | |||
| @@ -17,7 +17,10 @@ | |||
| 17 | </div> | 17 | </div> |
| 18 | 18 | ||
| 19 | <div class="node_description">Thumbnail</div> | 19 | <div class="node_description">Thumbnail</div> |
| 20 | <div class="node_content"><%= image_tag @asset.upload.url(:medium), style: "max-width: 300px; max-height: 300px;" %></div> | 20 | <% if @asset.has_variant?(:medium) %> |
| 21 | <div class="node_description">Thumbnail</div> | ||
| 22 | <div class="node_content"><%= image_tag @asset.upload.url(:medium), style: "max-width: 300px; max-height: 300px;" %></div> | ||
| 23 | <% end %> | ||
| 21 | 24 | ||
| 22 | <div class="node_description">Public Path</div> | 25 | <div class="node_description">Public Path</div> |
| 23 | <div class="node_content"> | 26 | <div class="node_content"> |
| @@ -30,6 +33,27 @@ | |||
| 30 | </button> | 33 | </button> |
| 31 | </div> | 34 | </div> |
| 32 | 35 | ||
| 36 | <div class="node_description">Creator</div> | ||
| 37 | <div class="node_content"><%= @asset.creator.presence || "—" %></div> | ||
| 38 | |||
| 39 | <div class="node_description">Source</div> | ||
| 40 | <div class="node_content"> | ||
| 41 | <% if @asset.source_url.present? %> | ||
| 42 | <%= link_to @asset.source_url, @asset.source_url %> | ||
| 43 | <% else %> | ||
| 44 | — | ||
| 45 | <% end %> | ||
| 46 | </div> | ||
| 47 | |||
| 48 | <div class="node_description">License</div> | ||
| 49 | <div class="node_content"> | ||
| 50 | <% if (license = AssetLicense.find(@asset.license_key)) %> | ||
| 51 | <%= t("asset_licenses.#{license.key}") %> | ||
| 52 | <% else %> | ||
| 53 | — | ||
| 54 | <% end %> | ||
| 55 | </div> | ||
| 56 | |||
| 33 | <div class="node_description">Content Type</div> | 57 | <div class="node_description">Content Type</div> |
| 34 | <div class="node_content"><%= @asset.upload.content_type %></div> | 58 | <div class="node_content"><%= @asset.upload.content_type %></div> |
| 35 | 59 | ||
