{% macro digitalmarketplaceQuestionPricing(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/error-message/macro.html" import govukErrorMessage -%} {%- from "govuk_frontend_jinja/components/select/macro.html" import govukSelect -%} {% set name = params.question.id %} {% set errorMessage = params.errors[name] if params.errors %} {% set price = params.question.fields.price %} {% set minimumPrice = params.question.fields.minimum_price %} {% set maximumPrice = params.question.fields.maximum_price %} {% set priceUnit = params.question.fields.price_unit %} {% set priceInterval = params.question.fields.price_interval %} {% set optional_fields = params.question.optional_fields or [] %} {% call govukFieldset({ "legend": { "html": params.question.question, "classes": "govuk-fieldset__legend--m" }, "classes": 'dm-pricing' }) %} {% if params.question.question_advice %}

{{ params.question.question_advice }}

{% endif %}
{% if errorMessage %} {{ govukErrorMessage({ "text": errorMessage["message"], "id": "input-" + name }) }} {% endif %} {% if priceUnit %} {% set questionText = "Unit (optional)" if 'price_unit' in optional_fields else "Unit" %} {% set value = params.data[priceUnit] if params.data %} {% set units = params.question.units or [ { "label": "a unit", "value": "Unit" }, { "label": "a licence", "value": "Licence" }, { "label": "a user", "value": "User" }, { "label": "a device", "value": "Device" }, { "label": "a instance", "value": "Instance" }, { "label": "a server", "value": "Server" }, { "label": "a virtual machine", "value": "Virtual machine" }, { "label": "a transaction", "value": "Transaction" }, { "label": "a megabyte", "value": "Megabyte" }, { "label": "a gigabyte", "value": "Gigabyte" }, { "label": "a terabyte", "value": "Terabyte" } ] %} {% set items = [] %} {% set _items = items.append({ "text": "", "value": "", "selected": "" == value }) %} {% for unit in units %} {% set unit_value = unit.value if unit.value else unit.label %} {% set _items = items.append({ "text": unit.label, "value": unit_value, "selected": unit_value == value }) %} {% endfor %} {{ govukSelect({ "id": "input-" + priceUnit, 'name': priceUnit, "label": { "html": questionText }, "items": items }) }} {% endif %} {% if priceInterval %} {% set questionText = "Time (optional)" if 'price_interval' in optional_fields else "Time" %} {% set value = params.data[priceInterval] if params.data %} {% set intervals = params.question.intervals or [ { "label": "a second", "value": "Second" }, { "label": "a minute", "value": "Minute" }, { "label": "a hour", "value": "Hour" }, { "label": "a day", "value": "Day" }, { "label": "a week", "value": "Week" }, { "label": "a month", "value": "Month" }, { "label": "a quarter", "value": "Quarter" }, { "label": "a 6 months", "value": "6 months" }, { "label": "a year", "value": "Year" } ] %} {% set items = [] %} {% set _items = items.append({ "text": "", "value": "", "selected": "" == value }) %} {% for interval in intervals %} {% set interval_value = interval.value if interval.value else interval.label %} {% set _items = items.append({ "text": interval.label, "value": interval_value, "selected": interval_value == value }) %} {% endfor %} {{ govukSelect({ "id": "input-" + priceInterval, "name": priceInterval, "label": { "text": questionText }, "items": items }) }} {% endif %} {% if price %} {% set questionText = "Price (optional)" if 'price' in optional_fields else "Price" %} {% set value = params.data[price] if params.data %} {{ govukInput({ "id": "input-" + price, "name": price, "classes": "govuk-input--width-10", "label": { "text": questionText }, 'hint': { "text": 'For example, £199.99' }, "value": value, "prefix": { "text": "£" } }) }} {% endif %} {% if minimumPrice %} {% set questionText = "Minimum price (optional)" if 'minimum_price' in optional_fields else "Minimum price" %} {% set value = params.data[minimumPrice] if params.data %} {{ govukInput({ "id": "input-" + minimumPrice, "name": minimumPrice, "classes": "govuk-input--width-10", "label": { "text": questionText }, 'hint': { "text": 'For example, £199.99' }, "value": value, "prefix": { "text": "£" } }) }} {% endif %} {% if maximumPrice %} {% set questionText = "Maximum price (optional)" if 'maximum_price' in optional_fields else "Maximum price" %} {% set value = params.data[maximumPrice] if params.data %} {{ govukInput({ "id": "input-" + maximumPrice, "name": maximumPrice, "classes": "govuk-input--width-10", 'label': { "text": questionText }, "hint": { "text": 'For example, £199.99' }, "value": value, 'prefix': { "text": "£" } }) }} {% endif %}
{% endcall %} {% endmacro %}