mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-02-05 10:53:28 -05:00
c4544eb8332079d294189586d73a1df48c77f040
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.
notifications-admin
Application to handle the admin functions of the notifications application.
Features of this application:
- Register users
- Register services
- Download CSV for an email or sms batch
- Show history of notifications
- Reports
Create a virtual environment for this project
mkvirtualenv -p /usr/local/bin/python3 notifications-admin
Building the frontend
You need Node which will also get you NPM, Node's package management tool.
brew install node
n is a tool for managing different versions of node. The following installs n and uses the latest version of node.
npm install -g n
n latest
npm rebuild node-sass
The frontend dependencies are managed using NPM and Bower. To install or update all the things, run
npm install
npm run build
If you want the front end assets to re-compile on changes, leave this running in a separate terminal from the app
npm run watch
Running the application:
pip install -r requirements.txt
./scripts/bootstrap.sh
./scripts/run_app.sh
Note: the ./scripts/bootstrap.sh script only needs to be run the first time to create the database.
URL to test app:
localhost:6012/helloworld
Domain model
All the domain models are defined in the models.py file.
Description
Languages
Python
69.3%
HTML
16.6%
JavaScript
11.1%
SCSS
0.9%
Nunjucks
0.7%
Other
1.4%