diff --git a/app/models/artefact.rb b/app/models/artefact.rb index c6a3ab1a3..f30526c0c 100644 --- a/app/models/artefact.rb +++ b/app/models/artefact.rb @@ -270,6 +270,17 @@ def exact_route? prefixes.empty? end + def locale_to_language(locale) + case locale + when "en" + "English" + when "cy" + "Welsh" + else + "" + end + end + private # We need to do this because Mongoid doesn't implement 'saved_change_to_attribute?' methods like ActiveRecord does diff --git a/app/views/editions/secondary_nav_tabs/_metadata.html.erb b/app/views/editions/secondary_nav_tabs/_metadata.html.erb index 01f29bab9..f137ca347 100644 --- a/app/views/editions/secondary_nav_tabs/_metadata.html.erb +++ b/app/views/editions/secondary_nav_tabs/_metadata.html.erb @@ -15,13 +15,15 @@ hint: "If you change the slug of a published page, the old slug will automatically redirect to the new one.", name: "artefact[slug]", value: publication.slug, - heading_level: 2, + heading_level: 3, heading_size: "m", } %> <%= render "govuk_publishing_components/components/radio", { heading: "Language", name: "artefact[language]", + heading_level: 3, + heading_size: "m", inline: true, items: [ { @@ -41,4 +43,15 @@ } %> <% end %> <% else %> + <% @artefact.attributes.slice("slug", "language").each do |key, value| %> + <%= render "govuk_publishing_components/components/heading", { + text: key.humanize, + heading_level: 3, + font_size: "m", + margin_bottom: 3, + } %> +

+ <%= key.eql?("slug") ? value : @artefact.locale_to_language(value) %> +

+ <% end %> <% end %> diff --git a/app/views/editions/show.html.erb b/app/views/editions/show.html.erb index 1879d0f57..ea990ad90 100644 --- a/app/views/editions/show.html.erb +++ b/app/views/editions/show.html.erb @@ -27,7 +27,7 @@ <%= render partial: "secondary_navigation" %> -
+
<%= render partial: "secondary_nav_tabs/#{current_tab}", :locals => { :publication => @resource } %>
diff --git a/test/integration/edition_edit_test.rb b/test/integration/edition_edit_test.rb index 443147b3f..05f02d77b 100644 --- a/test/integration/edition_edit_test.rb +++ b/test/integration/edition_edit_test.rb @@ -33,31 +33,57 @@ class EditionEditTest < IntegrationTest end context "#metadata" do - setup do - click_link("Metadata") - end + context "#draft" do + setup do + click_link("Metadata") + end - should "'Metadata' header and an update button" do - within :css, ".gem-c-heading" do - assert page.has_text?("Metadata") + should "'Metadata' header and an update button" do + within :css, ".gem-c-heading" do + assert page.has_text?("Metadata") + end + assert page.has_button?("Update") + end + + should "show slug input box prefilled" do + assert page.has_text?("Slug") + assert page.has_text?("If you change the slug of a published page, the old slug will automatically redirect to the new one.") + assert page.has_field?("artefact[slug]", with: /slug/) end - assert page.has_button?("Update") - end - should "show slug input box prefilled" do - assert page.has_text?("Slug") - assert page.has_text?("If you change the slug of a published page, the old slug will automatically redirect to the new one.") - assert page.has_field?("artefact[slug]", with: /slug/) + should "update and show success message" do + fill_in "artefact[slug]", with: "changed-slug" + choose("Welsh") + click_button("Update") + + assert find(".gem-c-radio input[value='cy']").checked? + assert page.has_text?("Metadata has successfully updated") + assert page.has_field?("artefact[slug]", with: "changed-slug") + end end - should "update and show success message" do - fill_in "artefact[slug]", with: "changed-slug" - choose("Welsh") - click_button("Update") + context "#published" do + setup do + edition = FactoryBot.create( + :completed_transaction_edition, + panopticon_id: FactoryBot.create( + :artefact, + slug: "can-i-get-a-driving-licence", + ).id, + state: "published", + slug: "can-i-get-a-driving-licence", + ) - assert find(".gem-c-radio input[value='cy']").checked? - assert page.has_text?("Metadata has successfully updated") - assert page.has_field?("artefact[slug]", with: "changed-slug") + visit edition_path(edition) + click_link("Metadata") + end + + should "show current value for slug and language as texts" do + assert page.has_text?("Slug") + assert page.has_text?(/can-i-get-a-driving-licence/) + assert page.has_text?("Language") + assert page.has_text?(/English/) + end end end end