{% macro digitalmarketplaceQuestionList(params) %} {%- from "govuk_frontend_jinja/components/fieldset/macro.html" import govukFieldset -%} {%- from "govuk_frontend_jinja/components/input/macro.html" import govukInput -%} {%- from "govuk_frontend_jinja/components/button/macro.html" import govukButton -%} {%- from "govuk_frontend_jinja/components/hint/macro.html" import govukHint -%} {%- from "govuk_frontend_jinja/components/error-message/macro.html" import govukErrorMessage -%} {%- from "digitalmarketplace_frontend_jinja/components/question-format-hint/macro.html" import digitalmarketplaceQuestionFormatHint -%} {% set name = params.question.id %} {% set numberOfItems = params.question.number_of_items if params.question.number_of_items else 10 %} {% set numberOfItemsShownAsDefault = params.question.number_of_items_shown_as_default if params.question.number_of_items_shown_as_default else 2 %} {% set errorMessage = params.errors[name] if params.errors %} {% set values = params.data[name] or [] if params.data else [] %} {% set questionText = params.question.question + " ({})".format(params.question.optional_text if params.question.optional_text else "optional") if params.question.optional else params.question.question %} {% set hintHtml = digitalmarketplaceQuestionFormatHint(params.question) if params.question.hint or params.question.question_advice %} {% set describedBy = "" %} {% if hintHtml %} {% set hintId = name + "-hint" %} {% set describedBy = hintId %} {% endif %} {% if errorMessage %} {% set errorId = "input-" + name %} {% set describedBy = describedBy + " " + errorId if describedBy else errorId %} {% endif %}
{% call govukFieldset({ "legend": { "html": questionText, "classes": "govuk-fieldset__legend--m" }, "classes": 'dm-list', "attributes": { 'data-module': "dm-question-list", 'aria-describedby': describedBy if describedBy, 'data-max-number-of-items': numberOfItems, 'data-number-of-items-shown-as-default': numberOfItemsShownAsDefault, } }) %} {% if hintHtml %} {{ govukHint({ "html": hintHtml, "id": name + "-hint" }) }} {% endif %} {% if errorMessage %} {{ govukErrorMessage({ "text": errorMessage["message"], "id": errorId }) }} {% endif %}
{% for index in range(0, numberOfItems) %}
{{ govukInput({ "name": name, "id": "input-" + name + "-" + index | string, "classes": "dm-list__item-input", "value": values[index], "prefix": { "text": (index + 1) | string + "." }, "label": { "html": 'Entry number ' + (index + 1) | string + '', "classes": "govuk-visually-hidden" } }) }}
{{ govukButton({ "html": 'Remove entry number ' + (index + 1) | string + '', "classes": 'govuk-button--secondary dm-list__item-remove govuk-visually-hidden', "type": 'button' })}}
{% endfor %}
{{ govukButton({ "html": 'Add another (0 remaining)', "classes": 'govuk-button--secondary dm-list__item-add govuk-visually-hidden', "type": 'button' })}}
{% endcall %}
{% endmacro %}