WiceGrid 3.6.0.pre4 examples

Custom filters (method chains)

An array of symbols submitted to :custom_filter has a special meaning. The first symbol is sent as a method name to EVERY ActiveRecord object. If an object responds to this method, the second method name is sent to the returned value unless it is nil, and so on. The dropdown is populated by the list unique values. The conditions set up by the user are ignored, that is, the records used are all those found on all pages without any active filters. Naturally this can be extremely inneffective and should be used with caution.

  • # encoding: utf-8
    class CustomFilters3Controller < ApplicationController
      def index
        @tasks_grid = initialize_grid(Task,
          include: [:relevant_version, :expected_version, :project],
          conditions: { projects: { id: Project.first.id } },
          custom_order: {
            'tasks.expected_version_id' => 'expected_versions_tasks.name'
          }
        )
      end
    end
    
  • .well
      %h2= current_page_title
      %p
        An array of symbols submitted to
        %code :custom_filter
        has a special meaning. The first symbol is sent as a method name to EVERY ActiveRecord object.
        If an object responds to this method, the second method name is sent to the returned value unless it is nil, and so on.
        The dropdown is populated by the list unique values.
        The conditions set up by the user are ignored, that is, the records used are all those found on all pages without any active filters.
        Naturally this can be extremely inneffective and should be used with caution.
    
    = show_code
    
    .row-fluid
      .col-md-12
        = render   'grid'
  • <%= grid(@tasks_grid) do |g|
    
      g.column name:  'ID', attribute: 'id', filter: false
    
      g.column name:  'Title', attribute: 'title'
    
      g.column name:  'Found in version', assoc: :relevant_version, attribute: 'name', custom_filter: :auto do |task|
        task.relevant_version.name if task.relevant_version
      end
    
      g.column name:  'Expected in version', attribute: 'expected_version_id', custom_filter: [:expected_version, :to_option] do |task|
        task.expected_version.name if task.expected_version
      end
    
      g.column   do |task|
        link_to('Edit', edit_task_path(task))
      end
    end -%>
IDTitleFound in versionExpected in version
1-20 / 150 show all
392velit vitae1.0Edit
495qui ut in1.0Edit
343dolorem sit molestias1.0Edit
389ut1.11.0Edit
393nihil1.0Edit
481et1.0Edit
243molestiae similique1.0Edit
280corporis1.11.0Edit
362eum sapiente1.0Edit
367similique1.0Edit
184minus1.0Edit
240illo1.11.0Edit
423magni eos1.21.0Edit
455et1.11.0Edit
168ad1.0Edit
211et dicta1.11.0Edit
31debitis pariatur illo1.01.0Edit
188aliquid adipisci1.0Edit
85voluptatibus inventore1.1Edit
133optio1.11.1Edit

Fork me on GitHub