]> source.dussan.org Git - redmine.git/commitdiff
Remove filename from attachment preview links (#27822).
authorGo MAEDA <maeda@farend.jp>
Mon, 9 Jul 2018 14:29:38 +0000 (14:29 +0000)
committerGo MAEDA <maeda@farend.jp>
Mon, 9 Jul 2018 14:29:38 +0000 (14:29 +0000)
Patch by Felix Schäfer and Gregor Schmidt.

git-svn-id: http://svn.redmine.org/redmine/trunk@17440 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/helpers/application_helper.rb
test/functional/issues_controller_test.rb
test/helpers/application_helper_test.rb

index 576b996470687a2cecfc5fb62213248a84cbf54c..b7d83803488c82da6536f75be627f8b2f3e427a4 100644 (file)
@@ -98,10 +98,17 @@ module ApplicationHelper
   # * :download - Force download (default: false)
   def link_to_attachment(attachment, options={})
     text = options.delete(:text) || attachment.filename
-    route_method = options.delete(:download) ? :download_named_attachment_url : :named_attachment_url
-    html_options = options.slice!(:only_path)
+    if options.delete(:download)
+      route_method = :download_named_attachment_url
+      options[:filename] = attachment.filename
+    else
+      route_method = :attachment_url
+      # make sure we don't have an extraneous :filename in the options
+      options.delete(:filename)
+    end
+    html_options = options.slice!(:only_path, :filename)
     options[:only_path] = true unless options.key?(:only_path)
-    url = send(route_method, attachment, attachment.filename, options)
+    url = send(route_method, attachment, options)
     link_to text, url, html_options
   end
 
@@ -263,9 +270,8 @@ module ApplicationHelper
         :srcset => "#{thumbnail_path(attachment, :size => thumbnail_size * 2)} 2x",
         :style => "max-width: #{thumbnail_size}px; max-height: #{thumbnail_size}px;"
       ),
-      named_attachment_path(
-        attachment,
-        attachment.filename
+      attachment_path(
+        attachment
       ),
       :title => attachment.filename
     )
index 61b2ded0c5a775d39855bb4a5f08013a1b188d9a..35c5053450b3333163024d458972ffb50fd4a840 100644 (file)
@@ -2081,7 +2081,7 @@ class IssuesControllerTest < Redmine::ControllerTest
     end
 
     assert_select 'div.thumbnails' do
-      assert_select 'a[href="/attachments/16/testfile.png"]' do
+      assert_select 'a[href="/attachments/16"]' do
         assert_select 'img[src="/attachments/thumbnail/16"]'
       end
     end
index e28a567978b910e824d892d1cfdd965780273b1f..aa403be460b36f57aec00188e86bd38cd88d6ece 100644 (file)
@@ -677,7 +677,7 @@ RAW
 
   def test_attachment_links
     text = 'attachment:error281.txt'
-    result = link_to("error281.txt", "/attachments/1/error281.txt",
+    result = link_to("error281.txt", "/attachments/1",
                      :class => "attachment")
     assert_equal "<p>#{result}</p>",
                  textilizable(text,
@@ -689,7 +689,7 @@ RAW
     set_tmp_attachments_directory
     a1 = Attachment.generate!(:filename => "test.txt", :created_on => 1.hour.ago)
     a2 = Attachment.generate!(:filename => "test.txt")
-    result = link_to("test.txt", "/attachments/#{a2.id}/test.txt",
+    result = link_to("test.txt", "/attachments/#{a2.id}",
                      :class => "attachment")
     assert_equal "<p>#{result}</p>",
                  textilizable('attachment:test.txt', :attachments => [a1, a2])
@@ -700,13 +700,13 @@ RAW
 
     with_settings :text_formatting => 'textile' do
       raw = "attachment:image@2x.png should not be parsed in image@2x.png"
-      assert_match %r{<p><a class="attachment" href="/attachments/#{attachment.id}/image@2x.png">image@2x.png</a> should not be parsed in image@2x.png</p>},
+      assert_match %r{<p><a class="attachment" href="/attachments/#{attachment.id}">image@2x.png</a> should not be parsed in image@2x.png</p>},
         textilizable(raw, :attachments => [attachment])
     end
 
     with_settings :text_formatting => 'markdown' do
       raw = "attachment:image@2x.png should not be parsed in image@2x.png"
-      assert_match %r{<p><a class="attachment" href="/attachments/#{attachment.id}/image@2x.png">image@2x.png</a> should not be parsed in image@2x.png</p>} ,
+      assert_match %r{<p><a class="attachment" href="/attachments/#{attachment.id}">image@2x.png</a> should not be parsed in image@2x.png</p>} ,
         textilizable(raw, :attachments => [attachment])
     end
   end
@@ -1445,16 +1445,16 @@ RAW
 
   def test_link_to_attachment
     a = Attachment.find(3)
-    assert_equal '<a href="/attachments/3/logo.gif">logo.gif</a>',
+    assert_equal '<a href="/attachments/3">logo.gif</a>',
       link_to_attachment(a)
-    assert_equal '<a href="/attachments/3/logo.gif">Text</a>',
+    assert_equal '<a href="/attachments/3">Text</a>',
       link_to_attachment(a, :text => 'Text')
-    result = link_to("logo.gif", "/attachments/3/logo.gif", :class => "foo")
+    result = link_to("logo.gif", "/attachments/3", :class => "foo")
     assert_equal result,
       link_to_attachment(a, :class => 'foo')
     assert_equal '<a href="/attachments/download/3/logo.gif">logo.gif</a>',
       link_to_attachment(a, :download => true)
-    assert_equal '<a href="http://test.host/attachments/3/logo.gif">logo.gif</a>',
+    assert_equal '<a href="http://test.host/attachments/3">logo.gif</a>',
       link_to_attachment(a, :only_path => false)
   end
 
@@ -1462,7 +1462,7 @@ RAW
     a = Attachment.find(3)
     assert_select_in thumbnail_tag(a),
       'a[href=?][title=?] img[src=?]',
-      "/attachments/3/logo.gif", "logo.gif", "/attachments/thumbnail/3"
+      "/attachments/3", "logo.gif", "/attachments/thumbnail/3"
   end
 
   def test_link_to_project