diff options
author | Jean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com> | 2014-10-09 17:15:33 +0200 |
---|---|---|
committer | Jean-Baptiste Lievremont <jean-baptiste.lievremont@sonarsource.com> | 2014-10-14 14:52:51 +0200 |
commit | 0a0522f18f9267c0e895905530f0e8221e2c5bb9 (patch) | |
tree | ca8d49ca2aa49fe73f22a56c179316e509e69928 /server/sonar-web/src | |
parent | f579e78c343c3d05015d07d1917e9d37f557e462 (diff) | |
download | sonarqube-0a0522f18f9267c0e895905530f0e8221e2c5bb9.tar.gz sonarqube-0a0522f18f9267c0e895905530f0e8221e2c5bb9.zip |
SONAR-5538 Fix comparison page on projects when snapshot_id != null but referenced snapshot has disappeared
Diffstat (limited to 'server/sonar-web/src')
-rw-r--r-- | server/sonar-web/src/main/webapp/WEB-INF/app/controllers/comparison_controller.rb | 28 | ||||
-rw-r--r-- | server/sonar-web/src/main/webapp/WEB-INF/app/views/comparison/index.html.erb | 16 |
2 files changed, 22 insertions, 22 deletions
diff --git a/server/sonar-web/src/main/webapp/WEB-INF/app/controllers/comparison_controller.rb b/server/sonar-web/src/main/webapp/WEB-INF/app/controllers/comparison_controller.rb index 1828bff6877..8966df0f57a 100644 --- a/server/sonar-web/src/main/webapp/WEB-INF/app/controllers/comparison_controller.rb +++ b/server/sonar-web/src/main/webapp/WEB-INF/app/controllers/comparison_controller.rb @@ -21,7 +21,7 @@ class ComparisonController < ApplicationController SECTION=Navigation::SECTION_HOME - + def index snapshots = [] resource_key = params[:resource] @@ -30,7 +30,7 @@ class ComparisonController < ApplicationController project = Project.by_key(resource_key) return render_not_found('Project not found') unless project - snapshots = project.events.select { |event| !event.snapshot_id.nil? && event.category==EventCategory::KEY_VERSION }[0..5].reverse.map {|e| e.snapshot} + snapshots = project.events.select { |event| !event.snapshot.nil? && event.category==EventCategory::KEY_VERSION }[0..5].reverse.map {|e| e.snapshot} # if last snapshot is not in the list, add it at the end (=> might be the case for views or developers which do not have events) last_snapshot = project.last_snapshot unless snapshots.last == last_snapshot @@ -46,15 +46,15 @@ class ComparisonController < ApplicationController sids.each do |id| selected_snapshots.each do |s| snapshots << s if id==s.id.to_s - end + end end end - end + end @snapshots = select_authorized(:user, snapshots) - + metrics = get_params_as_array(:metrics) if metrics.empty? - metrics = [ + metrics = [ 'ncloc', 'complexity', 'comment_lines_density', @@ -64,20 +64,20 @@ class ComparisonController < ApplicationController ] end @metrics = Metric.by_keys(metrics) - + @metric_to_choose = Metric.all.select {|m| m.display? && !m.on_new_code? && !@metrics.include?(m)}.sort_by(&:short_name) end - + def versions key = params[:resource] sids = get_params_as_array(:sids) - + unless key.blank? resource = Project.by_key(params[:resource]) - + # we look for the events that are versions and that are not linked to snapshots already displayed on the page @versions = resource.events.select { |event| !event.snapshot_id.nil? && event.category==EventCategory::KEY_VERSION && !sids.include?(event.snapshot_id.to_s) } - + # check if the latest snapshot if suggested or not (and if not, suggest it as "LATEST" => this is used for views or developers which do not have events) latest_snapshot_id = resource.last_snapshot.id current_and_suggested_sids = sids + @versions.map {|e| e.snapshot_id.to_s} @@ -85,13 +85,13 @@ class ComparisonController < ApplicationController @versions.unshift Event.new(:name => Api::Utils.message('comparison.version.latest'), :snapshot_id => latest_snapshot_id) end end - + render :partial => 'versions' end - + private - + def get_params_as_array(name) list = params[name] if list.blank? diff --git a/server/sonar-web/src/main/webapp/WEB-INF/app/views/comparison/index.html.erb b/server/sonar-web/src/main/webapp/WEB-INF/app/views/comparison/index.html.erb index 71a1b4463a1..78e2b2f6c8d 100644 --- a/server/sonar-web/src/main/webapp/WEB-INF/app/views/comparison/index.html.erb +++ b/server/sonar-web/src/main/webapp/WEB-INF/app/views/comparison/index.html.erb @@ -93,7 +93,7 @@ }); </script> </div> - + <div id="resource_div" style="display: inline-block; margin-left: 30px"> <%= resource_select_tag 'new_resource', { :resource_type_property => 'comparable', @@ -147,14 +147,14 @@ }); </script> </div> - + </div> <table class="data"> <thead> - + <tr id="edit-columns-header"> - <th></th> + <th></th> <% last_index = @snapshots.size-1 @snapshots.each_with_index do |s, index| @@ -184,9 +184,9 @@ </tr> </table> </th> - <% end %> + <% end %> <th></th> - </tr> + </tr> <tr id="resource-info-header"> <th></th> <% @@ -205,7 +205,7 @@ </th> <% end %> <th></th> - </tr> + </tr> </thead> <tbody> @@ -236,7 +236,7 @@ <%= format_measure s.measure(m) -%> </td> <% end %> - + <td></td> </tr> <% end %> |