From a6e65f931f2b415e1db4ebdacaadf198bfb42a48 Mon Sep 17 00:00:00 2001 From: Priya Power <49959312+priyapower@users.noreply.github.com> Date: Mon, 15 Jul 2024 15:37:15 -0500 Subject: [PATCH 01/26] [#5777] Update lock with updates from bin/setup and bundle --- Gemfile.lock | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 0f39f6bca7..14e3368d55 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -328,8 +328,6 @@ GEM racc (~> 1.4) nokogiri (1.16.6-x86_64-darwin) racc (~> 1.4) - nokogiri (1.16.6-x86_64-linux) - racc (~> 1.4) noticed (2.4.0) rails (>= 6.1.0) oj (3.16.4) @@ -570,9 +568,9 @@ GEM PLATFORMS arm64-darwin-21 ruby + x86_64-darwin-19 x86_64-darwin-21 x86_64-darwin-23 - x86_64-linux DEPENDENCIES after_party @@ -663,4 +661,4 @@ RUBY VERSION ruby 3.2.2p53 BUNDLED WITH - 2.5.14 + 2.5.15 From c81874dcc493af0ccef528030ed73d7575eadb2b Mon Sep 17 00:00:00 2001 From: Priya Power <49959312+priyapower@users.noreply.github.com> Date: Mon, 15 Jul 2024 15:42:12 -0500 Subject: [PATCH 02/26] [#5777] Add prototype buttons with form step navigation --- app/components/form/title_component.html.erb | 6 ++++++ app/components/form/title_component.rb | 7 ++++++- app/views/case_contacts/form/details.html.erb | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/app/components/form/title_component.html.erb b/app/components/form/title_component.html.erb index 4935a40d4a..cf37ac2dbe 100644 --- a/app/components/form/title_component.html.erb +++ b/app/components/form/title_component.html.erb @@ -11,6 +11,9 @@

<%= @subtitle %>

<% if @progress %>
+ <% if @navigable %> + <%= link_to 'BACK', @nav_back %> + <% end %>

<%= @steps_in_text %>

@@ -20,6 +23,9 @@
+ <% if @navigable %> + <%= link_to 'NEXT', @nav_next %> + <% end %> <% end %> diff --git a/app/components/form/title_component.rb b/app/components/form/title_component.rb index 4df2fae12c..c7c07d878d 100644 --- a/app/components/form/title_component.rb +++ b/app/components/form/title_component.rb @@ -1,11 +1,16 @@ # frozen_string_literal: true class Form::TitleComponent < ViewComponent::Base - def initialize(title:, subtitle:, step: nil, total_steps: nil, notes: nil, autosave: false) + def initialize(title:, subtitle:, step: nil, total_steps: nil, notes: nil, autosave: false, navigable: false, nav_back: nil, nav_next: nil) @title = title @subtitle = subtitle @notes = notes @autosave = autosave + @navigable = navigable + # @nav_back = nav_back if navigable + # @nav_next = nav_next if navigable + @nav_back = nav_back + @nav_next = nav_next if step && total_steps @steps_in_text = "Step #{step} of #{total_steps}" diff --git a/app/views/case_contacts/form/details.html.erb b/app/views/case_contacts/form/details.html.erb index 049fbd6d53..eeaa097f80 100644 --- a/app/views/case_contacts/form/details.html.erb +++ b/app/views/case_contacts/form/details.html.erb @@ -1,4 +1,4 @@ -<%= render(Form::TitleComponent.new(title: @case_contact.decorate.form_title, subtitle: "Contact details", step: @page, total_steps: @total_pages)) %> +<%= render(Form::TitleComponent.new(title: @case_contact.decorate.form_title, subtitle: "Contact details", step: @page, total_steps: @total_pages, navigable: true, nav_back: leave_case_contacts_form_path, nav_next: next_wizard_path)) %>
<%= form_with(model: @case_contact, url: wizard_path(nil, case_contact_id: @case_contact.id), local: true, id: "casa-contact-form", class: "component-validated-form") do |form| %> From 38c95b7c3dba82405026dd2cb52923cfcb94a2bd Mon Sep 17 00:00:00 2001 From: Priya Power <49959312+priyapower@users.noreply.github.com> Date: Mon, 15 Jul 2024 15:54:03 -0500 Subject: [PATCH 03/26] [#5777] Update with appropriate icons --- app/components/form/title_component.html.erb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/components/form/title_component.html.erb b/app/components/form/title_component.html.erb index cf37ac2dbe..a0d626caae 100644 --- a/app/components/form/title_component.html.erb +++ b/app/components/form/title_component.html.erb @@ -12,7 +12,9 @@ <% if @progress %>
<% if @navigable %> - <%= link_to 'BACK', @nav_back %> + <%= link_to @nav_back do %> + + <% end %> <% end %>

<%= @steps_in_text %> @@ -24,7 +26,9 @@

<% if @navigable %> - <%= link_to 'NEXT', @nav_next %> + <%= link_to @nav_next do %> + + <% end %> <% end %> <% end %> From 146fa5446f0136cdf322ca7d3e2c08551567979e Mon Sep 17 00:00:00 2001 From: Priya Power <49959312+priyapower@users.noreply.github.com> Date: Mon, 15 Jul 2024 16:41:16 -0500 Subject: [PATCH 04/26] Move both buttons to left of "Step" --- app/components/form/title_component.html.erb | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/app/components/form/title_component.html.erb b/app/components/form/title_component.html.erb index a0d626caae..80414d0c53 100644 --- a/app/components/form/title_component.html.erb +++ b/app/components/form/title_component.html.erb @@ -15,21 +15,19 @@ <%= link_to @nav_back do %> <% end %> - <% end %> -

- <%= @steps_in_text %> -

-
-
-
-
-
- - <% if @navigable %> <%= link_to @nav_next do %> <% end %> <% end %> +

+ <%= @steps_in_text %> +

+
+
+
+
+
+ <% end %> From 404c4f2bf9c03c9d99b2d770a9d1ea30490e0217 Mon Sep 17 00:00:00 2001 From: Priya Power <49959312+priyapower@users.noreply.github.com> Date: Mon, 15 Jul 2024 17:00:33 -0500 Subject: [PATCH 05/26] [#5777] Add accessibility labels --- app/components/form/title_component.html.erb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/components/form/title_component.html.erb b/app/components/form/title_component.html.erb index 80414d0c53..df6fb6d0d3 100644 --- a/app/components/form/title_component.html.erb +++ b/app/components/form/title_component.html.erb @@ -12,11 +12,11 @@ <% if @progress %>
<% if @navigable %> - <%= link_to @nav_back do %> - + <%= link_to @nav_back, title: "Back step", aria: { label: "Back step" } do %> + <% end %> - <%= link_to @nav_next do %> - + <%= link_to @nav_next, title: "Next step", aria: { label: "Next step" } do %> + <% end %> <% end %>

From dfd54081fba2bbb7b2071c189e60b8bcef944050 Mon Sep 17 00:00:00 2001 From: Priya Power <49959312+priyapower@users.noreply.github.com> Date: Mon, 15 Jul 2024 20:08:02 -0500 Subject: [PATCH 06/26] [#5777] Ensure progress bar persists after validation --- app/controllers/case_contacts/form_controller.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/controllers/case_contacts/form_controller.rb b/app/controllers/case_contacts/form_controller.rb index d988c98bdf..8254d2c979 100644 --- a/app/controllers/case_contacts/form_controller.rb +++ b/app/controllers/case_contacts/form_controller.rb @@ -20,6 +20,8 @@ def show def update authorize @case_contact + @page = wizard_steps.index(step) + 1 + @total_pages = steps.count params[:case_contact][:status] = step.to_s if !@case_contact.active? remove_unwanted_contact_types remove_nil_draft_ids From 2e4fdcedc6739e66b3824ec4cdc65350728853bb Mon Sep 17 00:00:00 2001 From: Priya Power <49959312+priyapower@users.noreply.github.com> Date: Mon, 15 Jul 2024 20:08:40 -0500 Subject: [PATCH 07/26] [#5777] Refactor step navigation into unique component --- .../form/step_navigation_component.html.erb | 23 +++++++++++++++++++ .../form/step_navigation_component.rb | 12 ++++++++++ app/components/form/title_component.html.erb | 7 +----- app/components/form/title_component.rb | 8 ++----- app/views/case_contacts/form/details.html.erb | 2 +- 5 files changed, 39 insertions(+), 13 deletions(-) create mode 100644 app/components/form/step_navigation_component.html.erb create mode 100644 app/components/form/step_navigation_component.rb diff --git a/app/components/form/step_navigation_component.html.erb b/app/components/form/step_navigation_component.html.erb new file mode 100644 index 0000000000..c82b2c50f2 --- /dev/null +++ b/app/components/form/step_navigation_component.html.erb @@ -0,0 +1,23 @@ +

+ <%# Back navigation %> + <%= button_tag type: @submit_back ? "submit" : "button", class: "btn btn-link", title: "Back step", aria: { label: "Back step" } do %> + <% if @submit_back %> + + <% else %> + <%= link_to @nav_back, title: "Back step", aria: { label: "Back step" } do %> + + <% end %> + <% end %> + <% end %> + + <%# Next navigation %> + <%= button_tag type: @submit_next ? "submit" : "button", class: "btn btn-link", title: "Next step", aria: { label: "Next step" } do %> + <% if @submit_next %> + + <% else %> + <%= link_to @nav_next, title: "Next step", aria: { label: "Next step" } do %> + + <% end %> + <% end %> + <% end %> +
\ No newline at end of file diff --git a/app/components/form/step_navigation_component.rb b/app/components/form/step_navigation_component.rb new file mode 100644 index 0000000000..66356d888c --- /dev/null +++ b/app/components/form/step_navigation_component.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +class Form::StepNavigationComponent < ViewComponent::Base + def initialize(nav_back: nil, nav_next: nil, submit_back: false, submit_next: false) + @nav_back = nav_back + @nav_next = nav_next + @submit_back = submit_back + @submit_next = submit_next + @back_disabled = !@nav_back + @next_disabled = !@nav_next + end +end diff --git a/app/components/form/title_component.html.erb b/app/components/form/title_component.html.erb index df6fb6d0d3..f9f2131d3f 100644 --- a/app/components/form/title_component.html.erb +++ b/app/components/form/title_component.html.erb @@ -12,12 +12,7 @@ <% if @progress %>
<% if @navigable %> - <%= link_to @nav_back, title: "Back step", aria: { label: "Back step" } do %> - - <% end %> - <%= link_to @nav_next, title: "Next step", aria: { label: "Next step" } do %> - - <% end %> + <%= render(@navigable) %> <% end %>

<%= @steps_in_text %> diff --git a/app/components/form/title_component.rb b/app/components/form/title_component.rb index c7c07d878d..7ec207b343 100644 --- a/app/components/form/title_component.rb +++ b/app/components/form/title_component.rb @@ -1,17 +1,13 @@ # frozen_string_literal: true class Form::TitleComponent < ViewComponent::Base - def initialize(title:, subtitle:, step: nil, total_steps: nil, notes: nil, autosave: false, navigable: false, nav_back: nil, nav_next: nil) + def initialize(title:, subtitle:, step: nil, total_steps: nil, notes: nil, autosave: false, navigable: nil) @title = title @subtitle = subtitle @notes = notes @autosave = autosave @navigable = navigable - # @nav_back = nav_back if navigable - # @nav_next = nav_next if navigable - @nav_back = nav_back - @nav_next = nav_next - + if step && total_steps @steps_in_text = "Step #{step} of #{total_steps}" @progress = (step.to_d / total_steps.to_d) * 100 diff --git a/app/views/case_contacts/form/details.html.erb b/app/views/case_contacts/form/details.html.erb index eeaa097f80..09443d475d 100644 --- a/app/views/case_contacts/form/details.html.erb +++ b/app/views/case_contacts/form/details.html.erb @@ -1,7 +1,7 @@ -<%= render(Form::TitleComponent.new(title: @case_contact.decorate.form_title, subtitle: "Contact details", step: @page, total_steps: @total_pages, navigable: true, nav_back: leave_case_contacts_form_path, nav_next: next_wizard_path)) %>

<%= form_with(model: @case_contact, url: wizard_path(nil, case_contact_id: @case_contact.id), local: true, id: "casa-contact-form", class: "component-validated-form") do |form| %> + <%= render(Form::TitleComponent.new(title: @case_contact.decorate.form_title, subtitle: "Contact details", step: @page, total_steps: @total_pages, navigable: Form::StepNavigationComponent.new(nav_back: leave_case_contacts_form_path, nav_next: next_wizard_path, submit_back: false, submit_next: true))) %> <%= render "/shared/error_messages", resource: @case_contact %>
From 31f605915fb6d65a91ac2558775d2086ae7e62b8 Mon Sep 17 00:00:00 2001 From: Priya Power <49959312+priyapower@users.noreply.github.com> Date: Wed, 17 Jul 2024 14:08:21 -0500 Subject: [PATCH 08/26] [#5777] Solve bug around validation when navigating backwards --- .../form/step_navigation_component.html.erb | 28 +++++++++++-------- .../form/step_navigation_component.rb | 2 -- .../case_contacts/form_controller.rb | 3 ++ app/models/case_contact.rb | 3 +- app/views/case_contacts/form/details.html.erb | 1 - .../case_contacts/form/expenses.html.erb | 2 +- app/views/case_contacts/form/notes.html.erb | 2 +- 7 files changed, 23 insertions(+), 18 deletions(-) diff --git a/app/components/form/step_navigation_component.html.erb b/app/components/form/step_navigation_component.html.erb index c82b2c50f2..fb0b212867 100644 --- a/app/components/form/step_navigation_component.html.erb +++ b/app/components/form/step_navigation_component.html.erb @@ -1,23 +1,27 @@
<%# Back navigation %> - <%= button_tag type: @submit_back ? "submit" : "button", class: "btn btn-link", title: "Back step", aria: { label: "Back step" } do %> - <% if @submit_back %> + <%= button_tag type: @submit_back ? :submit : :button, + name: :nav_step, + value: @nav_back, + class: "btn btn-link", + title: "Back step", + aria: { label: "Back step" }, + disabled: !@nav_back do %> + <%= link_to @nav_back, title: "Back step", aria: { label: "Back step" } do %> - <% else %> - <%= link_to @nav_back, title: "Back step", aria: { label: "Back step" } do %> - - <% end %> <% end %> <% end %> <%# Next navigation %> - <%= button_tag type: @submit_next ? "submit" : "button", class: "btn btn-link", title: "Next step", aria: { label: "Next step" } do %> - <% if @submit_next %> + <%= button_tag type: @submit_next ? :submit : :button, + name: :nav_step, + value: @nav_forward, + class: "btn btn-link", + title: "Next step", + aria: { label: "Next step" }, + disabled: !@nav_next do %> + <%= link_to @nav_next, title: "Next step", aria: { label: "Next step" } do %> - <% else %> - <%= link_to @nav_next, title: "Next step", aria: { label: "Next step" } do %> - - <% end %> <% end %> <% end %>
\ No newline at end of file diff --git a/app/components/form/step_navigation_component.rb b/app/components/form/step_navigation_component.rb index 66356d888c..4ed3c17201 100644 --- a/app/components/form/step_navigation_component.rb +++ b/app/components/form/step_navigation_component.rb @@ -6,7 +6,5 @@ def initialize(nav_back: nil, nav_next: nil, submit_back: false, submit_next: fa @nav_next = nav_next @submit_back = submit_back @submit_next = submit_next - @back_disabled = !@nav_back - @next_disabled = !@nav_next end end diff --git a/app/controllers/case_contacts/form_controller.rb b/app/controllers/case_contacts/form_controller.rb index 8254d2c979..f4a8f410ea 100644 --- a/app/controllers/case_contacts/form_controller.rb +++ b/app/controllers/case_contacts/form_controller.rb @@ -22,6 +22,7 @@ def update authorize @case_contact @page = wizard_steps.index(step) + 1 @total_pages = steps.count + @nav_step = params[:nav_step] params[:case_contact][:status] = step.to_s if !@case_contact.active? remove_unwanted_contact_types remove_nil_draft_ids @@ -29,6 +30,7 @@ def update if CaseContactUpdateService.new(@case_contact).update_attrs(case_contact_params) respond_to do |format| format.html { + render @nav_step.split('/').last.to_sym if @nav_step.present? if step == steps.last finish_editing else @@ -155,3 +157,4 @@ def set_steps self.steps = CaseContact.find(params[:case_contact_id]).form_steps end end + diff --git a/app/models/case_contact.rb b/app/models/case_contact.rb index 37696fc9f3..a5c976a838 100644 --- a/app/models/case_contact.rb +++ b/app/models/case_contact.rb @@ -291,7 +291,8 @@ def form_steps end def casa_org_any_expenses_enabled? - creator.casa_org.additional_expenses_enabled || creator.casa_org.show_driving_reimbursement + # creator.casa_org.additional_expenses_enabled || creator.casa_org.show_driving_reimbursement + return true end private_class_method def self.sorted_by_params diff --git a/app/views/case_contacts/form/details.html.erb b/app/views/case_contacts/form/details.html.erb index 09443d475d..8c39b8d403 100644 --- a/app/views/case_contacts/form/details.html.erb +++ b/app/views/case_contacts/form/details.html.erb @@ -1,4 +1,3 @@ -
<%= form_with(model: @case_contact, url: wizard_path(nil, case_contact_id: @case_contact.id), local: true, id: "casa-contact-form", class: "component-validated-form") do |form| %> <%= render(Form::TitleComponent.new(title: @case_contact.decorate.form_title, subtitle: "Contact details", step: @page, total_steps: @total_pages, navigable: Form::StepNavigationComponent.new(nav_back: leave_case_contacts_form_path, nav_next: next_wizard_path, submit_back: false, submit_next: true))) %> diff --git a/app/views/case_contacts/form/expenses.html.erb b/app/views/case_contacts/form/expenses.html.erb index b1dde6c48a..abea913197 100644 --- a/app/views/case_contacts/form/expenses.html.erb +++ b/app/views/case_contacts/form/expenses.html.erb @@ -1,4 +1,4 @@ -<%= render(Form::TitleComponent.new(title: @case_contact.decorate.form_title, subtitle: "Contact expenses", step: @page, total_steps: @total_pages)) %> +<%= render(Form::TitleComponent.new(title: @case_contact.decorate.form_title, subtitle: "Contact expenses", step: @page, total_steps: @total_pages, navigable: Form::StepNavigationComponent.new(nav_back: previous_wizard_path, nav_next: next_wizard_path, submit_back: true, submit_next: true))) %>
<%= form_with(model: @case_contact, url: wizard_path(nil, case_contact_id: @case_contact.id), local: true, id: "casa-contact-form", class: "component-validated-form") do |form| %> diff --git a/app/views/case_contacts/form/notes.html.erb b/app/views/case_contacts/form/notes.html.erb index 4f4309bf7d..833cecf3b0 100644 --- a/app/views/case_contacts/form/notes.html.erb +++ b/app/views/case_contacts/form/notes.html.erb @@ -1,8 +1,8 @@
- <%= render(Form::TitleComponent.new(title: @case_contact.decorate.form_title, subtitle: "Contact notes", step: @page, total_steps: @total_pages, notes: @case_contact.decorate.form_page_notes[:notes], autosave: true)) %>
<%= form_with(model: @case_contact, url: wizard_path(nil, case_contact_id: @case_contact.id), id: "casa-contact-form", class: "component-validated-form", data: { "turbo-action": "advance", "autosave-target": "form" }) do |form| %> + <%= render(Form::TitleComponent.new(title: @case_contact.decorate.form_title, subtitle: "Contact notes", step: @page, total_steps: @total_pages, notes: @case_contact.decorate.form_page_notes[:notes], autosave: true, navigable: Form::StepNavigationComponent.new(nav_back: previous_wizard_path, nav_next: @case_contact.casa_org_any_expenses_enabled? ? next_wizard_path : nil, submit_back: true, submit_next: true))) %> <%= render "contact_topic_notes", form: %>
Date: Wed, 17 Jul 2024 14:09:37 -0500 Subject: [PATCH 09/26] [#5777] Remove debug point --- app/models/case_contact.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/models/case_contact.rb b/app/models/case_contact.rb index a5c976a838..37696fc9f3 100644 --- a/app/models/case_contact.rb +++ b/app/models/case_contact.rb @@ -291,8 +291,7 @@ def form_steps end def casa_org_any_expenses_enabled? - # creator.casa_org.additional_expenses_enabled || creator.casa_org.show_driving_reimbursement - return true + creator.casa_org.additional_expenses_enabled || creator.casa_org.show_driving_reimbursement end private_class_method def self.sorted_by_params From 5160d386e4056a7e96429701bfd01ee4a2547e02 Mon Sep 17 00:00:00 2001 From: Priya Power <49959312+priyapower@users.noreply.github.com> Date: Wed, 17 Jul 2024 14:50:59 -0500 Subject: [PATCH 10/26] [#5777] Fix missing instantiated object every now and then --- app/components/form/step_navigation_component.html.erb | 4 ++-- app/controllers/case_contacts/form_controller.rb | 7 +++++-- app/views/case_contacts/form/expenses.html.erb | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/app/components/form/step_navigation_component.html.erb b/app/components/form/step_navigation_component.html.erb index fb0b212867..163e7caad6 100644 --- a/app/components/form/step_navigation_component.html.erb +++ b/app/components/form/step_navigation_component.html.erb @@ -3,7 +3,7 @@ <%= button_tag type: @submit_back ? :submit : :button, name: :nav_step, value: @nav_back, - class: "btn btn-link", + class: "btn btn-link #{@nav_back.nil? ? 'disabled' : 'enabled'}", title: "Back step", aria: { label: "Back step" }, disabled: !@nav_back do %> @@ -16,7 +16,7 @@ <%= button_tag type: @submit_next ? :submit : :button, name: :nav_step, value: @nav_forward, - class: "btn btn-link", + class: "btn btn-link #{@nav_next.nil? ? 'disabled' : 'enabled'}", title: "Next step", aria: { label: "Next step" }, disabled: !@nav_next do %> diff --git a/app/controllers/case_contacts/form_controller.rb b/app/controllers/case_contacts/form_controller.rb index f4a8f410ea..305977acad 100644 --- a/app/controllers/case_contacts/form_controller.rb +++ b/app/controllers/case_contacts/form_controller.rb @@ -23,6 +23,7 @@ def update @page = wizard_steps.index(step) + 1 @total_pages = steps.count @nav_step = params[:nav_step] + params[:case_contact][:status] = step.to_s if !@case_contact.active? remove_unwanted_contact_types remove_nil_draft_ids @@ -30,8 +31,10 @@ def update if CaseContactUpdateService.new(@case_contact).update_attrs(case_contact_params) respond_to do |format| format.html { - render @nav_step.split('/').last.to_sym if @nav_step.present? - if step == steps.last + if @nav_step.present? + jump_to(@nav_step.split('/').last.to_sym) + render_wizard @case_contact, {}, {case_contact_id: @case_contact.id} + elsif step == steps.last finish_editing else render_wizard @case_contact, {}, {case_contact_id: @case_contact.id} diff --git a/app/views/case_contacts/form/expenses.html.erb b/app/views/case_contacts/form/expenses.html.erb index abea913197..56b4281922 100644 --- a/app/views/case_contacts/form/expenses.html.erb +++ b/app/views/case_contacts/form/expenses.html.erb @@ -1,7 +1,7 @@ -<%= render(Form::TitleComponent.new(title: @case_contact.decorate.form_title, subtitle: "Contact expenses", step: @page, total_steps: @total_pages, navigable: Form::StepNavigationComponent.new(nav_back: previous_wizard_path, nav_next: next_wizard_path, submit_back: true, submit_next: true))) %>
<%= form_with(model: @case_contact, url: wizard_path(nil, case_contact_id: @case_contact.id), local: true, id: "casa-contact-form", class: "component-validated-form") do |form| %> + <%= render(Form::TitleComponent.new(title: @case_contact.decorate.form_title, subtitle: "Contact expenses", step: @page, total_steps: @total_pages, navigable: Form::StepNavigationComponent.new(nav_back: previous_wizard_path, nav_next: nil, submit_back: true, submit_next: true))) %> <%= render "/shared/error_messages", resource: @case_contact %>
From 8b76177b83862345c4272d1c50f94ddaad6e92c0 Mon Sep 17 00:00:00 2001 From: Priya Power <49959312+priyapower@users.noreply.github.com> Date: Wed, 17 Jul 2024 14:54:51 -0500 Subject: [PATCH 11/26] [#5777] Remove excess behavior --- app/components/form/step_navigation_component.html.erb | 4 ++-- app/components/form/step_navigation_component.rb | 4 +--- app/views/case_contacts/form/details.html.erb | 2 +- app/views/case_contacts/form/expenses.html.erb | 2 +- app/views/case_contacts/form/notes.html.erb | 2 +- 5 files changed, 6 insertions(+), 8 deletions(-) diff --git a/app/components/form/step_navigation_component.html.erb b/app/components/form/step_navigation_component.html.erb index 163e7caad6..d27d150f79 100644 --- a/app/components/form/step_navigation_component.html.erb +++ b/app/components/form/step_navigation_component.html.erb @@ -1,6 +1,6 @@
<%# Back navigation %> - <%= button_tag type: @submit_back ? :submit : :button, + <%= button_tag type: :submit, name: :nav_step, value: @nav_back, class: "btn btn-link #{@nav_back.nil? ? 'disabled' : 'enabled'}", @@ -13,7 +13,7 @@ <% end %> <%# Next navigation %> - <%= button_tag type: @submit_next ? :submit : :button, + <%= button_tag type: :submit, name: :nav_step, value: @nav_forward, class: "btn btn-link #{@nav_next.nil? ? 'disabled' : 'enabled'}", diff --git a/app/components/form/step_navigation_component.rb b/app/components/form/step_navigation_component.rb index 4ed3c17201..1adf102f15 100644 --- a/app/components/form/step_navigation_component.rb +++ b/app/components/form/step_navigation_component.rb @@ -1,10 +1,8 @@ # frozen_string_literal: true class Form::StepNavigationComponent < ViewComponent::Base - def initialize(nav_back: nil, nav_next: nil, submit_back: false, submit_next: false) + def initialize(nav_back: nil, nav_next: nil) @nav_back = nav_back @nav_next = nav_next - @submit_back = submit_back - @submit_next = submit_next end end diff --git a/app/views/case_contacts/form/details.html.erb b/app/views/case_contacts/form/details.html.erb index 8c39b8d403..d810aa1f53 100644 --- a/app/views/case_contacts/form/details.html.erb +++ b/app/views/case_contacts/form/details.html.erb @@ -1,6 +1,6 @@
<%= form_with(model: @case_contact, url: wizard_path(nil, case_contact_id: @case_contact.id), local: true, id: "casa-contact-form", class: "component-validated-form") do |form| %> - <%= render(Form::TitleComponent.new(title: @case_contact.decorate.form_title, subtitle: "Contact details", step: @page, total_steps: @total_pages, navigable: Form::StepNavigationComponent.new(nav_back: leave_case_contacts_form_path, nav_next: next_wizard_path, submit_back: false, submit_next: true))) %> + <%= render(Form::TitleComponent.new(title: @case_contact.decorate.form_title, subtitle: "Contact details", step: @page, total_steps: @total_pages, navigable: Form::StepNavigationComponent.new(nav_back: leave_case_contacts_form_path, nav_next: next_wizard_path))) %> <%= render "/shared/error_messages", resource: @case_contact %>
diff --git a/app/views/case_contacts/form/expenses.html.erb b/app/views/case_contacts/form/expenses.html.erb index 56b4281922..9bfac9209c 100644 --- a/app/views/case_contacts/form/expenses.html.erb +++ b/app/views/case_contacts/form/expenses.html.erb @@ -1,7 +1,7 @@
<%= form_with(model: @case_contact, url: wizard_path(nil, case_contact_id: @case_contact.id), local: true, id: "casa-contact-form", class: "component-validated-form") do |form| %> - <%= render(Form::TitleComponent.new(title: @case_contact.decorate.form_title, subtitle: "Contact expenses", step: @page, total_steps: @total_pages, navigable: Form::StepNavigationComponent.new(nav_back: previous_wizard_path, nav_next: nil, submit_back: true, submit_next: true))) %> + <%= render(Form::TitleComponent.new(title: @case_contact.decorate.form_title, subtitle: "Contact expenses", step: @page, total_steps: @total_pages, navigable: Form::StepNavigationComponent.new(nav_back: previous_wizard_path, nav_next: nil))) %> <%= render "/shared/error_messages", resource: @case_contact %>
diff --git a/app/views/case_contacts/form/notes.html.erb b/app/views/case_contacts/form/notes.html.erb index 833cecf3b0..12f8d404d3 100644 --- a/app/views/case_contacts/form/notes.html.erb +++ b/app/views/case_contacts/form/notes.html.erb @@ -2,7 +2,7 @@
<%= form_with(model: @case_contact, url: wizard_path(nil, case_contact_id: @case_contact.id), id: "casa-contact-form", class: "component-validated-form", data: { "turbo-action": "advance", "autosave-target": "form" }) do |form| %> - <%= render(Form::TitleComponent.new(title: @case_contact.decorate.form_title, subtitle: "Contact notes", step: @page, total_steps: @total_pages, notes: @case_contact.decorate.form_page_notes[:notes], autosave: true, navigable: Form::StepNavigationComponent.new(nav_back: previous_wizard_path, nav_next: @case_contact.casa_org_any_expenses_enabled? ? next_wizard_path : nil, submit_back: true, submit_next: true))) %> + <%= render(Form::TitleComponent.new(title: @case_contact.decorate.form_title, subtitle: "Contact notes", step: @page, total_steps: @total_pages, notes: @case_contact.decorate.form_page_notes[:notes], autosave: true, navigable: Form::StepNavigationComponent.new(nav_back: previous_wizard_path, nav_next: @case_contact.casa_org_any_expenses_enabled? ? next_wizard_path : nil))) %> <%= render "contact_topic_notes", form: %>
Date: Wed, 17 Jul 2024 15:11:08 -0500 Subject: [PATCH 12/26] [#5777] :broom: --- .../form/step_navigation_component.html.erb | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/app/components/form/step_navigation_component.html.erb b/app/components/form/step_navigation_component.html.erb index d27d150f79..c8d729f8ae 100644 --- a/app/components/form/step_navigation_component.html.erb +++ b/app/components/form/step_navigation_component.html.erb @@ -3,25 +3,24 @@ <%= button_tag type: :submit, name: :nav_step, value: @nav_back, - class: "btn btn-link #{@nav_back.nil? ? 'disabled' : 'enabled'}", - title: "Back step", - aria: { label: "Back step" }, + class: "btn btn-link #{@nav_back.nil? ? 'disabled' : 'enabled'}", + title: "Back step", + aria: { label: "Back step" }, disabled: !@nav_back do %> <%= link_to @nav_back, title: "Back step", aria: { label: "Back step" } do %> - + <% end %> <% end %> - <%# Next navigation %> - <%= button_tag type: :submit, + <%= button_tag type: :submit, name: :nav_step, value: @nav_forward, class: "btn btn-link #{@nav_next.nil? ? 'disabled' : 'enabled'}", - title: "Next step", - aria: { label: "Next step" }, + title: "Next step", + aria: { label: "Next step" }, disabled: !@nav_next do %> <%= link_to @nav_next, title: "Next step", aria: { label: "Next step" } do %> - + <% end %> <% end %> -
\ No newline at end of file +
From 77309c9eaac9b0bdecf6c3aa0ce66f66a10555fe Mon Sep 17 00:00:00 2001 From: Priya Power <49959312+priyapower@users.noreply.github.com> Date: Wed, 17 Jul 2024 15:14:26 -0500 Subject: [PATCH 13/26] [#5777] :broom: --- app/components/form/title_component.rb | 2 +- app/controllers/case_contacts/form_controller.rb | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/app/components/form/title_component.rb b/app/components/form/title_component.rb index 7ec207b343..7229dd4910 100644 --- a/app/components/form/title_component.rb +++ b/app/components/form/title_component.rb @@ -7,7 +7,7 @@ def initialize(title:, subtitle:, step: nil, total_steps: nil, notes: nil, autos @notes = notes @autosave = autosave @navigable = navigable - + if step && total_steps @steps_in_text = "Step #{step} of #{total_steps}" @progress = (step.to_d / total_steps.to_d) * 100 diff --git a/app/controllers/case_contacts/form_controller.rb b/app/controllers/case_contacts/form_controller.rb index 305977acad..0a1f607255 100644 --- a/app/controllers/case_contacts/form_controller.rb +++ b/app/controllers/case_contacts/form_controller.rb @@ -23,7 +23,7 @@ def update @page = wizard_steps.index(step) + 1 @total_pages = steps.count @nav_step = params[:nav_step] - + params[:case_contact][:status] = step.to_s if !@case_contact.active? remove_unwanted_contact_types remove_nil_draft_ids @@ -32,7 +32,7 @@ def update respond_to do |format| format.html { if @nav_step.present? - jump_to(@nav_step.split('/').last.to_sym) + jump_to(@nav_step.split("/").last.to_sym) render_wizard @case_contact, {}, {case_contact_id: @case_contact.id} elsif step == steps.last finish_editing @@ -160,4 +160,3 @@ def set_steps self.steps = CaseContact.find(params[:case_contact_id]).form_steps end end - From 2308e725baafeb8575d955e02c0d8e9acc6852dd Mon Sep 17 00:00:00 2001 From: Priya Power <49959312+priyapower@users.noreply.github.com> Date: Wed, 17 Jul 2024 15:41:36 -0500 Subject: [PATCH 14/26] [#5777] Remove leave url for back navigation on first step until guidance from developers/product --- app/views/case_contacts/form/details.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/case_contacts/form/details.html.erb b/app/views/case_contacts/form/details.html.erb index d810aa1f53..c6ce860b53 100644 --- a/app/views/case_contacts/form/details.html.erb +++ b/app/views/case_contacts/form/details.html.erb @@ -1,6 +1,6 @@
<%= form_with(model: @case_contact, url: wizard_path(nil, case_contact_id: @case_contact.id), local: true, id: "casa-contact-form", class: "component-validated-form") do |form| %> - <%= render(Form::TitleComponent.new(title: @case_contact.decorate.form_title, subtitle: "Contact details", step: @page, total_steps: @total_pages, navigable: Form::StepNavigationComponent.new(nav_back: leave_case_contacts_form_path, nav_next: next_wizard_path))) %> + <%= render(Form::TitleComponent.new(title: @case_contact.decorate.form_title, subtitle: "Contact details", step: @page, total_steps: @total_pages, navigable: Form::StepNavigationComponent.new(nav_back: nil, nav_next: next_wizard_path))) %> <%= render "/shared/error_messages", resource: @case_contact %>
From 11fba7935f4a1909d6e7c780094cfb3f92bb2a51 Mon Sep 17 00:00:00 2001 From: Priya Power <49959312+priyapower@users.noreply.github.com> Date: Wed, 17 Jul 2024 15:41:54 -0500 Subject: [PATCH 15/26] [#5777] Add spec for step navigation component --- .../form/step_navigation_component.html.erb | 12 ++++++++++-- .../form/step_navigation_component_spec.rb | 19 +++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 spec/components/form/step_navigation_component_spec.rb diff --git a/app/components/form/step_navigation_component.html.erb b/app/components/form/step_navigation_component.html.erb index c8d729f8ae..35dc06aa90 100644 --- a/app/components/form/step_navigation_component.html.erb +++ b/app/components/form/step_navigation_component.html.erb @@ -7,7 +7,11 @@ title: "Back step", aria: { label: "Back step" }, disabled: !@nav_back do %> - <%= link_to @nav_back, title: "Back step", aria: { label: "Back step" } do %> + <% if @nav_back.present? %> + <%= link_to @nav_back, title: "Back step", aria: { label: "Back step" } do %> + + <% end %> + <% elsif %> <% end %> <% end %> @@ -19,7 +23,11 @@ title: "Next step", aria: { label: "Next step" }, disabled: !@nav_next do %> - <%= link_to @nav_next, title: "Next step", aria: { label: "Next step" } do %> + <% if @nav_next.present? %> + <%= link_to @nav_next, title: "Next step", aria: { label: "Next step" } do %> + + <% end %> + <% elsif %> <% end %> <% end %> diff --git a/spec/components/form/step_navigation_component_spec.rb b/spec/components/form/step_navigation_component_spec.rb new file mode 100644 index 0000000000..37b9c8c10e --- /dev/null +++ b/spec/components/form/step_navigation_component_spec.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +require "rails_helper" + +RSpec.describe Form::StepNavigationComponent, type: :component do + context "can handle enabled button" do + it "enables button if value exists" do + render_inline(described_class.new(nav_back: '/details')) + expect(page).to have_selector(:link_or_button, 'Back step') + end + end + + context "can handle disabled button" do + it "disables buttons if value is nil" do + render_inline(described_class.new()) + expect(page).not_to have_selector(:link_or_button, 'Next step') + end + end +end From 032207d5b7834cc5de8612ac72e0a544f86a5b25 Mon Sep 17 00:00:00 2001 From: Priya Power <49959312+priyapower@users.noreply.github.com> Date: Wed, 17 Jul 2024 15:43:38 -0500 Subject: [PATCH 16/26] [#5777] Update existing spec after modifying component --- spec/components/form/title_component_spec.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/components/form/title_component_spec.rb b/spec/components/form/title_component_spec.rb index 3c1cfe0c82..d837e44901 100644 --- a/spec/components/form/title_component_spec.rb +++ b/spec/components/form/title_component_spec.rb @@ -9,6 +9,7 @@ let(:total_steps) { nil } let(:notes) { nil } let(:autosave) { nil } + let(:navigable) { nil } before(:each) do render_inline(described_class.new(title: title, subtitle: subtitle, step: step, total_steps: total_steps, notes: notes, autosave: autosave)) From f6e0073bfd19ec9c66e6c29704273a9267b5b147 Mon Sep 17 00:00:00 2001 From: Priya Power <49959312+priyapower@users.noreply.github.com> Date: Wed, 17 Jul 2024 15:58:03 -0500 Subject: [PATCH 17/26] [#5777] :broom: --- spec/components/form/step_navigation_component_spec.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/spec/components/form/step_navigation_component_spec.rb b/spec/components/form/step_navigation_component_spec.rb index 37b9c8c10e..bc4c2b2409 100644 --- a/spec/components/form/step_navigation_component_spec.rb +++ b/spec/components/form/step_navigation_component_spec.rb @@ -5,15 +5,15 @@ RSpec.describe Form::StepNavigationComponent, type: :component do context "can handle enabled button" do it "enables button if value exists" do - render_inline(described_class.new(nav_back: '/details')) - expect(page).to have_selector(:link_or_button, 'Back step') + render_inline(described_class.new(nav_back: "/details")) + expect(page).to have_selector(:link_or_button, "Back step") end end - + context "can handle disabled button" do it "disables buttons if value is nil" do - render_inline(described_class.new()) - expect(page).not_to have_selector(:link_or_button, 'Next step') + render_inline(described_class.new) + expect(page).not_to have_selector(:link_or_button, "Next step") end end end From 5d249acc1a90c38060e528c1ecdfc835e9b71658 Mon Sep 17 00:00:00 2001 From: Priya Power <49959312+priyapower@users.noreply.github.com> Date: Wed, 17 Jul 2024 16:10:26 -0500 Subject: [PATCH 18/26] [#5777] Refactor large method --- .../case_contacts/form_controller.rb | 39 ++++++++++--------- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/app/controllers/case_contacts/form_controller.rb b/app/controllers/case_contacts/form_controller.rb index 0a1f607255..24cef7cd5d 100644 --- a/app/controllers/case_contacts/form_controller.rb +++ b/app/controllers/case_contacts/form_controller.rb @@ -9,36 +9,21 @@ class CaseContacts::FormController < ApplicationController # wizard_path def show - authorize @case_contact + manage_form_step get_cases_and_contact_types - @page = wizard_steps.index(step) + 1 - @total_pages = steps.count - render_wizard wizard_path end def update - authorize @case_contact - @page = wizard_steps.index(step) + 1 - @total_pages = steps.count - @nav_step = params[:nav_step] - + manage_form_step(step_navigation: true) params[:case_contact][:status] = step.to_s if !@case_contact.active? remove_unwanted_contact_types remove_nil_draft_ids - if CaseContactUpdateService.new(@case_contact).update_attrs(case_contact_params) respond_to do |format| format.html { - if @nav_step.present? - jump_to(@nav_step.split("/").last.to_sym) - render_wizard @case_contact, {}, {case_contact_id: @case_contact.id} - elsif step == steps.last - finish_editing - else - render_wizard @case_contact, {}, {case_contact_id: @case_contact.id} - end + manage_navigation } format.json { head :ok } end @@ -59,6 +44,13 @@ def set_case_contact @case_contact = CaseContact.find(params[:case_contact_id]) end + def manage_form_step(step_navigation: false) + authorize @case_contact + @page = wizard_steps.index(step) + 1 + @total_pages = steps.count + @nav_step = params[:nav_step] if step_navigation + end + def get_cases_and_contact_types @casa_cases = policy_scope(current_organization.casa_cases) @casa_cases = @casa_cases.where(id: @case_contact.casa_case_id) if @case_contact.active? @@ -72,6 +64,17 @@ def get_cases_and_contact_types @selected_contact_type_ids = @case_contact.contact_type_ids end + def manage_navigation + if @nav_step.present? + jump_to(@nav_step.split("/").last.to_sym) + render_wizard @case_contact, {}, {case_contact_id: @case_contact.id} + elsif step == steps.last + finish_editing + else + render_wizard @case_contact, {}, {case_contact_id: @case_contact.id} + end + end + def finish_editing message = "" send_reimbursement_email(@case_contact) From 1f980b543b1442107f3a023e2a6c047b41426b1a Mon Sep 17 00:00:00 2001 From: Priya Power <49959312+priyapower@users.noreply.github.com> Date: Mon, 22 Jul 2024 11:23:44 -0500 Subject: [PATCH 19/26] [#5777] Reset gemfile lock --- Gemfile.lock | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 14e3368d55..5ccdadf4ce 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -328,6 +328,8 @@ GEM racc (~> 1.4) nokogiri (1.16.6-x86_64-darwin) racc (~> 1.4) + nokogiri (1.16.6-x86_64-linux) + racc (~> 1.4) noticed (2.4.0) rails (>= 6.1.0) oj (3.16.4) @@ -568,9 +570,9 @@ GEM PLATFORMS arm64-darwin-21 ruby - x86_64-darwin-19 x86_64-darwin-21 x86_64-darwin-23 + x86_64-linux DEPENDENCIES after_party @@ -661,4 +663,4 @@ RUBY VERSION ruby 3.2.2p53 BUNDLED WITH - 2.5.15 + 2.5.14 \ No newline at end of file From 06f41e0331898b55fc8af20d4d28c227bd9b03f1 Mon Sep 17 00:00:00 2001 From: Priya Power <49959312+priyapower@users.noreply.github.com> Date: Mon, 22 Jul 2024 11:24:11 -0500 Subject: [PATCH 20/26] :broom: --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 5ccdadf4ce..0f39f6bca7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -663,4 +663,4 @@ RUBY VERSION ruby 3.2.2p53 BUNDLED WITH - 2.5.14 \ No newline at end of file + 2.5.14 From c665b64a42e2dd4ec25d0e04464b5f5fc5400f72 Mon Sep 17 00:00:00 2001 From: Priya Power <49959312+priyapower@users.noreply.github.com> Date: Mon, 22 Jul 2024 11:24:35 -0500 Subject: [PATCH 21/26] :broom: --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 0f39f6bca7..5ccdadf4ce 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -663,4 +663,4 @@ RUBY VERSION ruby 3.2.2p53 BUNDLED WITH - 2.5.14 + 2.5.14 \ No newline at end of file From aef0fdfa6c76eb5cb235cf6726dc671c17eceb2b Mon Sep 17 00:00:00 2001 From: Priya Power <49959312+priyapower@users.noreply.github.com> Date: Mon, 22 Jul 2024 14:44:03 -0500 Subject: [PATCH 22/26] Test --- Gemfile.lock | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 5ccdadf4ce..f44d98428f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -663,4 +663,6 @@ RUBY VERSION ruby 3.2.2p53 BUNDLED WITH - 2.5.14 \ No newline at end of file + 2.5.14 + + \ No newline at end of file From c1ebc07d00214b0ace5ddb24767fdbbcc445c502 Mon Sep 17 00:00:00 2001 From: Priya Power <49959312+priyapower@users.noreply.github.com> Date: Mon, 22 Jul 2024 14:44:29 -0500 Subject: [PATCH 23/26] Fix --- Gemfile.lock | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index f44d98428f..5ccdadf4ce 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -663,6 +663,4 @@ RUBY VERSION ruby 3.2.2p53 BUNDLED WITH - 2.5.14 - - \ No newline at end of file + 2.5.14 \ No newline at end of file From 1f09e29f6938eb01e7170f9cf62c527266df6608 Mon Sep 17 00:00:00 2001 From: Priya Power <49959312+priyapower@users.noreply.github.com> Date: Mon, 22 Jul 2024 14:45:33 -0500 Subject: [PATCH 24/26] Revert --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 5ccdadf4ce..0f39f6bca7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -663,4 +663,4 @@ RUBY VERSION ruby 3.2.2p53 BUNDLED WITH - 2.5.14 \ No newline at end of file + 2.5.14 From 744d82f8342fea886926a0afcd7071a3f354c638 Mon Sep 17 00:00:00 2001 From: Priya Power <49959312+priyapower@users.noreply.github.com> Date: Mon, 22 Jul 2024 14:58:22 -0500 Subject: [PATCH 25/26] [#5777] Refactor with slot --- app/components/form/title_component.html.erb | 4 ++-- app/components/form/title_component.rb | 8 +++++--- app/views/case_contacts/form/details.html.erb | 4 +++- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/app/components/form/title_component.html.erb b/app/components/form/title_component.html.erb index f9f2131d3f..26873dd92b 100644 --- a/app/components/form/title_component.html.erb +++ b/app/components/form/title_component.html.erb @@ -11,8 +11,8 @@

<%= @subtitle %>

<% if @progress %>
- <% if @navigable %> - <%= render(@navigable) %> + <% if navigable %> + <%= navigable %> <% end %>

<%= @steps_in_text %> diff --git a/app/components/form/title_component.rb b/app/components/form/title_component.rb index 7229dd4910..33cad6ee16 100644 --- a/app/components/form/title_component.rb +++ b/app/components/form/title_component.rb @@ -1,16 +1,18 @@ # frozen_string_literal: true class Form::TitleComponent < ViewComponent::Base - def initialize(title:, subtitle:, step: nil, total_steps: nil, notes: nil, autosave: false, navigable: nil) + # `Form::StepNavigationComponent` is defined in another file, so we can refer to it by class name. + renders_one :navigable, Form::StepNavigationComponent + + def initialize(title:, subtitle:, step: nil, total_steps: nil, notes: nil, autosave: false) @title = title @subtitle = subtitle @notes = notes @autosave = autosave - @navigable = navigable if step && total_steps @steps_in_text = "Step #{step} of #{total_steps}" @progress = (step.to_d / total_steps.to_d) * 100 end end -end +end \ No newline at end of file diff --git a/app/views/case_contacts/form/details.html.erb b/app/views/case_contacts/form/details.html.erb index c6ce860b53..c9850302c8 100644 --- a/app/views/case_contacts/form/details.html.erb +++ b/app/views/case_contacts/form/details.html.erb @@ -1,6 +1,8 @@

<%= form_with(model: @case_contact, url: wizard_path(nil, case_contact_id: @case_contact.id), local: true, id: "casa-contact-form", class: "component-validated-form") do |form| %> - <%= render(Form::TitleComponent.new(title: @case_contact.decorate.form_title, subtitle: "Contact details", step: @page, total_steps: @total_pages, navigable: Form::StepNavigationComponent.new(nav_back: nil, nav_next: next_wizard_path))) %> + <%= render(Form::TitleComponent.new(title: @case_contact.decorate.form_title, subtitle: "Contact details", step: @page, total_steps: @total_pages)) do |component| %> + <% component.with_navigable(nav_back: nil, nav_next: next_wizard_path) %> + <% end %> <%= render "/shared/error_messages", resource: @case_contact %>
From ee3feb3e00a4ccc96a876c9a42ebe97f64192cfa Mon Sep 17 00:00:00 2001 From: Priya Power <49959312+priyapower@users.noreply.github.com> Date: Mon, 22 Jul 2024 15:02:01 -0500 Subject: [PATCH 26/26] :broom: --- app/components/form/title_component.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/components/form/title_component.rb b/app/components/form/title_component.rb index 33cad6ee16..9b94cc37c3 100644 --- a/app/components/form/title_component.rb +++ b/app/components/form/title_component.rb @@ -3,7 +3,7 @@ class Form::TitleComponent < ViewComponent::Base # `Form::StepNavigationComponent` is defined in another file, so we can refer to it by class name. renders_one :navigable, Form::StepNavigationComponent - + def initialize(title:, subtitle:, step: nil, total_steps: nil, notes: nil, autosave: false) @title = title @subtitle = subtitle @@ -15,4 +15,4 @@ def initialize(title:, subtitle:, step: nil, total_steps: nil, notes: nil, autos @progress = (step.to_d / total_steps.to_d) * 100 end end -end \ No newline at end of file +end