You can easily add a column with checkboxes for each row with
g.action_column
.
Normally WiceGrid does not use a form, but its filters work correctly when placed inside a form, so you can use a form to process
the selected records while keeping the state of the filters. Another way could be reading the selected checkoxes with the help
of a simple javascript.
By default the checkboxes have name
"grid_name[selected][]"
, but you can change
selected
to something else with parameter
param_name: 'my-parameter-name'
The value of the checkox is the id by default, but you can change it with parameter
object_property: 'some_object_property'
.
select_all_buttons: false
hides the "(de)select all" icons, and
html: {class: 'my_class'}
changes the css class of the checkboxes.
# encoding: utf-8 class ActionColumnController < ApplicationController def index @tasks_grid = initialize_grid(Task, include: [:priority, :status, :project, :assigned_users], name: 'g', order: 'id' ) if params[:g] && params[:g][:selected] @selected = params[:g][:selected] end end end
.well %h2= current_page_title %p You can easily add a column with checkboxes for each row with %code g.action_column \. Normally WiceGrid does not use a form, but its filters work correctly when placed inside a form, so you can use a form to process the selected records while keeping the state of the filters. Another way could be reading the selected checkoxes with the help of a simple javascript. %p By default the checkboxes have name %code "grid_name[selected][]" , but you can change %code selected to something else with parameter %code param_name: 'my-parameter-name' %p The value of the checkox is the id by default, but you can change it with parameter %code object_property: 'some_object_property' \. %p %code select_all_buttons: false hides the "(de)select all" icons, and %code html: {class: 'my_class'} changes the css class of the checkboxes. = show_code = dump_filter_parameters_as_hidden_fields(@tasks_grid) = form_for '#', method: :get do - if @selected .well Selected tasks: = @selected.to_sentence .row-fluid .col-md-12 %p %button.btn.btn-default{'type' => 'submit'} Process tasks = render 'grid' %p %button.btn.btn-default{'type' => 'submit'} Process tasks
<%= grid(@tasks_grid) do |g|
g.action_column html_check_box: false
# The default param_name is 'selected', the complete HTTP parameter will be "#{grid_name}[#{param_name}][]"
# Or:
# g.action_column param_name: :foo, html: {class: 'my_class'},
# select_all_buttons: false, object_property: :id
g.column name: 'ID', attribute: 'id', filter_type: :range
g.column name: 'Title', attribute: 'title', negation: true
g.column name: 'Archived', attribute: 'archived' do |rec|
rec.archived? ? 'Yes' : 'No'
end
g.column name: 'Status', attribute: 'status_id', custom_filter: Status.to_dropdown do |task|
task.status.name if task.status
end
g.column name: 'Project Name', attribute: 'project_id', custom_filter: Project.to_dropdown do |task|
task.project.name if task.project
end
g.column name: 'Due Date', attribute: 'due_date'
g.column name: 'Added', attribute: 'created_at' do |task|
task.created_at.to_s(:db)
end
end -%>