Sha256: 0d698b974fadcda78db95545760ba9ba5b1ded892fda4ff2cae63be761cb7f9f

Contents?: true

Size: 1.55 KB

Versions: 42

Compression:

Stored size: 1.55 KB

Contents

# frozen_string_literal: true

require_dependency "renalware/events"

module Renalware
  module Events
    class ListsController < BaseController
      include Renalware::Concerns::Pageable

      def show
        query = EventListQuery.new(params: form.attributes)
        events = query.call.page(page).per(per_page)
        authorize events
        render locals: { events: events, q: query.search, form: form }
      end

      private

      def form
        @form ||= form_for(named_filter)
      end

      # Get requests to #show may have a filter param {} if filters where selectec (eg an event
      # type) and if any sorting was done there will also be e.g. params[:q][:s] = "something asc"
      # The EventListQuery just accepts our form object, from which it attributes to ransack, so
      # here we need to make sure the search
      def form_for(named_filter)
        Lists::Form.new(
          named_filter: named_filter,
          params: add_ransack_search_param_to_filter_parameters
        )
      end

      def named_filter
        @named_filter ||= params.fetch(:named_filter, "all").to_sym
      end

      def add_ransack_search_param_to_filter_parameters
        filter_parameters.merge(s: params.dig(:q, :s))
      end

      def filter_parameters
        return {} unless params.key?(:filters)

        params
          .require(:filters)
          .permit(
            :event_type_id_eq,
            :created_by_id_eq,
            :created_at_gteq,
            :created_at_lteq,
            :from,
            :to
          )
      end
    end
  end
end

Version data entries

42 entries across 42 versions & 1 rubygems

Version Path
renalware-core-2.1.1 app/controllers/renalware/events/lists_controller.rb
renalware-core-2.1.0 app/controllers/renalware/events/lists_controller.rb
renalware-core-2.0.167 app/controllers/renalware/events/lists_controller.rb
renalware-core-2.0.166 app/controllers/renalware/events/lists_controller.rb
renalware-core-2.0.165 app/controllers/renalware/events/lists_controller.rb
renalware-core-2.0.164 app/controllers/renalware/events/lists_controller.rb
renalware-core-2.0.163 app/controllers/renalware/events/lists_controller.rb
renalware-core-2.0.162 app/controllers/renalware/events/lists_controller.rb
renalware-core-2.0.161 app/controllers/renalware/events/lists_controller.rb
renalware-core-2.0.160 app/controllers/renalware/events/lists_controller.rb
renalware-core-2.0.159 app/controllers/renalware/events/lists_controller.rb
renalware-core-2.0.158 app/controllers/renalware/events/lists_controller.rb
renalware-core-2.0.157 app/controllers/renalware/events/lists_controller.rb
renalware-core-2.0.156 app/controllers/renalware/events/lists_controller.rb
renalware-core-2.0.155 app/controllers/renalware/events/lists_controller.rb
renalware-core-2.0.153 app/controllers/renalware/events/lists_controller.rb
renalware-core-2.0.152 app/controllers/renalware/events/lists_controller.rb
renalware-core-2.0.151 app/controllers/renalware/events/lists_controller.rb
renalware-core-2.0.149 app/controllers/renalware/events/lists_controller.rb
renalware-core-2.0.148 app/controllers/renalware/events/lists_controller.rb