Permette di filtrare il grafico analytics su una singola pagina.
Aggiunge il filtro Pagina (grafico) e il link Grafico in tabella, mantenendo Da/A/Device. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -6,7 +6,8 @@ module Admin
|
||||
@filters = {
|
||||
from: parse_date(params[:from]) || 7.days.ago.to_date,
|
||||
to: parse_date(params[:to]) || Time.zone.today,
|
||||
device: params[:device].presence
|
||||
device: params[:device].presence,
|
||||
chart_path: params[:chart_path].presence
|
||||
}
|
||||
@analytics_preview_active = analytics_preview_active?
|
||||
|
||||
@@ -37,21 +38,22 @@ module Admin
|
||||
}
|
||||
end.sort_by { |r| [-r[:pageviews], -r[:moves], -r[:clicks], r[:page_path]] }
|
||||
|
||||
pageviews_by_day = scope.group(:day).sum(:pageview_count)
|
||||
clicks_by_day = cell_scope.group(:day).sum(:click_count)
|
||||
moves_by_day = cell_scope.group(:day).sum(:move_count)
|
||||
@chart_path_options = @pages.map { |row| row[:page_path] }
|
||||
if @filters[:chart_path].present? && @chart_path_options.exclude?(@filters[:chart_path])
|
||||
@filters[:chart_path] = nil
|
||||
end
|
||||
|
||||
trend_scope = scope
|
||||
trend_scope = trend_scope.where(page_path: @filters[:chart_path]) if @filters[:chart_path].present?
|
||||
pageviews_by_day = trend_scope.group(:day).sum(:pageview_count)
|
||||
@trend = (@filters[:from]..@filters[:to]).map do |day|
|
||||
{
|
||||
day: day.iso8601,
|
||||
pageviews: pageviews_by_day[day].to_i,
|
||||
clicks: clicks_by_day[day].to_i,
|
||||
moves: moves_by_day[day].to_i
|
||||
pageviews: pageviews_by_day[day].to_i
|
||||
}
|
||||
end
|
||||
@trend_totals = {
|
||||
pageviews: @trend.sum { |r| r[:pageviews] },
|
||||
clicks: @trend.sum { |r| r[:clicks] },
|
||||
moves: @trend.sum { |r| r[:moves] }
|
||||
pageviews: @trend.sum { |r| r[:pageviews] }
|
||||
}
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user