mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-23 07:46:23 -04:00
Add a styleguide page
There are now quite a few frontend components in the app.
It’s good to have a reference for them to:
- document for developers what patterns are available and how they are used
- check for regressions
- when working on one variation of a pattern you can check that your changes
don’t break other variations of it
- when changing the arguments to a pattern you can check that this doesn’t
change the expected arguments already in use
This commit adds a single page (`/_styleguide`) which has examples of all the
patterns.
This commit is contained in:
@@ -4,5 +4,5 @@ main = Blueprint('main', __name__)
|
|||||||
|
|
||||||
from app.main.views import (
|
from app.main.views import (
|
||||||
index, sign_in, sign_out, register, two_factor, verify, sms, add_service,
|
index, sign_in, sign_out, register, two_factor, verify, sms, add_service,
|
||||||
code_not_received, jobs, dashboard, templates, service_settings, forgot_password, new_password
|
code_not_received, jobs, dashboard, templates, service_settings, forgot_password, new_password, styleguide
|
||||||
)
|
)
|
||||||
|
|||||||
7
app/main/views/styleguide.py
Normal file
7
app/main/views/styleguide.py
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
from flask import render_template
|
||||||
|
from app.main import main
|
||||||
|
|
||||||
|
|
||||||
|
@main.route('/_styleguide')
|
||||||
|
def styleguide():
|
||||||
|
return render_template('views/styleguide.html')
|
||||||
162
app/templates/views/styleguide.html
Normal file
162
app/templates/views/styleguide.html
Normal file
@@ -0,0 +1,162 @@
|
|||||||
|
{% extends "admin_template.html" %}
|
||||||
|
|
||||||
|
{% from "components/banner.html" import banner %}
|
||||||
|
{% from "components/big-number.html" import big_number %}
|
||||||
|
{% from "components/browse-list.html" import browse_list %}
|
||||||
|
{% from "components/page-footer.html" import page_footer %}
|
||||||
|
{% from "components/sms-message.html" import sms_message, message_status %}
|
||||||
|
{% from "components/table.html" import mapping_table, list_table, row, field %}
|
||||||
|
{% from "components/textbox.html" import textbox %}
|
||||||
|
|
||||||
|
{% block page_title %}
|
||||||
|
Styleguide – GOV.UK Notify
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block fullwidth_content %}
|
||||||
|
|
||||||
|
<h1 class="heading-xlarge">
|
||||||
|
Styleguide
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
<h2 class="heading-large">Banner</h2>
|
||||||
|
<p>Used to show the result of a user’s action.</p>
|
||||||
|
{{ banner("This is a banner") }}
|
||||||
|
|
||||||
|
<h2 class="heading-large">Big number</h2>
|
||||||
|
|
||||||
|
<p>Used to show some important statistics.</p>
|
||||||
|
|
||||||
|
<div class="grid-row">
|
||||||
|
<div class="column-one-third">
|
||||||
|
{{ big_number("567") }}
|
||||||
|
</div>
|
||||||
|
<div class="column-one-third">
|
||||||
|
{{ big_number("2", "Messages delivered") }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2 class="heading-large">Browse list</h2>
|
||||||
|
|
||||||
|
<p>Used to navigate to child pages.</p>
|
||||||
|
|
||||||
|
{{ browse_list([
|
||||||
|
{
|
||||||
|
'title': 'Change your username',
|
||||||
|
'link': 'http://example.com',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'title': 'Change your password',
|
||||||
|
'link': 'http://example.com',
|
||||||
|
'hint': 'Your password is used to log in'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'title': 'Delete everything',
|
||||||
|
'link': 'http://example.com',
|
||||||
|
'hint': 'You can’t undo this',
|
||||||
|
'destructive': True
|
||||||
|
}
|
||||||
|
]) }}
|
||||||
|
|
||||||
|
<h2 class="heading-large">Page footer</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Used to submit forms and optionally provide a link to go back to the
|
||||||
|
previous page.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Must be used inside a form.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Adds a hidden CSRF token to the page.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
{{ page_footer(
|
||||||
|
button_text='Save and continue'
|
||||||
|
) }}
|
||||||
|
|
||||||
|
{{ page_footer(
|
||||||
|
button_text='Delete', destructive=True
|
||||||
|
) }}
|
||||||
|
|
||||||
|
{{ page_footer(
|
||||||
|
button_text='Send', back_link='http://example.com', back_link_text="Back to dashboard"
|
||||||
|
) }}
|
||||||
|
|
||||||
|
<h2 class="heading-large">SMS message</h2>
|
||||||
|
|
||||||
|
<p>Used to show or preview an SMS message.</p>
|
||||||
|
|
||||||
|
<div class="grid-row">
|
||||||
|
<div class="column-half">
|
||||||
|
{{ sms_message("Your vehicle tax for LC12 BFL is due on 1 March 2016. Renew online at www.gov.uk/vehicle-tax") }}
|
||||||
|
{{ sms_message("Your vehicle tax for ((registration number)) is due on ((date)). Renew online at www.gov.uk/vehicle-tax") }}
|
||||||
|
{{ sms_message(
|
||||||
|
"Your vehicle tax for registration number is due on date. Renew online at www.gov.uk/vehicle-tax",
|
||||||
|
"+44 7700 900 306"
|
||||||
|
) }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2 class="heading-large">Message status</h2>
|
||||||
|
<div class="grid-row">
|
||||||
|
<div class="column-third">
|
||||||
|
{{ message_status("Delivered 10:20") }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2 class="heading-large">Tables</h2>
|
||||||
|
|
||||||
|
{% call mapping_table(
|
||||||
|
caption='Account settings',
|
||||||
|
field_headings=['Label', 'Value'],
|
||||||
|
field_headings_visible=True,
|
||||||
|
caption_visible=True
|
||||||
|
) %}
|
||||||
|
{% call row() %}
|
||||||
|
{% call field() %}
|
||||||
|
Username
|
||||||
|
{% endcall %}
|
||||||
|
{% call field() %}
|
||||||
|
admin
|
||||||
|
{% endcall %}
|
||||||
|
{% endcall %}
|
||||||
|
{% endcall %}
|
||||||
|
|
||||||
|
{% call(item) list_table(
|
||||||
|
[
|
||||||
|
{
|
||||||
|
'file': 'dispatch_20151114.csv', 'status': 'Queued'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'file': 'dispatch_20151117.csv', 'status': 'Delivered'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'file': 'remdinder_monday.csv', 'status': 'Delivered'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
caption='Messages',
|
||||||
|
field_headings=['File', 'Status'],
|
||||||
|
field_headings_visible=False,
|
||||||
|
caption_visible=True
|
||||||
|
) %}
|
||||||
|
{% call field() %}
|
||||||
|
{{ item.file }}
|
||||||
|
{% endcall %}
|
||||||
|
{% call field() %}
|
||||||
|
{{ item.status }}
|
||||||
|
{% endcall %}
|
||||||
|
{% endcall %}
|
||||||
|
|
||||||
|
<h2 class="heading-large">Textbox</h2>
|
||||||
|
|
||||||
|
{{ textbox('name', 'Username') }}
|
||||||
|
{{ textbox('password', 'Password', password=True) }}
|
||||||
|
{{ textbox(
|
||||||
|
'message',
|
||||||
|
"Message",
|
||||||
|
value="Your vehicle tax for ((registration number)) is due on ((date)). Renew online at www.gov.uk/vehicle-tax",
|
||||||
|
small=False,
|
||||||
|
highlight_tags=True
|
||||||
|
) }}
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
4
tests/app/main/views/test_styleguide.py
Normal file
4
tests/app/main/views/test_styleguide.py
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
def test_styleguide_can_render(notifications_admin):
|
||||||
|
response = notifications_admin.test_client().get('/_styleguide')
|
||||||
|
|
||||||
|
assert response.status_code == 200
|
||||||
Reference in New Issue
Block a user