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
121-140 / 150 show all
409dolore et3.01.1Edit
414quo architecto nonEdit
418cupiditate ut illum1.11.2Edit
423magni eos1.21.0Edit
428commodi omnis temporeEdit
429ipsamEdit
430enim itaque2.0Edit
432magni tempore1.0Edit
433ut facere1.12.0Edit
437atEdit
438unde1.2Edit
440ut quae at3.0Edit
445delectus1.2Edit
446ut et sit3.0Edit
452illum et voluptatem2.0Edit
455et1.11.0Edit
460consequatur nemo1.0Edit
461dolor voluptas2.0Edit
462provident doloremque laudantiumEdit
464culpa3.0Edit

Fork me on GitHub