diff options
-rw-r--r-- | app/controllers/repositories_controller.rb | 19 | ||||
-rw-r--r-- | app/views/repositories/annotate.html.erb | 5 | ||||
-rw-r--r-- | test/functional/repositories_git_controller_test.rb | 4 |
3 files changed, 17 insertions, 11 deletions
diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index 9bee5b837..07f1db0b4 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -211,14 +211,17 @@ class RepositoriesController < ApplicationController @annotate = @repository.scm.annotate(@path, @rev) if @annotate.nil? || @annotate.empty? - (render_error l(:error_scm_annotate); return) - end - ann_buf_size = 0 - @annotate.lines.each do |buf| - ann_buf_size += buf.size - end - if ann_buf_size > Setting.file_max_size_displayed.to_i.kilobyte - (render_error l(:error_scm_annotate_big_text_file); return) + @annotate = nil + @error_message = l(:error_scm_annotate) + else + ann_buf_size = 0 + @annotate.lines.each do |buf| + ann_buf_size += buf.size + end + if ann_buf_size > Setting.file_max_size_displayed.to_i.kilobyte + @annotate = nil + @error_message = l(:error_scm_annotate_big_text_file) + end end @changeset = @repository.find_changeset_by_name(@rev) end diff --git a/app/views/repositories/annotate.html.erb b/app/views/repositories/annotate.html.erb index fcb6d3d84..79a548f7e 100644 --- a/app/views/repositories/annotate.html.erb +++ b/app/views/repositories/annotate.html.erb @@ -8,8 +8,8 @@ <%= render :partial => 'link_to_functions' %> +<% if @annotate %> <% colors = Hash.new {|k,v| k[v] = (k.size % 12) } %> - <div class="autoscroll"> <table class="filecontent annotate syntaxhl"> <tbody> @@ -38,6 +38,9 @@ </tbody> </table> </div> +<% else %> +<p id="errorExplanation"><%= @error_message %></p> +<% end %> <% html_title(l(:button_annotate)) -%> diff --git a/test/functional/repositories_git_controller_test.rb b/test/functional/repositories_git_controller_test.rb index 4ec419c53..4c2939e35 100644 --- a/test/functional/repositories_git_controller_test.rb +++ b/test/functional/repositories_git_controller_test.rb @@ -449,7 +449,7 @@ class RepositoriesGitControllerTest < Redmine::ControllerTest with_settings :default_language => 'en' do get :annotate, :id => PRJ_ID, :path => repository_path_hash(['images', 'edit.png'])[:param] - assert_response 500 + assert_response 200 assert_select 'p#errorExplanation', :text => /cannot be annotated/ end end @@ -459,7 +459,7 @@ class RepositoriesGitControllerTest < Redmine::ControllerTest get :annotate, :id => PRJ_ID, :path => repository_path_hash(['sources', 'watchers_controller.rb'])[:param], :rev => 'deff712f' - assert_response 500 + assert_response 200 assert_select 'p#errorExplanation', :text => /exceeds the maximum text file size/ get :annotate, :id => PRJ_ID, |