refactor(js): radio_enabled_submit -> enable_submit_if_checked
This commit is contained in:
parent
96a8e7888e
commit
2c367846da
4 changed files with 14 additions and 11 deletions
|
@ -40,10 +40,10 @@
|
||||||
- elsif @state == 'choix'
|
- elsif @state == 'choix'
|
||||||
= form_for :choice,
|
= form_for :choice,
|
||||||
method: :patch,
|
method: :patch,
|
||||||
data: { controller: 'radio-enabled-submit' },
|
data: { controller: 'enable-submit-if-checked' },
|
||||||
url: wizard_admin_procedure_groupe_instructeurs_path(@procedure) do |f|
|
url: wizard_admin_procedure_groupe_instructeurs_path(@procedure) do |f|
|
||||||
|
|
||||||
%div{ data: { 'action': "click->radio-enabled-submit#click" } }
|
%div{ data: { 'action': "click->enable-submit-if-checked#click" } }
|
||||||
= render Dsfr::RadioButtonListComponent.new(form: f,
|
= render Dsfr::RadioButtonListComponent.new(form: f,
|
||||||
target: :state,
|
target: :state,
|
||||||
buttons: [ { label: 'À partir d’un champ', value: 'routage_simple', hint: 'crée les groupes en fonction d’un champ du formulaire' } ,
|
buttons: [ { label: 'À partir d’un champ', value: 'routage_simple', hint: 'crée les groupes en fonction d’un champ du formulaire' } ,
|
||||||
|
@ -54,4 +54,4 @@
|
||||||
%li
|
%li
|
||||||
= link_to 'Retour', options_admin_procedure_groupe_instructeurs_path(@procedure), class: 'fr-btn fr-btn--secondary'
|
= link_to 'Retour', options_admin_procedure_groupe_instructeurs_path(@procedure), class: 'fr-btn fr-btn--secondary'
|
||||||
%li
|
%li
|
||||||
%button.fr-btn{ disabled: true, data: { 'radio-enabled-submit-target': 'submit' } } Continuer
|
%button.fr-btn{ disabled: true, data: { 'enable-submit-if-checked-target': 'submit' } } Continuer
|
||||||
|
|
|
@ -1,14 +1,17 @@
|
||||||
import { Controller } from '@hotwired/stimulus';
|
import { Controller } from '@hotwired/stimulus';
|
||||||
|
|
||||||
export class RadioEnabledSubmitController extends Controller {
|
export class EnableSubmitIfCheckedController extends Controller {
|
||||||
static targets = ['submit'];
|
static targets = ['submit'];
|
||||||
declare readonly submitTarget: HTMLButtonElement;
|
declare readonly submitTarget: HTMLButtonElement;
|
||||||
|
|
||||||
click() {
|
click() {
|
||||||
if (
|
if (
|
||||||
this.element.querySelectorAll('input[type="radio"]:checked').length > 0
|
this.element.querySelectorAll('input[type="radio"]:checked').length > 0 ||
|
||||||
|
this.element.querySelectorAll('input[type="checkbox"]:checked').length > 0
|
||||||
) {
|
) {
|
||||||
this.submitTarget.disabled = false;
|
this.submitTarget.disabled = false;
|
||||||
|
} else {
|
||||||
|
this.submitTarget.disabled = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -9,10 +9,10 @@
|
||||||
%h1 Routage à partir d’un champ
|
%h1 Routage à partir d’un champ
|
||||||
= form_for :create_simple_routing,
|
= form_for :create_simple_routing,
|
||||||
method: :post,
|
method: :post,
|
||||||
data: { controller: 'radio-enabled-submit' },
|
data: { controller: 'enable-submit-if-checked' },
|
||||||
url: create_simple_routing_admin_procedure_groupe_instructeurs_path(@procedure) do |f|
|
url: create_simple_routing_admin_procedure_groupe_instructeurs_path(@procedure) do |f|
|
||||||
|
|
||||||
%div{ data: { 'action': "click->radio-enabled-submit#click" } }
|
%div{ data: { 'action': "click->enable-submit-if-checked#click" } }
|
||||||
.notice
|
.notice
|
||||||
Sélectionner le champ à partir duquel créer des groupes d’instructeurs
|
Sélectionner le champ à partir duquel créer des groupes d’instructeurs
|
||||||
- buttons_content = @procedure.active_revision.routable_types_de_champ.map { |tdc| { label: tdc.libelle, value: tdc.stable_id } }
|
- buttons_content = @procedure.active_revision.routable_types_de_champ.map { |tdc| { label: tdc.libelle, value: tdc.stable_id } }
|
||||||
|
@ -24,4 +24,4 @@
|
||||||
%li
|
%li
|
||||||
= link_to 'Retour', options_admin_procedure_groupe_instructeurs_path(@procedure, state: :choix), class: 'fr-btn fr-btn--secondary'
|
= link_to 'Retour', options_admin_procedure_groupe_instructeurs_path(@procedure, state: :choix), class: 'fr-btn fr-btn--secondary'
|
||||||
%li
|
%li
|
||||||
%button.fr-btn{ disabled: true, data: { disable_with: 'Création des groupes…', 'radio-enabled-submit-target': 'submit' } } Créer les groupes
|
%button.fr-btn{ disabled: true, data: { disable_with: 'Création des groupes…', 'enable-submit-if-checked-target': 'submit' } } Créer les groupes
|
||||||
|
|
|
@ -4,15 +4,15 @@
|
||||||
%h1.fr-h1 Récupération de dossiers
|
%h1.fr-h1 Récupération de dossiers
|
||||||
|
|
||||||
%h2.fr-h2 Nature des dossiers
|
%h2.fr-h2 Nature des dossiers
|
||||||
= form_with data: { controller: 'radio-enabled-submit' } do |f|
|
= form_with data: { controller: 'enable-submit-if-checked' } do |f|
|
||||||
|
|
||||||
- buttons = [{ label: 'des dossiers concernant une collectivité territoriale',
|
- buttons = [{ label: 'des dossiers concernant une collectivité territoriale',
|
||||||
value: 'collectivite',
|
value: 'collectivite',
|
||||||
hint: '(DETR, autres demandes de subvention, consultation du domaine, ...)' },
|
hint: '(DETR, autres demandes de subvention, consultation du domaine, ...)' },
|
||||||
{ label: 'autre', value: 'autre'}]
|
{ label: 'autre', value: 'autre'}]
|
||||||
|
|
||||||
%div{ data: { 'action': "click->radio-enabled-submit#click" } }
|
%div{ data: { 'action': "click->enable-submit-if-checked#click" } }
|
||||||
= render Dsfr::RadioButtonListComponent.new(form: f, target: :nature, buttons: buttons) do
|
= render Dsfr::RadioButtonListComponent.new(form: f, target: :nature, buttons: buttons) do
|
||||||
%legend#radio-hint-element-legend.fr-fieldset__legend--regular.fr-fieldset__legend Quel type de dossier souhaitez vous récupérer ?
|
%legend#radio-hint-element-legend.fr-fieldset__legend--regular.fr-fieldset__legend Quel type de dossier souhaitez vous récupérer ?
|
||||||
|
|
||||||
%button.fr-btn{ disabled: true, data: { 'radio-enabled-submit-target': 'submit' } } Continuer
|
%button.fr-btn{ disabled: true, data: { 'enable-submit-if-checked-target': 'submit' } } Continuer
|
||||||
|
|
Loading…
Reference in a new issue