mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-02-06 11:23:48 -05:00
Added the "set up your profile" page and added a select component
This commit is contained in:
13
app/templates/components/components/select/README.md
Normal file
13
app/templates/components/components/select/README.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# Select
|
||||
|
||||
## Installation
|
||||
|
||||
See the [main README quick start guide](https://github.com/alphagov/govuk-frontend#quick-start) for how to install this component.
|
||||
|
||||
## Guidance and Examples
|
||||
|
||||
Find out when to use the select component in your service in the [GOV.UK Design System](https://design-system.service.gov.uk/components/select/).
|
||||
|
||||
## Component options
|
||||
|
||||
Use options to customize the appearance, content and behavior of a component when using a macro, for example, changing the text.
|
||||
@@ -0,0 +1,58 @@
|
||||
[
|
||||
{
|
||||
"name": "id",
|
||||
"type": "string",
|
||||
"required": true,
|
||||
"description": "ID for each select box."
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"type": "string",
|
||||
"required": true,
|
||||
"description": "Name property for the select."
|
||||
},
|
||||
{
|
||||
"name": "items",
|
||||
"type": "array",
|
||||
"required": true,
|
||||
"description": "The items within the select component."
|
||||
},
|
||||
{
|
||||
"name": "value",
|
||||
"type": "string",
|
||||
"required": false,
|
||||
"description": "Value for the option which should be selected. Use this as an alternative to setting the selected option on each individual item."
|
||||
},
|
||||
{
|
||||
"name": "disabled",
|
||||
"type": "boolean",
|
||||
"required": false,
|
||||
"description": "If true, select box will be disabled. Use the disabled option on each individual item to only disable certain options."
|
||||
},
|
||||
{
|
||||
"name": "describedBy",
|
||||
"type": "string",
|
||||
"required": false,
|
||||
"description": "One or more element IDs to add to the `aria-describedby` attribute, used to provide additional descriptive information for screenreader users."
|
||||
},
|
||||
{
|
||||
"name": "label",
|
||||
"type": "object",
|
||||
"required": true,
|
||||
"description": "The label used by the select component.",
|
||||
"isComponent": true
|
||||
},
|
||||
{
|
||||
"name": "hint",
|
||||
"type": "object",
|
||||
"required": false,
|
||||
"description": "Can be used to add a hint to the select component.",
|
||||
"isComponent": true
|
||||
},
|
||||
{
|
||||
"name": "classes",
|
||||
"type": "string",
|
||||
"required": false,
|
||||
"description": "Classes to add to the select."
|
||||
}
|
||||
]
|
||||
3
app/templates/components/components/select/macro.njk
Normal file
3
app/templates/components/components/select/macro.njk
Normal file
@@ -0,0 +1,3 @@
|
||||
{% macro usaSelect(params) %}
|
||||
{%- include "./template.njk" -%}
|
||||
{% endmacro %}
|
||||
12
app/templates/components/components/select/template.njk
Normal file
12
app/templates/components/components/select/template.njk
Normal file
@@ -0,0 +1,12 @@
|
||||
{% set describedBy = params.describedBy if params.describedBy else "" %}
|
||||
<div class="usa-form-group">
|
||||
<label class="usa-label" for="{{ params.name }}">{{params.label}}</label>
|
||||
<select class="usa-select {%- if params.classes %} {{ params.classes }}{% endif %}" id="{{ params.id }}" name="{{ params.name }}"
|
||||
{%- if params.value %} value="{{ params.value}}"{% endif %}
|
||||
{%- if describedBy %} aria-describedby="{{ describedBy }}"{% endif %}
|
||||
{%- for attribute, value in params.attributes %} {{ attribute }}="{{ value }}"{% endfor -%}>
|
||||
{% for item in params.items %}
|
||||
<option value="{{ item.value }}" {%- if item.disabled == true %} selected disabled {% endif %}>{{ item.text }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
78
app/templates/views/set-up-your-profile.html
Normal file
78
app/templates/views/set-up-your-profile.html
Normal file
@@ -0,0 +1,78 @@
|
||||
{% extends "withoutnav_template.html" %}
|
||||
{% from "components/page-footer.html" import page_footer %}
|
||||
{% from "components/form.html" import form_wrapper %}
|
||||
{% from "components/components/select/macro.njk" import usaSelect -%}
|
||||
|
||||
{% block per_page_title %}
|
||||
Set up your profile
|
||||
{% endblock %}
|
||||
|
||||
{% block maincolumn_content %}
|
||||
|
||||
<div class="grid-row">
|
||||
<div class="grid-col-8">
|
||||
<h1 class="font-body-2xl margin-bottom-3">Set up your profile</h1>
|
||||
{% call form_wrapper(autocomplete=True) %}
|
||||
{{ form.name(param_extensions={}) }}
|
||||
<div class="extra-tracking">
|
||||
{{ form.mobile_number(param_extensions={
|
||||
"hint": {"text": "We'll send you a security code by text message"},
|
||||
}) }}
|
||||
</div>
|
||||
{{ usaSelect({
|
||||
"id": "time-zone",
|
||||
"name": "time-zone",
|
||||
"label": "Time zone",
|
||||
"errorMessage": "Oh no!",
|
||||
"items": [
|
||||
{
|
||||
"value": "",
|
||||
"disabled": true,
|
||||
"text": "- Select -"
|
||||
},
|
||||
{
|
||||
"value": "America/Puerto_Rico",
|
||||
"text": "America/Puerto_Rico"
|
||||
},
|
||||
{
|
||||
"value": "US/Eastern",
|
||||
"text": "US/Eastern"
|
||||
},
|
||||
{
|
||||
"value": "US/Central",
|
||||
"text": "US/Central"
|
||||
},
|
||||
{
|
||||
"value": "US/Mountain",
|
||||
"text": "US/Mountain"
|
||||
},
|
||||
{
|
||||
"value": "US/Pacific",
|
||||
"text": "US/Pacific"
|
||||
},
|
||||
{
|
||||
"value": "US/Alaska",
|
||||
"text": "US/Alaska"
|
||||
},
|
||||
{
|
||||
"value": "US/Hawaii",
|
||||
"text": "US/Hawaii"
|
||||
},
|
||||
{
|
||||
"value": "US/Aleutian",
|
||||
"text": "US/Aleutian"
|
||||
},
|
||||
{
|
||||
"value": "US/Samoa",
|
||||
"text": "US/Samoa"
|
||||
},
|
||||
]
|
||||
})
|
||||
}}
|
||||
{{form.auth_type}}
|
||||
{{ page_footer("Save") }}
|
||||
{% endcall %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user