Add API key component

This commit adds a component for showing an API key. Usage:

```jinja
{{ from 'components/api-key.html' import api_key }}
{{ api_key('e1b0751388f3cd0fc9982c701acdb3c2') }}
```

Depending on the user’s browser, it works in three different ways.

No Javascript
---
The API key is shown on the page.

Older browsers with Javascript
---
The API key is hidden, and users can click a button to reveal it.

Newer browsers that support copying to clipboard without Flash
---
As above, but when the key is shown there is a button which copies it to the
clipboard. This is acheived by using
[this polyfill](https://www.npmjs.com/package/query-command-supported)
to reliably detect browser support for the ‘copy’ command.

The styling of the component is a bit different to the initial sketch. I think
a grey button works better than green. Green feels like it’s going to take you
somewhere else.
This commit is contained in:
Chris Hill-Scott
2016-01-15 10:50:10 +00:00
parent e2021612b4
commit c4544eb833
7 changed files with 94 additions and 5 deletions

View File

@@ -0,0 +1,5 @@
{% macro api_key(key) %}
<div data-module="api-key" data-key="{{ key }}">
<span class="api-key-key">{{ key }}</span>
</div>
{% endmacro %}

View File

@@ -7,6 +7,7 @@
{% from "components/sms-message.html" import sms_message %}
{% from "components/table.html" import mapping_table, list_table, row, field %}
{% from "components/textbox.html" import textbox %}
{% from "components/api-key.html" import api_key %}
{% block page_title %}
Styleguide GOV.UK Notify
@@ -152,4 +153,8 @@
{{ textbox(form.password) }}
{{ textbox(form.message, highlight_tags=True) }}
<h2 class="heading-large">API key</h2>
{{ api_key('d30512af92e1386d63b90e5973b49a10') }}
{% endblock %}