Skip to content

Commit 57f69b4

Browse files
committed
Update English task name when form is live
1 parent 6561dbe commit 57f69b4

7 files changed

Lines changed: 53 additions & 19 deletions

File tree

app/controllers/forms/make_language_live_controller.rb

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ def make_language_live_input_params
5656
end
5757

5858
def render_new(status: :ok)
59-
render "new", status:, locals: { current_form:, language: params[:language] }
59+
render "new", status:, locals: { current_form:, language: params[:language], page_title: new_page_title, page_body: new_page_body }
6060
end
6161

6262
def render_confirmation(status: :ok)
@@ -73,5 +73,21 @@ def render_confirmation(status: :ok)
7373
def go_to_make_welsh_live_input_params
7474
params.require(:forms_go_to_make_welsh_live_input).permit(:confirm)
7575
end
76+
77+
def new_page_title
78+
return I18n.t("page_titles.make_your_changes_to_english_live") if making_english_changes_live?
79+
80+
I18n.t("page_titles.make_language_live.#{params[:language]}")
81+
end
82+
83+
def new_page_body
84+
return t("make_language_live.en.make_your_changes_to_english_live.body_html", submission_email: @current_form.submission_email) if making_english_changes_live?
85+
86+
t("make_language_live.#{params[:language]}.new.body_html", submission_email: @current_form.submission_email)
87+
end
88+
89+
def making_english_changes_live?
90+
@current_form.is_live? && params[:language] == "en"
91+
end
7692
end
7793
end

app/services/form_task_list_service.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ def make_only_english_live_task
226226
can_make_form_live = status == :not_started
227227

228228
{
229-
task_name: I18n.t("forms.task_list_create.make_form_live_section.make_english_form_live"),
229+
task_name: @form.is_live? ? I18n.t("forms.task_list_edit.make_form_live_section.make_english_form_live") : I18n.t("forms.task_list_create.make_form_live_section.make_english_form_live"),
230230
path: can_make_form_live ? make_language_live_path(@form.id, language: "en") : "",
231231
status:,
232232
active: can_make_form_live,

app/views/forms/make_language_live/new.html.erb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<% set_page_title(title_with_error_prefix(t("page_titles.make_language_live.#{language}"), @make_language_live_input.errors.any?)) %>
1+
<% set_page_title(title_with_error_prefix((page_title), @make_language_live_input.errors.any?)) %>
22
<% content_for :back_link, govuk_back_link_to(form_path, t("back_link.form_create")) %>
33

44
<div class="govuk-grid-row">
@@ -10,10 +10,10 @@
1010

1111
<h1 class="govuk-heading-l">
1212
<span class="govuk-caption-l"><%= @make_language_live_input.form.name %></span>
13-
<%= t("page_titles.make_language_live.#{language}") %>
13+
<%= page_title %>
1414
</h1>
1515

16-
<%= t("make_language_live.#{language}.new.body_html", submission_email: @make_language_live_input.form.submission_email) %>
16+
<%= page_body %>
1717

1818
<%= f.govuk_collection_radio_buttons :confirm,
1919
@make_language_live_input.values, ->(option) { option }, ->(option) { t("helpers.label.confirm_action_input.options.#{option}") },

config/locales/en.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -582,6 +582,7 @@ en:
582582
submission_attachments: Get a CSV or JSON file of each completed form
583583
title: Change how you get completed forms
584584
make_form_live_section:
585+
make_english_form_live: Make changes to your English form live
585586
make_live: Make your changes live
586587
share_preview: Share a preview of your draft form
587588
title: Make your changes live
@@ -1229,6 +1230,10 @@ en:
12291230
<p>The form will not be indexed by search engines, so people will not be able to find it easily. Contact your GOV.UK publishing team to publish links to your form on GOV.UK so people can find it.</p>
12301231
<p>Completed forms will be sent to: <span class="govuk-!-text-break-word">%{submission_email}</span></p>
12311232
en:
1233+
make_your_changes_to_english_live:
1234+
body_html: |
1235+
<p>The form will not be indexed by search engines, so people will not be able to find it easily. Contact your GOV.UK publishing team to publish links to your form on GOV.UK so people can find it.</p>
1236+
<p>Completed forms will be sent to: <span class="govuk-!-text-break-word">%{submission_email}</span></p>
12321237
new:
12331238
body_html: |
12341239
<p>When you make your form live you’ll get a new URL for the English version.</p>

spec/requests/forms/make_language_live_controller_spec.rb

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,19 @@
2424
get make_language_live_path(form_id: form.id, language:)
2525
expect(response).to render_template("make_language_live/new")
2626
expect(response).to have_http_status(:ok)
27+
expect(response.body).to include(I18n.t("page_titles.make_language_live.en"))
28+
expect(response.body).to include(I18n.t("make_language_live.en.new.body_html", submission_email: form.submission_email))
2729
end
2830

2931
context "when editing a draft of an existing live form" do
30-
let(:form) { create(:form, :live) }
32+
let(:form) { create(:form, :live_with_draft) }
3133

32-
it "redirects to the form task list" do
34+
it "renders make your form live" do
3335
get make_language_live_path(form_id: form.id, language:)
34-
expect(response).to redirect_to(form_path(form_id: form.id))
36+
expect(response).to render_template("make_language_live/new")
37+
expect(response).to have_http_status(:ok)
38+
expect(response.body).to include(I18n.t("page_titles.make_your_changes_to_english_live"))
39+
expect(response.body).to include(I18n.t("make_language_live.en.make_your_changes_to_english_live.body_html", submission_email: form.submission_email))
3540
end
3641
end
3742

spec/services/form_task_list_service_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -510,7 +510,7 @@
510510
end
511511

512512
it "has a link to make the English form live" do
513-
expect(section_rows.second[:task_name]).to eq I18n.t("forms.task_list_create.make_form_live_section.make_english_form_live")
513+
expect(section_rows.second[:task_name]).to eq I18n.t("forms.task_list_edit.make_form_live_section.make_english_form_live")
514514
expect(section_rows.second[:path]).to eq "/forms/#{form.id}/make-live/en"
515515
expect(section_rows.second[:status]).to eq :not_started
516516
end

spec/views/forms/make_language_live/new.html.erb_spec.rb

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,24 @@
1515

1616
context "when there are no errors" do
1717
before do
18-
render template: "forms/make_language_live/new", locals: { current_form:, language: }
18+
render template: "forms/make_language_live/new", locals: { current_form:, language:, page_title:, page_body: }
1919
end
2020

2121
context "when the language being made live is English" do
2222
let(:language) { "en" }
23+
let(:page_title) { t("page_titles.make_language_live.en") }
24+
let(:page_body) { t("make_language_live.en.new.body_html", submission_email: current_form.submission_email) }
2325

2426
it "has the correct page title" do
25-
expect(view.content_for(:title)).to eq t("page_titles.make_language_live.en")
27+
expect(view.content_for(:title)).to eq page_title
2628
end
2729

2830
it "contains a heading" do
29-
expect(rendered).to have_css("h1", text: t("page_titles.make_language_live.en"))
31+
expect(rendered).to have_css("h1", text: page_title)
3032
end
3133

3234
it "contains the body text" do
33-
expect(rendered).to include(t("make_language_live.en.new.body_html", submission_email: current_form.submission_email))
35+
expect(rendered).to include page_body
3436
end
3537

3638
it "renders radio buttons for making the draft changes live" do
@@ -46,17 +48,19 @@
4648

4749
context "when the language being made live is Welsh" do
4850
let(:language) { "cy" }
51+
let(:page_title) { t("page_titles.make_language_live.cy") }
52+
let(:page_body) { t("make_language_live.cy.new.body_html", submission_email: current_form.submission_email) }
4953

5054
it "has the correct page title" do
51-
expect(view.content_for(:title)).to eq t("page_titles.make_language_live.cy")
55+
expect(view.content_for(:title)).to eq page_title
5256
end
5357

5458
it "contains a heading" do
55-
expect(rendered).to have_css("h1", text: t("page_titles.make_language_live.cy"))
59+
expect(rendered).to have_css("h1", text: page_title)
5660
end
5761

5862
it "contains the body text" do
59-
expect(rendered).to include(t("make_language_live.cy.new.body_html", submission_email: current_form.submission_email))
63+
expect(rendered).to include page_body
6064
end
6165

6266
it "renders radio buttons for making the draft changes live" do
@@ -76,11 +80,13 @@
7680
make_language_live_input.errors.add(:confirm, "An error")
7781

7882
assign(:make_language_live_input, make_language_live_input)
79-
render template: "forms/make_language_live/new", locals: { current_form:, language: }
83+
render template: "forms/make_language_live/new", locals: { current_form:, language:, page_title:, page_body: }
8084
end
8185

8286
context "when the language being made live is English" do
8387
let(:language) { "en" }
88+
let(:page_title) { t("page_titles.make_language_live.en") }
89+
let(:page_body) { t("make_language_live.en.new.body_html", submission_email: current_form.submission_email) }
8490

8591
it "displays the error summary" do
8692
expect(rendered).to have_selector(".govuk-error-summary")
@@ -91,12 +97,14 @@
9197
end
9298

9399
it "sets the page title with error prefix" do
94-
expect(view.content_for(:title)).to eq(title_with_error_prefix(t("page_titles.make_language_live.en"), true))
100+
expect(view.content_for(:title)).to eq(title_with_error_prefix(page_title, true))
95101
end
96102
end
97103

98104
context "when the language being made live is Welsh" do
99105
let(:language) { "cy" }
106+
let(:page_title) { t("page_titles.make_language_live.cy") }
107+
let(:page_body) { t("make_language_live.cy.new.body_html", submission_email: current_form.submission_email) }
100108

101109
it "displays the error summary" do
102110
expect(rendered).to have_selector(".govuk-error-summary")
@@ -107,7 +115,7 @@
107115
end
108116

109117
it "sets the page title with error prefix" do
110-
expect(view.content_for(:title)).to eq(title_with_error_prefix(t("page_titles.make_language_live.cy"), true))
118+
expect(view.content_for(:title)).to eq(title_with_error_prefix(page_title, true))
111119
end
112120
end
113121
end

0 commit comments

Comments
 (0)