]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-1689 Sorting on alerts does not work anymore
authorsimonbrandhof <simon.brandhof@gmail.com>
Tue, 28 Sep 2010 17:00:54 +0000 (17:00 +0000)
committersimonbrandhof <simon.brandhof@gmail.com>
Tue, 28 Sep 2010 17:00:54 +0000 (17:00 +0000)
sonar-server/src/main/java/org/sonar/server/filters/Filter.java
sonar-server/src/main/java/org/sonar/server/filters/FilterExecutor.java
sonar-server/src/main/webapp/WEB-INF/app/helpers/filters_helper.rb

index 27c78edeba80fed8e8816025a8fc6029ad8563dd..7e1e6eb2e3a8191ddf89212379db4928181eaf6b 100644 (file)
@@ -54,6 +54,7 @@ public class Filter {
   private boolean sortedByName;
   private boolean sortedByDate;
   private boolean sortedByVersion;
+  private boolean useMeasureValueToSort = true; // only if sortedMetricId is not null
   private boolean ascendingSort = true;
 
   public Filter setPath(Integer rootSnapshotId, Integer snapshotId, String snapshotPath, boolean isViewContext) {
@@ -168,9 +169,18 @@ public class Filter {
     return sortedMetricId;
   }
 
-  public Filter setSortedMetricId(Integer i) {
+  public boolean useMeasureValueToSort() {
+    return useMeasureValueToSort;
+  }
+
+  public Filter setSortedMetricId(Integer id) {
+    return setSortedMetricId(id, true);
+  }
+
+  public Filter setSortedMetricId(Integer id, boolean useValue) {
     unsetSorts();
-    this.sortedMetricId = i;
+    this.sortedMetricId = id;
+    this.useMeasureValueToSort = useValue;
     return this;
   }
 
@@ -224,6 +234,7 @@ public class Filter {
     this.sortedByName = false;
     this.sortedMetricId = null;
     this.sortedByVersion = false;
+    this.useMeasureValueToSort = true;
   }
 
   public List<MeasureCriterion> getMeasureCriteria() {
index 62db2fe07e04beea077ab0039d369099d168bcd6..02fbcc98fcf78046914157e86acad8e892b9d84b 100644 (file)
@@ -89,7 +89,9 @@ public class FilterExecutor implements ServerComponent {
     if (filter.getSortedMetricId() != null) {
       sql.append(", MAX(CASE WHEN pm.metric_id=");
       sql.append(filter.getSortedMetricId());
-      sql.append(" THEN value ELSE NULL END) AS sortvalue");
+      sql.append(" THEN ");
+      sql.append(filter.useMeasureValueToSort() ? "value" : "text_value");
+      sql.append(" ELSE NULL END) AS sortvalue");
       sql.append(" ");
     }
     for (int index = 0; index < filter.getMeasureCriteria().size(); index++) {
index f1ab8dc9b92adb6258db6c0c3a175cda99c20759..c92e12f8ad0831344853a30116c0f8c2b12f0724 100644 (file)
@@ -84,7 +84,8 @@ module FiltersHelper
       java_filter.setSortedByVersion()
 
     elsif filter.sorted_column.on_metric? && filter.sorted_column.metric
-      java_filter.setSortedMetricId(filter.sorted_column.metric.id)
+      metric=filter.sorted_column.metric
+      java_filter.setSortedMetricId(metric.id, metric.numeric?)
     end