]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-3208 automatically drilldown from view/developer to files when there is only...
authorsimonbrandhof <simon.brandhof@gmail.com>
Fri, 24 Feb 2012 18:22:42 +0000 (19:22 +0100)
committersimonbrandhof <simon.brandhof@gmail.com>
Fri, 24 Feb 2012 18:22:42 +0000 (19:22 +0100)
sonar-server/src/main/webapp/WEB-INF/app/models/drilldown.rb

index 40f1a3eadf9347d9d8b6c4e9b7674768eae2a05b..e845677cc764f399c509d6fc29251301fa2291a4 100644 (file)
@@ -51,13 +51,13 @@ end
 
 class DrilldownColumn
 
-  attr_reader :measures, :base_snapshot, :selected_snapshot, :qualifiers, :person_id
+  attr_reader :measures, :base_snapshot, :selected_snapshot, :qualifiers, :person_id, :switch
 
   def initialize(drilldown, previous_column)
     @drilldown = drilldown
 
     if previous_column
-      @base_snapshot=(previous_column.selected_snapshot || previous_column.base_snapshot)
+      @base_snapshot=previous_column.base_snapshot_for_next_column
       @person_id=(previous_column.person_id || @base_snapshot.resource.person_id)
     else
       @base_snapshot=drilldown.snapshot
@@ -141,6 +141,15 @@ class DrilldownColumn
         end
       end
     end
+
+    if @selected_snapshot
+      @switch=(@selected_snapshot.resource && @selected_snapshot.resource.copy_resource)
+    elsif @measures.size==1
+      s = @measures.first.snapshot
+      @switch=(s.resource && s.resource.copy_resource)
+    else
+      @switch=false
+    end
   end
 
   def resource(measure)
@@ -151,11 +160,23 @@ class DrilldownColumn
     @measures && !@measures.empty?
   end
 
+  def base_snapshot_for_next_column
+    if @selected_snapshot
+      @selected_snapshot
+
+    elsif @measures && @measures.size==1
+      @measures.first.snapshot
+
+    else
+      @base_snapshot
+    end
+  end
+
   def valid?
     @base_snapshot && @qualifiers && !@qualifiers.empty?
   end
 
   def switch?
-    selected_snapshot && selected_snapshot.resource && selected_snapshot.resource.copy_resource
+    @switch
   end
 end
\ No newline at end of file