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