aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-server/src
diff options
context:
space:
mode:
authorsimonbrandhof <simon.brandhof@gmail.com>2010-09-28 17:00:54 +0000
committersimonbrandhof <simon.brandhof@gmail.com>2010-09-28 17:00:54 +0000
commit11130dbcfe24243e818d53c0f20dc7e098242eba (patch)
treec5969513bdd9fd37e0341a9b9485e345f7148fb1 /sonar-server/src
parentb2e835b4eae846a5e978a8020f8bf77bef0ba0b6 (diff)
downloadsonarqube-11130dbcfe24243e818d53c0f20dc7e098242eba.tar.gz
sonarqube-11130dbcfe24243e818d53c0f20dc7e098242eba.zip
SONAR-1689 Sorting on alerts does not work anymore
Diffstat (limited to 'sonar-server/src')
-rw-r--r--sonar-server/src/main/java/org/sonar/server/filters/Filter.java15
-rw-r--r--sonar-server/src/main/java/org/sonar/server/filters/FilterExecutor.java4
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/app/helpers/filters_helper.rb3
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<MeasureCriterion> 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