From 11130dbcfe24243e818d53c0f20dc7e098242eba Mon Sep 17 00:00:00 2001 From: simonbrandhof Date: Tue, 28 Sep 2010 17:00:54 +0000 Subject: [PATCH] SONAR-1689 Sorting on alerts does not work anymore --- .../java/org/sonar/server/filters/Filter.java | 15 +++++++++++++-- .../org/sonar/server/filters/FilterExecutor.java | 4 +++- .../webapp/WEB-INF/app/helpers/filters_helper.rb | 3 ++- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/sonar-server/src/main/java/org/sonar/server/filters/Filter.java b/sonar-server/src/main/java/org/sonar/server/filters/Filter.java index 27c78edeba8..7e1e6eb2e3a 100644 --- a/sonar-server/src/main/java/org/sonar/server/filters/Filter.java +++ b/sonar-server/src/main/java/org/sonar/server/filters/Filter.java @@ -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 getMeasureCriteria() { diff --git a/sonar-server/src/main/java/org/sonar/server/filters/FilterExecutor.java b/sonar-server/src/main/java/org/sonar/server/filters/FilterExecutor.java index 62db2fe07e0..02fbcc98fcf 100644 --- a/sonar-server/src/main/java/org/sonar/server/filters/FilterExecutor.java +++ b/sonar-server/src/main/java/org/sonar/server/filters/FilterExecutor.java @@ -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++) { diff --git a/sonar-server/src/main/webapp/WEB-INF/app/helpers/filters_helper.rb b/sonar-server/src/main/webapp/WEB-INF/app/helpers/filters_helper.rb index f1ab8dc9b92..c92e12f8ad0 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/helpers/filters_helper.rb +++ b/sonar-server/src/main/webapp/WEB-INF/app/helpers/filters_helper.rb @@ -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 -- 2.39.5