tech(review): implement some pair review suggestions

This commit is contained in:
Martin 2024-01-12 10:03:54 +01:00
parent e7eee7ba72
commit 69346ad41f
9 changed files with 17 additions and 17 deletions

View file

@ -18,9 +18,9 @@ class TypesDeChampEditor::AddChampButtonComponent < ApplicationComponent
def button_title def button_title
if annotations? if annotations?
"Ajouter une annotation" "Ajouter une annotation"
else else
"Ajouter un champ" "Ajouter un champ"
end end
end end

View file

@ -1,7 +1,7 @@
%li.type-de-champ.flex.column.justify-start.fr-mb-6w{ html_options } %li.type-de-champ.flex.column.justify-start.fr-mb-6w{ html_options }
.type-de-champ-container .type-de-champ-container
.flex.justify-between.section.head .flex.justify-between.section.head
.position.flex.align-center= "##{@coordinate.position}" .position.flex.align-center= @coordinate.position.to_s
.fr-btn.fr-btn--tertiary-no-outline.handle.fr-icon-drag-move-2-line{ title: "Déplacer le champ vers le haut ou vers le bas" } .fr-btn.fr-btn--tertiary-no-outline.handle.fr-icon-drag-move-2-line{ title: "Déplacer le champ vers le haut ou vers le bas" }
%button.fr-btn.fr-btn--tertiary-no-outline.fr-icon-arrow-up-line.move-up{ move_button_options(:up) } %button.fr-btn.fr-btn--tertiary-no-outline.fr-icon-arrow-up-line.move-up{ move_button_options(:up) }
%button.fr-btn.fr-btn--tertiary-no-outline.fr-icon-arrow-down-line.move-down{ move_button_options(:down) } %button.fr-btn.fr-btn--tertiary-no-outline.fr-icon-arrow-down-line.move-down{ move_button_options(:down) }

View file

@ -1,3 +1,3 @@
= form_with(url: move_and_morph_admin_procedure_type_de_champ_path(@coordinate.revision.procedure, @coordinate.type_de_champ.stable_id), class: 'fr-ml-3w flex', method: :patch, data: { turbo: true }) do |f| = form_with(url: move_and_morph_admin_procedure_type_de_champ_path(@coordinate.revision.procedure, @coordinate.type_de_champ.stable_id), class: 'fr-ml-3w flex', method: :patch, data: { turbo: true }) do |f|
= label_tag :target_stable_id, "Déplacer le champ", for: describedby_id, class: 'flex align-center flex-no-shrink fr-mr-3w' = label_tag :target_stable_id, "Déplacer ce champ à la place de ", for: describedby_id, class: 'flex align-center flex-no-shrink fr-mr-3w'
= select_tag :target_stable_id, options_for_select(options), id: describedby_id, class: 'fr-select', aria: { discribedby: describedby_id }, data: { 'select-champ-position-template-target': 'select', selected: @coordinate.stable_id } = select_tag :target_stable_id, options_for_select(options), id: describedby_id, class: 'fr-select', aria: { discribedby: describedby_id }, data: { 'select-champ-position-template-target': 'select', selected: @coordinate.stable_id }

View file

@ -1,5 +1,4 @@
%div{ id: block_id, data: { 'select-champ-position-template-target': 'template', turbo_force: :server } } %div{ id: block_id, data: { 'select-champ-position-template-target': 'template', turbo_force: :server } }
%select %select
%option{ disabled: :disabled } Selectionner une option
- @coordinates.each do |coordinate| - @coordinates.each do |coordinate|
%option{ value: coordinate.stable_id }= "#{coordinate.position} #{coordinate.libelle}" %option{ value: coordinate.stable_id }= "#{coordinate.position} #{coordinate.libelle}"

View file

@ -64,7 +64,7 @@ module Administrateurs
def move_and_morph def move_and_morph
source_type_de_champ = draft.find_and_ensure_exclusive_use(params[:stable_id]) source_type_de_champ = draft.find_and_ensure_exclusive_use(params[:stable_id])
target_type_de_champ = draft.find_and_ensure_exclusive_use(params[:target_stable_id]) target_type_de_champ = draft.find_and_ensure_exclusive_use(params[:target_stable_id])
@coordinate = @source_coordinate = draft.coordinate_for(source_type_de_champ) @coordinate = draft.coordinate_for(source_type_de_champ)
from = @coordinate.position from = @coordinate.position
to = draft.coordinate_for(target_type_de_champ).position to = draft.coordinate_for(target_type_de_champ).position
@coordinate = draft.move_type_de_champ(@coordinate.stable_id, to) @coordinate = draft.move_type_de_champ(@coordinate.stable_id, to)

View file

@ -44,6 +44,7 @@ export class SelectChampPositionTemplateController extends ApplicationController
.map((option) => { .map((option) => {
if (option.value == focusedSelectStableId) { if (option.value == focusedSelectStableId) {
option.setAttribute('selected', 'selected'); option.setAttribute('selected', 'selected');
option.setAttribute('disabled', 'disabled');
} }
return option.outerHTML; return option.outerHTML;

View file

@ -71,11 +71,11 @@ module SystemHelpers
# Add a new type de champ in the procedure editor # Add a new type de champ in the procedure editor
def add_champ def add_champ
click_on 'Ajouter un champ' click_on 'Ajouter un champ'
end end
def remove_flash_message def remove_flash_message
expect(page).to have_button('Ajouter un champ', disabled: false) expect(page).to have_button('Ajouter un champ', disabled: false)
expect(page).to have_content('Formulaire enregistré') expect(page).to have_content('Formulaire enregistré')
execute_script("document.querySelector('#flash_message').remove();") execute_script("document.querySelector('#flash_message').remove();")
execute_script("document.querySelector('#autosave-notice').remove();") execute_script("document.querySelector('#autosave-notice').remove();")

View file

@ -8,7 +8,7 @@ describe 'As an administrateur I can edit annotation', js: true do
end end
scenario "adding a new champ" do scenario "adding a new champ" do
click_on 'Ajouter une annotation' click_on 'Ajouter une annotation'
select('Carte', from: 'Type de champ') select('Carte', from: 'Type de champ')
# ensure UI update is ok # ensure UI update is ok

View file

@ -38,7 +38,7 @@ describe 'As an administrateur I can edit types de champ', js: true do
} }
# Champs are automatically saved # Champs are automatically saved
expect(page).to have_button('Ajouter un champ', disabled: false) expect(page).to have_button('Ajouter un champ', disabled: false)
page.refresh page.refresh
expect(page).to have_selector('.type-de-champ', count: 3) expect(page).to have_selector('.type-de-champ', count: 3)
@ -111,7 +111,7 @@ describe 'As an administrateur I can edit types de champ', js: true do
page.refresh page.refresh
within '.type-de-champ .editor-block' do within '.type-de-champ .editor-block' do
click_on 'Ajouter un champ' click_on 'Ajouter un champ'
fill_in 'Libellé du champ', with: 'libellé de champ 1' fill_in 'Libellé du champ', with: 'libellé de champ 1'
end end
@ -259,9 +259,9 @@ describe 'As an administrateur I can edit types de champ', js: true do
scenario 'when select is focused, it seeds its options' do scenario 'when select is focused, it seeds its options' do
# once clicked, the select is updated with root champs options only, preselected on coordinates and have nice libelles # once clicked, the select is updated with root champs options only, preselected on coordinates and have nice libelles
page.find(initial_first_coordinate_selector).click page.find(initial_first_coordinate_selector).click
expect(page).to have_selector("#{initial_first_coordinate_selector} option", count: 4) expect(page).to have_selector("#{initial_first_coordinate_selector} option", count: 3)
expect(page.find(initial_first_coordinate_selector).find("option[selected]").value.to_s).to eq(initial_first_coordinate.stable_id.to_s) expect(page.find(initial_first_coordinate_selector).find("option[selected]").value.to_s).to eq(initial_first_coordinate.stable_id.to_s)
expect(page.find(initial_first_coordinate_selector).all("option").map(&:text)).to match_array(["Selectionner une option", '0 first_tdc', '1 middle_tdc', '2 last_tdc']) expect(page.find(initial_first_coordinate_selector).all("option").map(&:text)).to match_array(['0 first_tdc', '1 middle_tdc', '2 last_tdc'])
# renaming a tdc renames it's option # renaming a tdc renames it's option
within "##{dom_id(initial_first_coordinate, :type_de_champ_editor)}" do within "##{dom_id(initial_first_coordinate, :type_de_champ_editor)}" do
@ -269,7 +269,7 @@ describe 'As an administrateur I can edit types de champ', js: true do
end end
wait_until { initial_first_coordinate.reload.libelle == 'renamed' } wait_until { initial_first_coordinate.reload.libelle == 'renamed' }
page.find(initial_first_coordinate_selector).click page.find(initial_first_coordinate_selector).click
expect(page.find(initial_first_coordinate_selector).all("option").map(&:text)).to match_array(["Selectionner une option", '0 renamed', '1 middle_tdc', '2 last_tdc']) expect(page.find(initial_first_coordinate_selector).all("option").map(&:text)).to match_array(['0 renamed', '1 middle_tdc', '2 last_tdc'])
end end
scenario 'when select is changed, it move the coordinates' do scenario 'when select is changed, it move the coordinates' do
@ -287,7 +287,7 @@ describe 'As an administrateur I can edit types de champ', js: true do
# check reorder rerendered champ component between target->destination # check reorder rerendered champ component between target->destination
reordered_coordinates.map(&:reload).map do |coordinate| reordered_coordinates.map(&:reload).map do |coordinate|
expect(page).to have_selector("##{ActionView::RecordIdentifier.dom_id(coordinate, :type_de_champ_editor)} .position", text: "##{coordinate.position}") expect(page).to have_selector("##{ActionView::RecordIdentifier.dom_id(coordinate, :type_de_champ_editor)} .position", text: coordinate.position)
end end
end end
end end
@ -317,10 +317,10 @@ describe 'As an administrateur I can edit types de champ', js: true do
scenario 'when first child select is focused, seed with repetition only tdcs' do scenario 'when first child select is focused, seed with repetition only tdcs' do
page.find(first_child_coordinate_selector).click page.find(first_child_coordinate_selector).click
expect(page).to have_selector("#{first_child_coordinate_selector} option", count: 3) expect(page).to have_selector("#{first_child_coordinate_selector} option", count: 2)
opts = page.find(first_child_coordinate_selector).all("option").map(&:text) opts = page.find(first_child_coordinate_selector).all("option").map(&:text)
expect(opts).to match_array(["Selectionner une option"] + children_coordinates.map { "#{_1.position} #{_1.libelle}" }) expect(opts).to match_array(children_coordinates.map { "#{_1.position} #{_1.libelle}" })
end end
scenario 'when first child select is changed, move champ in repetition' do scenario 'when first child select is changed, move champ in repetition' do