bogdan / datagrid

Gem to create tables grids with sortable columns and filters
MIT License
1.02k stars 115 forks source link

dynamic default in filter #226

Closed parinha closed 7 years ago

parinha commented 7 years ago

In MarkersController

def index
   @marker_grid = MarkersGrid.new(params.fetch(:markers_grid, {}).merge(current_user: current_user)) do |scope|
      scope.page(params[:page])
    end
end

In MarkersGrid

attr_accessor :current_user
scope do
    Marker.includes(:user)
end

filter(:user_id, :enum, header: -> { t('.user') }, select: :users_collection, default: ['john', 1], include_blank: 'All', multiple: true, input_html: 'select2')

def users_collection
    User.where(id: user_id).map { |u| [u.name, u.id] }
end

So how to add dynamic data to the default option? eg. filter(:user_id, :enum, header: -> { t('.user') }, select: :users_collection, default: :who_u_are, include_blank: 'All', multiple: true, input_html: 'select2')

def users_collection User.where(id: user_id).map { |u| [u.name, u.id] } end

def who_u_are User.where(id: current_user).map { |u| [u.name, u.id] } end

Thanks

parinha commented 7 years ago

142