]> source.dussan.org Git - redmine.git/commitdiff
attachment: fix that diff type is not saved in user preference (#10152)
authorToshi MARUYAMA <marutosijp2@yahoo.co.jp>
Sat, 4 Feb 2012 06:23:38 +0000 (06:23 +0000)
committerToshi MARUYAMA <marutosijp2@yahoo.co.jp>
Sat, 4 Feb 2012 06:23:38 +0000 (06:23 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@8761 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/attachments_controller.rb
test/functional/attachments_controller_test.rb

index 55cef02a8b142dcab00a2cc0118977364f030594..53ff69ba8ec4d110afb9f8d9009341deff7a7fe3 100644 (file)
@@ -29,6 +29,11 @@ class AttachmentsController < ApplicationController
           @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)
+          # Save diff type as user preference
+          if User.current.logged? && @diff_type != User.current.pref[:diff_type]
+            User.current.pref[:diff_type] = @diff_type
+            User.current.preference.save
+          end
           render :action => 'diff'
         elsif @attachment.is_text? && @attachment.filesize <= Setting.file_max_size_displayed.to_i.kilobyte
           @content = File.new(@attachment.diskfile, "rb").read
index dd5c05fdf30e45d48ec6ddb00e3921bddca8a278..2cf79672da8d8cd129f05a4f1743a4d645767e79 100644 (file)
@@ -95,6 +95,21 @@ class AttachmentsControllerTest < ActionController::TestCase
     set_tmp_attachments_directory
   end
 
+  def test_save_diff_type
+    @request.session[:user_id] = 1 # admin
+    user = User.find(1)
+    get :show, :id => 5
+    assert_response :success
+    assert_template 'diff'
+    user.reload
+    assert_equal "inline", user.pref[:diff_type]
+    get :show, :id => 5, :type => 'sbs'
+    assert_response :success
+    assert_template 'diff'
+    user.reload
+    assert_equal "sbs", user.pref[:diff_type]
+  end
+
   def test_show_text_file
     get :show, :id => 4
     assert_response :success