
org.sonar.server.dashboard.widget.time_machine.html.erb Maven / Gradle / Ivy
<%
rows_by_metric_id={}
# Retrieve widget settings
metric_ids = []
(1..10).each do |index|
metric=widget_properties["metric#{index}"]
if metric
metric_ids << metric.id
row=Sonar::TimemachineRow.new(metric)
rows_by_metric_id[metric.id]=row
end
end
if metric_ids.empty?
# No metric has been selected, it's the first time the widget is displayed: 'ncloc' is the default metric
ncloc = Metric.find(:first, :conditions => "name = 'ncloc'")
metric_ids << ncloc.id
end
number_of_columns = widget_properties["numberOfColumns"]
# Retrieve the measures for each metric on each snapshot
options = {}
from_date = dashboard_configuration.from_datetime
if from_date
options[:from] = from_date
end
snapshots=Snapshot.for_timemachine_widget(@resource, number_of_columns, options)
sids = snapshots.collect { |s| s.id }.uniq
measures=ProjectMeasure.find(:all,
:conditions =>
["snapshot_id IN (:snapshot_id) AND metric_id IN (:metric_id) AND rule_id IS NULL AND person_id IS NULL",
{:snapshot_id => sids, :metric_id => metric_ids}
]
)
# Prepare the rows to display
snapshot_by_id={}
snapshots.each do |s|
snapshot_by_id[s.id]=s
end
measures.each do |measure|
next unless measure.metric
if measure.metric.timemachine? && (measure.value || measure.text_value)
row=rows_by_metric_id[measure.metric_id]
#optimization : avoid eager loading of snapshots
measure.snapshot=snapshot_by_id[measure.snapshot_id]
row.add_measure(measure)
end
end
# Create the list of rows to display in the same order as defined by the user
rows=[]
metric_ids.each do |metric_id|
row = rows_by_metric_id[metric_id]
if row
rows<
<% if widget_properties["title"] %>
<%= h(widget_properties["title"]) -%>
<% end %>
<%
snapshots.each do |snapshot|
event = snapshot.event('Version')
%>
<%= l snapshot.created_at.to_date -%>
<%= event.name unless event==nil -%>
<% end %>
<% if display_sparkline %>
<% end %>
<%
rows.select { |row| row.metric.val_type != Metric::VALUE_TYPE_DISTRIB }.each do |row|
%>
<%= row.metric.short_name %>
<%
snapshots.each do |snapshot|
measure=row.measure(snapshot)
%>
<%= format_measure(measure, :skip_span_id => true) %>
<% end %>
<%
if display_sparkline
sparkline = sparklines_by_row[row]
%>
<%
if sparkline
x = sparkline[0]
y = sparkline[1]
%>
<% end %>
<% end %>
<% end %>
© 2015 - 2025 Weber Informatics LLC | Privacy Policy