Sha256: dc31673a62da5b7e3479eb6fc2ec77284aa19a6dda92bebc11cfb4245c39fd0f

Contents?: true

Size: 882 Bytes

Versions: 4

Compression:

Stored size: 882 Bytes

Contents

module SimpleAdmin
  module Admin
    class SearchController < SimpleAdmin::Admin::ApplicationController
      PER_PAGE = 10

      before_action :initialize_fields_entities!

      def index
        @resources = SimpleAdmin::Search.new(params[:query], params[:resource_klass].constantize).process
        @resources = @resources.page(params[:page]).per(PER_PAGE) if @resources.present?

        @resource_name = @entity.model_klass.model_name.element.capitalize
      end

      def initialize_fields_entities!
        raise ActiveRecord::RecordNotFound if search_params_blank?

        @entity = SimpleAdmin::Entity.find_by(model_klass_name: params[:resource_klass])
        @entity_fields = @entity.entity_fields.collection
      end

      private

        def search_params_blank?
          params[:resource_klass].blank? || params[:query].blank?
        end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
simple-admin-0.2.0.pre.alpha app/controllers/simple_admin/admin/search_controller.rb
simple-admin-0.1.2.pre.alpha app/controllers/simple_admin/admin/search_controller.rb
simple-admin-0.1.1.pre.alpha app/controllers/simple_admin/admin/search_controller.rb
simple-admin-0.1.0.pre.alpha app/controllers/simple_admin/admin/search_controller.rb