diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index 23575477..8ff464c5 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -106,7 +106,14 @@ class RepositoriesController < ApplicationController def diff @rev_to = params[:rev_to] ? params[:rev_to].to_i : (@rev - 1) - @diff_type = ('sbs' == params[:type]) ? 'sbs' : 'inline' + @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 @cache_key = "repositories/diff/#{@repository.id}/" + Digest::MD5.hexdigest("#{@path}-#{@rev}-#{@rev_to}-#{@diff_type}") unless read_fragment(@cache_key) diff --git a/app/views/repositories/diff.rhtml b/app/views/repositories/diff.rhtml index 5094f471..c1c33a49 100644 --- a/app/views/repositories/diff.rhtml +++ b/app/views/repositories/diff.rhtml @@ -8,7 +8,7 @@ <% end %> <% end %>
- <%= select_tag 'type', options_for_select([[l(:label_diff_inline), "inline"], [l(:label_diff_side_by_side), "sbs"]], params[:type]), :onchange => "if (this.value != '') {this.form.submit()}" %>
+ <%= 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 %>