Skip to content

Commit

Permalink
Move checkboxes into govukFormGroup() wrapper
Browse files Browse the repository at this point in the history
  • Loading branch information
colinrotherham committed Apr 1, 2019
1 parent 89bea6b commit da155f6
Showing 1 changed file with 21 additions and 47 deletions.
68 changes: 21 additions & 47 deletions src/components/checkboxes/template.njk
Original file line number Diff line number Diff line change
@@ -1,15 +1,21 @@
{% from "../error-message/macro.njk" import govukErrorMessage -%}
{% from "../fieldset/macro.njk" import govukFieldset %}
{% from "../form-group/macro.njk" import govukFormGroup %}
{% from "../hint/macro.njk" import govukHint %}
{% from "../label/macro.njk" import govukLabel %}

{#- If an id 'prefix' is not passed, fall back to using the name attribute
instead. We need this for error messages and hints as well -#}
{% set idPrefix = params.idPrefix if params.idPrefix else params.name %}
{%- set idPrefix = params.idPrefix if params.idPrefix else params.name -%}

{#- a record of other elements that we need to associate with the input using
aria-describedby – for example hints or error messages -#}
{% set describedBy = "" %}
{%- set describedBy = params.fieldset.describedBy if params.fieldset.describedBy else "" -%}

{%- if params.hint -%}
{%- set describedBy = (describedBy + ' ' + idPrefix + "-hint") | trim -%}
{%- endif -%}
{%- if params.errorMessage -%}
{%- set describedBy = (describedBy + ' ' + idPrefix + "-error") | trim -%}
{%- endif -%}

{% set isConditional = false %}
{% for item in params.items %}
Expand All @@ -19,33 +25,16 @@
{% endfor %}

{#- fieldset is false by default -#}
{% set hasFieldset = true if params.fieldset else false %}
{%- set hasFieldset = true if params.fieldset else false -%}

{#- Capture the HTML so we can optionally nest it in a fieldset -#}
{% set innerHtml %}
{% if params.hint %}
{% set hintId = idPrefix + '-hint' %}
{% set describedBy = describedBy + ' ' + hintId if describedBy else hintId %}
{{ govukHint({
id: hintId,
classes: params.hint.classes,
attributes: params.hint.attributes,
html: params.hint.html,
text: params.hint.text
}) | indent(2) | trim }}
{% endif %}
{% if params.errorMessage %}
{% set errorId = idPrefix + '-error' %}
{% set describedBy = describedBy + ' ' + errorId if describedBy else errorId %}
{{ govukErrorMessage({
id: errorId,
classes: params.errorMessage.classes,
attributes: params.errorMessage.attributes,
html: params.errorMessage.html,
text: params.errorMessage.text,
visuallyHiddenText: params.errorMessage.visuallyHiddenText
}) | indent(2) | trim }}
{% endif %}
{% call govukFormGroup({
id: idPrefix,
fieldset: params.fieldset,
hint: params.hint,
label: params.label,
errorMessage: params.errorMessage,
formGroup: params.formGroup
}) %}
<div class="govuk-checkboxes {%- if params.classes %} {{ params.classes }}{% endif %}"
{%- for attribute, value in params.attributes %} {{ attribute }}="{{ value }}"{% endfor %}
{%- if isConditional %} data-module="checkboxes"{% endif -%}>
Expand All @@ -71,7 +60,7 @@
attributes: item.label.attributes,
for: id
}) | indent(6) | trim }}
{%- if hasHint %}
{% if hasHint %}
{{ govukHint({
id: itemHintId,
classes: 'govuk-checkboxes__hint',
Expand All @@ -88,19 +77,4 @@
{% endif %}
{% endfor %}
</div>
{% endset -%}

<div class="govuk-form-group {%- if params.errorMessage %} govuk-form-group--error{% endif %} {%- if params.formGroup.classes %} {{ params.formGroup.classes }}{% endif %}">
{% if params.fieldset %}
{% call govukFieldset({
describedBy: describedBy,
classes: params.fieldset.classes,
attributes: params.fieldset.attributes,
legend: params.fieldset.legend
}) %}
{{ innerHtml | trim | safe }}
{% endcall %}
{% else %}
{{ innerHtml | trim | safe }}
{% endif %}
</div>
{% endcall %}

0 comments on commit da155f6

Please sign in to comment.