mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-06-02 12:30:48 -04:00
The Design System has standardised on back links being at the top of the page, decorated with a small text-coloured arrow. I think this makes more sense than having them at the bottom, because it suggests, in some way, being able to go back before commiting to any of the forms on the page. Whereas the things at the bottom of the page should be performing actions on what’s in the page. The reason for making this change now is that it de-clutters the area around the green buttons. This was presenting a design challenge where multiple levels of interaction were happening in the same form. Moving these back links to the top of the page should mean that, in these complicated forms, there’s one fewer thing to compete for the user’s attention. I’ve componentised this into a `page_header` macro so that the change is easier to roll out and maintain.
214 lines
5.4 KiB
HTML
214 lines
5.4 KiB
HTML
{% extends "withoutnav_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/table.html" import mapping_table, list_table, row, field, text_field, boolean_field, right_aligned_field_heading %}
|
||
{% from "components/textbox.html" import textbox %}
|
||
{% from "components/file-upload.html" import file_upload %}
|
||
{% from "components/api-key.html" import api_key %}
|
||
|
||
{% block per_page_title %}
|
||
Styleguide
|
||
{% endblock %}
|
||
|
||
{% block maincolumn_content %}
|
||
|
||
<h1 class="heading-large">
|
||
<a href="http://www.notify.works/_styleguide" style="text-decoration: none;">www.notify.works/_styleguide</a>
|
||
</h1>
|
||
|
||
<p>
|
||
<a href="https://github.com/alphagov/notifications-admin/blob/master/app/templates/views/styleguide.html">View source</a>
|
||
</p>
|
||
|
||
<h2 class="heading-large">Banner</h2>
|
||
<div class="grid-row">
|
||
<div class="column-three-quarters">
|
||
<p>Used to show the status of a thing or action.</p>
|
||
|
||
{{ banner("You sent 1,234 text messages", with_tick=True) }}
|
||
|
||
{{ banner('You’re not allowed to do this', 'dangerous')}}
|
||
|
||
{{ banner('Are you sure you want to delete?', 'dangerous', delete_button="Yes, delete this thing")}}
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<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='Continue'
|
||
) }}
|
||
|
||
{{ page_footer(
|
||
button_text='Save',
|
||
delete_link='http://example.com',
|
||
delete_link_text='delete this thing'
|
||
)}}
|
||
|
||
{{ page_footer(
|
||
button_text='Delete', destructive=True
|
||
) }}
|
||
|
||
{{ page_footer(
|
||
button_text='Send'
|
||
) }}
|
||
|
||
{{ page_footer(
|
||
button_text='Sign in', secondary_link='http://example.com', secondary_link_text="I’ve forgotten my password"
|
||
) }}
|
||
|
||
<h2 class="heading-large">Tables</h2>
|
||
<div class="grid-row">
|
||
<div class="column-three-quarters">
|
||
<p>
|
||
Used for comparing rows of data.
|
||
</p>
|
||
{% call mapping_table(
|
||
caption='Account settings',
|
||
field_headings=['Label', 'True', 'False', 'Action'],
|
||
field_headings_visible=False,
|
||
caption_visible=True
|
||
) %}
|
||
{% call row() %}
|
||
{{ text_field('Username' )}}
|
||
{{ boolean_field(True) }}
|
||
{{ boolean_field(False) }}
|
||
{% call field(align='right') %}
|
||
<a href="#">Change</a>
|
||
{% endcall %}
|
||
{% endcall %}
|
||
{% endcall %}
|
||
|
||
{% call(item, row_number) list_table(
|
||
[
|
||
{
|
||
'file': 'dispatch_20151114.csv', 'status': 'Queued'
|
||
},
|
||
{
|
||
'file': 'dispatch_20151117.csv', 'status': 'Delivered'
|
||
},
|
||
{
|
||
'file': 'remdinder_monday.csv', 'status': 'Failed'
|
||
}
|
||
],
|
||
caption='Messages',
|
||
field_headings=['File', right_aligned_field_heading('Status')],
|
||
field_headings_visible=True,
|
||
caption_visible=False
|
||
) %}
|
||
{% call field() %}
|
||
{{ item.file }}
|
||
{% endcall %}
|
||
{% call field(
|
||
align='right',
|
||
status='error' if item.status == 'Failed' else 'default'
|
||
) %}
|
||
{{ item.status }}
|
||
{% endcall %}
|
||
{% endcall %}
|
||
|
||
{% call(item, row_number) list_table(
|
||
[],
|
||
caption='Jobs',
|
||
field_headings=['Job', 'Time'],
|
||
caption_visible=True,
|
||
empty_message='You haven’t scheduled any jobs yet'
|
||
) %}
|
||
{% call field() %}
|
||
{{ item.job }}
|
||
{% endcall %}
|
||
{% call field() %}
|
||
{{ item.time }}
|
||
{% endcall %}
|
||
{% endcall %}
|
||
<p class="table-show-more-link">
|
||
<a href="#">Add a job now</a>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
|
||
<h2 class="heading-large">Textbox</h2>
|
||
{{ textbox(form.username) }}
|
||
{{ textbox(form.password) }}
|
||
{{ textbox(form.message, highlight_tags=True) }}
|
||
{{ textbox(form.code, width='1-8') }}
|
||
|
||
<h2 class="heading-large">File upload</h2>
|
||
{{ file_upload(form.file_upload) }}
|
||
|
||
<h2 class="heading-large">API key</h2>
|
||
|
||
{{ api_key('d30512af92e1386d63b90e5973b49a10') }}
|
||
|
||
|
||
<h2 class="heading-large">Formatted list</h2>
|
||
|
||
<p>
|
||
{{ 'A' | formatted_list(prefix="one item called") }}
|
||
</p>
|
||
|
||
<p>
|
||
{{ 'AB' | formatted_list(prefix_plural="two items called") }}
|
||
</p>
|
||
|
||
<p>
|
||
{{ 'ABC' | formatted_list }}
|
||
</p>
|
||
|
||
<p>
|
||
{{ 'ABCD' | formatted_list(before_each='<strike>', after_each='</strike>', conjunction='or') }}
|
||
</p>
|
||
|
||
{% endblock %}
|