All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.sonar.server.dashboard.widget.time_machine.html.erb Maven / Gradle / Ivy

There is a newer version: 7.0
Show newest version
<%
   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') %> <% end %> <% if display_sparkline %> <% end %> <% rows.select { |row| row.metric.val_type != Metric::VALUE_TYPE_DISTRIB }.each do |row| %> <% snapshots.each do |snapshot| measure=row.measure(snapshot) %> <% end %> <% if display_sparkline sparkline = sparklines_by_row[row] %> <% end %> <% end %>
<%= l snapshot.created_at.to_date -%>
<%= event.name unless event==nil -%>
<%= row.metric.short_name %> <%= format_measure(measure, :skip_span_id => true) %> <% if sparkline x = sparkline[0] y = sparkline[1] %>
<% end %>




© 2015 - 2025 Weber Informatics LLC | Privacy Policy