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/controllers | |
| 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/controllers')
| -rw-r--r-- | app/controllers/assets_controller.rb | 2 | ||||
| -rw-r--r-- | app/controllers/related_assets_controller.rb | 12 |
2 files changed, 12 insertions, 2 deletions
diff --git a/app/controllers/assets_controller.rb b/app/controllers/assets_controller.rb index d150e06..becfe13 100644 --- a/app/controllers/assets_controller.rb +++ b/app/controllers/assets_controller.rb | |||
| @@ -89,6 +89,6 @@ class AssetsController < ApplicationController | |||
| 89 | private | 89 | private |
| 90 | 90 | ||
| 91 | def asset_params | 91 | def asset_params |
| 92 | params.require(:asset).permit(:name, :upload) | 92 | params.require(:asset).permit(:name, :upload, :creator, :source_url, :license_key) |
| 93 | end | 93 | end |
| 94 | end | 94 | end |
diff --git a/app/controllers/related_assets_controller.rb b/app/controllers/related_assets_controller.rb index 5af73fc..da82cde 100644 --- a/app/controllers/related_assets_controller.rb +++ b/app/controllers/related_assets_controller.rb | |||
| @@ -39,7 +39,17 @@ class RelatedAssetsController < ApplicationController | |||
| 39 | end | 39 | end |
| 40 | 40 | ||
| 41 | def update | 41 | def update |
| 42 | @node.editable_page.related_assets.find(params[:id]).insert_at(params[:position].to_i) | 42 | related = @node.editable_page.related_assets.find(params[:id]) |
| 43 | |||
| 44 | if params.key?(:headline) | ||
| 45 | RelatedAsset.transaction do | ||
| 46 | @node.editable_page.related_assets.update_all(headline: false) | ||
| 47 | related.update!(headline: true) if params[:headline] == "true" | ||
| 48 | end | ||
| 49 | else | ||
| 50 | related.insert_at(params[:position].to_i) | ||
| 51 | end | ||
| 52 | |||
| 43 | head :ok | 53 | head :ok |
| 44 | end | 54 | end |
| 45 | 55 | ||
