Sha256: 8e15386e647eaa108d25ac9a8ad0f8f003fefc2ab03879dd02087959dad84b29

Contents?: true

Size: 1.59 KB

Versions: 41

Compression:

Stored size: 1.59 KB

Contents

# frozen_string_literal: true

module Effective
  module EffectiveDatatable
    module Params

      private

      def datatables_ajax_request?
        return @_datatables_ajax_request unless @_datatables_ajax_request.nil?
        return unless view.respond_to?(:params)

        @_datatables_ajax_request = view.params.present? && (view.params.key?(:draw) && view.params.key?(:columns))
      end

      def datatables_inline_request?
        return @_datatables_inline_request unless @_datatables_inline_request.nil?
        return unless view.respond_to?(:params)

        @_datatables_inline_request = view.params.present? && (view.params[:_datatable_id].to_s.split('-')[0...-1] == to_param.split('-')[0...-1])
      end

      def params
        return {} unless view.present?
        return view.rendered_params if view.respond_to?(:rendered_params)
        return {} unless view.respond_to?(:request) && view.request.present?

        @params ||= {}.tap do |params|
          Rack::Utils.parse_query(URI(view.request.referer.presence || '/').query).each { |k, v| params[k.to_sym] = v }
          view.params.each { |k, v| params[k.to_sym] = v }
        end
      end

      def filter_params
        params.select { |name, value| _filters.key?(name.to_sym) && name != 'id' }
      end

      def scope_param
        params[:scope].to_sym if params.key?(:scope)
      end

      def search_params
        params.select do |name, value|
          columns.key?(name) && ![:id, :action].include?(name) && !value.kind_of?(Hash) && value.class.name != 'ActionController::Parameters'.freeze
        end
      end
    end
  end
end

Version data entries

41 entries across 41 versions & 1 rubygems

Version Path
effective_datatables-4.32.0 app/models/effective/effective_datatable/params.rb
effective_datatables-4.31.4 app/models/effective/effective_datatable/params.rb
effective_datatables-4.31.3 app/models/effective/effective_datatable/params.rb
effective_datatables-4.31.2 app/models/effective/effective_datatable/params.rb
effective_datatables-4.31.1 app/models/effective/effective_datatable/params.rb
effective_datatables-4.31.0 app/models/effective/effective_datatable/params.rb
effective_datatables-4.30.2 app/models/effective/effective_datatable/params.rb
effective_datatables-4.30.1 app/models/effective/effective_datatable/params.rb
effective_datatables-4.30.0 app/models/effective/effective_datatable/params.rb
effective_datatables-4.29.0 app/models/effective/effective_datatable/params.rb
effective_datatables-4.26.0 app/models/effective/effective_datatable/params.rb
effective_datatables-4.25.3 app/models/effective/effective_datatable/params.rb
effective_datatables-4.25.2 app/models/effective/effective_datatable/params.rb
effective_datatables-4.25.1 app/models/effective/effective_datatable/params.rb
effective_datatables-4.25.0 app/models/effective/effective_datatable/params.rb
effective_datatables-4.24.2 app/models/effective/effective_datatable/params.rb
effective_datatables-4.24.1 app/models/effective/effective_datatable/params.rb
effective_datatables-4.24.0 app/models/effective/effective_datatable/params.rb
effective_datatables-4.23.0 app/models/effective/effective_datatable/params.rb
effective_datatables-4.22.3 app/models/effective/effective_datatable/params.rb