Patch by Jan Schulz-Hofen. git-svn-id: http://svn.redmine.org/redmine/trunk@16651 e93f8b46-1217-0410-a6f0-8f06a7374b81tags/3.4.0
@@ -468,14 +468,10 @@ module IssuesHelper | |||
if detail.property == 'attachment' && value.present? && | |||
atta = detail.journal.journalized.attachments.detect {|a| a.id == detail.prop_key.to_i} | |||
# Link to the attachment if it has not been removed | |||
value = link_to_attachment(atta, :download => true, :only_path => options[:only_path]) | |||
if options[:only_path] != false && (atta.is_text? || atta.is_image?) | |||
value = link_to_attachment(atta, only_path: options[:only_path]) | |||
if options[:only_path] != false | |||
value += ' ' | |||
value += link_to(l(:button_view), | |||
{ :controller => 'attachments', :action => 'show', | |||
:id => atta, :filename => atta.filename }, | |||
:class => 'icon-only icon-magnifier', | |||
:title => l(:button_view)) | |||
value += link_to_attachment atta, class: 'icon-only icon-download', title: l(:button_download), download: true | |||
end | |||
else | |||
value = content_tag("i", h(value)) if value |
@@ -31,7 +31,7 @@ class Attachment < ActiveRecord::Base | |||
attr_protected :id | |||
acts_as_event :title => :filename, | |||
:url => Proc.new {|o| {:controller => 'attachments', :action => 'download', :id => o.id, :filename => o.filename}} | |||
:url => Proc.new {|o| {:controller => 'attachments', :action => 'show', :id => o.id, :filename => o.filename}} | |||
acts_as_activity_provider :type => 'files', | |||
:permission => :view_files, | |||
@@ -251,6 +251,10 @@ class Attachment < ActiveRecord::Base | |||
Redmine::MimeType.of(filename) == "application/pdf" | |||
end | |||
def previewable? | |||
is_text? || is_image? | |||
end | |||
# Returns true if the file is readable | |||
def readable? | |||
disk_filename.present? && File.readable?(diskfile) |
@@ -6,29 +6,32 @@ | |||
:class => 'icon-only icon-edit' | |||
) if options[:editable] %> | |||
</div> | |||
<table> | |||
<% for attachment in attachments %> | |||
<p><%= link_to_attachment attachment, :class => 'icon icon-attachment', :download => true -%> | |||
<% if attachment.is_text? || attachment.is_image? %> | |||
<%= link_to l(:button_view), | |||
{ :controller => 'attachments', :action => 'show', | |||
:id => attachment, :filename => attachment.filename }, | |||
:class => 'icon-only icon-magnifier', | |||
:title => l(:button_view) %> | |||
<% end %> | |||
<%= " - #{attachment.description}" unless attachment.description.blank? %> | |||
<span class="size">(<%= number_to_human_size attachment.filesize %>)</span> | |||
<% if options[:deletable] %> | |||
<%= link_to l(:button_delete), attachment_path(attachment), | |||
:data => {:confirm => l(:text_are_you_sure)}, | |||
:method => :delete, | |||
:class => 'delete icon-only icon-del', | |||
:title => l(:button_delete) %> | |||
<% end %> | |||
<% if options[:author] %> | |||
<span class="author"><%= attachment.author %>, <%= format_time(attachment.created_on) %></span> | |||
<% end %> | |||
</p> | |||
<tr> | |||
<td> | |||
<%= link_to_attachment attachment, class: 'icon icon-attachment' -%> | |||
<span class="size">(<%= number_to_human_size attachment.filesize %>)</span> | |||
<%= link_to_attachment attachment, class: 'icon-only icon-download', title: l(:button_download), download: true -%> | |||
</td> | |||
<td><%= attachment.description unless attachment.description.blank? %></td> | |||
<td> | |||
<% if options[:author] %> | |||
<span class="author"><%= attachment.author %>, <%= format_time(attachment.created_on) %></span> | |||
<% end %> | |||
</td> | |||
<td> | |||
<% if options[:deletable] %> | |||
<%= link_to l(:button_delete), attachment_path(attachment), | |||
:data => {:confirm => l(:text_are_you_sure)}, | |||
:method => :delete, | |||
:class => 'delete icon-only icon-del', | |||
:title => l(:button_delete) %> | |||
<% end %> | |||
</td> | |||
</tr> | |||
<% end %> | |||
</table> | |||
<% if defined?(thumbnails) && thumbnails %> | |||
<% images = attachments.select(&:thumbnailable?) %> | |||
<% if images.any? %> |
@@ -27,13 +27,14 @@ | |||
<% end -%> | |||
<% container.attachments.each do |file| %> | |||
<tr class="file"> | |||
<td class="filename"><%= link_to_attachment file, :download => true, :title => file.description %></td> | |||
<td class="filename"><%= link_to_attachment file, :title => file.description -%></td> | |||
<td class="created_on"><%= format_time(file.created_on) %></td> | |||
<td class="filesize"><%= number_to_human_size(file.filesize) %></td> | |||
<td class="downloads"><%= file.downloads %></td> | |||
<td class="digest"><%= file.digest_type %>: <%= file.digest %></td> | |||
<td class="buttons"> | |||
<%= link_to(image_tag('delete.png'), attachment_path(file), | |||
<%= link_to_attachment file, class: 'icon-only icon-download', title: l(:button_download), download: true %> | |||
<%= link_to(l(:button_delete), attachment_path(file), :class => 'icon-only icon-del', | |||
:data => {:confirm => l(:text_are_you_sure)}, :method => :delete) if delete_allowed %> | |||
</td> | |||
</tr> |