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
    
  • <%= 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 -%>
  • .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'
IDTitleFound in versionExpected in version
41-60 / 150 show all
152nihil1.1Edit
153facilis ut2.01.1Edit
155perferendis ut1.02.0Edit
161aut1.2Edit
162quia nihil labore1.0Edit
165expedita1.0Edit
167enimEdit
168ad1.0Edit
170fugiat3.01.1Edit
171qui est etEdit
175aperiam omnisEdit
177ex perferendis velit1.13.0Edit
181temporeEdit
183iure1.0Edit
184minus1.0Edit
186velit dignissimos1.1Edit
188aliquid adipisci1.0Edit
190recusandae nisi doloribus1.23.0Edit
192eum1.1Edit
194quo1.12.0Edit

Fork me on GitHub