]> source.dussan.org Git - redmine.git/commitdiff
Preview files by default instead of downloading them (#25988).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 10 Jun 2017 10:30:59 +0000 (10:30 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 10 Jun 2017 10:30:59 +0000 (10:30 +0000)
Patch by Jan Schulz-Hofen.

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

app/helpers/issues_helper.rb
app/models/attachment.rb
app/views/attachments/_links.html.erb
app/views/files/index.html.erb

index 7036079999561baff46cae6553661b5d2c923a84..70fea91ce9d506f99011e029d32921f0cf9f568f 100644 (file)
@@ -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
index 89b9f8a7c7f20936a7e3c7f2a4f16b836aab7425..e2bc570e2e11a021fe0b5829014bc81b91223472 100644 (file)
@@ -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)
index 797f8bb439573add13f1c48af14e2a61a4b99ae5..0a9f5e3ebf74e0722d62d51cff8d97537e390156 100644 (file)
@@ -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? %>
index 5c827c195f986a0468186d0056237496fb5c3924..a1149bfbe50c37566cb09c5cbeed7d65f2ce9923 100644 (file)
   <% 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>