From 53637b520a11fe788643e97d2bc422151fdf3df1 Mon Sep 17 00:00:00 2001 From: maebeale Date: Thu, 4 Jun 2026 20:40:40 -0400 Subject: [PATCH] Open attachment links in gallery in a new tab Clicking an attachment's filename in the image/gallery section of an edit form navigated away in the same tab, discarding unsaved form edits. Open these links in a new tab so in-progress work is preserved, matching how the show-page galleries already behave. Fixes #1511 Co-Authored-By: Claude Opus 4.8 --- app/views/shared/_form_image_field.html.erb | 2 +- .../shared/_form_image_field.html.erb_spec.rb | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 spec/views/shared/_form_image_field.html.erb_spec.rb diff --git a/app/views/shared/_form_image_field.html.erb b/app/views/shared/_form_image_field.html.erb index e9bb300a0..53eb1e48a 100644 --- a/app/views/shared/_form_image_field.html.erb +++ b/app/views/shared/_form_image_field.html.erb @@ -80,7 +80,7 @@
<%= if blob.present? && blob.respond_to?(:persisted?) && blob.persisted? - link_to(blob.filename.to_s, url_for(file), class: "underline") + link_to(blob.filename.to_s, url_for(file), class: "underline", target: "_blank", rel: "noopener") else "No file selected" end diff --git a/spec/views/shared/_form_image_field.html.erb_spec.rb b/spec/views/shared/_form_image_field.html.erb_spec.rb new file mode 100644 index 000000000..ba388dc21 --- /dev/null +++ b/spec/views/shared/_form_image_field.html.erb_spec.rb @@ -0,0 +1,14 @@ +require "rails_helper" + +RSpec.describe "shared/_form_image_field", type: :view do + let(:asset) { create(:gallery_asset, :with_file) } + let(:builder) { ActionView::Helpers::FormBuilder.new(:gallery_asset, asset, view, {}) } + + before do + render partial: "shared/form_image_field", locals: { f: builder, label: "Gallery 1" } + end + + it "links the attached file's name so it opens in a new tab" do + expect(rendered).to have_css("a[href][target='_blank'][rel='noopener']", text: asset.file.filename.to_s) + end +end