diff --git a/app/controllers/attachments_controller.rb b/app/controllers/attachments_controller.rb index b0e09cb..9e6dd4c 100644 --- a/app/controllers/attachments_controller.rb +++ b/app/controllers/attachments_controller.rb @@ -27,6 +27,8 @@ class AttachmentsController < ApplicationController format.html { if @attachment.is_diff? @diff = File.new(@attachment.diskfile, "rb").read + @diff_type = params[:type] || User.current.pref[:diff_type] || 'inline' + @diff_type = 'inline' unless %w(inline sbs).include?(@diff_type) render :action => 'diff' elsif @attachment.is_text? && @attachment.filesize <= Setting.file_max_size_displayed.to_i.kilobyte @content = File.new(@attachment.diskfile, "rb").read diff --git a/app/views/attachments/diff.html.erb b/app/views/attachments/diff.html.erb index 9604792..fa4e182 100644 --- a/app/views/attachments/diff.html.erb +++ b/app/views/attachments/diff.html.erb @@ -5,9 +5,16 @@ <%= link_to_user(@attachment.author) %>, <%= format_time(@attachment.created_on) %>

<%= link_to_attachment @attachment, :text => l(:button_download), :download => true -%> (<%= number_to_human_size @attachment.filesize %>)

- -  +

+<% form_tag({}, :method => 'get') do %> + + <%= select_tag 'type', + options_for_select( + [[l(:label_diff_inline), "inline"], [l(:label_diff_side_by_side), "sbs"]], @diff_type), + :onchange => "if (this.value != '') {this.form.submit()}" %> +<% end %> +

<%= render :partial => 'common/diff', :locals => {:diff => @diff, :diff_type => @diff_type} %> <% html_title @attachment.filename %>