module RecordSelect::Actions

Public Instance Methods

browse() click to toggle source

:method => :get params => [:page, :search]

# File lib/record_select/actions.rb, line 5
def browse
  conditions = record_select_conditions
  user_includes = record_select_includes
  query = conditions.inject(record_select_model.includes(user_includes)) do |query, cond|
    query.where(cond)
  end
  query = query.references(user_includes) if Rails::VERSION::MAJOR >= 4 && user_includes.present?
  @count = query.count if record_select_config.pagination?
  @count = @count.length if @count.is_a? Hash
  pager = ::Paginator.new(@count, record_select_config.per_page) do |offset, per_page|
    search = record_select_select ? query.select(record_select_select) : query
    search = search.limit(per_page).offset(offset) if record_select_config.pagination?
    search.includes(record_select_config.include).order(record_select_config.order_by).to_a
  end
  @page = pager.page(params[:page] || 1)

  respond_to do |wants|
    wants.html { render_record_select :partial => 'browse'}
    wants.js {
      if params[:update]
        render_record_select :template => 'browse'
      else
        render_record_select :partial => 'browse'
      end
    }
    wants.yaml {}
    wants.xml {}
    wants.json {}
  end
end
select() click to toggle source

:method => :post params => [:id]

# File lib/record_select/actions.rb, line 38
def select
  klass = record_select_model
  record = klass.find(params[:id])
  if record_select_config.notify.is_a? Proc
    record_select_config.notify.call(record)
  elsif record_select_config.notify
    send(record_select_config.notify, record)
  end
  render :nothing => true
end

Private Instance Methods

record_select_views_path() click to toggle source
# File lib/record_select/actions.rb, line 70
def record_select_views_path
  "record_select"
end