Feature #25988 » 0002-Switch-default-behaviour-on-Attachment-click-to-view.patch
| app/helpers/issues_helper.rb | ||
|---|---|---|
| 468 | 468 |
if detail.property == 'attachment' && value.present? && |
| 469 | 469 |
atta = detail.journal.journalized.attachments.detect {|a| a.id == detail.prop_key.to_i}
|
| 470 | 470 |
# Link to the attachment if it has not been removed |
| 471 |
value = link_to_attachment(atta, :download => true, :only_path => options[:only_path])
|
|
| 472 |
if options[:only_path] != false && (atta.is_text? || atta.is_image?)
|
|
| 471 |
value = link_to_attachment(atta, only_path: options[:only_path])
|
|
| 472 |
if options[:only_path] != false |
|
| 473 | 473 |
value += ' ' |
| 474 |
value += link_to(l(:button_view), |
|
| 475 |
{ :controller => 'attachments', :action => 'show',
|
|
| 476 |
:id => atta, :filename => atta.filename }, |
|
| 477 |
:class => 'icon-only icon-magnifier', |
|
| 478 |
:title => l(:button_view)) |
|
| 474 |
value += link_to_attachment atta, class: 'icon-only icon-save', title: l(:button_download), download: true |
|
| 479 | 475 |
end |
| 480 | 476 |
else |
| 481 | 477 |
value = content_tag("i", h(value)) if value
|
| app/models/attachment.rb | ||
|---|---|---|
| 31 | 31 |
attr_protected :id |
| 32 | 32 | |
| 33 | 33 |
acts_as_event :title => :filename, |
| 34 |
:url => Proc.new {|o| {:controller => 'attachments', :action => 'download', :id => o.id, :filename => o.filename}}
|
|
| 34 |
:url => Proc.new {|o| {:controller => 'attachments', :action => 'show', :id => o.id, :filename => o.filename}}
|
|
| 35 | 35 | |
| 36 | 36 |
acts_as_activity_provider :type => 'files', |
| 37 | 37 |
:permission => :view_files, |
| ... | ... | |
| 251 | 251 |
Redmine::MimeType.of(filename) == "application/pdf" |
| 252 | 252 |
end |
| 253 | 253 | |
| 254 |
def previewable? |
|
| 255 |
is_text? || is_image? |
|
| 256 |
end |
|
| 257 | ||
| 254 | 258 |
# Returns true if the file is readable |
| 255 | 259 |
def readable? |
| 256 | 260 |
disk_filename.present? && File.readable?(diskfile) |
| app/views/attachments/_links.html.erb | ||
|---|---|---|
| 6 | 6 |
:class => 'icon-only icon-edit' |
| 7 | 7 |
) if options[:editable] %> |
| 8 | 8 |
</div> |
| 9 |
<table> |
|
| 9 | 10 |
<% for attachment in attachments %> |
| 10 |
<p><%= link_to_attachment attachment, :class => 'icon icon-attachment', :download => true -%> |
|
| 11 |
<% if attachment.is_text? || attachment.is_image? %> |
|
| 12 |
<%= link_to l(:button_view), |
|
| 13 |
{ :controller => 'attachments', :action => 'show',
|
|
| 14 |
:id => attachment, :filename => attachment.filename }, |
|
| 15 |
:class => 'icon-only icon-magnifier', |
|
| 16 |
:title => l(:button_view) %> |
|
| 17 |
<% end %> |
|
| 18 |
<%= " - #{attachment.description}" unless attachment.description.blank? %>
|
|
| 19 |
<span class="size">(<%= number_to_human_size attachment.filesize %>)</span> |
|
| 20 |
<% if options[:deletable] %> |
|
| 21 |
<%= link_to l(:button_delete), attachment_path(attachment), |
|
| 22 |
:data => {:confirm => l(:text_are_you_sure)},
|
|
| 23 |
:method => :delete, |
|
| 24 |
:class => 'delete icon-only icon-del', |
|
| 25 |
:title => l(:button_delete) %> |
|
| 26 |
<% end %> |
|
| 27 |
<% if options[:author] %> |
|
| 28 |
<span class="author"><%= attachment.author %>, <%= format_time(attachment.created_on) %></span> |
|
| 29 |
<% end %> |
|
| 30 |
</p> |
|
| 11 |
<tr> |
|
| 12 |
<td> |
|
| 13 |
<%= link_to_attachment attachment, class: 'icon icon-attachment' -%> |
|
| 14 |
<span class="size">(<%= number_to_human_size attachment.filesize %>)</span> |
|
| 15 |
</td> |
|
| 16 |
<td><%= attachment.description unless attachment.description.blank? %></td> |
|
| 17 |
<td> |
|
| 18 |
<% if options[:author] %> |
|
| 19 |
<span class="author"><%= attachment.author %>, <%= format_time(attachment.created_on) %></span> |
|
| 20 |
<% end %> |
|
| 21 |
</td> |
|
| 22 |
<td><%= link_to_attachment attachment, class: 'icon-only icon-save', title: l(:button_download), download: true -%></td> |
|
| 23 |
<td> |
|
| 24 |
<% if options[:deletable] %> |
|
| 25 |
<%= link_to l(:button_delete), attachment_path(attachment), |
|
| 26 |
:data => {:confirm => l(:text_are_you_sure)},
|
|
| 27 |
:method => :delete, |
|
| 28 |
:class => 'delete icon-only icon-del', |
|
| 29 |
:title => l(:button_delete) %> |
|
| 30 |
<% end %> |
|
| 31 |
</td> |
|
| 32 |
</tr> |
|
| 31 | 33 |
<% end %> |
| 34 |
</table> |
|
| 32 | 35 |
<% if defined?(thumbnails) && thumbnails %> |
| 33 | 36 |
<% images = attachments.select(&:thumbnailable?) %> |
| 34 | 37 |
<% if images.any? %> |
| app/views/files/index.html.erb | ||
|---|---|---|
| 27 | 27 |
<% end -%> |
| 28 | 28 |
<% container.attachments.each do |file| %> |
| 29 | 29 |
<tr class="file"> |
| 30 |
<td class="filename"><%= link_to_attachment file, :download => true, :title => file.description %></td>
|
|
| 30 |
<td class="filename"><%= link_to_attachment file, :title => file.description -%></td>
|
|
| 31 | 31 |
<td class="created_on"><%= format_time(file.created_on) %></td> |
| 32 | 32 |
<td class="filesize"><%= number_to_human_size(file.filesize) %></td> |
| 33 | 33 |
<td class="downloads"><%= file.downloads %></td> |
| 34 | 34 |
<td class="digest"><%= file.digest_type %>: <%= file.digest %></td> |
| 35 | 35 |
<td class="buttons"> |
| 36 |
<%= link_to_attachment file, class: 'icon-only icon-save', title: l(:button_download), download: true %> |
|
| 36 | 37 |
<%= link_to(image_tag('delete.png'), attachment_path(file),
|
| 37 | 38 |
:data => {:confirm => l(:text_are_you_sure)}, :method => :delete) if delete_allowed %>
|
| 38 | 39 |
</td> |