]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-3524 Do not zoom in treemap if next step is empty
authorJulien Lancelot <julien.lancelot@gmail.com>
Wed, 21 Aug 2013 12:56:38 +0000 (14:56 +0200)
committerJulien Lancelot <julien.lancelot@gmail.com>
Wed, 21 Aug 2013 12:56:38 +0000 (14:56 +0200)
sonar-server/src/main/webapp/WEB-INF/app/models/measure_filter_display_treemap.rb
sonar-server/src/main/webapp/javascripts/application.js

index b234563f36d17c9b78a637d1b97767f162ad4d4e..23bfe106b1a61b98f02b7e40e25a4b434cb4bfb9 100644 (file)
@@ -42,10 +42,11 @@ class MeasureFilterDisplayTreemap < MeasureFilterDisplay
   end
 
   def html
-    if filter.rows
+    # SONAR-3524
+    # If filter is empty, we return a empty result in order to be treated more easily
+    if filter.rows && !filter.rows.empty?
       root = Treemap::Node.new(:id => -1, :label => '')
       build_tree(root)
-
       output = Sonar::HtmlOutput.new do |o|
         # width in percents
         o.width = 100
index 501fd589a246ce89487923808420cfcae76ae4a5..29a1db1a12dcbdde2fd550cb8a150912a4653ce9 100644 (file)
@@ -201,8 +201,14 @@ Treemap.prototype.load = function () {
     url: baseUrl + '/treemap/index?html_id=' + this.id + '&size_metric=' + this.sizeMetric + '&color_metric=' + this.colorMetric + '&resource=' + context.rid,
     dataType: "html",
     success: function (data) {
-      self.rootNode().html(data);
-      self.initNodes();
+      if (data.length > 1) {
+        self.rootNode().html(data);
+        self.initNodes();
+      } else {
+        // SONAR-3524
+        // When data is empty, do not display it and revert breadcrumb state
+        self.breadcrumb.pop();
+      }
       $j("#tm-loading-" + self.id).hide();
     }
   });
@@ -241,7 +247,6 @@ Treemap.prototype.initNodes = function () {
           self.breadcrumb.push(context);
           self.load();
         }
-
       }
     );
   });