Browse Source

Instance vars

pull/182/head
baarkerlounger 4 years ago
parent
commit
40a821fe62
  1. 16
      app/controllers/form_controller.rb
  2. 20
      app/views/form/page.html.erb

16
app/controllers/form_controller.rb

@ -5,14 +5,14 @@ class FormController < ApplicationController
def submit_form def submit_form
if @case_log if @case_log
page = @case_log.form.get_page(params[:case_log][:page]) @page = @case_log.form.get_page(params[:case_log][:page])
responses_for_page = responses_for_page(page) responses_for_page = responses_for_page(@page)
if @case_log.update(responses_for_page) && @case_log.has_no_unresolved_soft_errors? if @case_log.update(responses_for_page) && @case_log.has_no_unresolved_soft_errors?
redirect_path = @case_log.form.next_page_redirect_path(page, @case_log) redirect_path = @case_log.form.next_page_redirect_path(@page, @case_log)
redirect_to(send(redirect_path, @case_log)) redirect_to(send(redirect_path, @case_log))
else else
subsection = @case_log.form.subsection_for_page(page) @subsection = @case_log.form.subsection_for_page(@page)
render "form/page", locals: { page: page, subsection: subsection.label }, status: :unprocessable_entity render "form/page", status: :unprocessable_entity
end end
else else
render_not_found render_not_found
@ -33,9 +33,9 @@ class FormController < ApplicationController
form.pages.map do |page| form.pages.map do |page|
define_method(page.id) do |_errors = {}| define_method(page.id) do |_errors = {}|
if @case_log if @case_log
subsection = @case_log.form.subsection_for_page(page) @subsection = @case_log.form.subsection_for_page(page)
case_log_form_page = @case_log.form.get_page(page.id) @page = @case_log.form.get_page(page.id)
render "form/page", locals: { page: case_log_form_page, subsection: subsection.label } render "form/page"
else else
render_not_found render_not_found
end end

20
app/views/form/page.html.erb

@ -1,4 +1,4 @@
<% content_for :title, page.header.present? ? page.header : page.questions.first().header.html_safe %> <% content_for :title, @page.header.present? ? @page.header : @page.questions.first().header.html_safe %>
<% content_for :before_content do %> <% content_for :before_content do %>
<%= govuk_back_link( <%= govuk_back_link(
@ -10,26 +10,26 @@
<%= turbo_frame_tag "case_log_form", target: "_top" do %> <%= turbo_frame_tag "case_log_form", target: "_top" do %>
<div class="govuk-grid-row"> <div class="govuk-grid-row">
<div class="govuk-grid-column-two-thirds-from-desktop"> <div class="govuk-grid-column-two-thirds-from-desktop">
<% if page.header.present? %> <% if @page.header.present? %>
<h1 class="govuk-heading-l"> <h1 class="govuk-heading-l">
<span class="govuk-caption-l"><%= subsection %></span> <span class="govuk-caption-l"><%= @subsection.label %></span>
<%= page.header %> <%= @page.header %>
</h1> </h1>
<% end %> <% end %>
<%= form_with model: @case_log, url: form_case_log_path(@case_log), method: "post" do |f| %> <%= form_with model: @case_log, url: form_case_log_path(@case_log), method: "post" do |f| %>
<%= f.govuk_error_summary %> <%= f.govuk_error_summary %>
<% page.questions.map do |question| %> <% @page.questions.map do |question| %>
<div id=<%= question.id + "_div " %><%= display_question_key_div(page, question) %> > <div id=<%= question.id + "_div " %><%= display_question_key_div(@page, question) %> >
<%= render partial: "form/#{question.type}_question", locals: { question: question, caption: subsection, page_header: page.header, f: f } %> <%= render partial: "form/#{question.type}_question", locals: { question: question, caption: @subsection.label, page_header: @page.header, f: f } %>
</div> </div>
<% end %> <% end %>
<% if page.has_soft_validations? %> <% if @page.has_soft_validations? %>
<%= render partial: "form/validation_override_question", locals: { f: f, page: page } %> <%= render partial: "form/validation_override_question", locals: { f: f, page: @page } %>
<% end %> <% end %>
<%= f.hidden_field :page, value: page.id %> <%= f.hidden_field :page, value: @page.id %>
<%= f.govuk_submit "Save and continue" %> <%= f.govuk_submit "Save and continue" %>
<% end %> <% end %>
</div> </div>

Loading…
Cancel
Save