filterrific_stimulus_controller
v1.1.1
Published
A reusable Stimulus controller for filterrific
Maintainers
Readme
A reusable Stimulus controller for filterrific.
Filterrific: https://github.com/jhund/filterrific
Filterrific docs: https://filterrific.clearcove.ca/
Installation
npm install filterrific_stimulus_controller
# or
yarn add filterrific_stimulus_controllerChanges to the standard filterrific setup to use with stimulus and turbo streams
Views
index.html.erb
<div data-controller="filterrific">
<%= form_for_filterrific @filterrific,
data: { filterrific_target: 'form' } do |f| %>
... filter inputs
<% end %>
</div>
<%= render "list" %>_list.html.erb
<div id="filterrific_list">
... list content
</div>index.turbo_stream.erb
<turbo-stream action="replace" method="morph" target="filterrific_list">
<template>
<%= render partial: "list", formats: [:html] %>
</template>
</turbo-stream>Controller action
def index
@filterrific = initialize_filterrific(
Student,
params[:filterrific],
select_options: {
sorted_by: Student.options_for_sorted_by
},
available_filters: [ :sorted_by, :search_query ],
) || return
@pagy, @students = pagy(:countish, @site_modules.merge(@filterrific.find))
respond_to do |format|
format.html
format.turbo_stream
end
rescue ActiveRecord::RecordNotFound => e
# There is an issue with the persisted param_set. Reset it.
puts "Had to reset filterrific params: #{e.message}"
redirect_to(reset_filterrific_url(format: :html)) && return
end