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
if @case_log
page = @case_log.form.get_page(params[:case_log][:page])
responses_for_page = responses_for_page(page)
@page = @case_log.form.get_page(params[:case_log][:page])
responses_for_page = responses_for_page(@page)
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))
else
subsection = @case_log.form.subsection_for_page(page)
render "form/page", locals: { page: page, subsection: subsection.label }, status: :unprocessable_entity
@subsection = @case_log.form.subsection_for_page(@page)
render "form/page", status: :unprocessable_entity
end
else
render_not_found
@ -33,9 +33,9 @@ class FormController < ApplicationController
form.pages.map do |page|
define_method(page.id) do |_errors = {}|
if @case_log
subsection = @case_log.form.subsection_for_page(page)
case_log_form_page = @case_log.form.get_page(page.id)
render "form/page", locals: { page: case_log_form_page, subsection: subsection.label }
@subsection = @case_log.form.subsection_for_page(page)
@page = @case_log.form.get_page(page.id)
render "form/page"
else
render_not_found
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 %>
<%= govuk_back_link(
@ -10,26 +10,26 @@
<%= turbo_frame_tag "case_log_form", target: "_top" do %>
<div class="govuk-grid-row">
<div class="govuk-grid-column-two-thirds-from-desktop">
<% if page.header.present? %>
<% if @page.header.present? %>
<h1 class="govuk-heading-l">
<span class="govuk-caption-l"><%= subsection %></span>
<%= page.header %>
<span class="govuk-caption-l"><%= @subsection.label %></span>
<%= @page.header %>
</h1>
<% end %>
<%= form_with model: @case_log, url: form_case_log_path(@case_log), method: "post" do |f| %>
<%= f.govuk_error_summary %>
<% page.questions.map do |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 } %>
<% @page.questions.map do |question| %>
<div id=<%= question.id + "_div " %><%= display_question_key_div(@page, question) %> >
<%= render partial: "form/#{question.type}_question", locals: { question: question, caption: @subsection.label, page_header: @page.header, f: f } %>
</div>
<% end %>
<% if page.has_soft_validations? %>
<%= render partial: "form/validation_override_question", locals: { f: f, page: page } %>
<% if @page.has_soft_validations? %>
<%= render partial: "form/validation_override_question", locals: { f: f, page: @page } %>
<% end %>
<%= f.hidden_field :page, value: page.id %>
<%= f.hidden_field :page, value: @page.id %>
<%= f.govuk_submit "Save and continue" %>
<% end %>
</div>

Loading…
Cancel
Save