
org.sonar.server.dashboard.widget.hotspot_metric.html.erb Maven / Gradle / Ivy
<%
metric = widget_properties["metric"] || Metric.by_key('ncloc')
if measure(metric)
limit = widget_properties["numberOfLines"]
title = widget_properties["title"]
title = message('widget.hotspot_metric.hotspots_by_x', :params => metric.short_name) if title.blank?
if metric.numeric? && [email protected]_qualifiers.empty?
conditions = [
"projects.qualifier in (:qualifiers)",
"projects.uuid_path like :uuid_path_like",
"projects.project_uuid = :project_uuid",
"snapshots.islast = :islast",
"project_measures.person_id is null",
"project_measures.metric_id = :metric_id"
]
condition_values = {
:qualifiers => @resource.leaves_qualifiers,
:project_uuid => @resource.project_uuid,
:uuid_path_like => "#{@resource.uuid_path}#{@resource.uuid}.%",
:islast => true,
:metric_id => metric.id
}
measures = ProjectMeasure.find(:all,
:joins => [:analysis, :project],
:conditions => [ conditions.join(' AND '), condition_values ],
:order => "project_measures.value #{'DESC' if metric.direction<0}",
:limit => limit)
components_by_uuid = Project.all( :conditions => ['uuid in (?)', measures.map { |m| m.component_uuid } ] ).inject({}) do |hash, component|
hash[component.uuid] = component
hash
end
end
unless components_by_uuid && !components_by_uuid.empty? %>
<%= title -%>
<% else %>
<%= title -%>
<%
if metric.direction > 0
metric_max_value = measures.last.value
else
metric_max_value = measures.first.value
end
measures.each do |measure|
component = components_by_uuid[measure.component_uuid]
%>
<%= link_to_resource(component, h(component.name), {:metric => metric.name, :class => 'underlined-link'}) -%>
<%= format_measure(measure) -%>
<%
end
%>
<% end %>
<% end %>
© 2015 - 2025 Weber Informatics LLC | Privacy Policy