refactor(js): use autosubmit controller in filter_component
This commit is contained in:
parent
5d7284b8da
commit
289d48f697
6 changed files with 19 additions and 31 deletions
|
@ -1,12 +1,13 @@
|
|||
= form_tag add_filter_instructeur_procedure_url(procedure), method: :post, class: 'dropdown-form large', id: 'filter-component', data: { controller: 'dossier-filter' } do
|
||||
= form_tag add_filter_instructeur_procedure_path(procedure), method: :post, class: 'dropdown-form large', id: 'filter-component', data: { turbo: true, controller: 'autosubmit' } do
|
||||
= label_tag :field, t('.column')
|
||||
= select_tag :field, options_for_select(filterable_fields_for_select, field_id), include_blank: field_id.nil?, data: {action: "dossier-filter#onChange"}
|
||||
= select_tag :field, options_for_select(filterable_fields_for_select, field_id), include_blank: field_id.nil?
|
||||
%input.hidden{ type: 'submit', formaction: update_filter_instructeur_procedure_path(procedure), data: { autosubmit_target: 'submitter' } }
|
||||
%br
|
||||
= label_tag :value, t('.value'), for: 'value'
|
||||
- if field_type == :enum
|
||||
= select_tag :value, options_for_select(options_for_select_of_field), id: 'value', name: 'value'
|
||||
= select_tag :value, options_for_select(options_for_select_of_field), id: 'value', name: 'value', data: { no_autosubmit: true }
|
||||
- else
|
||||
%input#value{ type: field_type, name: :value, maxlength: ProcedurePresentation::FILTERS_VALUE_MAX_LENGTH, disabled: field_id.nil? ? true : false }
|
||||
%input#value{ type: field_type, name: :value, maxlength: ProcedurePresentation::FILTERS_VALUE_MAX_LENGTH, disabled: field_id.nil? ? true : false, data: { no_autosubmit: true } }
|
||||
|
||||
= hidden_field_tag :statut, statut
|
||||
= submit_tag t('.add_filter'), class: 'fr-btn fr-btn--secondary fr-mt-2w'
|
||||
|
|
|
@ -131,19 +131,16 @@ module Instructeurs
|
|||
end
|
||||
|
||||
def add_filter
|
||||
respond_to do |format|
|
||||
format.html do
|
||||
procedure_presentation.add_filter(statut, params[:field], params[:value])
|
||||
procedure_presentation.add_filter(statut, params[:field], params[:value])
|
||||
|
||||
redirect_back(fallback_location: instructeur_procedure_url(procedure))
|
||||
end
|
||||
format.turbo_stream do
|
||||
@statut = statut
|
||||
@procedure = procedure
|
||||
@procedure_presentation = procedure_presentation
|
||||
@field = params[:field]
|
||||
end
|
||||
end
|
||||
redirect_back(fallback_location: instructeur_procedure_url(procedure))
|
||||
end
|
||||
|
||||
def update_filter
|
||||
@statut = statut
|
||||
@procedure = procedure
|
||||
@procedure_presentation = procedure_presentation
|
||||
@field = params[:field]
|
||||
end
|
||||
|
||||
def remove_filter
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
import { httpRequest } from '@utils';
|
||||
import { ApplicationController } from './application_controller';
|
||||
|
||||
export class DossierFilterController extends ApplicationController {
|
||||
onChange() {
|
||||
const element = this.element as HTMLFormElement;
|
||||
|
||||
httpRequest(element.action, {
|
||||
method: element.getAttribute('method') ?? '',
|
||||
body: new FormData(element)
|
||||
}).turbo();
|
||||
}
|
||||
}
|
|
@ -1,2 +1,2 @@
|
|||
= turbo_stream.replace 'filter-component' do
|
||||
= turbo_stream.morph 'filter-component' do
|
||||
= render Dossiers::FilterComponent.new(procedure: @procedure, procedure_presentation: @procedure_presentation, statut: @statut, field_id: @field)
|
|
@ -394,7 +394,8 @@ Rails.application.routes.draw do
|
|||
patch 'update_displayed_fields'
|
||||
get 'update_sort/:table/:column' => 'procedures#update_sort', as: 'update_sort'
|
||||
post 'add_filter'
|
||||
get 'remove_filter' => 'procedures#remove_filter', as: 'remove_filter'
|
||||
post 'update_filter'
|
||||
get 'remove_filter'
|
||||
get 'download_export'
|
||||
post 'download_export'
|
||||
get 'stats'
|
||||
|
|
|
@ -84,6 +84,7 @@ describe "procedure filters" do
|
|||
find("input#value[type=date]", visible: true)
|
||||
fill_in "Valeur", with: "10/10/2010"
|
||||
click_button "Ajouter le filtre"
|
||||
expect(page).to have_no_css("select#field", visible: true)
|
||||
|
||||
# use enum filter
|
||||
click_on 'Sélectionner un filtre'
|
||||
|
@ -134,6 +135,7 @@ describe "procedure filters" do
|
|||
select column_name, from: "Colonne"
|
||||
fill_in "Valeur", with: filter_value
|
||||
click_button "Ajouter le filtre"
|
||||
expect(page).to have_no_css("select#field", visible: true)
|
||||
end
|
||||
|
||||
def add_column(column_name)
|
||||
|
|
Loading…
Add table
Reference in a new issue