33 lines
1.3 KiB
Ruby
33 lines
1.3 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
class EventsController < ApplicationController
|
|
before_action :set_project
|
|
|
|
def index
|
|
@events = @project.events.order(timestamp: :desc)
|
|
Rails.logger.debug "Found project? #{@project.name} / #{@project.events.count} / #{@events.count}"
|
|
Rails.logger.debug "Action: #{params[:waf_action]}"
|
|
# Apply filters
|
|
@events = @events.by_ip(params[:ip]) if params[:ip].present?
|
|
@events = @events.by_waf_action(params[:waf_action]) if params[:waf_action].present?
|
|
@events = @events.where(country_code: params[:country]) if params[:country].present?
|
|
|
|
Rails.logger.debug "after filter #{@project.name} / #{@project.events.count} / #{@events.count}"
|
|
# Debug info
|
|
Rails.logger.debug "Events count before pagination: #{@events.count}"
|
|
Rails.logger.debug "Project: #{@project&.name} (ID: #{@project&.id})"
|
|
|
|
# Paginate
|
|
@pagy, @events = pagy(@events, items: 50)
|
|
|
|
Rails.logger.debug "Events count after pagination: #{@events.count}"
|
|
Rails.logger.debug "Pagy info: #{@pagy.count} total, #{@pagy.pages} pages"
|
|
end
|
|
|
|
private
|
|
|
|
def set_project
|
|
@project = Project.find(params[:project_id]) || Project.find_by(slug: params[:project_id])
|
|
redirect_to projects_path, alert: "Project not found" unless @project
|
|
end
|
|
end |