Skip to content

Commit 9093aa1

Browse files
authored
Merge pull request #2556 from alphagov/add-markdown-to-welsh-input
Add markdown to welsh input
2 parents e1b6a70 + 398723b commit 9093aa1

File tree

10 files changed

+372
-171
lines changed

10 files changed

+372
-171
lines changed

app/components/markdown_editor_component/view.html.erb

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,20 @@
11
<div class="app-markdown-editor" data-module="ajax-markdown-preview" data-ajax-markdown-endpoint="<%= render_preview_path %>" data-i18n="<%= translations.to_json() %>">
2-
<label class="govuk-label govuk-label--m" for='<%= form_field_id %>'>
3-
<h2 class="govuk-heading-m"><%= label %></h2>
4-
</label>
2+
<% if label_heading %>
3+
<label class="govuk-label govuk-label--m" for='<%= form_field_id %>'>
4+
<h2 class="govuk-heading-m"><%= label %></h2>
5+
</label>
6+
<% else %>
7+
<label class="govuk-label" for='<%= form_field_id %>'><%= label %></label>
8+
<% end %>
59
<div class="govuk-hint" id="<%= form_field_id %>-hint"><%= hint %></div>
6-
<%= govuk_tabs(title: nil) do |component| %>
7-
<% component.with_tab(label: translations[:write_tab_text]) do %>
10+
<%= govuk_tabs(title: nil, id: "#{form_field_id}-tabs") do |component| %>
11+
<% component.with_tab(label: translations[:write_tab_text], id: "#{form_field_id}-write") do %>
812
<%= f.govuk_text_area(attribute_name,
913
label: nil,
1014
hint: nil,
1115
rows: 15,
1216
id: "#{form_field_id}",
17+
lang:,
1318
aria: { describedby: "#{form_field_id}-hint" },
1419
"data-module": "markdown-editor-toolbar",
1520
"data-ajax-markdown-source": true,
@@ -51,16 +56,16 @@
5156
<% end %>
5257
<% end %>
5358

54-
<% component.with_tab(label: translations[:preview_tab_text]) do %>
55-
<% if preview_html.present? %>
59+
<% component.with_tab(label: translations[:preview_tab_text], id: "#{form_field_id}-preview") do %>
60+
<% if preview_html.present? || render_preview_path.present? %>
5661
<div class="app-markdown-editor__preview-intro">
5762
<h2 class="govuk-heading-m"><%= translations[:preview_heading] %></h2>
5863

5964
<p><%= translations[:preview_description] %></p>
6065
</div>
6166

6267
<div class="app-markdown-editor__preview-area" role="region" aria-label="<%= translations[:preview_area_label] %>" data-ajax-markdown-target>
63-
<%= preview_html.html_safe %>
68+
<%= preview_html&.html_safe %>
6469
</div>
6570

6671
<%= govuk_link_to translations[:edit_markdown_link], "##{form_field_id}", class: "app-markdown-editor__edit-link" %>

app/components/markdown_editor_component/view.rb

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
module MarkdownEditorComponent
44
class View < ApplicationComponent
55
include GOVUKDesignSystemFormBuilder::BuilderHelper
6-
attr_reader :attribute_name, :f, :render_preview_path, :preview_html, :form_model, :label, :hint, :allow_headings
6+
attr_reader :attribute_name, :f, :render_preview_path, :preview_html, :form_model, :label, :hint, :allow_headings, :lang, :label_heading
77

88
def initialize(attribute_name,
99
preview_html:,
@@ -13,7 +13,9 @@ def initialize(attribute_name,
1313
hint: nil,
1414
render_preview_path: nil,
1515
allow_headings: true,
16-
local_translations: {})
16+
local_translations: {},
17+
lang: nil,
18+
label_heading: true)
1719
super()
1820
@attribute_name = attribute_name
1921
@f = form_builder
@@ -24,10 +26,16 @@ def initialize(attribute_name,
2426
@hint = hint
2527
@allow_headings = allow_headings
2628
@local_translations = local_translations
29+
@lang = lang
30+
@label_heading = label_heading
2731
end
2832

2933
def form_field_id
30-
govuk_field_id(form_model, attribute_name)
34+
if form_model.respond_to?(:form_field_id)
35+
form_model.form_field_id(attribute_name)
36+
else
37+
govuk_field_id(form_model, attribute_name)
38+
end
3139
end
3240

3341
def allowed_formats

app/controllers/forms/welsh_translation_controller.rb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,20 @@ def destroy
5454
end
5555
end
5656

57+
def render_preview
58+
authorize current_form, :can_view_form?
59+
60+
render json: { preview_html:, errors: [] }.to_json
61+
end
62+
5763
private
5864

65+
def preview_html
66+
return t("guidance.no_guidance_added_html") if params[:markdown].blank?
67+
68+
GovukFormsMarkdown.render(params[:markdown])
69+
end
70+
5971
def welsh_enabled?
6072
FeatureService.new(group: current_form.group).enabled?(:welsh)
6173
end

0 commit comments

Comments
 (0)