diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 952c2e58a..b8a53ad5e 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -253,7 +253,17 @@ module ApplicationHelper when 'Issue' object.visible? && html ? link_to_issue(object) : "##{object.id}" when 'Attachment' - html ? link_to_attachment(object) : object.filename + if html + content_tag(:span, + link_to_attachment(object) + + link_to_attachment( + object, + :class => ['icon-only', 'icon-download'], :title => l(:button_download), :download => true + ) + ) + else + object.filename + end when 'CustomValue', 'CustomFieldValue' if object.custom_field f = object.custom_field.format.formatted_custom_value(self, object, html) diff --git a/public/stylesheets/application.css b/public/stylesheets/application.css index 2fc541bc0..517889e6a 100644 --- a/public/stylesheets/application.css +++ b/public/stylesheets/application.css @@ -238,7 +238,9 @@ table.list td {text-align:center; vertical-align:middle; padding-right:10px;} table.list td.id { width: 2%; text-align: center;} table.list td.name, table.list td.description, table.list td.subject, table.list td.comments, table.list td.roles, table.list td.attachments, table.list td.text, table.list td.short_description {text-align: left;} -table.list td.attachments a {display:block;} +table.list td.attachments span {display:block; height:16px;} +table.list td.attachments span a.icon-download {display:none;} +table.list td.attachments span:hover a.icon-download {display:inline-block;} table.list td.tick {width:15%} table.list td.checkbox { width: 15px; padding: 2px 0 0 0; } table.list .checkbox input {padding:0px; height: initial;} diff --git a/test/functional/issues_controller_test.rb b/test/functional/issues_controller_test.rb index 31bb2a9ab..2acea06fa 100644 --- a/test/functional/issues_controller_test.rb +++ b/test/functional/issues_controller_test.rb @@ -1498,8 +1498,14 @@ class IssuesControllerTest < Redmine::ControllerTest assert_select 'td.attachments' assert_select 'tr#issue-2' do assert_select 'td.attachments' do - assert_select 'a', :text => 'source.rb' - assert_select 'a', :text => 'picture.jpg' + assert_select 'span:nth-of-type(1)' do + assert_select 'a[href=?]', '/attachments/4', :text => 'source.rb' + assert_select 'a[href=?].icon-download', '/attachments/download/4/source.rb' + end + assert_select 'span:nth-of-type(2)' do + assert_select 'a[href=?]', '/attachments/10', :text => 'picture.jpg' + assert_select 'a[href=?].icon-download', '/attachments/download/10/picture.jpg' + end end end end