]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-5345 update issues links in the alerts widget
authorStas Vilchik <vilchiks@gmail.com>
Tue, 27 Jan 2015 15:54:11 +0000 (16:54 +0100)
committerStas Vilchik <vilchiks@gmail.com>
Tue, 27 Jan 2015 15:54:22 +0000 (16:54 +0100)
server/sonar-web/src/main/webapp/WEB-INF/app/helpers/application_helper.rb

index 2a8070d1e284bcc2bee7a8f720158f7ca987db2a..e2043731e24b063649a471ecd8b44c6dfc0d0162 100644 (file)
@@ -195,9 +195,44 @@ module ApplicationHelper
       metric_key = metric_or_measure
     end
 
-    url_params={:controller => 'drilldown', :action => 'measures', :metric => metric_key, :id => options[:resource]||@resource.id}
+    issues_metrics = ['violations',
+                      'blocker_violations', 'critical_violations', 'major_violations', 'minor_violations', 'info_violations',
+                      'new_blocker_violations', 'new_critical_violations', 'new_major_violations', 'new_minor_violations', 'new_info_violations',
+                      'open_issues', 'reopened_issues', 'confirmed_issues', 'false_positive_issues']
+
+    if issues_metrics.include? metric_key
+      url = url_for({:controller => 'component_issues', :action => 'index', :id => options[:resource]||@resource.id}) + '#'
+      if options[:period] && @snapshot
+        date = @snapshot.period_datetime(options[:period]).to_date
+        url += "createdAfter=#{date}|"
+      end
+      case metric_key
+        when 'blocker_violations', 'new_blocker_violations'
+          url += 'resolved=false|severities=BLOCKER'
+        when 'critical_violations', 'new_critical_violations'
+          url += 'resolved=false|severities=CRITICAL'
+        when 'major_violations', 'new_major_violations'
+          url += 'resolved=false|severities=MAJOR'
+        when 'minor_violations', 'new_minor_violations'
+          url += 'resolved=false|severities=MINOR'
+        when 'info_violations', 'new_info_violations'
+          url += 'resolved=false|severities=INFO'
+        when 'open_issues'
+          url += 'resolved=false|statuses=OPEN'
+        when 'reopened_issues'
+          url += 'resolved=false|statuses=REOPENED'
+        when 'confirmed_issues'
+          url += 'resolved=false|statuses=CONFIRMED'
+        when 'false_positive_issues'
+          url += 'resolutions=FALSE-POSITIVE'
+        else
+          url += 'resolved=false'
+      end
+    else
+      url = url_for({:controller => 'drilldown', :action => 'measures', :metric => metric_key, :id => options[:resource]||@resource.id})
+    end
 
-    url_for(options.merge(url_params))
+    url
   end
 
   #