From d77c1d2829f985c418442940c623ec6ec5d5457b Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Sun, 8 Jun 2008 18:26:39 +0000 Subject: Unified diff viewer for attached files with .patch or .diff extension (#1403). git-svn-id: http://redmine.rubyforge.org/svn/trunk@1516 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/controllers/attachments_controller.rb | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'app/controllers/attachments_controller.rb') diff --git a/app/controllers/attachments_controller.rb b/app/controllers/attachments_controller.rb index 4e87e5442..cfc15669f 100644 --- a/app/controllers/attachments_controller.rb +++ b/app/controllers/attachments_controller.rb @@ -19,19 +19,26 @@ class AttachmentsController < ApplicationController layout 'base' before_filter :find_project, :check_project_privacy + def show + if @attachment.is_diff? + @diff = File.new(@attachment.diskfile, "rb").read + render :action => 'diff' + else + download + end + end + def download # images are sent inline send_file @attachment.diskfile, :filename => filename_for_content_disposition(@attachment.filename), :type => @attachment.content_type, :disposition => (@attachment.image? ? 'inline' : 'attachment') - rescue - # in case the disk file was deleted - render_404 end private def find_project @attachment = Attachment.find(params[:id]) + render_404 and return false unless File.readable?(@attachment.diskfile) @project = @attachment.project rescue render_404 -- cgit v1.2.3