Compare commits

...

972 Commits

Author SHA1 Message Date
Carlo Costino
ad34ca0a11 Merge pull request #1192 from GSA/govuk_frontend_jinja
inline code for govuk_frontend_jinja
2024-02-06 16:48:23 -05:00
Carlo Costino
df54b066f9 Update notifications-utils to 0.2.8
This updates utils to be 0.2.8 to address the cryptography Dependabot security alert.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2024-02-06 16:41:07 -05:00
Kenneth Kehl
338a6426c3 inline code for govuk_frontend_jinja 2024-02-06 13:17:09 -08:00
Carlo Costino
f37903ff6d Merge pull request #1183 from GSA/notify-admin-1159
Notify admin 1159 -- update to use sent_at instead of updated_at
2024-02-05 17:20:53 -05:00
Kenneth Kehl
802ebfa243 use sent_at instead of updated_at 2024-02-02 08:31:05 -08:00
Tim Lowden
e18054d2d8 Merge pull request #1160 from GSA/449-one-pager-content-updates
449 one pager content updates
2024-02-01 09:15:57 -05:00
Kenneth Kehl
21c11adb5e fix sent time 2024-01-31 10:27:56 -08:00
Carlo Costino
266b530e3a Merge pull request #1175 from GSA/add-login-gov-env-vars
Add Login.gov configuration to prod and demo environments
2024-01-30 17:26:34 -05:00
Carlo Costino
6af738e0de Add Login.gov configuration to prod and demo environments
This changeset adds the required Login.gov environment variables to the production and demo environments so that deployments function correctly.

NOTE:  This will not fully enable Login.gov integration just yet; more configuration needs to be adjusted and the Login.gov app needs to be promoted to production itself.
Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2024-01-30 17:21:29 -05:00
Carlo Costino
27385bc45a Merge pull request #1170 from GSA/fix-infrastructure-checks
Fix Terraform commands and actions
2024-01-30 15:04:35 -05:00
Carlo Costino
f097b9ca07 Merge pull request #1167 from GSA/notify-admin-1148
notify-admin-1148 make sure one-off files get written to db
2024-01-30 11:38:58 -05:00
Carlo Costino
50e3560c6f Remove the profile attribute entirely
This was what was apparently breaking our Terraform actions.  I traced this to an undocumented breaking change with the AWS provider; more details can be seen here: https://discuss.hashicorp.com/t/error-error-configuring-terraform-aws-provider-failed-to-get-shared-config-profile-default/39417/2

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2024-01-30 11:06:13 -05:00
Jonathan Bobel
761c7bd0fd Updated security content page 2024-01-30 09:49:04 -05:00
Carlo Costino
4da5c14751 Updated 18F/terraform-cloudgov to v0.7.1
Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2024-01-30 09:40:14 -05:00
Carlo Costino
0f167a91cc Update Cloud Foundry Terraform module
This changeset updates the Cloud Foundry Terraform to its latest release.  Our file were previously referencing a very old version, which was contributing to infrastructure check and deployment failures.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2024-01-30 09:26:04 -05:00
Kenneth Kehl
7c5674c4e1 notify-admin-1137 make sure one-off files get written to db 2024-01-29 13:17:50 -08:00
Jonathan Bobel
6d3c92de28 Merge branch 'main' of https://github.com/GSA/notifications-admin into 449-one-pager-content-updates 2024-01-29 10:32:17 -05:00
Jonathan Bobel
e40a493f9b Updated Roadmap content 2024-01-29 10:28:59 -05:00
Carlo Costino
4e488fa079 Merge pull request #1162 from GSA/1161-bug-fix-ui-time-sent-column-to-match-time-the-message-was-created_at
BUG: Fix UI Time Sent column to match time the message was created_at
2024-01-26 16:48:40 -05:00
Beverly Nguyen
5d480b3f53 updated time 2024-01-26 13:37:49 -08:00
Jonathan Bobel
070955175d Merge branch 'main' of https://github.com/GSA/notifications-admin into 449-one-pager-content-updates 2024-01-26 15:22:30 -05:00
Carlo Costino
a5eb311f83 Merge pull request #1129 from GSA/1114-reviseexpand-on-recent-batch-table-on-the-dashboard-page
Revise/expand on "Recent Batch" table on the dashboard page.
2024-01-26 15:03:08 -05:00
Beverly Nguyen
6b4a5d009c removed comment 2024-01-26 11:51:52 -08:00
Beverly Nguyen
1f12dd3908 show only the first 5 rows 2024-01-26 11:47:46 -08:00
Jonathan Bobel
0e64ff1c20 Contact us page 2024-01-26 14:34:25 -05:00
Beverly Nguyen
f7924320df adjusted styling 2024-01-26 11:32:42 -08:00
Beverly Nguyen
1b4754386c update testing for signout and accept invite 2024-01-26 11:29:03 -08:00
Jonathan Bobel
a27519ff68 Removed white space 2024-01-26 14:20:47 -05:00
Jonathan Bobel
b72430af63 Guidance page 2024-01-26 14:20:23 -05:00
Beverly Nguyen
35b38f838c fixed testing for dashboard.py 2024-01-26 11:16:45 -08:00
Beverly Nguyen
45ffa70c3c fixing mocker patch for jobs 2024-01-26 09:43:41 -08:00
Jonathan Bobel
bd33fe4750 Merge branch 'main' of https://github.com/GSA/notifications-admin into 449-one-pager-content-updates 2024-01-26 10:20:37 -05:00
Jonathan Bobel
768f1986e8 449 - Content updates
- Get started
2024-01-26 10:10:49 -05:00
Carlo Costino
e48cb94ccb Merge pull request #1143 from GSA/963-message-parts-content-updates
963 message parts content updates
2024-01-26 09:40:17 -05:00
Carlo Costino
0fc14131b1 Merge pull request #1147 from GSA/dependabot/pip/newrelic-9.6.0
Bump newrelic from 9.5.0 to 9.6.0
2024-01-26 09:28:38 -05:00
Beverly Nguyen
6e05fd5147 removed comments 2024-01-25 15:39:32 -08:00
dependabot[bot]
c79c824b24 Bump newrelic from 9.5.0 to 9.6.0
Bumps [newrelic](https://github.com/newrelic/newrelic-python-agent) from 9.5.0 to 9.6.0.
- [Release notes](https://github.com/newrelic/newrelic-python-agent/releases)
- [Commits](https://github.com/newrelic/newrelic-python-agent/compare/v9.5.0...v9.6.0)

---
updated-dependencies:
- dependency-name: newrelic
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-25 23:32:58 +00:00
Beverly Nguyen
524a1e4687 updated download links and table html 2024-01-25 15:32:44 -08:00
Carlo Costino
9513069b42 Merge pull request #1146 from GSA/tdlowden-patch-1
Create manual_qa_template.yml
2024-01-25 16:16:49 -05:00
Tim Lowden
af8309a2ce Update manual_qa_template.yml 2024-01-25 16:07:58 -05:00
Tim Lowden
37086cb03b Update manual_qa_template.yml 2024-01-25 15:57:29 -05:00
Tim Lowden
3ac9d44b2a Update manual_qa_template.yml 2024-01-25 15:56:28 -05:00
Tim Lowden
d5210427f0 Create manual_qa_template.yml
Just starting this
2024-01-25 15:52:59 -05:00
Jonathan Bobel
da1e2a2700 Merge branch 'main' of https://github.com/GSA/notifications-admin into 963-message-parts-content-updates 2024-01-25 14:55:22 -05:00
Jonathan Bobel
d9875ef287 Content updates for Pricing, Trial Mode, and various areas of changing "message parts" 2024-01-25 14:55:17 -05:00
Steven Reilly
cdd262365f Merge pull request #1141 from GSA/update-utils-0-2-7
Update notifications-utils to 0.2.7
2024-01-24 16:05:48 -05:00
Carlo Costino
195c68037b Merge pull request #1140 from GSA/notify-admin-1090
change download reports to 12 hour time (notify-admin-1090)
2024-01-24 15:53:22 -05:00
Carlo Costino
d5daab67cf Fixes tests to match recent notifications-utils updates
Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2024-01-24 15:35:09 -05:00
Jonathan Bobel
782ec1c5eb 963 - content updates 2024-01-24 15:25:19 -05:00
Kenneth Kehl
fd8981d5cd add timezone to file name 2024-01-24 11:59:31 -08:00
Carlo Costino
1709d3279b Update notifications-utils to 0.2.7
This changeset updates the notifications-utils library to 0.2.7.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2024-01-24 14:55:55 -05:00
Kenneth Kehl
2126ba8038 fix name of download file 2024-01-24 11:54:25 -08:00
Beverly Nguyen
c9ed1ab59d change time column 2024-01-24 11:15:35 -08:00
Kenneth Kehl
a38518777c change download reports to 12 hour time 2024-01-24 11:03:19 -08:00
Carlo Costino
3379259e14 Merge pull request #1136 from GSA/dependabot/pip/python-dotenv-1.0.1
Bump python-dotenv from 1.0.0 to 1.0.1
2024-01-24 13:55:52 -05:00
dependabot[bot]
ede82d76d6 Bump python-dotenv from 1.0.0 to 1.0.1
Bumps [python-dotenv](https://github.com/theskumar/python-dotenv) from 1.0.0 to 1.0.1.
- [Release notes](https://github.com/theskumar/python-dotenv/releases)
- [Changelog](https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md)
- [Commits](https://github.com/theskumar/python-dotenv/compare/v1.0.0...v1.0.1)

---
updated-dependencies:
- dependency-name: python-dotenv
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-24 18:34:27 +00:00
Carlo Costino
5970dd8055 Merge pull request #1135 from GSA/dependabot/pip/bandit-1.7.7
Bump bandit from 1.7.6 to 1.7.7
2024-01-24 13:31:53 -05:00
Beverly Nguyen
65bccb3f95 changed time column 2024-01-23 16:18:43 -08:00
dependabot[bot]
75a4e1ae6d Bump bandit from 1.7.6 to 1.7.7
Bumps [bandit](https://github.com/PyCQA/bandit) from 1.7.6 to 1.7.7.
- [Release notes](https://github.com/PyCQA/bandit/releases)
- [Commits](https://github.com/PyCQA/bandit/compare/1.7.6...1.7.7)

---
updated-dependencies:
- dependency-name: bandit
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-23 23:36:48 +00:00
Beverly Nguyen
8baf9682a1 update table css and format 2024-01-23 15:24:57 -08:00
Steven Reilly
6b00cf1270 Merge pull request #1133 from GSA/set-no-proxy-exclusion
Add no_proxy environment variable
2024-01-22 16:27:45 -05:00
Carlo Costino
490174ab71 Add no_proxy environment variable
This changeset adds the no_proxy environment variable to be set at the time our app runs to exclude the internal apps running within our platform that are handled by Cloud Foundry network policies instead.  Without this in place, the egress proxy will not allow our deployed apps to talk with one another.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2024-01-22 15:36:00 -05:00
Carlo Costino
f15643c04d Merge pull request #1130 from GSA/adjust-egress-proxy-config
Add missing egress proxy configuration
2024-01-19 17:19:09 -05:00
Carlo Costino
d253b601a2 Add missing egress proxy configuration
This changeset adds some egress proxy configuration that is currently missing from the application initialization.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2024-01-19 17:14:11 -05:00
Beverly Nguyen
9b0dc3dc3c updated table titles and fields 2024-01-19 11:44:25 -08:00
Carlo Costino
443c7d9992 Merge pull request #1106 from GSA/tdlowden-patch-1
Update sprint-goals.md
2024-01-18 16:27:44 -05:00
Tim Lowden
33433a3822 Update sprint-goals.md 2024-01-18 12:45:03 -05:00
Tim Lowden
c7a393e620 Update sprint-goals.md 2024-01-18 12:43:55 -05:00
Tim Lowden
ba3a229d60 Update sprint-goals.md 2024-01-18 12:42:33 -05:00
Jonathan Bobel
17b1352f01 Merge pull request #1121 from GSA/tdlowden-patch-3
Update bug_template.yml
2024-01-18 11:38:32 -05:00
Tim Lowden
a1440ae36f Update bug_template.yml 2024-01-18 11:33:20 -05:00
Tim Lowden
d49fb8867e Update bug_template.yml 2024-01-18 11:30:43 -05:00
Carlo Costino
98b11dc3c4 Merge pull request #1103 from GSA/818-allow-single-messages-to-be-scheduled
Allow single messages to be scheduled #818
2024-01-18 11:07:00 -05:00
Carlo Costino
6fe29a2bdd Merge pull request #1101 from GSA/1089-change-team-member-card-width
1089 change team member card width
2024-01-18 10:30:00 -05:00
Tim Lowden
b463d420ef Merge pull request #1119 from GSA/fixing-the-bug-template
Replicated the User Story Template in a few ways to see if that fixes…
2024-01-18 10:28:04 -05:00
Carlo Costino
2a9f60c32e Merge pull request #1100 from GSA/1022-sentence-about-5-minutes-til-message-receipts-doesnt-appear
Sentence about 5 minutes til message receipts doesn't appear #1022
2024-01-18 10:19:14 -05:00
Jonathan Bobel
201d4c75d4 Replicated the User Story Template in a few ways to see if that fixes things 2024-01-18 10:11:27 -05:00
Tim Lowden
862be13d89 Merge pull request #1117 from GSA/tdlowden-patch-2
Create BUG-TEMPLATE.yml
2024-01-18 09:56:56 -05:00
Tim Lowden
df1ca9499e Update BUG-TEMPLATE.yml 2024-01-18 09:40:26 -05:00
Tim Lowden
6d190885e1 Update BUG-TEMPLATE.yml 2024-01-18 09:38:03 -05:00
Tim Lowden
aa02993a57 Create BUG-TEMPLATE.yml 2024-01-18 08:27:27 -05:00
Carlo Costino
1bbf714b18 Merge pull request #1116 from GSA/dependabot/pip/beautifulsoup4-4.12.3
Bump beautifulsoup4 from 4.12.2 to 4.12.3
2024-01-17 22:41:07 -05:00
dependabot[bot]
e5004df43b Bump beautifulsoup4 from 4.12.2 to 4.12.3
Bumps [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) from 4.12.2 to 4.12.3.

---
updated-dependencies:
- dependency-name: beautifulsoup4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-18 03:12:22 +00:00
Carlo Costino
03177cbb4e Merge pull request #1115 from GSA/dependabot/pip/flake8-bugbear-24.1.17
Bump flake8-bugbear from 23.12.2 to 24.1.17
2024-01-17 22:09:24 -05:00
dependabot[bot]
e242d33b84 Bump flake8-bugbear from 23.12.2 to 24.1.17
Bumps [flake8-bugbear](https://github.com/PyCQA/flake8-bugbear) from 23.12.2 to 24.1.17.
- [Release notes](https://github.com/PyCQA/flake8-bugbear/releases)
- [Commits](https://github.com/PyCQA/flake8-bugbear/compare/23.12.2...24.1.17)

---
updated-dependencies:
- dependency-name: flake8-bugbear
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-17 23:43:06 +00:00
Carlo Costino
1676997c08 Merge pull request #1107 from GSA/notify-admin-1049
fix PEM string
2024-01-17 11:01:34 -05:00
Kenneth Kehl
461263889a merge from main 2024-01-17 07:52:56 -08:00
Kenneth Kehl
4043e0dbaf fix PEM string 2024-01-17 07:46:27 -08:00
Tim Lowden
adda14342b Update sprint-goals.md 2024-01-17 10:07:55 -05:00
Beverly Nguyen
d3c3183573 added choose time form 2024-01-16 15:37:56 -08:00
Beverly Nguyen
25305d0706 update testing 2024-01-16 12:01:39 -08:00
Beverly Nguyen
0e110201d6 update testing 2024-01-16 11:28:58 -08:00
Carlo Costino
22ff17b878 Merge pull request #1096 from GSA/dependabot/pip/newrelic-9.5.0
Bump newrelic from 9.4.0 to 9.5.0
2024-01-16 12:21:52 -05:00
Beverly Nguyen
11a85d688a added notifications status 2024-01-15 14:17:18 -08:00
dependabot[bot]
2959e9bb56 Bump newrelic from 9.4.0 to 9.5.0
Bumps [newrelic](https://github.com/newrelic/newrelic-python-agent) from 9.4.0 to 9.5.0.
- [Release notes](https://github.com/newrelic/newrelic-python-agent/releases)
- [Commits](https://github.com/newrelic/newrelic-python-agent/compare/v9.4.0...v9.5.0)

---
updated-dependencies:
- dependency-name: newrelic
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-12 23:14:38 +00:00
Carlo Costino
55e43edc6d Merge pull request #1092 from GSA/1028-move-signedouthtml-to-another-template
Move signedout.html to another template#1028
2024-01-12 18:01:02 -05:00
Carlo Costino
4345270753 Merge pull request #1057 from GSA/855-make-individual-message-send-reports-less-ephemeral
Make individual message send reports less ephemeral#855
2024-01-12 17:50:43 -05:00
Beverly Nguyen
9ab6bcbb37 update dashboard test 2024-01-12 13:58:56 -08:00
Beverly Nguyen
ddd80fb927 Merge remote-tracking branch 'origin/main' into 855-make-individual-message-send-reports-less-ephemeral 2024-01-12 13:35:58 -08:00
Beverly Nguyen
321ddbd27a removed notification conditional 2024-01-12 13:32:10 -08:00
Beverly Nguyen
8677d3d848 Merge remote-tracking branch 'origin/main' into 1028-move-signedouthtml-to-another-template 2024-01-12 13:03:26 -08:00
Carlo Costino
00cb6e1bd4 Merge pull request #1091 from GSA/dependabot/pip/pip-audit-2.7.0
Bump pip-audit from 2.6.3 to 2.7.0
2024-01-12 13:30:24 -05:00
dependabot[bot]
e500ec567e Bump pip-audit from 2.6.3 to 2.7.0
Bumps [pip-audit](https://github.com/pypa/pip-audit) from 2.6.3 to 2.7.0.
- [Release notes](https://github.com/pypa/pip-audit/releases)
- [Changelog](https://github.com/pypa/pip-audit/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pypa/pip-audit/compare/v2.6.3...v2.7.0)

---
updated-dependencies:
- dependency-name: pip-audit
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-12 17:38:22 +00:00
Carlo Costino
8b90f74f58 Merge pull request #1094 from GSA/update-utils-0-2-6
Update notification-utils to 0.2.6
2024-01-12 12:34:45 -05:00
Carlo Costino
e5c2bd9ef2 Update notification-utils to 0.2.6
This changeset updates notification-utils to 0.2.6 for dependency updates.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2024-01-12 12:24:54 -05:00
Beverly Nguyen
0b8ad62c79 added main-content 2024-01-11 15:25:58 -08:00
Jonathan Bobel
82863b02ce Merge branch 'main' of https://github.com/GSA/notifications-admin into 1089-change-team-member-card-width 2024-01-11 16:00:04 -05:00
Jonathan Bobel
27c74ca773 1089- styling update to Team Member cards 2024-01-11 15:56:17 -05:00
Carlo Costino
e7cafb01b6 Merge pull request #1088 from GSA/1086-user-story-template
1086 user story template
2024-01-11 15:54:13 -05:00
Tim Lowden
2c1c87b9b7 Merge pull request #1087 from GSA/em-herrick-patch-2
FCC RND Best Practices
2024-01-11 14:00:56 -05:00
Jonathan Bobel
dd02ae587b Adding a config 2024-01-11 13:51:06 -05:00
Emily Herrick
6034c7e54e Add files via upload 2024-01-11 13:31:37 -05:00
Jonathan Bobel
a2ca10a6c5 About wasn't a permitted key 2024-01-11 12:52:35 -05:00
Jonathan Bobel
c57e4b9355 Adding a template to create a User Story issue 2024-01-11 12:43:49 -05:00
Carlo Costino
0e20d60a50 Merge pull request #1084 from GSA/dependabot/pip/jinja2-3.1.3
Bump jinja2 from 3.1.2 to 3.1.3
2024-01-11 09:47:24 -05:00
dependabot[bot]
fa0d1e20d1 Bump jinja2 from 3.1.2 to 3.1.3
Bumps [jinja2](https://github.com/pallets/jinja) from 3.1.2 to 3.1.3.
- [Release notes](https://github.com/pallets/jinja/releases)
- [Changelog](https://github.com/pallets/jinja/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/jinja/compare/3.1.2...3.1.3)

---
updated-dependencies:
- dependency-name: jinja2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-11 14:21:14 +00:00
Carlo Costino
f0148de751 Merge pull request #1083 from GSA/dependabot/pip/markdown-3.5.2
Bump markdown from 3.5.1 to 3.5.2
2024-01-11 09:14:21 -05:00
dependabot[bot]
f0e667b3b5 Bump markdown from 3.5.1 to 3.5.2
Bumps [markdown](https://github.com/Python-Markdown/markdown) from 3.5.1 to 3.5.2.
- [Release notes](https://github.com/Python-Markdown/markdown/releases)
- [Changelog](https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md)
- [Commits](https://github.com/Python-Markdown/markdown/compare/3.5.1...3.5.2)

---
updated-dependencies:
- dependency-name: markdown
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-11 00:06:38 +00:00
Carlo Costino
57bcc2568c Merge pull request #1081 from GSA/update-utils-0-2-5
Update utils to 0.2.5
2024-01-10 13:28:08 -05:00
Carlo Costino
8d6e455d18 Update utils to 0.2.5
This changeset updates the notification-utils library to 0.2.5.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2024-01-10 13:23:19 -05:00
Carlo Costino
fee1cdf600 Merge pull request #1078 from GSA/1077-fix-failure-threshold
1077 - fix failure threshold so it always shows with any failure %
2024-01-10 13:13:31 -05:00
Carlo Costino
1ac1e83da5 Merge pull request #1080 from GSA/dependabot/pip/gitpython-3.1.41
Bump gitpython from 3.1.40 to 3.1.41
2024-01-10 12:57:45 -05:00
dependabot[bot]
12b8b1ce9c Bump gitpython from 3.1.40 to 3.1.41
Bumps [gitpython](https://github.com/gitpython-developers/GitPython) from 3.1.40 to 3.1.41.
- [Release notes](https://github.com/gitpython-developers/GitPython/releases)
- [Changelog](https://github.com/gitpython-developers/GitPython/blob/main/CHANGES)
- [Commits](https://github.com/gitpython-developers/GitPython/compare/3.1.40...3.1.41)

---
updated-dependencies:
- dependency-name: gitpython
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-10 17:14:29 +00:00
Carlo Costino
f1f1357d0d Merge pull request #1079 from GSA/dependabot/pip/wtforms-3.1.2
Bump wtforms from 3.1.1 to 3.1.2
2024-01-10 10:35:02 -05:00
Beverly Nguyen
34ea3812d6 added new test table to dashboard 2024-01-09 15:48:16 -08:00
dependabot[bot]
4d06c9d389 Bump wtforms from 3.1.1 to 3.1.2
Bumps [wtforms](https://github.com/wtforms/wtforms) from 3.1.1 to 3.1.2.
- [Release notes](https://github.com/wtforms/wtforms/releases)
- [Changelog](https://github.com/wtforms/wtforms/blob/master/CHANGES.rst)
- [Commits](https://github.com/wtforms/wtforms/compare/3.1.1...3.1.2)

---
updated-dependencies:
- dependency-name: wtforms
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-09 23:11:19 +00:00
Jonathan Bobel
80744cd7c9 1077 - fix failure threshold so it always shows with any failure % 2024-01-09 16:19:17 -05:00
Steven Reilly
a4e6b5e910 Merge pull request #1073 from GSA/fix-beautifulsoup
Fix BeautifulSoup Dependency
2024-01-09 13:46:15 -05:00
Beverly Nguyen
afa9ef8082 update test 2024-01-09 10:38:29 -08:00
Beverly Nguyen
14196b1e06 update test 2024-01-09 10:19:03 -08:00
Beverly Nguyen
6df5542356 update test 2024-01-09 10:02:02 -08:00
Beverly Nguyen
9a0c7c40bd update test 2024-01-09 10:01:18 -08:00
Carlo Costino
493654652c This changeset shifts the BeautifulSoup dependency from a dev-only dependency to a proper project dependency.
Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2024-01-09 12:03:04 -05:00
Carlo Costino
97cb71fc8f Merge pull request #1063 from GSA/1043-move-account-info-into-utility-nav
1043 move account info into utility nav
2024-01-09 11:40:29 -05:00
Steven Reilly
43c81fe67b Merge pull request #1052 from GSA/976-convert-start-pages-to-generate-markdown
976 convert start pages to generate markdown
2024-01-09 11:27:58 -05:00
Jonathan Bobel
9b10b30784 Merge branch 'main' of https://github.com/GSA/notifications-admin into 1043-move-account-info-into-utility-nav
# Conflicts:
#	app/templates/views/manage-users.html
2024-01-09 11:03:23 -05:00
Anastasia Gradova
624ba5f7f7 Merge branch 'main' into 976-convert-start-pages-to-generate-markdown 2024-01-09 08:42:48 -07:00
Carlo Costino
d0f4be8ad4 Merge pull request #1062 from GSA/tdlowden-patch-1
Update sprint-goals.md
2024-01-09 10:30:38 -05:00
Carlo Costino
e6ca3dda54 Merge pull request #1071 from GSA/dependabot/pip/newrelic-9.4.0
Bump newrelic from 9.3.0 to 9.4.0
2024-01-09 10:18:40 -05:00
dependabot[bot]
8b9a892e76 Bump newrelic from 9.3.0 to 9.4.0
Bumps [newrelic](https://github.com/newrelic/newrelic-python-agent) from 9.3.0 to 9.4.0.
- [Release notes](https://github.com/newrelic/newrelic-python-agent/releases)
- [Commits](https://github.com/newrelic/newrelic-python-agent/compare/v9.3.0...v9.4.0)

---
updated-dependencies:
- dependency-name: newrelic
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-09 15:08:35 +00:00
Carlo Costino
48801f65d2 Merge pull request #1070 from GSA/dependabot/pip/pip-audit-2.6.3
Bump pip-audit from 2.6.2 to 2.6.3
2024-01-09 10:05:21 -05:00
dependabot[bot]
872afba186 Bump pip-audit from 2.6.2 to 2.6.3
Bumps [pip-audit](https://github.com/pypa/pip-audit) from 2.6.2 to 2.6.3.
- [Release notes](https://github.com/pypa/pip-audit/releases)
- [Changelog](https://github.com/pypa/pip-audit/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pypa/pip-audit/compare/v2.6.2...v2.6.3)

---
updated-dependencies:
- dependency-name: pip-audit
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-09 14:51:51 +00:00
Carlo Costino
753fad4d66 Merge pull request #1069 from GSA/dependabot/pip/moto-4.2.13
Bump moto from 4.2.12 to 4.2.13
2024-01-09 09:35:50 -05:00
Beverly Nguyen
b5051e2b7c fix style checks 2024-01-08 16:04:23 -08:00
Beverly Nguyen
653c7d8624 fix style checks 2024-01-08 15:33:24 -08:00
dependabot[bot]
c5c7dd5321 Bump moto from 4.2.12 to 4.2.13
Bumps [moto](https://github.com/getmoto/moto) from 4.2.12 to 4.2.13.
- [Release notes](https://github.com/getmoto/moto/releases)
- [Changelog](https://github.com/getmoto/moto/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getmoto/moto/compare/4.2.12...4.2.13)

---
updated-dependencies:
- dependency-name: moto
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-08 23:12:02 +00:00
Beverly Nguyen
ec1d9a49bf updated dashboard 2024-01-08 14:53:34 -08:00
Carlo Costino
106a443883 Merge pull request #1067 from GSA/notify-admin-1049
fix timezones
2024-01-08 14:11:55 -05:00
Kenneth Kehl
f43fd3e21f add missing timezones 2024-01-08 10:13:26 -08:00
Carlo Costino
d18d2438d6 Merge pull request #1034 from GSA/1031-update-team-member-area
1031 update team member area
2024-01-08 11:46:22 -05:00
Carlo Costino
b06183e285 Merge pull request #1066 from GSA/fix-egress-proxy
fix egress proxy for login.gov
2024-01-08 11:34:33 -05:00
Kenneth Kehl
38f5909079 fix format 2024-01-08 08:27:37 -08:00
Kenneth Kehl
07de703491 notify-admin-1049 2024-01-08 08:25:11 -08:00
Beverly Nguyen
751947c421 updated dashboard.py def 2024-01-05 12:45:21 -08:00
Jonathan Bobel
f14d7112a6 Merge branch 'main' of https://github.com/GSA/notifications-admin into 1043-move-account-info-into-utility-nav 2024-01-05 12:07:27 -05:00
Jonathan Bobel
5a243904b6 Updated the tests to include the Settings page 2024-01-05 12:07:20 -05:00
Anastasia Gradova
69aaf174d7 Merge branch 'main' into 976-convert-start-pages-to-generate-markdown 2024-01-05 09:11:49 -07:00
Beverly Nguyen
e7ce8814dd fixing imports alphabetized 2024-01-04 14:04:04 -08:00
Beverly Nguyen
80285a6546 fixing style checks 2024-01-04 13:56:35 -08:00
Beverly Nguyen
b653a3cbb1 fixing style checks 2024-01-04 13:48:10 -08:00
Beverly Nguyen
3ad5fb1d7c moved table to parent dashboard 2024-01-04 13:43:47 -08:00
Beverly Nguyen
aac23a754f moved table to parent dashboard 2024-01-04 13:40:36 -08:00
Jonathan Bobel
3a1d624d8f Missed a test 2024-01-04 15:43:43 -05:00
Jonathan Bobel
f1e678760b Updating tests, but need to add a new one to test the new secondary navivation 2024-01-04 15:23:01 -05:00
Carlo Costino
9a3dbb954d Merge pull request #1059 from GSA/dependabot/github_actions/dot-github/workflows/tj-actions/changed-files-41.0.0
Bump tj-actions/changed-files from 1.1.2 to 41.0.0 in /.github/workflows
2024-01-04 10:19:31 -05:00
Jonathan Bobel
7d6a07efd7 Test update 2024-01-04 10:02:31 -05:00
Anastasia Gradova
545fbbe43c isort update 2024-01-03 22:17:43 -07:00
Anastasia Gradova
d1b71838e1 style update 2024-01-03 22:13:04 -07:00
Anastasia Gradova
df4ee859e5 style update 2024-01-03 22:08:42 -07:00
Anastasia Gradova
7a1d9cf705 built new beautifulsoup function to apply
html tags to markdown file once processed
with test cases.
2024-01-03 22:01:07 -07:00
Carlo Costino
f9044589e8 Merge pull request #1056 from GSA/dependabot/pip/notifications-python-client-8.2.0
Bump notifications-python-client from 8.1.0 to 8.2.0
2024-01-03 17:27:20 -05:00
Jonathan Bobel
0b8fac944b Merge branch 'main' of https://github.com/GSA/notifications-admin into 1043-move-account-info-into-utility-nav 2024-01-03 13:51:11 -05:00
Anastasia Gradova
a884bef77b Update app/content/get-started.md
Co-authored-by: Steven Reilly <stvnrlly@users.noreply.github.com>
2024-01-03 10:08:14 -07:00
Tim Lowden
2ad234e338 Update sprint-goals.md 2024-01-03 10:08:04 -05:00
Steven Reilly
54250c2029 Merge pull request #1040 from GSA/tdlowden-sprint-goals
Update sprint-goals.md
2024-01-03 09:26:01 -05:00
Beverly Nguyen
a920528902 moved table to dashboard 2024-01-03 00:26:49 -08:00
Jonathan Bobel
5fcd11aaa3 Merge branch 'main' of https://github.com/GSA/notifications-admin into 1043-move-account-info-into-utility-nav 2024-01-02 14:09:12 -05:00
Jonathan Bobel
6764a16f3e Merge, and adjusting a test 2024-01-02 14:06:11 -05:00
dependabot[bot]
0b22c53ea3 Bump tj-actions/changed-files from 1.1.2 to 41.0.0 in /.github/workflows
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 1.1.2 to 41.0.0.
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](https://github.com/tj-actions/changed-files/compare/v1.1.2...v41.0.0)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-02 16:42:23 +00:00
Steven Reilly
0e18db0302 Merge pull request #1054 from GSA/update-switchlive-allowance
Fix sms allowance switching to live
2024-01-02 11:27:01 -05:00
Steven Reilly
4d1261a449 Merge pull request #1055 from GSA/dependabot/pip/coverage-7.4.0
Bump coverage from 7.3.4 to 7.4.0
2024-01-02 11:17:35 -05:00
dependabot[bot]
25806a3440 Bump notifications-python-client from 8.1.0 to 8.2.0
Bumps [notifications-python-client](https://github.com/alphagov/notifications-python-client) from 8.1.0 to 8.2.0.
- [Changelog](https://github.com/alphagov/notifications-python-client/blob/main/CHANGELOG.md)
- [Commits](https://github.com/alphagov/notifications-python-client/compare/8.1.0...8.2.0)

---
updated-dependencies:
- dependency-name: notifications-python-client
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-02 16:13:07 +00:00
Steven Reilly
f949b439b7 Merge pull request #1058 from GSA/dependabot/pip/pytest-7.4.4
Bump pytest from 7.4.3 to 7.4.4
2024-01-02 11:11:14 -05:00
dependabot[bot]
766933329e Bump coverage from 7.3.4 to 7.4.0
Bumps [coverage](https://github.com/nedbat/coveragepy) from 7.3.4 to 7.4.0.
- [Release notes](https://github.com/nedbat/coveragepy/releases)
- [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst)
- [Commits](https://github.com/nedbat/coveragepy/compare/7.3.4...7.4.0)

---
updated-dependencies:
- dependency-name: coverage
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-02 16:04:50 +00:00
dependabot[bot]
69d5c8258b Bump pytest from 7.4.3 to 7.4.4
Bumps [pytest](https://github.com/pytest-dev/pytest) from 7.4.3 to 7.4.4.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/7.4.3...7.4.4)

---
updated-dependencies:
- dependency-name: pytest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-02 15:51:04 +00:00
Steven Reilly
888efe8c12 Merge pull request #1053 from GSA/dependabot/pip/black-23.12.1
Bump black from 23.12.0 to 23.12.1
2024-01-02 10:49:10 -05:00
Jonathan Bobel
5db365cb45 Merge branch 'main' of https://github.com/GSA/notifications-admin into 1043-move-account-info-into-utility-nav 2024-01-01 10:35:05 -05:00
Jonathan Bobel
aa8529b5bb Quick commit before pulling latest 2024-01-01 10:34:59 -05:00
Beverly Nguyen
4a667c01ed batched job table added 2023-12-29 15:47:10 -08:00
Andrew Shumway
7f7f553041 Fix sms allowance switching to live 2023-12-27 14:14:22 -07:00
Anastasia Gradova
7af656e9f9 registered convert_markdown formatter in __init__. 2023-12-27 12:59:45 -07:00
Anastasia Gradova
051d7767d9 isort format issue 2023-12-26 22:19:59 -07:00
Anastasia Gradova
f72e4e618a Style updates 2023-12-26 22:14:22 -07:00
Anastasia Gradova
c06d752f65 Style correction on conftest and test_formatters 2023-12-26 22:10:50 -07:00
Anastasia Gradova
a5ec03302e Built py.test cases for convert_markdown_template 2023-12-26 22:04:06 -07:00
dependabot[bot]
1d140a0d0b Bump black from 23.12.0 to 23.12.1
Bumps [black](https://github.com/psf/black) from 23.12.0 to 23.12.1.
- [Release notes](https://github.com/psf/black/releases)
- [Changelog](https://github.com/psf/black/blob/main/CHANGES.md)
- [Commits](https://github.com/psf/black/compare/23.12.0...23.12.1)

---
updated-dependencies:
- dependency-name: black
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-22 23:35:33 +00:00
Anastasia Gradova
023f57cf1d Merge branch 'main' into 976-convert-start-pages-to-generate-markdown 2023-12-22 11:10:17 -07:00
Anastasia Gradova
9d7d7e66b5 adding build dependency 2023-12-22 10:48:39 -07:00
Anastasia Gradova
5d91fb6838 fixed isort issue 2023-12-22 10:21:42 -07:00
Anastasia Gradova
ed6471be61 corrected build errors 2023-12-22 10:13:18 -07:00
Anastasia Gradova
0989246334 Moved convert_markdown_template to formatters 2023-12-22 10:03:43 -07:00
Anastasia Gradova
86af8fcaa4 Updated get-started to render from markdown 2023-12-21 20:43:52 -07:00
Carlo Costino
ba0d8c0b83 Merge pull request #1047 from GSA/967-the-error-message-for-unsupported-characters-is-very-hard-to-find
The error message for unsupported characters is very hard to find#967
2023-12-21 17:52:20 -05:00
Carlo Costino
187ff4210c Merge pull request #1032 from GSA/notify-api-769b
convert one-off sends to jobs
2023-12-21 17:39:20 -05:00
Carlo Costino
6b12f740b2 Merge pull request #977 from GSA/ADMIN-97_Resend_Expired_Invites
Admin 97 resend expired invites
2023-12-21 16:23:31 -05:00
Tim Lowden
dc3d5c4524 Update sprint-goals.md 2023-12-21 14:53:22 -05:00
Tim Lowden
904a1d21ca Update sprint-goals.md 2023-12-21 13:08:11 -05:00
Tim Lowden
007b33e313 Update sprint-goals.md 2023-12-21 13:07:41 -05:00
Cliff Hill
1a2e5a5111 Fixed tests.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2023-12-21 10:58:32 -05:00
Carlo Costino
3565f77d82 Merge pull request #1048 from GSA/dependabot/pip/coverage-7.3.4
Bump coverage from 7.3.3 to 7.3.4
2023-12-21 08:15:32 -05:00
dependabot[bot]
5c0df00182 Bump coverage from 7.3.3 to 7.3.4
Bumps [coverage](https://github.com/nedbat/coveragepy) from 7.3.3 to 7.3.4.
- [Release notes](https://github.com/nedbat/coveragepy/releases)
- [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst)
- [Commits](https://github.com/nedbat/coveragepy/compare/7.3.3...7.3.4)

---
updated-dependencies:
- dependency-name: coverage
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-20 23:42:28 +00:00
Beverly Nguyen
96241a8a3b added error alert to edit textbox page 2023-12-20 14:53:27 -08:00
Carlo Costino
f972c70976 Merge pull request #1042 from GSA/stvnrlly/unsupported
Delete unused support stuff & unused go-live stuff
2023-12-20 15:59:32 -05:00
Cliff Hill
c6072d6d3b Fixing tests.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2023-12-20 14:53:02 -05:00
Cliff Hill
09e011fc9f black, isort, flake8
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2023-12-20 14:53:02 -05:00
Cliff Hill
0e7b371f90 Got tests in place.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2023-12-20 14:53:02 -05:00
Cliff Hill
6f43be69ba Wired up admin to send resend invite request to api.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2023-12-20 14:53:02 -05:00
Cliff Hill
f308b85715 Cleaning up string formatting in invite_api_client.py.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2023-12-20 14:53:02 -05:00
Cliff Hill
4be4eed09d Working on manage_users.py
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2023-12-20 14:53:01 -05:00
Cliff Hill
d42e3f3885 Adding resend-invites to frontend.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2023-12-20 14:53:01 -05:00
Cliff Hill
8390dae0a0 Adding status expired to options in template.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2023-12-20 14:53:01 -05:00
Cliff Hill
d96a05f58a Adding .node-version to .gitignore.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2023-12-20 14:53:01 -05:00
Kenneth Kehl
9fbaca8f9f fix flake 8 2023-12-20 10:33:11 -08:00
Kenneth Kehl
5a173330ca merge from main 2023-12-20 10:26:50 -08:00
Kenneth Kehl
14f70620f9 code review feedback 2023-12-20 10:26:14 -08:00
Steven Reilly
b17eb5a216 Merge pull request #1046 from GSA/stvnrlly/undercooked
Remove another bit of cookie JS
2023-12-20 12:34:21 -05:00
stvnrlly
b23e0e2b41 remove vestigial cookie js 2023-12-20 12:27:45 -05:00
stvnrlly
06e3a8b991 put back a go_live_at 2023-12-20 11:27:12 -05:00
stvnrlly
378717571b remove unused support forms/pages & unused go-live form 2023-12-20 10:44:38 -05:00
Tim Lowden
068ffb7f3a Update sprint-goals.md 2023-12-20 09:09:04 -05:00
Carlo Costino
7a7cacbf20 Merge pull request #1037 from GSA/Don't-show-empty-checkbox-if-there-are-no-templates#1010
Don't show empty checkbox if there are no templates#1010
2023-12-20 00:07:10 -05:00
Carlo Costino
09701e4207 Merge pull request #1039 from GSA/dependabot/pip/freezegun-1.4.0
Bump freezegun from 1.3.1 to 1.4.0
2023-12-19 23:04:26 -05:00
dependabot[bot]
cc56a6661a Bump freezegun from 1.3.1 to 1.4.0
Bumps [freezegun](https://github.com/spulec/freezegun) from 1.3.1 to 1.4.0.
- [Release notes](https://github.com/spulec/freezegun/releases)
- [Changelog](https://github.com/spulec/freezegun/blob/master/CHANGELOG)
- [Commits](https://github.com/spulec/freezegun/compare/1.3.1...1.4.0)

---
updated-dependencies:
- dependency-name: freezegun
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-20 03:57:25 +00:00
Carlo Costino
0a24c1d8a3 Merge pull request #1038 from GSA/dependabot/pip/pip-audit-2.6.2
Bump pip-audit from 2.6.1 to 2.6.2
2023-12-19 22:55:30 -05:00
dependabot[bot]
3081599136 Bump pip-audit from 2.6.1 to 2.6.2
Bumps [pip-audit](https://github.com/pypa/pip-audit) from 2.6.1 to 2.6.2.
- [Release notes](https://github.com/pypa/pip-audit/releases)
- [Changelog](https://github.com/pypa/pip-audit/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pypa/pip-audit/compare/v2.6.1...v2.6.2)

---
updated-dependencies:
- dependency-name: pip-audit
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-20 03:50:25 +00:00
Carlo Costino
e12fcf2d8e Merge pull request #1033 from GSA/dependabot/pip/moto-4.2.12
Bump moto from 4.2.11 to 4.2.12
2023-12-19 22:45:30 -05:00
Carlo Costino
4db5bf2cfa Merge pull request #1029 from GSA/stvnrlly/remove-component
Remove components to streamline templates
2023-12-19 22:44:36 -05:00
Beverly Nguyen
c96ffc02bc updated css to display none 2023-12-19 10:57:36 -08:00
Jonathan Bobel
2cf232f757 Small style update 2023-12-19 11:35:44 -05:00
Jonathan Bobel
0eb00bb613 Adjusted responsive styles 2023-12-19 11:32:19 -05:00
Kenneth Kehl
9855856aba fix flake8 2023-12-19 08:08:02 -08:00
stvnrlly
17d9de0f2d remove show_more component 2023-12-18 21:59:24 -05:00
stvnrlly
09d11c0308 remove unused textarea component 2023-12-18 21:48:58 -05:00
dependabot[bot]
b0ef783f0a Bump moto from 4.2.11 to 4.2.12
Bumps [moto](https://github.com/getmoto/moto) from 4.2.11 to 4.2.12.
- [Release notes](https://github.com/getmoto/moto/releases)
- [Changelog](https://github.com/getmoto/moto/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getmoto/moto/compare/4.2.11...4.2.12)

---
updated-dependencies:
- dependency-name: moto
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-18 23:52:00 +00:00
stvnrlly
d3783e70eb delete deleted files 2023-12-18 16:43:05 -05:00
stvnrlly
73b367f4cf delete cookie stuff to even out js converage 2023-12-18 16:30:59 -05:00
stvnrlly
f600dd95d6 remove email branding 2023-12-18 16:10:12 -05:00
stvnrlly
1b55e1f09a try removing some ajax_block 2023-12-18 16:09:54 -05:00
stvnrlly
0f08b9bdbd missing </div> 2023-12-18 16:09:23 -05:00
Kenneth Kehl
cbc69191be fix s3upload mock 2023-12-18 12:58:36 -08:00
Kenneth Kehl
62ae2e96b7 mock s3upload 2023-12-18 12:43:13 -08:00
Jonathan Bobel
927f810dde 1031 - Creating cards of the Team Member area so they're easier to scroll through if there are a lot of Team Members 2023-12-18 15:38:36 -05:00
Kenneth Kehl
bab0b53ffb rework how we display error message for disallowed phone numbers 2023-12-18 12:31:40 -08:00
stvnrlly
6926be6208 small fixes to get things in correct places 2023-12-18 12:32:14 -05:00
stvnrlly
23d3ae6951 remove another curly bracket 2023-12-18 09:04:08 -05:00
stvnrlly
8c27ba84ad remove extra curly bracket 2023-12-17 23:24:20 -05:00
stvnrlly
506ef0484d remove alert component 2023-12-17 22:17:49 -05:00
stvnrlly
f538e70fe6 remove unused organization templates 2023-12-17 16:29:29 -05:00
stvnrlly
4d8044bf33 remove big_number from _totals.html and monthly.html 2023-12-17 16:27:26 -05:00
stvnrlly
845776326e remove big_number from _usage.html 2023-12-17 15:57:38 -05:00
stvnrlly
1b610030fe remove big_number from _jobs.html 2023-12-17 15:35:27 -05:00
stvnrlly
9ab4a0c457 remove big_number_with_status 2023-12-17 15:06:18 -05:00
stvnrlly
c30eb3a825 add back in conditionals 2023-12-16 22:17:38 -05:00
stvnrlly
0b31ca5ab3 remove big_number_simple 2023-12-16 22:11:26 -05:00
Carlo Costino
d3be471413 Merge pull request #1023 from GSA/notify-api-585
some debugging for login.gov
2023-12-15 17:26:21 -05:00
Kenneth Kehl
59faa8fd42 some debugging 2023-12-15 14:20:54 -08:00
Carlo Costino
514657e81c Merge pull request #1020 from GSA/notify-api-585
reformat private key (notify-api-585)
2023-12-15 15:22:06 -05:00
Kenneth Kehl
f54a79bdf9 reformat private key 2023-12-15 12:16:03 -08:00
Kenneth Kehl
cec2d7ea02 reformat private key 2023-12-15 12:07:54 -08:00
Kenneth Kehl
94b86f1afc fix tests 2023-12-15 10:29:42 -08:00
Kenneth Kehl
bc32c62dc6 flake8 2023-12-15 07:20:34 -08:00
Kenneth Kehl
72a2cf554a add debugging statement 2023-12-15 07:18:47 -08:00
Carlo Costino
a292a98788 Merge pull request #1019 from GSA/dependabot/pip/coverage-7.3.3
Bump coverage from 7.3.2 to 7.3.3
2023-12-15 09:22:32 -05:00
dependabot[bot]
08a0785a17 Bump coverage from 7.3.2 to 7.3.3
Bumps [coverage](https://github.com/nedbat/coveragepy) from 7.3.2 to 7.3.3.
- [Release notes](https://github.com/nedbat/coveragepy/releases)
- [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst)
- [Commits](https://github.com/nedbat/coveragepy/compare/7.3.2...7.3.3)

---
updated-dependencies:
- dependency-name: coverage
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-14 23:09:07 +00:00
Carlo Costino
8aed79f4e8 Merge pull request #1018 from GSA/notify-api-585
fix typo for integrate login.gov with staging
2023-12-14 17:03:00 -05:00
Kenneth Kehl
d1b5233095 fix typo for integrate login.gov with staging 2023-12-14 13:50:59 -08:00
Kenneth Kehl
32b4e6918f flake8 2023-12-14 13:24:34 -08:00
Carlo Costino
a2f753eb15 Merge pull request #1016 from GSA/tdlowden-quick-doc-add
Add Checklist Temporarily
2023-12-14 16:06:48 -05:00
Tim Lowden
bfebd5ce27 Rename Compelling_Texts_Checklist.pdf to compelling-texts-checklist.pdf
Changing for naming consistency
2023-12-14 15:59:03 -05:00
Tim Lowden
0c568a0519 Add Checklist Temporarily
Em requested we add this PDF in our Github docs until it can be hosted more permanently on performance.gov, so that she can point people to a link for an upcoming listserv email.
2023-12-14 15:57:30 -05:00
Carlo Costino
60f8492ce0 Merge pull request #1013 from GSA/Remove-UTC-help-text-from-templates-#1009
Remove UTC help text from templates#1009
2023-12-14 14:14:53 -05:00
Carlo Costino
931a48b3c6 Merge pull request #1015 from GSA/notify-api-585
another try with login.gov on staging
2023-12-14 13:11:16 -05:00
Kenneth Kehl
53dc0f0870 flake8 2023-12-14 10:05:26 -08:00
Kenneth Kehl
f7f1b7fb3e fix initial url import to signin.html 2023-12-14 09:17:32 -08:00
Kenneth Kehl
19b0f8a76d flake8 2023-12-14 09:11:32 -08:00
Carlo Costino
45df2d0fd6 Merge pull request #992 from GSA/notify-api-585
enable login.gov on staging
2023-12-14 10:48:34 -05:00
Kenneth Kehl
7ffd3f5031 code review feedback 2023-12-14 07:34:33 -08:00
Kenneth Kehl
279b1019d1 merge from main 2023-12-14 07:27:52 -08:00
Beverly Nguyen
50dc153cd8 removed UTC text 2023-12-13 23:12:02 -08:00
Beverly Nguyen
6edc20df55 removed UTC text 2023-12-13 15:17:04 -08:00
Carlo Costino
5aab7d264c Merge pull request #1012 from GSA/dependabot/pip/isort-5.13.2
Bump isort from 5.12.0 to 5.13.2
2023-12-13 17:43:03 -05:00
dependabot[bot]
4a5347ccef Bump isort from 5.12.0 to 5.13.2
Bumps [isort](https://github.com/pycqa/isort) from 5.12.0 to 5.13.2.
- [Release notes](https://github.com/pycqa/isort/releases)
- [Changelog](https://github.com/PyCQA/isort/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pycqa/isort/compare/5.12.0...5.13.2)

---
updated-dependencies:
- dependency-name: isort
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-13 22:37:58 +00:00
Carlo Costino
45363d6387 Merge pull request #1003 from GSA/dependabot/pip/black-23.12.0
Bump black from 23.11.0 to 23.12.0
2023-12-13 17:36:08 -05:00
dependabot[bot]
ee11a048d5 Bump black from 23.11.0 to 23.12.0
Bumps [black](https://github.com/psf/black) from 23.11.0 to 23.12.0.
- [Release notes](https://github.com/psf/black/releases)
- [Changelog](https://github.com/psf/black/blob/main/CHANGES.md)
- [Commits](https://github.com/psf/black/compare/23.11.0...23.12.0)

---
updated-dependencies:
- dependency-name: black
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-13 22:29:34 +00:00
Carlo Costino
666130dca0 Merge pull request #995 from GSA/dependabot/pip/pre-commit-3.6.0
Bump pre-commit from 3.5.0 to 3.6.0
2023-12-13 17:26:49 -05:00
dependabot[bot]
f4ba5b83c6 Bump pre-commit from 3.5.0 to 3.6.0
Bumps [pre-commit](https://github.com/pre-commit/pre-commit) from 3.5.0 to 3.6.0.
- [Release notes](https://github.com/pre-commit/pre-commit/releases)
- [Changelog](https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pre-commit/pre-commit/compare/v3.5.0...v3.6.0)

---
updated-dependencies:
- dependency-name: pre-commit
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-13 22:21:29 +00:00
Carlo Costino
d73b7dcbda Merge pull request #996 from GSA/dependabot/pip/bandit-1.7.6
Bump bandit from 1.7.5 to 1.7.6
2023-12-13 17:13:58 -05:00
Carlo Costino
efb5ca3a57 Merge pull request #1008 from GSA/dependabot/npm_and_yarn/postcss-and-uswds/compile-8.4.31
Bump postcss and @uswds/compile
2023-12-13 12:31:58 -05:00
dependabot[bot]
353383d323 Bump postcss and @uswds/compile
Bumps [postcss](https://github.com/postcss/postcss) to 8.4.31 and updates ancestor dependency [@uswds/compile](https://github.com/uswds/uswds-compile). These dependencies need to be updated together.


Updates `postcss` from 7.0.39 to 8.4.31
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/7.0.39...8.4.31)

Updates `@uswds/compile` from 1.0.0 to 1.1.0
- [Release notes](https://github.com/uswds/uswds-compile/releases)
- [Commits](https://github.com/uswds/uswds-compile/compare/v1.0.0...v1.1.0)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: indirect
- dependency-name: "@uswds/compile"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-13 17:11:55 +00:00
Steven Reilly
a3c5498d6e Merge pull request #1007 from GSA/update-utils-0-2-4
Update utils to 0.2.4 release
2023-12-13 12:11:00 -05:00
Carlo Costino
56b3cd9fd5 Fixed failing test given new character handling in utils update
Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-12-13 12:04:56 -05:00
Carlo Costino
0947c5d336 Update utils to 0.2.4 release
This changeset updates the utils library to our 0.2.4 release.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-12-13 11:52:59 -05:00
Carlo Costino
cc6efa3a3e Merge pull request #1001 from GSA/878-invite-team-member-button
878 - Moved the invite team member button to a more obvious place on the page
2023-12-13 10:28:37 -05:00
Steven Reilly
3cc613314e Merge pull request #1005 from GSA/1004-csp-add-ga
1004 - Adding GA to connect-src
2023-12-13 10:25:52 -05:00
Steven Reilly
1903b742d7 Merge pull request #983 from GSA/Hide-individual-template-display-if-it-is-in-a-folder#828
Hide individual template display if it is in a folder#828
2023-12-13 09:32:51 -05:00
Jonathan Bobel
6297091022 1004 - Adding GA to connect-src 2023-12-13 08:50:25 -05:00
Steven Reilly
42eca53f77 Merge pull request #1000 from GSA/Update-tagline-on-beta.notify.gov-#998
Update tagline on beta.notify.gov #998
2023-12-12 17:09:02 -05:00
Steven Reilly
9cd2486942 Merge pull request #982 from GSA/notify-871
Notify 871
2023-12-12 17:08:14 -05:00
Steven Reilly
6c4b1dc2b6 Merge pull request #1002 from GSA/966-add-GA-and-DAP-to-CSP
966 - Added 2 urls to the CSP configuration + adjusted the test
2023-12-12 17:05:23 -05:00
Steven Reilly
8493aaea5c Merge pull request #989 from GSA/925-log-response-ui-dashboard
Added 2 new macros for carrier and carrier message
2023-12-12 17:02:16 -05:00
Jonathan Bobel
13ed67b18b 966 - Added 2 urls to the CSP configuration + adjusted the test 2023-12-12 16:45:21 -05:00
Jonathan Bobel
d35b490ee7 Moved the button to a more obvious place on the page 2023-12-12 15:39:16 -05:00
Beverly Nguyen
fea6e0a0d0 update content text 2023-12-12 11:34:20 -08:00
Beverly Nguyen
218359411d updated test 2023-12-12 10:16:06 -08:00
Beverly Nguyen
13d3ffd914 fixed typo 2023-12-12 10:04:38 -08:00
Steven Reilly
ec14996525 Merge pull request #991 from GSA/fix-service-invite-user-permission
Fix permissions check for inviting users to a service
2023-12-12 13:02:46 -05:00
Beverly Nguyen
5fc0329c97 content changes 2023-12-12 10:02:26 -08:00
dependabot[bot]
b124457350 Bump bandit from 1.7.5 to 1.7.6
Bumps [bandit](https://github.com/PyCQA/bandit) from 1.7.5 to 1.7.6.
- [Release notes](https://github.com/PyCQA/bandit/releases)
- [Commits](https://github.com/PyCQA/bandit/compare/1.7.5...1.7.6)

---
updated-dependencies:
- dependency-name: bandit
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-11 23:55:18 +00:00
Carlo Costino
b0d2de703b Updated tests with correct permissions and added test for no permissions
h/t @stvnrlly for the suggestions!

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-12-11 16:59:04 -05:00
Anastasia Gradova
8fc79ce757 updated header for carrier response 2023-12-11 13:09:06 -05:00
Kenneth Kehl
70de61c695 fix whitespace 2023-12-11 07:50:45 -08:00
Carlo Costino
f7efceba44 Fix permissions check for inviting users to a service
This changeset reverts a change we had made previously where we accidentally locked down the ability for service admins to invite other users to their own service.  This removes the platform admin user check and reverts it back to the proper permissions check (including adjusting the tests to account for this).

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-12-11 10:47:21 -05:00
Beverly Nguyen
ea5dd442d1 fixed whitespace 2023-12-08 13:38:53 -08:00
Beverly Nguyen
47933a236e test updates 2023-12-08 13:30:04 -08:00
Anastasia Gradova
9e48282c52 Added 2 new macros for carrier and carrier message
adjusted formating in table and notifications html
2023-12-08 11:04:16 -07:00
Carlo Costino
190bc3f807 Merge pull request #984 from GSA/notify-admin-529
notify-admin-529 remove provider view
2023-12-08 10:54:05 -05:00
Carlo Costino
7a514001ba Merge pull request #979 from GSA/tdlowden-sprint-goals
Update sprint-goals.md
2023-12-08 09:33:26 -05:00
Tim Lowden
5abce6d7e4 Update sprint-goals.md 2023-12-07 15:50:44 -05:00
Carlo Costino
f11e29e7a2 Merge pull request #985 from GSA/dependabot/pip/newrelic-9.3.0
Bump newrelic from 9.2.0 to 9.3.0
2023-12-07 11:35:45 -05:00
dependabot[bot]
d2e360d0cd Bump newrelic from 9.2.0 to 9.3.0
Bumps [newrelic](https://github.com/newrelic/newrelic-python-agent) from 9.2.0 to 9.3.0.
- [Release notes](https://github.com/newrelic/newrelic-python-agent/releases)
- [Commits](https://github.com/newrelic/newrelic-python-agent/compare/v9.2.0...v9.3.0)

---
updated-dependencies:
- dependency-name: newrelic
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-06 23:37:42 +00:00
Kenneth Kehl
d218fd2178 notify-admin-529 remove provider view 2023-12-06 13:40:15 -08:00
Beverly Nguyen
cdd7a2cffd removed item.ancestors 2023-12-06 13:19:30 -08:00
Andrew Shumway
97a8c04928 Merge branch 'main' of https://github.com/GSA/notifications-admin into notify-871 2023-12-06 12:26:51 -07:00
Andrew Shumway
9c658bf020 Fix verbage on front end to better reflect functionality 2023-12-06 12:26:33 -07:00
Carlo Costino
414352ea69 Merge pull request #970 from GSA/dependabot/pip/flake8-bugbear-23.12.2
Bump flake8-bugbear from 23.11.28 to 23.12.2
2023-12-06 10:09:31 -05:00
Tim Lowden
5bb1eb8711 Update sprint-goals.md 2023-12-06 09:58:46 -05:00
dependabot[bot]
d284e6c13b Bump flake8-bugbear from 23.11.28 to 23.12.2
Bumps [flake8-bugbear](https://github.com/PyCQA/flake8-bugbear) from 23.11.28 to 23.12.2.
- [Release notes](https://github.com/PyCQA/flake8-bugbear/releases)
- [Commits](https://github.com/PyCQA/flake8-bugbear/compare/23.11.28...23.12.2)

---
updated-dependencies:
- dependency-name: flake8-bugbear
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-06 14:58:11 +00:00
Steven Reilly
928a49753c Merge pull request #978 from GSA/fix-register-test
Fix test_register.py flake8-bugbear warning
2023-12-06 09:52:07 -05:00
Carlo Costino
a7bf173457 Fix test_register.py flake8-bugbear warning
This changeset fixes a small syntax issue with one of the tests that is being picked up by the new version of flake8-bugbear.  It turns out there was an extraneous comma left in the test.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-12-06 09:46:44 -05:00
Carlo Costino
d226afcb3c Merge pull request #973 from GSA/notify-admin-931
Notify admin 931 add a preferred timezone widget
2023-12-05 16:47:57 -05:00
Kenneth Kehl
569be3cf74 remove debug stmt 2023-12-05 13:16:27 -08:00
Carlo Costino
b4578438d2 Merge pull request #971 from GSA/dependabot/pip/freezegun-1.3.1
Bump freezegun from 1.2.2 to 1.3.1
2023-12-05 15:27:30 -05:00
dependabot[bot]
a01c5b6016 Bump freezegun from 1.2.2 to 1.3.1
Bumps [freezegun](https://github.com/spulec/freezegun) from 1.2.2 to 1.3.1.
- [Release notes](https://github.com/spulec/freezegun/releases)
- [Changelog](https://github.com/spulec/freezegun/blob/master/CHANGELOG)
- [Commits](https://github.com/spulec/freezegun/commits/1.3.1)

---
updated-dependencies:
- dependency-name: freezegun
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-05 20:21:04 +00:00
Carlo Costino
e34f16bfc6 Merge pull request #969 from GSA/dependabot/pip/moto-4.2.11
Bump moto from 4.2.10 to 4.2.11
2023-12-05 15:14:39 -05:00
dependabot[bot]
c6444ce5cd Bump moto from 4.2.10 to 4.2.11
Bumps [moto](https://github.com/getmoto/moto) from 4.2.10 to 4.2.11.
- [Release notes](https://github.com/getmoto/moto/releases)
- [Changelog](https://github.com/getmoto/moto/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getmoto/moto/compare/4.2.10...4.2.11)

---
updated-dependencies:
- dependency-name: moto
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-04 23:32:40 +00:00
Kenneth Kehl
cee2552706 notify-admin-931 2023-12-04 14:52:48 -08:00
Carlo Costino
93d5e0a124 Merge pull request #965 from GSA/893-copy-existing-template
893 copy existing template
2023-12-04 16:33:51 -05:00
Carlo Costino
e26967acac Merge pull request #949 from GSA/notify-admin-901
Create UI changes to let people know of considerations when using Non-ISO character sets
2023-12-04 13:28:53 -05:00
Carlo Costino
ecb2015ad5 Merge pull request #951 from GSA/85-live-service-content-says-250k-per-day-not-per-year
Change live service content to "Year" and not "day
2023-12-04 13:26:40 -05:00
Jonathan Bobel
bf10a2bc53 Fixing the tests to pass 2023-12-04 12:42:15 -05:00
Kenneth Kehl
81f145180e merge from main 2023-12-04 07:12:34 -08:00
Carlo Costino
beb7c19714 Merge pull request #962 from GSA/fix_scheduled_jobs_time
fix scheduled jobs time
2023-12-01 16:26:45 -05:00
Jonathan Bobel
a116c0a0c1 Merged Ken's work, made a small style change 2023-12-01 14:54:26 -05:00
Kenneth Kehl
f235557773 move hilite method as per code review feedback 2023-12-01 11:14:19 -08:00
Kenneth Kehl
91161c8c7e formatting 2023-12-01 09:52:07 -08:00
Kenneth Kehl
9ee61806f3 fix class method 2023-11-30 14:48:06 -08:00
Kenneth Kehl
50ccd994d0 fix scheduled jobs time 2023-11-30 14:41:44 -08:00
Kenneth Kehl
350ceaaf4e notify-admin-931 initial 2023-11-30 12:39:37 -08:00
Carlo Costino
fc00273b31 Merge pull request #960 from GSA/utils-0-2-3-update
Update notifications-utils to 0.2.3
2023-11-30 15:06:13 -05:00
Carlo Costino
fa40e3d011 Update notifications-utils to 0.2.3
This changeset updates the notification-utils dependency to 0.2.3 to address an issue we found with link formatting in our last production release.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-11-30 14:59:34 -05:00
Carlo Costino
4f9a89d0a1 Merge pull request #959 from GSA/fix_404_maybe
maybe fix 404 on signout
2023-11-29 14:00:36 -05:00
Kenneth Kehl
417c072382 maybe fix 404 on signout 2023-11-29 10:24:09 -08:00
Your Name
10671b61b1 Merge remote-tracking branch 'origin/main' into 85-live-service-content-says-250k-per-day-not-per-year 2023-11-29 10:03:29 -08:00
Kenneth Kehl
da3fa99c52 merge from main 2023-11-29 07:26:43 -08:00
Carlo Costino
8fed8b914d Merge pull request #957 from GSA/dependabot/pip/flake8-bugbear-23.11.28
Bump flake8-bugbear from 23.9.16 to 23.11.28
2023-11-29 10:12:18 -05:00
dependabot[bot]
8303822860 Bump flake8-bugbear from 23.9.16 to 23.11.28
Bumps [flake8-bugbear](https://github.com/PyCQA/flake8-bugbear) from 23.9.16 to 23.11.28.
- [Release notes](https://github.com/PyCQA/flake8-bugbear/releases)
- [Commits](https://github.com/PyCQA/flake8-bugbear/compare/23.9.16...23.11.28)

---
updated-dependencies:
- dependency-name: flake8-bugbear
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-29 15:04:46 +00:00
Steven Reilly
f392c67e47 Merge pull request #953 from GSA/fix-positional-arguments
Adjust positional arguments flagged by flake8-bugbear
2023-11-29 09:55:29 -05:00
Carlo Costino
fa90eb0f67 Merge pull request #955 from GSA/dependabot/pip/pytest-env-1.1.3
Bump pytest-env from 1.1.1 to 1.1.3
2023-11-29 09:52:36 -05:00
dependabot[bot]
8e16afe755 Bump pytest-env from 1.1.1 to 1.1.3
Bumps [pytest-env](https://github.com/pytest-dev/pytest-env) from 1.1.1 to 1.1.3.
- [Release notes](https://github.com/pytest-dev/pytest-env/releases)
- [Commits](https://github.com/pytest-dev/pytest-env/compare/1.1.1...1.1.3)

---
updated-dependencies:
- dependency-name: pytest-env
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-29 14:46:06 +00:00
Carlo Costino
86fbaee27d Adjust positional arguments flagged by flake8-bugbear
The new release of flake8-bugbear is starting to flag positional argument unpacking that comes after keyword arguments in function calls as a style warning that fails.  This is a good thing to catch because it can lead to unexpected side effects with function arguments and/or errors thrown by Python.

See the following links for more details:

- https://stackoverflow.com/questions/58961715/python-value-unpacking-order-in-method-parameters
- https://github.com/python/cpython/issues/82741

This changeset fixes a couple of instances where the positional argument unpacking was happening after keyword arguments were being provided.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-11-29 09:39:44 -05:00
Steven Reilly
ff8e1b9c79 Merge pull request #954 from GSA/update-cryptography
Update cryptography dependency
2023-11-29 09:26:09 -05:00
Carlo Costino
fdcd5a57e7 Update cryptography dependency
This changeset updates the cryptography dependency to address a pip-audit finding.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-11-28 17:43:26 -05:00
Kenneth Kehl
65e6812385 use markup so html link renders in template 2023-11-28 14:43:12 -08:00
Carlo Costino
6556c1451c Merge pull request #941 from GSA/dependabot/pip/moto-4.2.10
Bump moto from 4.2.9 to 4.2.10
2023-11-28 15:03:35 -05:00
dependabot[bot]
f42af3ae5b Bump moto from 4.2.9 to 4.2.10
Bumps [moto](https://github.com/getmoto/moto) from 4.2.9 to 4.2.10.
- [Release notes](https://github.com/getmoto/moto/releases)
- [Changelog](https://github.com/getmoto/moto/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getmoto/moto/compare/4.2.9...4.2.10)

---
updated-dependencies:
- dependency-name: moto
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-28 19:49:21 +00:00
Carlo Costino
3cab3ac1a4 Merge pull request #940 from GSA/update-utils-022
Update utils to 0.2.2
2023-11-28 14:43:29 -05:00
Your Name
ef73d6d71e changed day to year 2023-11-28 11:34:29 -08:00
Kenneth Kehl
1cacd3b850 update warning message, fix tests 2023-11-28 07:42:33 -08:00
Kenneth Kehl
c74ab6ff27 fix flake8 2023-11-27 14:49:20 -08:00
Carlo Costino
6e527602bd Merge pull request #947 from GSA/945-upload-csv-not-working
945 - Fixed the javascript so it's not breaking every page
2023-11-27 17:46:09 -05:00
Carlo Costino
479e455ab1 Merge pull request #946 from GSA/stvnrlly/gtm-script-src
Add GTM to CSP sources
2023-11-27 17:44:46 -05:00
Steven Reilly
911552b858 update test instead of not updating test 2023-11-27 16:26:22 -05:00
Jonathan Bobel
c611fe38c9 945 - Fixed the javascript so it's not breaking every page this element is not on 2023-11-27 16:19:54 -05:00
Steven Reilly
ff44be5279 add gtm to csp sources 2023-11-27 16:16:27 -05:00
Kenneth Kehl
d10d3f7c00 maybe fix tests? Or else calculations are all wrong 2023-11-22 12:37:57 -08:00
Carlo Costino
8c7db5d7e1 Update utils to 0.2.2
This changeset updates the notification-utils reference to the latest release, 0.2.2.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-11-22 14:50:03 -05:00
Carlo Costino
74ace43668 Merge pull request #939 from GSA/update-readme-and-setup
Update README with new instructions and improve setup
2023-11-22 14:27:56 -05:00
Carlo Costino
3aa5f3415e Updated README title
Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-11-22 14:10:03 -05:00
Carlo Costino
4d56d4e186 Updated poetry.lock file
Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-11-22 14:08:03 -05:00
Carlo Costino
d2891042b4 Added pre-commit git hooks into the project
Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-11-22 14:05:23 -05:00
Carlo Costino
40de352f9e Update README with new instructions and improve setup
This changeset updates the README.md file with a set of entirely new instructions. These updates are intended to improve clarity, simplify steps, and reduce confusion and environment-setup gotchas that folks have run into previously and we have learned from. A couple of other changes are also included:

- Minor adjustments to the Makefile to improve make bootstrap
- Updates to the sample.env file to include previously missing required environment variables and/or information
- Additional support for Python virtual environments
- Removes tracking of the .python-version file used by pyenv

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-11-22 14:05:20 -05:00
Carlo Costino
614545c1b4 Merge pull request #851 from GSA/notify-786
Remove notify from senders message flow
2023-11-22 14:01:39 -05:00
Andrew Shumway
984f435075 Merge branch 'main' of https://github.com/GSA/notifications-admin into notify-786 2023-11-22 11:55:57 -07:00
Andrew Shumway
3d0460a9ee Revert missing logic 2023-11-22 11:55:40 -07:00
Kenneth Kehl
7e33178b1c Merge pull request #929 from GSA/notify-admin-861
Change timezone displays to Eastern time
2023-11-22 10:49:16 -08:00
Kenneth Kehl
723f83f164 Merge pull request #877 from GSA/notify-admin-338
initial for login.gov integration
2023-11-22 10:11:46 -08:00
Andrew Shumway
9bc3602461 Merge branch 'main' of https://github.com/GSA/notifications-admin into notify-786 2023-11-22 11:06:32 -07:00
Andrew Shumway
53a3f4c852 Remove unnecessary logic/fix tests 2023-11-22 11:06:15 -07:00
Carlo Costino
4571a8bd15 Apply suggestions from code review
Updating variable name from et to preferred_tz
2023-11-22 13:06:04 -05:00
Kenneth Kehl
e55a9273bf code review feedback 2023-11-22 08:28:07 -08:00
Kenneth Kehl
ad0ed0d6fb merge from main 2023-11-22 08:21:34 -08:00
Kenneth Kehl
425f8eb742 code review feedback 2023-11-22 08:09:28 -08:00
Carlo Costino
d0fe4de3ac Merge pull request #938 from GSA/dependabot/pip/humanize-4.9.0
Bump humanize from 4.8.0 to 4.9.0
2023-11-22 09:39:15 -05:00
dependabot[bot]
a6ea9fd25c Bump humanize from 4.8.0 to 4.9.0
Bumps [humanize](https://github.com/python-humanize/humanize) from 4.8.0 to 4.9.0.
- [Release notes](https://github.com/python-humanize/humanize/releases)
- [Commits](https://github.com/python-humanize/humanize/compare/4.8.0...4.9.0)

---
updated-dependencies:
- dependency-name: humanize
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-22 14:33:13 +00:00
Carlo Costino
9959f53956 Merge pull request #937 from GSA/dependabot/pip/pytest-xdist-3.5.0
Bump pytest-xdist from 3.4.0 to 3.5.0
2023-11-22 09:31:32 -05:00
dependabot[bot]
ce21df6048 Bump pytest-xdist from 3.4.0 to 3.5.0
Bumps [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) from 3.4.0 to 3.5.0.
- [Release notes](https://github.com/pytest-dev/pytest-xdist/releases)
- [Changelog](https://github.com/pytest-dev/pytest-xdist/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-xdist/compare/v3.4.0...v3.5.0)

---
updated-dependencies:
- dependency-name: pytest-xdist
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-22 14:15:17 +00:00
Carlo Costino
8432ac2334 Merge pull request #936 from GSA/dependabot/pip/exceptiongroup-1.2.0
Bump exceptiongroup from 1.1.3 to 1.2.0
2023-11-22 09:12:26 -05:00
dependabot[bot]
2178659d31 Bump exceptiongroup from 1.1.3 to 1.2.0
Bumps [exceptiongroup](https://github.com/agronholm/exceptiongroup) from 1.1.3 to 1.2.0.
- [Release notes](https://github.com/agronholm/exceptiongroup/releases)
- [Changelog](https://github.com/agronholm/exceptiongroup/blob/main/CHANGES.rst)
- [Commits](https://github.com/agronholm/exceptiongroup/compare/1.1.3...1.2.0)

---
updated-dependencies:
- dependency-name: exceptiongroup
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-21 23:31:43 +00:00
Kenneth Kehl
2bd38182d2 code review feedback 2023-11-21 13:40:00 -08:00
Carlo Costino
84a05994b2 Merge pull request #928 from GSA/927-fix-math-on-dashboard
927 - Updates to math in Dashboard area
2023-11-21 16:09:41 -05:00
Jonathan Bobel
e4c97e925f Adding a test for the dashboard usage area 2023-11-21 15:38:41 -05:00
Jonathan Bobel
077b1b8ed9 Updated utils 2023-11-20 13:45:35 -05:00
Jonathan Bobel
bc6f13dc06 Merge branch 'main' of https://github.com/GSA/notifications-admin into 927-fix-math-on-dashboard 2023-11-20 12:48:14 -05:00
Andrew Shumway
450be48e9c Merge branch 'main' of https://github.com/GSA/notifications-admin into notify-786 2023-11-20 10:39:55 -07:00
Andrew Shumway
e7a3b98fff Refactor list comprehension 2023-11-20 10:39:39 -07:00
Andrew Shumway
f51d4be8de Add tests with notify.gov/usnotify as default 2023-11-20 10:06:17 -07:00
Carlo Costino
6a91627c6b Merge pull request #934 from GSA/dependabot/pip/newrelic-9.2.0
Bump newrelic from 9.1.2 to 9.2.0
2023-11-20 11:25:18 -05:00
dependabot[bot]
f922331040 Bump newrelic from 9.1.2 to 9.2.0
Bumps [newrelic](https://github.com/newrelic/newrelic-python-agent) from 9.1.2 to 9.2.0.
- [Release notes](https://github.com/newrelic/newrelic-python-agent/releases)
- [Commits](https://github.com/newrelic/newrelic-python-agent/compare/v9.1.2...v9.2.0)

---
updated-dependencies:
- dependency-name: newrelic
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-17 23:55:51 +00:00
Carlo Costino
3ad901278d Merge pull request #930 from GSA/dependabot/pip/moto-4.2.9
Bump moto from 4.2.8 to 4.2.9
2023-11-17 15:11:05 -05:00
Andrew Shumway
5d97856a81 Merge branch 'main' of https://github.com/GSA/notifications-admin into notify-786 2023-11-17 11:19:50 -07:00
Andrew Shumway
654b406827 Added/fixed tests to remove notify from message flow 2023-11-17 11:19:26 -07:00
dependabot[bot]
8d6c99e5ee Bump moto from 4.2.8 to 4.2.9
Bumps [moto](https://github.com/getmoto/moto) from 4.2.8 to 4.2.9.
- [Release notes](https://github.com/getmoto/moto/releases)
- [Changelog](https://github.com/getmoto/moto/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getmoto/moto/compare/4.2.8...4.2.9)

---
updated-dependencies:
- dependency-name: moto
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-16 23:21:31 +00:00
Kenneth Kehl
654557e793 fix 2023-11-16 12:47:47 -08:00
Kenneth Kehl
36987e7202 notify-api-861 show eastern time 2023-11-16 12:24:27 -08:00
Jonathan Bobel
6cee00929e Fixed tests 2023-11-16 12:26:35 -05:00
Jonathan Bobel
06a15c5afc 927 - Updates to math in Dashboard area 2023-11-16 12:02:59 -05:00
Carlo Costino
b58b517fc8 Merge pull request #917 from GSA/dependabot/pip/pytest-xdist-3.4.0
Bump pytest-xdist from 3.3.1 to 3.4.0
2023-11-15 12:51:03 -05:00
dependabot[bot]
492886d0ae Bump pytest-xdist from 3.3.1 to 3.4.0
Bumps [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) from 3.3.1 to 3.4.0.
- [Changelog](https://github.com/pytest-dev/pytest-xdist/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-xdist/compare/v3.3.1...v3.4.0)

---
updated-dependencies:
- dependency-name: pytest-xdist
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-15 16:45:48 +00:00
Carlo Costino
da0c3ab306 Merge pull request #918 from GSA/dependabot/pip/newrelic-9.1.2
Bump newrelic from 9.1.1 to 9.1.2
2023-11-15 11:35:13 -05:00
dependabot[bot]
95295c1c86 Bump newrelic from 9.1.1 to 9.1.2
Bumps [newrelic](https://github.com/newrelic/newrelic-python-agent) from 9.1.1 to 9.1.2.
- [Release notes](https://github.com/newrelic/newrelic-python-agent/releases)
- [Commits](https://github.com/newrelic/newrelic-python-agent/compare/v9.1.1...v9.1.2)

---
updated-dependencies:
- dependency-name: newrelic
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-15 14:38:52 +00:00
Carlo Costino
0b4981b25c Merge pull request #919 from GSA/dependabot/pip/moto-4.2.8
Bump moto from 4.2.7 to 4.2.8
2023-11-15 09:20:53 -05:00
Carlo Costino
a37b2f8281 Merge pull request #915 from GSA/notify-796
Fixed UI permissions view
2023-11-14 17:09:38 -05:00
Carlo Costino
969ecb39af Merge pull request #920 from GSA/notify-admin-916
notify-admin-916 revert restrictions on create service
2023-11-14 17:08:44 -05:00
Carlo Costino
bebe974c8a Merge pull request #923 from GSA/notify-admin-487
notify-admin-487 platform admin view errors
2023-11-14 16:42:16 -05:00
Kenneth Kehl
83dfdc31f2 fix flake8 2023-11-14 11:13:16 -08:00
Kenneth Kehl
31fb43e45c notify-admin-487 platform admin view errors 2023-11-14 10:39:24 -08:00
Kenneth Kehl
22d728f0f8 cleanup 2023-11-14 10:14:35 -08:00
Kenneth Kehl
040f4b4f9f fix tests 2023-11-14 08:38:11 -08:00
Andrew Shumway
009773eb1b Merge branch 'main' of https://github.com/GSA/notifications-admin into notify-786 2023-11-14 09:34:33 -07:00
Kenneth Kehl
b1bd51730d notify-admin-916 revert restrictions on create service 2023-11-14 07:51:56 -08:00
Kenneth Kehl
d1682c641d fix flake 8 2023-11-14 07:14:27 -08:00
Kenneth Kehl
bc3928cb0f fix logout 2023-11-14 07:11:40 -08:00
dependabot[bot]
68701f8022 Bump moto from 4.2.7 to 4.2.8
Bumps [moto](https://github.com/getmoto/moto) from 4.2.7 to 4.2.8.
- [Release notes](https://github.com/getmoto/moto/releases)
- [Changelog](https://github.com/getmoto/moto/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getmoto/moto/compare/4.2.7...4.2.8)

---
updated-dependencies:
- dependency-name: moto
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-13 23:39:18 +00:00
Kenneth Kehl
bda164f2a1 fix flake8 2023-11-10 14:10:49 -08:00
Kenneth Kehl
6f9e55cba0 debug and etc 2023-11-10 11:08:52 -08:00
Kenneth Kehl
853af1040e merge from main 2023-11-10 09:10:56 -08:00
Carlo Costino
6df7770ee1 Merge pull request #914 from GSA/dependabot/pip/black-23.11.0
Bump black from 23.10.1 to 23.11.0
2023-11-09 17:01:39 -05:00
Andrew Shumway
7e12e6d488 Fixed UI permissions view 2023-11-09 12:00:31 -07:00
dependabot[bot]
1f7ce11741 Bump black from 23.10.1 to 23.11.0
Bumps [black](https://github.com/psf/black) from 23.10.1 to 23.11.0.
- [Release notes](https://github.com/psf/black/releases)
- [Changelog](https://github.com/psf/black/blob/main/CHANGES.md)
- [Commits](https://github.com/psf/black/compare/23.10.1...23.11.0)

---
updated-dependencies:
- dependency-name: black
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-08 23:37:56 +00:00
Carlo Costino
be0ea767f7 Merge pull request #912 from GSA/notify-admin-571
Notify admin 571 Add a permissions check to the create user, create organizations, and create services views
2023-11-08 16:42:34 -05:00
Carlo Costino
7c491e87ea Merge pull request #913 from GSA/tdlowden-sprint-goals
Update sprint-goals.md
2023-11-08 15:47:13 -05:00
Tim Lowden
2b45f99294 Update sprint-goals.md 2023-11-08 12:44:53 -05:00
Kenneth Kehl
008b990e14 code review feedback 2023-11-08 07:51:57 -08:00
Kenneth Kehl
91aca2ec4e fix test 2023-11-07 08:55:14 -08:00
Kenneth Kehl
b50bdf2f21 merge from main 2023-11-07 07:44:37 -08:00
Carlo Costino
6e73ee0bc9 Merge pull request #907 from GSA/mark-test-for-skip
Skip failing test for now in test_send.py
2023-11-06 17:50:00 -05:00
Carlo Costino
4330fbe493 Skip failing test for now in test_send.py
This changeset marks the test_warns_if_file_sent_already_errors test in tests/app/main/views/test_send.py to skip for now.  This test started failing locally for some of the team members with no clear indication as to why.  We tried the following:

- Checking for uncommitted local changes
- Downgrading a recent dependency update
- Combing through recent changes for potential breaking changes
- Debugging the test itself as it ran

A new issue will be created to investigate this further, but we did not want it to block our current work.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-11-06 17:42:00 -05:00
Andrew Shumway
5d8f3e43ea Merge branch 'main' of https://github.com/GSA/notifications-admin into notify-786 2023-11-06 12:48:18 -07:00
Carlo Costino
191700f8ec Merge pull request #905 from GSA/notify-api-522
Add carrier to downloadable reports
2023-11-03 14:17:23 -04:00
Kenneth Kehl
6e19fab1d5 more tests 2023-11-03 10:38:38 -07:00
Carlo Costino
9398babd6f Merge pull request #904 from GSA/dependabot/pip/moto-4.2.7
Bump moto from 4.2.6 to 4.2.7
2023-11-02 21:09:05 -04:00
dependabot[bot]
534d6459b8 Bump moto from 4.2.6 to 4.2.7
Bumps [moto](https://github.com/getmoto/moto) from 4.2.6 to 4.2.7.
- [Release notes](https://github.com/getmoto/moto/releases)
- [Changelog](https://github.com/getmoto/moto/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getmoto/moto/compare/4.2.6...4.2.7)

---
updated-dependencies:
- dependency-name: moto
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-03 00:49:00 +00:00
Carlo Costino
f09d7ce537 Merge pull request #902 from GSA/dependabot/pip/pip-23.3
Bump pip from 23.2.1 to 23.3
2023-11-02 17:54:21 -04:00
dependabot[bot]
0e0b00ef4b Bump pip from 23.2.1 to 23.3
Bumps [pip](https://github.com/pypa/pip) from 23.2.1 to 23.3.
- [Changelog](https://github.com/pypa/pip/blob/main/NEWS.rst)
- [Commits](https://github.com/pypa/pip/compare/23.2.1...23.3)

---
updated-dependencies:
- dependency-name: pip
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-02 21:47:49 +00:00
Carlo Costino
75db3a34c0 Merge pull request #903 from GSA/update-utils
Update notifications-utils
2023-11-02 17:44:23 -04:00
Kenneth Kehl
381315d18a fix flake8 2023-11-02 14:31:12 -07:00
Kenneth Kehl
5f41eb2ccc fix flake8 2023-11-02 14:26:11 -07:00
Carlo Costino
5e7877bd78 Update notifications-utils
This changeset updates the notificiations-utils library with the latest commits.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-11-02 17:25:42 -04:00
Carlo Costino
26031cb1b2 Merge pull request #892 from GSA/800-combine-and-style-quota-displays
800 - combine and style quota displays
2023-11-02 17:16:39 -04:00
Kenneth Kehl
5da110ded4 merge from main 2023-11-02 14:13:43 -07:00
Kenneth Kehl
e5403a52f1 notify-admin-338 login.gov integration 2023-11-02 14:10:22 -07:00
Carlo Costino
b87022af8e Merge pull request #881 from GSA/dynamic-retention-count
Dynamic retention count
2023-11-02 17:07:11 -04:00
Andrew Shumway
591961413a Added mock api call to appropriate tests 2023-11-02 16:28:09 -04:00
Andrew Shumway
af119aad1c Fixed parameter in client request 2023-11-02 16:28:07 -04:00
Andrew Shumway
d26a5b6a75 Fixed initial 0 count value before refresh 2023-11-02 16:27:03 -04:00
Andrew Shumway
62a09c5223 Added mock to client request for get request of count 2023-11-02 16:27:01 -04:00
Andrew Shumway
83767b8ba8 remove import 2023-11-02 16:24:19 -04:00
Andrew Shumway
81f4b1436d Add notif count and history count together 2023-11-02 16:24:19 -04:00
Andrew Shumway
2fbda1cd0c Initial front end count steps 2023-11-02 16:24:19 -04:00
Jonathan Bobel
febbcd154c Merge and push back up 2023-11-02 14:40:08 -04:00
Carlo Costino
63a4a92657 Merge pull request #899 from GSA/dependabot/pip/pytest-env-1.1.1
Bump pytest-env from 1.0.1 to 1.1.1
2023-11-02 14:18:49 -04:00
dependabot[bot]
e48b4506de Bump pytest-env from 1.0.1 to 1.1.1
Bumps [pytest-env](https://github.com/pytest-dev/pytest-env) from 1.0.1 to 1.1.1.
- [Release notes](https://github.com/pytest-dev/pytest-env/releases)
- [Commits](https://github.com/pytest-dev/pytest-env/compare/1.0.1...1.1.1)

---
updated-dependencies:
- dependency-name: pytest-env
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-02 18:12:40 +00:00
Carlo Costino
e30f017558 Merge pull request #898 from GSA/dependabot/pip/blinker-1.7.0
Bump blinker from 1.6.3 to 1.7.0
2023-11-02 14:10:59 -04:00
dependabot[bot]
073def2510 Bump blinker from 1.6.3 to 1.7.0
Bumps [blinker](https://github.com/pallets-eco/blinker) from 1.6.3 to 1.7.0.
- [Release notes](https://github.com/pallets-eco/blinker/releases)
- [Changelog](https://github.com/pallets-eco/blinker/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets-eco/blinker/compare/1.6.3...1.7.0)

---
updated-dependencies:
- dependency-name: blinker
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-02 17:16:35 +00:00
Carlo Costino
c21d093c61 Merge pull request #880 from GSA/dependabot/pip/newrelic-9.1.1
Bump newrelic from 9.1.0 to 9.1.1
2023-11-02 13:12:17 -04:00
dependabot[bot]
3b2866bda4 Bump newrelic from 9.1.0 to 9.1.1
Bumps [newrelic](https://github.com/newrelic/newrelic-python-agent) from 9.1.0 to 9.1.1.
- [Release notes](https://github.com/newrelic/newrelic-python-agent/releases)
- [Commits](https://github.com/newrelic/newrelic-python-agent/compare/v9.1.0...v9.1.1)

---
updated-dependencies:
- dependency-name: newrelic
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-02 16:56:29 +00:00
Carlo Costino
472e6d48a4 Merge pull request #897 from GSA/dependabot/pip/wtforms-3.1.1
Bump wtforms from 3.0.1 to 3.1.1
2023-11-02 12:51:21 -04:00
Carlo Costino
745aaee1d7 Merge pull request #887 from GSA/notify-admin-866b
Improve tests with #noqa comments
2023-11-02 12:34:01 -04:00
dependabot[bot]
1a00eeaed6 Bump wtforms from 3.0.1 to 3.1.1
Bumps [wtforms](https://github.com/wtforms/wtforms) from 3.0.1 to 3.1.1.
- [Release notes](https://github.com/wtforms/wtforms/releases)
- [Changelog](https://github.com/wtforms/wtforms/blob/master/CHANGES.rst)
- [Commits](https://github.com/wtforms/wtforms/compare/3.0.1...3.1.1)

---
updated-dependencies:
- dependency-name: wtforms
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-02 16:31:49 +00:00
Carlo Costino
35e200b328 Merge pull request #884 from GSA/801-send-message-button
801 send message button
2023-11-02 12:30:14 -04:00
Carlo Costino
14b81ce908 Merge pull request #882 from GSA/847-change-blanket-error-message
847 - content update for blanket error page
2023-11-02 12:29:25 -04:00
Carlo Costino
20cddeb852 Merge pull request #873 from GSA/dependabot/pip/notifications-python-client-8.1.0
Bump notifications-python-client from 8.0.1 to 8.1.0
2023-11-02 12:28:39 -04:00
Carlo Costino
b90057f84c Merge pull request #869 from GSA/dependabot/npm_and_yarn/babel/traverse-7.23.2
Bump @babel/traverse from 7.22.20 to 7.23.2
2023-11-02 12:27:33 -04:00
Carlo Costino
25dcdd11c7 Merge pull request #865 from GSA/803-keep-current-service-visible
803 - keep current service visible
2023-11-02 12:26:35 -04:00
Carlo Costino
cbfccb774e Merge pull request #860 from GSA/tdlowden-sprint-goals-update
Update sprint-goals.md
2023-11-02 11:18:11 -04:00
Tim Lowden
f54533da83 Update sprint-goals.md 2023-11-02 11:10:04 -04:00
Tim Lowden
11890d3219 Update sprint-goals.md 2023-11-02 11:10:04 -04:00
Tim Lowden
415a1061fa Update sprint-goals.md 2023-11-02 11:10:04 -04:00
Tim Lowden
40794f816a Update sprint-goals.md 2023-11-02 11:10:03 -04:00
Jonathan Bobel
7f56c62a6d Merge branch 'main' of https://github.com/GSA/notifications-admin into 803-keep-current-service-visible 2023-11-01 13:07:30 -04:00
Jonathan Bobel
a3022dcfe6 Fixing tests 2023-11-01 13:06:29 -04:00
dependabot[bot]
b538d25b13 Bump notifications-python-client from 8.0.1 to 8.1.0
Bumps [notifications-python-client](https://github.com/alphagov/notifications-python-client) from 8.0.1 to 8.1.0.
- [Changelog](https://github.com/alphagov/notifications-python-client/blob/main/CHANGELOG.md)
- [Commits](https://github.com/alphagov/notifications-python-client/compare/8.0.1...8.1.0)

---
updated-dependencies:
- dependency-name: notifications-python-client
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-01 16:58:17 +00:00
Steven Reilly
4a98080c3f Merge pull request #896 from GSA/fix-deps
Update more dependencies and fix notifications-utils
2023-11-01 12:56:25 -04:00
Carlo Costino
09c4dd2e1d Update more dependencies and fix notifications-utils
This changeset updates a few more dependencies and addresses the challenges we have had in keeping the notifications-utils dependency up-to-date.  The changes include instructions on what to do going forward for future notifications-utils updates.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-11-01 12:16:35 -04:00
Jonathan Bobel
7ba937b14a Updated sass-embedded to see if this fixes the dependency error 2023-11-01 11:14:02 -04:00
Jonathan Bobel
2131692449 Small styling update 2023-11-01 10:43:40 -04:00
Jonathan Bobel
600114fa4f Fixing tests 2023-11-01 10:38:50 -04:00
Kenneth Kehl
1d790868f3 merge from main 2023-10-31 12:22:06 -07:00
Jonathan Bobel
0a11211c81 Changing the layout of the page to a table view 2023-10-31 14:22:00 -04:00
Jonathan Bobel
dfe9a46890 Merge branch 'main' of https://github.com/GSA/notifications-admin into 847-change-blanket-error-message
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2023-10-31 12:46:21 -04:00
Jonathan Bobel
f4048d5b55 Merge branch 'main' of https://github.com/GSA/notifications-admin into 801-send-message-button 2023-10-31 12:45:19 -04:00
Jonathan Bobel
c695b59385 Merge branch 'main' of https://github.com/GSA/notifications-admin into 800-combine-and-style-quota-displays 2023-10-31 12:44:00 -04:00
Jonathan Bobel
0cc91b43a9 800 - combining and updating the wording around messages remaining 2023-10-31 12:03:21 -04:00
Kenneth Kehl
622bdd4368 merge from main 2023-10-31 07:46:51 -07:00
Steven Reilly
fb3c9f412a Merge pull request #890 from GSA/update-deps
Updated dependencies and add make command
2023-10-31 10:35:55 -04:00
Carlo Costino
e055318ca8 Added instructions to the README
Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-10-30 16:57:03 -04:00
Carlo Costino
d9c0c751ab Fixed flask-login version
Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-10-30 16:25:15 -04:00
Carlo Costino
a542fa916f More dependency updates
Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-10-30 16:18:44 -04:00
Carlo Costino
88f0715b2c Updated dependencies and add make command
This changeset updates several dependencies to address security audit findings and also adds a py-lock make command to make managing our Python dependencies more manageable.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-10-30 16:01:21 -04:00
Kenneth Kehl
899027bb04 merge from main 2023-10-30 08:42:56 -07:00
Kenneth Kehl
b487a915f6 fix remaining tests 2023-10-30 08:42:11 -07:00
Kenneth Kehl
8c9acad081 more tests 2023-10-26 12:05:26 -07:00
Kenneth Kehl
bd2ea81081 more fixes 2023-10-26 11:38:03 -07:00
Kenneth Kehl
90025ded54 notify-admin-866 improve tests with noqa comments 2023-10-26 08:33:59 -07:00
Jonathan Bobel
c290e60a6c Fixing tests 2023-10-24 12:24:14 -04:00
Kenneth Kehl
222c83ebbc notify-admin-571 add platform_admin condition for create service and create user 2023-10-23 14:41:31 -07:00
Jonathan Bobel
5304c0f7a9 801 - Moving Send message link from inside the side nav to a button 2023-10-23 14:36:10 -04:00
Jonathan Bobel
1271098ff9 Content update for blanket error page 2023-10-23 13:43:26 -04:00
Kenneth Kehl
782cff2d5f fiddle with logout 2023-10-20 09:34:39 -07:00
Kenneth Kehl
7ca258b547 work on logout 2023-10-20 08:48:04 -07:00
Kenneth Kehl
1d1e7747d0 cleanup login.gov work 2023-10-19 12:22:36 -07:00
Jonathan Bobel
1ad3d875c4 Merge branch 'main' of https://github.com/GSA/notifications-admin into 803-keep-current-service-visible 2023-10-19 12:14:25 -04:00
Kenneth Kehl
86ac810fff initial for login.gov integration 2023-10-18 15:18:37 -07:00
Steven Reilly
f31a78cbcd Merge pull request #872 from GSA/notify-843
Uncomment existing gtm script
2023-10-18 17:22:43 -04:00
Carlo Costino
df3cdaf93e Merge pull request #875 from GSA/dependabot/pip/urllib3-1.26.18
Bump urllib3 from 1.26.17 to 1.26.18
2023-10-18 11:56:00 -04:00
dependabot[bot]
588245f9f5 Bump urllib3 from 1.26.17 to 1.26.18
Bumps [urllib3](https://github.com/urllib3/urllib3) from 1.26.17 to 1.26.18.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/1.26.17...1.26.18)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-18 01:23:16 +00:00
Andrew Shumway
2c512181c2 Uncomment existing gtm script 2023-10-17 11:13:20 -06:00
dependabot[bot]
c46a6a5f86 Bump @babel/traverse from 7.22.20 to 7.23.2
Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.22.20 to 7.23.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse)

---
updated-dependencies:
- dependency-name: "@babel/traverse"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-17 15:55:38 +00:00
Carlo Costino
962fce3c7b Merge pull request #868 from GSA/dependabot/pip/moto-4.2.6
Bump moto from 4.2.5 to 4.2.6
2023-10-17 11:55:04 -04:00
dependabot[bot]
1c75f9abeb Bump moto from 4.2.5 to 4.2.6
Bumps [moto](https://github.com/getmoto/moto) from 4.2.5 to 4.2.6.
- [Release notes](https://github.com/getmoto/moto/releases)
- [Changelog](https://github.com/getmoto/moto/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getmoto/moto/compare/4.2.5...4.2.6)

---
updated-dependencies:
- dependency-name: moto
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-16 23:16:41 +00:00
Jonathan Bobel
195af626c6 Slight change from caps to lowercase 2023-10-13 12:26:25 -04:00
Jonathan Bobel
a34ab8c972 Adding nav item for platform admin as well 2023-10-12 15:16:03 -04:00
Jonathan Bobel
07f9255e36 Merge branch 'main' of https://github.com/GSA/notifications-admin into 803-keep-current-service-visible 2023-10-12 13:52:15 -04:00
Jonathan Bobel
167023c7a7 - Updated nav to allow for the active state throughout Service sub-nav
- Fixed test for using-notify broken link
2023-10-12 13:52:03 -04:00
Jonathan Bobel
3106b85e08 - Updated navigation file to show active atate in top nav
- Changing route back to - instead of _ so it won't break tests, also it was a mistake
2023-10-12 13:40:41 -04:00
Steven Reilly
17100a24b8 Merge pull request #748 from GSA/update-test-config
Update and cleanup our test configuration
2023-10-12 11:55:19 -04:00
Carlo Costino
85f0a31505 Updated poetry.lock file after rebasing with more dependency updates.
Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-10-12 10:27:26 -04:00
Carlo Costino
7163f813ce Fix malformed tuples
Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-10-12 10:26:01 -04:00
Carlo Costino
35ecd7006a Finally finished linting all the tests!
...Now to fix the ones I broke... :lolsob:

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-10-12 10:26:01 -04:00
Carlo Costino
f5a5fbc926 Updated more tests with linting fixes
Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-10-12 10:26:01 -04:00
Carlo Costino
9a4afe44bb More test config updates
Note that this commit has some failing tests with it that also needed to be fixed; it is unclear why they are failing at the moment, though.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-10-12 10:26:00 -04:00
Carlo Costino
d2411e6cbe Updated a few more tests
Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-10-12 10:24:49 -04:00
Carlo Costino
9031d0cb97 A few more tests taken care of.
Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-10-12 10:24:49 -04:00
Carlo Costino
acb70b43cd Reformatted and cleaned up more tests.
Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-10-12 10:24:48 -04:00
Carlo Costino
72c8a46b8c Reformatted a handful more tests
Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-10-12 10:24:48 -04:00
Carlo Costino
23f894581c More test cleanup
Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-10-12 10:24:48 -04:00
Carlo Costino
06fab2dd03 Ignoring two specific warnings about wrong values type
The test makes use of list item unpacking and expects the parameter data structure to allow for that.  It does not make sense to modify the code in this case just to make test format linting pass.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-10-12 10:24:48 -04:00
Carlo Costino
95ba7c3099 More formatting fixes for tests
Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-10-12 10:24:48 -04:00
Carlo Costino
47695b97d3 Address flake8-pytest-style issues with conftest.py
Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-10-12 10:24:48 -04:00
Carlo Costino
73590840ee Update and cleanup our test configuration
This changeset updates a few of the testing and linting dependencies and makes several adjustments to cleanup and improve our tests and test configuration.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-10-12 10:24:44 -04:00
Jonathan Bobel
988c1e93a1 Merge branch 'main' of https://github.com/GSA/notifications-admin into 803-keep-current-service-visible 2023-10-12 10:21:18 -04:00
Jonathan Bobel
3e7a4f78f3 Committing before merge 2023-10-12 10:21:11 -04:00
Carlo Costino
86a19c945e Merge pull request #750 from GSA/notify-678
Notify 678
2023-10-12 10:16:52 -04:00
Carlo Costino
a46a21a519 Revert recent changes for window location updates
There are a few other things at play that will require more investigation at a future date:

- Why window.location.assign() or history.pushState() do not work
- If any other config or polyfills are needed with JSDOM

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-10-12 10:00:30 -04:00
Carlo Costino
4fff35590b Attempt at fixing sign-out link after session expires
Note that this still does not seem to work; needs more investigation, but not a showstopper for the feature going out!

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-10-11 17:10:53 -04:00
Carlo Costino
d4d36087d4 Swapped resetting window.location.href to using window.location.assign
Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-10-11 15:48:30 -04:00
Andrew Shumway
4effd7df06 Merge branch 'main' of https://github.com/GSA/notifications-admin into notify-678 2023-10-11 11:07:34 -06:00
Carlo Costino
d12faf6cd8 Merge pull request #839 from GSA/dependabot/pip/flask-wtf-1.2.1
Bump flask-wtf from 1.1.1 to 1.2.1
2023-10-11 11:02:19 -04:00
dependabot[bot]
27ff29d0db Bump flask-wtf from 1.1.1 to 1.2.1
Bumps [flask-wtf](https://github.com/wtforms/flask-wtf) from 1.1.1 to 1.2.1.
- [Release notes](https://github.com/wtforms/flask-wtf/releases)
- [Changelog](https://github.com/wtforms/flask-wtf/blob/main/docs/changes.rst)
- [Commits](https://github.com/wtforms/flask-wtf/compare/v1.1.1...v1.2.1)

---
updated-dependencies:
- dependency-name: flask-wtf
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-11 14:32:40 +00:00
Carlo Costino
ceedff4d0e Merge pull request #852 from GSA/dependabot/pip/vulture-2.10
Bump vulture from 2.9.1 to 2.10
2023-10-11 10:29:52 -04:00
dependabot[bot]
a2ece1554c Bump vulture from 2.9.1 to 2.10
Bumps [vulture](https://github.com/jendrikseipp/vulture) from 2.9.1 to 2.10.
- [Release notes](https://github.com/jendrikseipp/vulture/releases)
- [Changelog](https://github.com/jendrikseipp/vulture/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jendrikseipp/vulture/compare/v2.9.1...v2.10)

---
updated-dependencies:
- dependency-name: vulture
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-11 14:12:14 +00:00
Carlo Costino
d55b614b2b Merge pull request #853 from GSA/dependabot/pip/blinker-1.6.3
Bump blinker from 1.6.2 to 1.6.3
2023-10-11 10:10:20 -04:00
dependabot[bot]
b94fb8a867 Bump blinker from 1.6.2 to 1.6.3
Bumps [blinker](https://github.com/pallets-eco/blinker) from 1.6.2 to 1.6.3.
- [Release notes](https://github.com/pallets-eco/blinker/releases)
- [Changelog](https://github.com/pallets-eco/blinker/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets-eco/blinker/compare/1.6.2...1.6.3)

---
updated-dependencies:
- dependency-name: blinker
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-11 13:58:56 +00:00
Carlo Costino
8445906fa1 Merge pull request #854 from GSA/dependabot/pip/pytest-playwright-0.4.3
Bump pytest-playwright from 0.4.2 to 0.4.3
2023-10-11 09:54:18 -04:00
Andrew Shumway
76f9c5e6ab Merge branch 'main' of https://github.com/GSA/notifications-admin into notify-678 2023-10-10 11:00:37 -06:00
Carlo Costino
ce9fdc693f Merge pull request #856 from GSA/819-make-template-help-more-prominent
819 make template help more prominent
2023-10-10 11:48:50 -04:00
Jonathan Bobel
db201eeda9 Small styling updates 2023-10-10 11:23:19 -04:00
Jonathan Bobel
5d0eb7d211 819 - Make template help more prominent 2023-10-10 11:07:08 -04:00
dependabot[bot]
0ef554674a Bump pytest-playwright from 0.4.2 to 0.4.3
Bumps [pytest-playwright](https://github.com/microsoft/playwright-pytest) from 0.4.2 to 0.4.3.
- [Release notes](https://github.com/microsoft/playwright-pytest/releases)
- [Commits](https://github.com/microsoft/playwright-pytest/compare/v0.4.2...v0.4.3)

---
updated-dependencies:
- dependency-name: pytest-playwright
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-10 00:01:02 +00:00
Andrew Shumway
7ec9a5a4f8 Remove notify from senders message flow 2023-10-06 11:41:43 -06:00
Carlo Costino
4c833a4360 Merge pull request #850 from GSA/816-change-prepare-to-send-button
816 - Change "Prepare to send" button text
2023-10-06 13:34:37 -04:00
Jonathan Bobel
57ec11d7c5 816 - Change "Prepare to send" button text 2023-10-06 13:13:18 -04:00
Carlo Costino
9e47062aa7 Merge pull request #840 from GSA/dependabot/pip/coverage-7.3.2
Bump coverage from 7.3.1 to 7.3.2
2023-10-06 12:48:24 -04:00
dependabot[bot]
d34249ff8b Bump coverage from 7.3.1 to 7.3.2
Bumps [coverage](https://github.com/nedbat/coveragepy) from 7.3.1 to 7.3.2.
- [Release notes](https://github.com/nedbat/coveragepy/releases)
- [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst)
- [Commits](https://github.com/nedbat/coveragepy/compare/7.3.1...7.3.2)

---
updated-dependencies:
- dependency-name: coverage
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-06 16:23:26 +00:00
Carlo Costino
f1cdb79475 Merge pull request #841 from GSA/dependabot/pip/moto-4.2.5
Bump moto from 4.2.4 to 4.2.5
2023-10-06 12:20:11 -04:00
Carlo Costino
124d342b39 Merge pull request #846 from GSA/822-restrict-international-message-service
822 - restrict international message services
2023-10-06 12:18:17 -04:00
Carlo Costino
3a4e3889c0 Merge pull request #849 from GSA/814-error-message-CSV
814 error message csv
2023-10-06 12:17:07 -04:00
Jonathan Bobel
af2da54ffc Decided not to use the template and include the USWDS alert one-by-one 2023-10-06 11:31:28 -04:00
Jonathan Bobel
fd196c6534 814 - Adding alert component to CSV error area 2023-10-05 16:20:37 -04:00
Jonathan Bobel
afe6e9c11a 822 - restrict international message services 2023-10-04 14:40:21 -04:00
Andrew Shumway
643e1ef1b6 Merge branch 'main' of https://github.com/GSA/notifications-admin into notify-678 2023-10-03 14:37:04 -06:00
Carlo Costino
838f643b18 Merge pull request #845 from GSA/821-remove-table-header
821 - removing a few headers and adjusting the tests
2023-10-03 16:08:51 -04:00
Carlo Costino
206165499f Merge pull request #844 from GSA/835-new-template-wording
835 - Change "new template" wording
2023-10-03 16:08:02 -04:00
Jonathan Bobel
fefa8288c4 821 - removing a few headers and adjusting the tests to accept an empty string 2023-10-03 15:28:27 -04:00
Jonathan Bobel
154b8fd8f3 Merge branch 'main' of https://github.com/GSA/notifications-admin into 835-new-template-wording 2023-10-03 14:30:34 -04:00
Jonathan Bobel
d6205bc1ff 835 - Change "new template" wording 2023-10-03 11:14:21 -04:00
dependabot[bot]
cd508c05b0 Bump moto from 4.2.4 to 4.2.5
Bumps [moto](https://github.com/getmoto/moto) from 4.2.4 to 4.2.5.
- [Release notes](https://github.com/getmoto/moto/releases)
- [Changelog](https://github.com/getmoto/moto/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getmoto/moto/compare/4.2.4...4.2.5)

---
updated-dependencies:
- dependency-name: moto
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-03 15:08:06 +00:00
Kenneth Kehl
48c20c7966 Merge pull request #842 from GSA/dependabot/pip/urllib3-1.26.17
Bump urllib3 from 1.26.16 to 1.26.17
2023-10-03 07:38:40 -07:00
Carlo Costino
b255e2a112 Merge pull request #837 from GSA/808-format-ytd-usage
808 - format usage ytd section
2023-10-03 09:32:20 -04:00
dependabot[bot]
e8ed0ef8b0 Bump urllib3 from 1.26.16 to 1.26.17
Bumps [urllib3](https://github.com/urllib3/urllib3) from 1.26.16 to 1.26.17.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/1.26.16...1.26.17)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-03 04:14:22 +00:00
Andrew Shumway
efce22b171 Put timer back to 25 minutes 2023-10-02 15:21:00 -06:00
Andrew Shumway
93ac55ce35 Separate logout by user or inactivity 2023-10-02 15:20:23 -06:00
Andrew Shumway
00db493305 Clean up code/tests 2023-10-02 14:48:35 -06:00
Jonathan Bobel
c7e05246b1 808 - formatted annual usage section 2023-10-02 15:12:36 -04:00
Carlo Costino
20e8aaac1a Merge pull request #833 from GSA/832-change-failed-homepage-image
832 - update home page image to reflect "No failures" state
2023-10-02 12:41:52 -04:00
Andrew Shumway
020dc871f7 Added test for code coverage 2023-10-02 09:18:30 -06:00
Jonathan Bobel
64094c02ed Updated home page image 2023-10-02 11:11:52 -04:00
Steven Reilly
f661f2cba4 Merge pull request #829 from GSA/update-zap-scans
Update OWASP ZAP scans
2023-09-29 14:26:09 -04:00
Carlo Costino
fab8d92651 Merge pull request #830 from GSA/notify-admin-642
notify-admin-642 document how the downloadable reports work
2023-09-29 12:43:16 -04:00
Kenneth Kehl
5c4816ddbe notify-admin-642 document how the downloadable reports work 2023-09-29 08:28:02 -07:00
Carlo Costino
38379176f4 Update OWASP ZAP scans
The OWASP ZAP scan GitHub Actions have been updated recently and we need to make sure our GitHub Actions account for the recent changes.  This changeset makes sure we are using the latest version of the OWASP ZAP API scan and the correct Docker image.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-09-28 17:31:39 -04:00
Carlo Costino
57f2ee798b Made several adjustments for session timer tests
- Turned the timeoutPopup module into a proper module that is exported
- Pulled out the setInterval inner function to be its own method
- Adjusted the session timer tests to have additional setup and teardown pieces
- Added a few tests

There may be some additional adjustments needed, e.g., we may not have to expose all of the methods, but then we have to figure out how to make them accessible in the tests another way.

h/t @A-Shumway42 for pairing with me to review all of these changes and approach!

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-09-28 15:31:08 -04:00
Carlo Costino
5557f313b3 Merge pull request #824 from GSA/tdlowden-patch-1
Adding new demo vid to notify-pilot-info.md
2023-09-28 11:31:45 -04:00
Tim Lowden
d164fe7049 Adding new demo vid to notify-pilot-info.md 2023-09-28 11:02:15 -04:00
Carlo Costino
c48cb0d020 Merge pull request #823 from GSA/tdlowden-print-goals
Update sprint-goals.md
2023-09-28 10:36:32 -04:00
Tim Lowden
924bd41b7c Update sprint-goals.md 2023-09-28 09:14:37 -04:00
Andrew Shumway
8ab49f72ae Remove unused function in test 2023-09-27 11:47:52 -06:00
Andrew Shumway
d7e7a082cd Put timer back to 25 minute kickoff 2023-09-27 11:37:43 -06:00
Andrew Shumway
25190117dc Remove attempts to export module 2023-09-27 11:24:46 -06:00
Andrew Shumway
9846379c0f Merge branch 'main' of https://github.com/GSA/notifications-admin into notify-678 2023-09-27 11:15:46 -06:00
Steven Reilly
8aa82a1f49 Merge pull request #798 from GSA/dependabot/pip/moto-4.2.4
Bump moto from 4.2.3 to 4.2.4
2023-09-26 16:35:06 -04:00
Steven Reilly
6774ae9194 Merge pull request #799 from GSA/dependabot/pip/newrelic-9.1.0
Bump newrelic from 9.0.0 to 9.1.0
2023-09-26 16:34:39 -04:00
dependabot[bot]
13b0f05c1d Bump newrelic from 9.0.0 to 9.1.0
Bumps [newrelic](https://github.com/newrelic/newrelic-python-agent) from 9.0.0 to 9.1.0.
- [Release notes](https://github.com/newrelic/newrelic-python-agent/releases)
- [Commits](https://github.com/newrelic/newrelic-python-agent/compare/v9.0.0...v9.1.0)

---
updated-dependencies:
- dependency-name: newrelic
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-25 23:36:26 +00:00
dependabot[bot]
299b9a5062 Bump moto from 4.2.3 to 4.2.4
Bumps [moto](https://github.com/getmoto/moto) from 4.2.3 to 4.2.4.
- [Release notes](https://github.com/getmoto/moto/releases)
- [Changelog](https://github.com/getmoto/moto/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getmoto/moto/compare/4.2.3...4.2.4)

---
updated-dependencies:
- dependency-name: moto
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-25 23:36:00 +00:00
Carlo Costino
1dff2e5e1a Merge pull request #794 from GSA/715-content-changes
715 - content updates
2023-09-25 14:43:55 -04:00
Carlo Costino
4d87636805 Merge pull request #791 from GSA/notify-admin-769
notify-admin-768 fix download csv 'Sent by' column
2023-09-25 13:59:03 -04:00
Carlo Costino
285a54a552 Merge pull request #788 from GSA/780-remove-menu-on-mobile
780 - Hide menu button on mobile home page when logged out
2023-09-25 13:55:35 -04:00
Carlo Costino
40235905e2 Merge pull request #795 from GSA/bug-failed-message-style
Styling update for failed section
2023-09-22 16:47:33 -04:00
Jonathan Bobel
e2ab8ea008 Styling update for failed section 2023-09-22 16:35:12 -04:00
Jonathan Bobel
2675099664 Content updates 2023-09-22 16:16:49 -04:00
Kenneth Kehl
1d66533111 merge from main and resolve conflicts 2023-09-22 12:37:32 -07:00
Kenneth Kehl
75f5224019 poetry lock 2023-09-22 12:37:00 -07:00
Steven Reilly
492bc7b355 Merge pull request #792 from GSA/stvnrlly/port-healthcheck
Switch to port healthcheck
2023-09-22 15:12:34 -04:00
Steven Reilly
75f820e75b switch to port healthcheck 2023-09-22 15:03:19 -04:00
Kenneth Kehl
aa6d54a353 upgrade cryptography for dependency audit 2023-09-22 10:16:27 -07:00
Kenneth Kehl
5bc752a826 fix tests 2023-09-22 10:05:50 -07:00
Steven Reilly
6e082a352d Merge pull request #789 from GSA/dependabot/pip/pyproj-3.6.1
Bump pyproj from 3.6.0 to 3.6.1
2023-09-22 10:58:29 -04:00
dependabot[bot]
b51f3f73fe Bump pyproj from 3.6.0 to 3.6.1
Bumps [pyproj](https://github.com/pyproj4/pyproj) from 3.6.0 to 3.6.1.
- [Release notes](https://github.com/pyproj4/pyproj/releases)
- [Changelog](https://github.com/pyproj4/pyproj/blob/main/docs/history.rst)
- [Commits](https://github.com/pyproj4/pyproj/compare/3.6.0...3.6.1)

---
updated-dependencies:
- dependency-name: pyproj
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-21 23:46:30 +00:00
Jonathan Bobel
811c51c469 Styling and conditional changes for mobile menu button 2023-09-21 15:01:29 -04:00
Carlo Costino
d8f930e3d5 Merge pull request #782 from GSA/dependabot/pip/flake8-bugbear-23.9.16
Bump flake8-bugbear from 23.7.10 to 23.9.16
2023-09-21 11:59:53 -04:00
dependabot[bot]
5c40f826f2 Bump flake8-bugbear from 23.7.10 to 23.9.16
Bumps [flake8-bugbear](https://github.com/PyCQA/flake8-bugbear) from 23.7.10 to 23.9.16.
- [Release notes](https://github.com/PyCQA/flake8-bugbear/releases)
- [Commits](https://github.com/PyCQA/flake8-bugbear/compare/23.7.10...23.9.16)

---
updated-dependencies:
- dependency-name: flake8-bugbear
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-21 15:51:30 +00:00
Carlo Costino
acb0e76517 Merge pull request #781 from GSA/dependabot/pip/moto-4.2.3
Bump moto from 4.2.2 to 4.2.3
2023-09-21 11:49:39 -04:00
Carlo Costino
02891b9b36 Merge pull request #784 from GSA/notify-admin-769
notify-admin-652 create new service does not work in demo
2023-09-21 11:48:46 -04:00
Carlo Costino
bb2d0a375e Merge pull request #785 from GSA/783-make-all-favicon-usa
783 - convert all favicons to usa flag
2023-09-21 11:32:38 -04:00
Jonathan Bobel
c069ab7abc Slight change to the icon 2023-09-21 09:55:42 -04:00
Jonathan Bobel
54eb8df9f7 - Added new flag imagery for favicon and related images
- Removed preloaded fonts - legacy UK site stuff
- Added the ability to run pa11y scan with npm run pa11y-ci
2023-09-20 13:52:54 -04:00
Kenneth Kehl
e3490691d3 notify-admin-762 fix tests 2023-09-19 14:30:32 -07:00
Kenneth Kehl
4753be56c2 notify-admin-652 change comment 2023-09-19 12:41:34 -07:00
Carlo Costino
1c657ff170 Merge pull request #752 from GSA/notify-admin-723
notify-admin-723 run e2e tests without authenticating test users
2023-09-19 15:38:32 -04:00
Kenneth Kehl
b5cac7bfb1 notify-admin-769 2023-09-19 12:22:40 -07:00
Kenneth Kehl
ab71be0246 merge from main 2023-09-19 10:31:33 -07:00
dependabot[bot]
429bbe2e87 Bump moto from 4.2.2 to 4.2.3
Bumps [moto](https://github.com/getmoto/moto) from 4.2.2 to 4.2.3.
- [Release notes](https://github.com/getmoto/moto/releases)
- [Changelog](https://github.com/getmoto/moto/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getmoto/moto/compare/4.2.2...4.2.3)

---
updated-dependencies:
- dependency-name: moto
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-18 23:18:37 +00:00
Carlo Costino
10d207eac4 Merge pull request #779 from GSA/778-dashboard-button-unstyled
Styling update to fix broken link when status is failing
2023-09-18 17:38:02 -04:00
Carlo Costino
5683c50cc4 Merge pull request #773 from GSA/notify-762
Notify 762 - Redirect notify.gov to beta.notify.gov
2023-09-18 17:26:20 -04:00
Carlo Costino
3110189402 Fix test style issues
Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-09-18 16:18:48 -04:00
Carlo Costino
d02d2de9dc Made a few adjustments to test the beta redirect:
- Explicitly return the redirect
- Change the redirect to be a 302 instead of 301
- Adjusted the test client to allow sub domains
- Added the remaining tests

A big thank you to @A-Shumway42 for getting this work underway!

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-09-18 15:59:28 -04:00
Jonathan Bobel
a752566e2f Fixed a test 2023-09-18 12:29:40 -04:00
Jonathan Bobel
594e1095f7 Styling update to fix broken link when status is failing 2023-09-18 12:14:28 -04:00
Steven Reilly
c00f769e44 Merge pull request #775 from GSA/767-move-sign-out-nav-item
Moving the sign out nav item to the right
2023-09-18 10:43:49 -04:00
Jonathan Bobel
c94da180cc Merge branch 'main' of https://github.com/GSA/notifications-admin into 767-move-sign-out-nav-item
# Conflicts:
#	app/assets/sass/uswds/_uswds-theme-custom-styles.scss
2023-09-18 09:57:41 -04:00
Andrew Shumway
15123f06f9 Removed import 2023-09-18 06:33:26 -06:00
Andrew Shumway
118fd13189 Refactor code. Tests still failing 2023-09-18 06:24:17 -06:00
Carlo Costino
bffd013702 Merge pull request #774 from GSA/758-display-problems-send-text-path
758 - Display problems send text path
2023-09-15 16:06:27 -04:00
Jonathan Bobel
d4500461d0 Changing the name of this scss file 2023-09-15 15:47:41 -04:00
Jonathan Bobel
8e158e7646 Moving the sign out nav item to the right 2023-09-15 15:46:24 -04:00
Jonathan Bobel
3ed4af79c7 Small content change for this test 2023-09-15 14:55:01 -04:00
Jonathan Bobel
f075d28799 Moved some files around to keep the legacy govuk styles in their own place in case we don't need them someday 2023-09-15 13:29:33 -04:00
Jonathan Bobel
a0e139f14b Some minor adjustments after viewing the Dashboard after a send 2023-09-15 12:56:07 -04:00
Jonathan Bobel
dedb41f67e Fixing styling issues on the send message flow 2023-09-15 12:26:31 -04:00
Andrew Shumway
068663ec1a Merge branch 'main' of https://github.com/GSA/notifications-admin into notify-762 2023-09-14 15:00:10 -06:00
Andrew Shumway
e22386e91b Redirect implemented with tests coverage 2023-09-14 14:59:48 -06:00
Jonathan Bobel
f16c7b6699 Merge branch 'main' of https://github.com/GSA/notifications-admin into 758-display-problems-send-text-path 2023-09-14 16:17:26 -04:00
Carlo Costino
0db9fda4b3 Merge pull request #770 from GSA/stvnrlly/disable-e2e
Disable e2e tests to allow deploys
2023-09-14 15:56:51 -04:00
Steven Reilly
06f7283a32 Merge pull request #760 from GSA/tdlowden-sprint-goals
Update sprint-goals.md
2023-09-14 15:44:43 -04:00
stvnrlly
33e82ed302 disable health check step as well 2023-09-14 15:44:08 -04:00
stvnrlly
040221b7c6 disable e2e tests to allow deploys 2023-09-14 14:15:56 -04:00
Jonathan Bobel
bbf41bae5e Reintroducing govuk styles for file upload page 2023-09-14 14:10:07 -04:00
Carlo Costino
5c53b8789e Merge pull request #763 from GSA/notify-admin-761
notify-admin-761 remove BasicAuth
2023-09-14 12:20:22 -04:00
Andrew Shumway
d856e39484 Create export of session timer for tests 2023-09-14 08:56:46 -06:00
Kenneth Kehl
0218ffd9ba notify-admin-761 remove basic auth 2023-09-14 07:47:38 -07:00
Kenneth Kehl
5e1a224c29 notify-admin-721 remove BasicAuth 2023-09-13 14:23:46 -07:00
Kenneth Kehl
e2b82991af code review feedback 2023-09-13 13:47:43 -07:00
Tim Lowden
731f571d76 Update sprint-goals.md 2023-09-13 16:29:07 -04:00
Tim Lowden
c975f57c95 Update sprint-goals.md 2023-09-13 16:27:05 -04:00
Carlo Costino
c192e9f53f Merge pull request #759 from GSA/notify-admin-550
notify-admin-550 health check
2023-09-13 16:21:33 -04:00
Kenneth Kehl
91f1790c89 fix up 2023-09-13 12:16:43 -07:00
Andrew Shumway
f257a38084 Refactor code/initial tests 2023-09-13 12:44:40 -06:00
Kenneth Kehl
6c1a5687e8 fix typo 2023-09-13 11:42:45 -07:00
Kenneth Kehl
fe259b491d try again 2023-09-13 11:34:44 -07:00
Kenneth Kehl
ddaee26074 try again 2023-09-13 11:27:15 -07:00
Kenneth Kehl
5f84cd1bbe try again 2023-09-13 11:17:07 -07:00
Kenneth Kehl
50f6a66542 try again 2023-09-13 11:05:52 -07:00
Kenneth Kehl
21e5c7d103 try again 2023-09-13 10:52:51 -07:00
Kenneth Kehl
1d9239aa13 try again 2023-09-13 10:35:53 -07:00
Kenneth Kehl
a1974a251e try again 2023-09-13 10:28:01 -07:00
Kenneth Kehl
f433d69596 try again 2023-09-13 10:10:01 -07:00
Kenneth Kehl
2a641d0d4e try again 2023-09-13 09:52:11 -07:00
Kenneth Kehl
daaa04b292 try again 2023-09-13 09:43:11 -07:00
Kenneth Kehl
35f80589c1 try again 2023-09-13 09:33:59 -07:00
Kenneth Kehl
c890d12a26 try again 2023-09-13 09:22:01 -07:00
Kenneth Kehl
b164d175a8 try again 2023-09-13 09:19:36 -07:00
Kenneth Kehl
f87d717425 try again 2023-09-13 09:11:51 -07:00
Kenneth Kehl
bb9bd9872e try again 2023-09-13 09:09:55 -07:00
Kenneth Kehl
b85a26e6be try again 2023-09-13 08:59:15 -07:00
Kenneth Kehl
bfb49d44ae try again 2023-09-13 08:47:11 -07:00
Kenneth Kehl
851505c906 try again 2023-09-13 08:36:48 -07:00
Kenneth Kehl
51e2da1be0 try again 2023-09-13 08:30:05 -07:00
Kenneth Kehl
bfe8c74ce2 try again 2023-09-13 08:14:50 -07:00
Kenneth Kehl
f0cfb51441 try again 2023-09-13 08:07:19 -07:00
Kenneth Kehl
1d397852b3 try again 2023-09-13 08:00:25 -07:00
Kenneth Kehl
7e4cdd23a1 try again 2023-09-13 07:54:01 -07:00
Kenneth Kehl
f23f13f201 try again 2023-09-13 07:51:43 -07:00
Kenneth Kehl
eec791265c try again 2023-09-13 07:48:03 -07:00
Kenneth Kehl
3a94826ad6 try again 2023-09-12 15:03:28 -07:00
Kenneth Kehl
96452f8338 try again 2023-09-12 14:48:14 -07:00
Kenneth Kehl
f69d7d106e try again 2023-09-12 14:38:16 -07:00
Kenneth Kehl
f83056851e try again 2023-09-12 14:29:22 -07:00
Kenneth Kehl
611ebc48d1 try again 2023-09-12 14:20:46 -07:00
Kenneth Kehl
3909bfd1c4 try again 2023-09-12 14:13:25 -07:00
Steven Reilly
99436f65f9 Merge pull request #749 from GSA/dependabot/pip/coverage-7.3.1
Bump coverage from 7.3.0 to 7.3.1
2023-09-12 16:57:33 -04:00
Kenneth Kehl
e5e0cf5dee try again 2023-09-12 13:56:49 -07:00
Kenneth Kehl
30439bd3d9 try again 2023-09-12 13:54:13 -07:00
Kenneth Kehl
6596b7e89c try again 2023-09-12 13:45:30 -07:00
Kenneth Kehl
94152b51ef try again 2023-09-12 13:42:34 -07:00
Kenneth Kehl
5a7c19ed22 try again 2023-09-12 13:39:26 -07:00
Kenneth Kehl
6bd98188f9 try again 2023-09-12 13:33:56 -07:00
Kenneth Kehl
4b8ad438f2 notify-admin-550 2023-09-12 13:05:37 -07:00
Jonathan Bobel
c6e356c315 Changed a few things for accessibility 2023-09-12 15:17:06 -04:00
dependabot[bot]
5a61dccba0 Bump coverage from 7.3.0 to 7.3.1
Bumps [coverage](https://github.com/nedbat/coveragepy) from 7.3.0 to 7.3.1.
- [Release notes](https://github.com/nedbat/coveragepy/releases)
- [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst)
- [Commits](https://github.com/nedbat/coveragepy/compare/7.3.0...7.3.1)

---
updated-dependencies:
- dependency-name: coverage
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-12 18:36:08 +00:00
Steven Reilly
ce54e6d73c Merge pull request #753 from GSA/dependabot/pip/gitpython-3.1.35
Bump gitpython from 3.1.34 to 3.1.35
2023-09-12 14:30:51 -04:00
Kenneth Kehl
93e4d1b4bb fix whoops 2023-09-12 10:45:42 -07:00
Kenneth Kehl
e155f8d392 merge from main 2023-09-12 10:39:32 -07:00
Kenneth Kehl
705808e0e5 remove TODO comment 2023-09-12 10:37:14 -07:00
Andrew Shumway
42cd3b4a0e Moved html to footer 2023-09-12 11:30:27 -06:00
dependabot[bot]
2da3c0de4f Bump gitpython from 3.1.34 to 3.1.35
Bumps [gitpython](https://github.com/gitpython-developers/GitPython) from 3.1.34 to 3.1.35.
- [Release notes](https://github.com/gitpython-developers/GitPython/releases)
- [Changelog](https://github.com/gitpython-developers/GitPython/blob/main/CHANGES)
- [Commits](https://github.com/gitpython-developers/GitPython/compare/3.1.34...3.1.35)

---
updated-dependencies:
- dependency-name: gitpython
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-12 17:29:11 +00:00
Steven Reilly
b3efee251a Merge pull request #751 from GSA/dependabot/pip/pytest-7.4.2
Bump pytest from 7.4.0 to 7.4.2
2023-09-12 13:00:54 -04:00
dependabot[bot]
5807c447dd Bump pytest from 7.4.0 to 7.4.2
Bumps [pytest](https://github.com/pytest-dev/pytest) from 7.4.0 to 7.4.2.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/7.4.0...7.4.2)

---
updated-dependencies:
- dependency-name: pytest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-12 16:49:24 +00:00
Steven Reilly
239af57440 Merge pull request #756 from GSA/dependabot/pip/black-23.9.1
Bump black from 23.7.0 to 23.9.1
2023-09-12 12:45:46 -04:00
dependabot[bot]
227809a328 Bump black from 23.7.0 to 23.9.1
Bumps [black](https://github.com/psf/black) from 23.7.0 to 23.9.1.
- [Release notes](https://github.com/psf/black/releases)
- [Changelog](https://github.com/psf/black/blob/main/CHANGES.md)
- [Commits](https://github.com/psf/black/compare/23.7.0...23.9.1)

---
updated-dependencies:
- dependency-name: black
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-11 23:45:38 +00:00
Kenneth Kehl
f813a403a9 fix tests to use env vars 2023-09-11 14:23:12 -07:00
Steven Reilly
d120b70f0c Merge pull request #755 from GSA/754-fix-pa11yci-bug
Changed "runner" for pa11y-ci
2023-09-11 15:43:34 -04:00
Jonathan Bobel
31919294ad changed runner for pa11y-ci 2023-09-11 15:26:32 -04:00
Steven Reilly
2ff8a08fee Merge pull request #747 from GSA/dependabot/pip/pytz-2023.3.post1
Bump pytz from 2023.3 to 2023.3.post1
2023-09-11 14:02:29 -04:00
Kenneth Kehl
c7de9dcf6a flake8 fixes 2023-09-08 14:12:23 -07:00
Kenneth Kehl
863625de6a fix test_create_new_service_workflow 2023-09-08 13:55:56 -07:00
Kenneth Kehl
29ea098fd3 make some progress 2023-09-08 12:53:35 -07:00
Andrew Shumway
92953676c4 Added user authentication check to timer 2023-09-08 13:51:12 -06:00
Kenneth Kehl
cc8f8dfcc2 initial 2023-09-08 08:38:27 -07:00
Jonathan Bobel
1507199e6b Altered the modal a bit to use USWDS styling and the dialog element - still needs some cleanup but passing it back off to Andrew 2023-09-07 16:41:55 -04:00
Andrew Shumway
559965c479 Merge branch 'main' of https://github.com/GSA/notifications-admin into notify-678 2023-09-07 08:39:14 -06:00
Andrew Shumway
8712d7d822 Functionality for session timer display 2023-09-07 08:38:41 -06:00
Steven Reilly
3c9d6bd56c Merge pull request #738 from GSA/718-clean-up-components-section
718 - Clean up components and update naming conventions
2023-09-06 16:58:25 -04:00
dependabot[bot]
43743e1a47 Bump pytz from 2023.3 to 2023.3.post1
Bumps [pytz](https://github.com/stub42/pytz) from 2023.3 to 2023.3.post1.
- [Commits](https://github.com/stub42/pytz/compare/release_2023.3...release_2023.3.post1)

---
updated-dependencies:
- dependency-name: pytz
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-05 23:10:53 +00:00
Steven Reilly
3490507c3b Merge pull request #741 from GSA/poetry
switch from pipenv to poetry
2023-09-05 14:47:08 -04:00
Steven Reilly
97a6de68b8 update poetry doc link
Co-authored-by: Carlo Costino <ccostino@users.noreply.github.com>
2023-09-05 12:16:52 -04:00
stvnrlly
149a497d9c add config to pull pyenv version 2023-09-05 12:11:30 -04:00
stvnrlly
e6b081b9e5 update git deps 2023-09-05 11:31:22 -04:00
Jonathan Bobel
d8a6004926 - Changing things back to govukFieldset
- Added the usaAlert component
- Edited styles because stripping out UK styles broke the highlighting section
2023-09-01 16:34:54 -04:00
Jonathan Bobel
5e783318b8 Changing govukFieldset to usaFieldset but getting errors 2023-09-01 11:37:33 -04:00
Kenneth Kehl
e8d7d91402 switch from pipenv to poetry 2023-09-01 07:56:02 -07:00
Jonathan Bobel
67c8bef7aa Trying to change govukFieldset but I keep getting testing errors 2023-08-31 14:57:45 -04:00
Carlo Costino
443315d3a5 Merge pull request #739 from GSA/notify-api-446
notify-api-446 change default text message sender from U.S. Notify
2023-08-31 13:49:30 -04:00
Jonathan Bobel
f82d77cdaf Updating usaComponents in more places 2023-08-31 13:24:12 -04:00
Jonathan Bobel
c19083b04e Merge branch 'main' of https://github.com/GSA/notifications-admin into 718-clean-up-components-section
# Conflicts:
#	app/templates/components/components/footer/_footer.scss
#	app/templates/components/components/hint/_hint.scss
#	app/templates/views/service-settings/data-retention.html
#	app/templates/views/service-settings/sms-senders.html
#	app/templates/views/two-factor-webauthn.html
#	app/templates/views/user-profile/security-keys.html
2023-08-31 12:06:55 -04:00
Kenneth Kehl
b5d795e09e notify-api-446 change default text message sender from U.S. Notify 2023-08-31 08:21:28 -07:00
Jonathan Bobel
1881cd7c89 Naming convention changes, adding an alert component (still WIP) 2023-08-31 10:36:29 -04:00
Jonathan Bobel
b1c6a768ec Committing before merge 2023-08-30 11:07:38 -04:00
Steven Reilly
155ea99b36 Merge pull request #719 from GSA/709-remove-govuk-styles
709 remove govuk styles
2023-08-29 14:01:54 -04:00
Carlo Costino
0d2f125140 Merge pull request #736 from GSA/tdlowden-patch-1
Update notify-pilot-info.md
2023-08-29 13:27:28 -04:00
Jonathan Bobel
32083dff99 removing unnecessary scss files 2023-08-29 12:18:52 -04:00
Jonathan Bobel
2675760f4d Still trying to strip out sass and have it build 2023-08-29 09:48:10 -04:00
Tim Lowden
ea6d49e35b Update notify-pilot-info.md
Updating roadmap chart
2023-08-29 09:22:13 -04:00
Jonathan Bobel
84d436baf2 Adding back in sass-embedded 2023-08-28 16:36:35 -04:00
Jonathan Bobel
42c4670c89 Removing more sass includes to see if this addresses my issue 2023-08-28 16:33:25 -04:00
Jonathan Bobel
b04f0dea54 Merge branch 'main' of https://github.com/GSA/notifications-admin into 709-remove-govuk-styles 2023-08-28 16:26:50 -04:00
Jonathan Bobel
c7b756e46c Removing sass 2023-08-28 16:25:01 -04:00
Jonathan Bobel
7a100a68f2 Checking to see if this is the reason the build is failing 2023-08-28 16:01:47 -04:00
Jonathan Bobel
c02b7b0047 Few govuk to usa changes on this page which I'm not sure when you see it 2023-08-28 15:26:19 -04:00
Jonathan Bobel
fea6debaf2 More changes from govuk to usa 2023-08-28 14:40:33 -04:00
Steven Reilly
38c6ddf0bc Merge pull request #732 from GSA/dependabot/pip/gunicorn-21.2.0
Bump gunicorn from 20.1.0 to 21.2.0
2023-08-28 14:18:50 -04:00
Jonathan Bobel
3cee5302e4 Changes to the forms file 2023-08-28 12:29:25 -04:00
Jonathan Bobel
2e16d8d31b Updates after merging black 2023-08-28 12:12:21 -04:00
Jonathan Bobel
40dd67056d Merge branch 'main' of https://github.com/GSA/notifications-admin into 709-remove-govuk-styles
# Conflicts:
#	Pipfile.lock
#	app/main/forms.py
#	tests/app/main/views/accounts/test_choose_accounts.py
#	tests/app/main/views/organizations/test_organizations.py
#	tests/app/main/views/service_settings/test_service_settings.py
#	tests/app/main/views/test_add_service.py
#	tests/app/main/views/test_api_integration.py
#	tests/app/main/views/test_dashboard.py
#	tests/app/main/views/test_find_users.py
#	tests/app/main/views/test_index.py
#	tests/app/main/views/test_jobs.py
#	tests/app/main/views/test_platform_admin.py
#	tests/app/main/views/test_template_folders.py
#	tests/app/main/views/test_tour.py
2023-08-28 10:25:53 -04:00
dependabot[bot]
68f6145ca5 Bump gunicorn from 20.1.0 to 21.2.0
Bumps [gunicorn](https://github.com/benoitc/gunicorn) from 20.1.0 to 21.2.0.
- [Release notes](https://github.com/benoitc/gunicorn/releases)
- [Commits](https://github.com/benoitc/gunicorn/compare/20.1.0...21.2.0)

---
updated-dependencies:
- dependency-name: gunicorn
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-25 23:21:05 +00:00
Carlo Costino
c3e4114b3e Merge pull request #725 from GSA/notify-api-389
notify-api-389 unpin gunicorn
2023-08-25 17:04:41 -04:00
Kenneth Kehl
df754c34ed merge from main 2023-08-25 13:48:17 -07:00
Carlo Costino
787c46e7b0 Merge pull request #729 from GSA/notify-api-412b
notify-api-412b use black to enforce python coding style
2023-08-25 16:37:22 -04:00
Kenneth Kehl
51b6c38e2f refresh PR? 2023-08-25 12:58:53 -07:00
Jonathan Bobel
8ab550a22f Radio buttons and list edits 2023-08-25 15:31:44 -04:00
Carlo Costino
34e52f4887 Merge pull request #731 from GSA/remove-final-metrics
Remove final metrics reference
2023-08-25 15:15:06 -04:00
Carlo Costino
bbc84fc095 Remove final metrics reference
This changeset removes a leftover reference to the gds_metrics library, which was taken out previously.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-08-25 14:50:52 -04:00
Carlo Costino
522c99cb0b Merge pull request #730 from GSA/update-cloud-gov-org
Update cloud.gov org references
2023-08-25 14:27:29 -04:00
Carlo Costino
a44afb0bcc Update cloud.gov org references
quote>
quote> This changeset adjusts our references to the cloud.gov org we are using from gsa-tts-benefits-studio-prototyping to gsa-tts-benefits-studio.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-08-25 12:25:18 -04:00
Kenneth Kehl
8c9721d8e2 notify-api-412 use black to enforce python coding style 2023-08-25 09:12:23 -07:00
Kenneth Kehl
c6eb007386 merge from main 2023-08-25 08:57:24 -07:00
Jonathan Bobel
8b3807da3c Removing the govuk-body class 2023-08-25 11:49:13 -04:00
Jonathan Bobel
64256a6f57 Removing govuk utility classes 2023-08-25 11:38:07 -04:00
Jonathan Bobel
8ea03c9da6 Few style and header changes 2023-08-25 11:11:15 -04:00
Jonathan Bobel
a388178e2a Removing or changing more govuk styles 2023-08-25 10:40:56 -04:00
Carlo Costino
1463d8421b Merge pull request #728 from GSA/dependabot/pip/vulture-2.9.1
Bump vulture from 2.7 to 2.9.1
2023-08-25 10:33:37 -04:00
Kenneth Kehl
7743c2fe79 modify gunicorn to specify eventlet (green threads) 2023-08-25 07:31:57 -07:00
dependabot[bot]
fc20dbc842 Bump vulture from 2.7 to 2.9.1
Bumps [vulture](https://github.com/jendrikseipp/vulture) from 2.7 to 2.9.1.
- [Release notes](https://github.com/jendrikseipp/vulture/releases)
- [Changelog](https://github.com/jendrikseipp/vulture/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jendrikseipp/vulture/compare/v2.7...v2.9.1)

---
updated-dependencies:
- dependency-name: vulture
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-25 14:23:22 +00:00
Jonathan Bobel
769f1e9355 Merge branch 'main' of https://github.com/GSA/notifications-admin into 709-remove-govuk-styles 2023-08-25 09:12:16 -04:00
Steven Reilly
aa0f1b39cf Merge pull request #722 from GSA/notify-admin-211
notify-admin-211 remove nhs-specific code
2023-08-24 21:03:23 -04:00
Steven Reilly
bdb363daf8 Merge pull request #708 from GSA/notify-admin-674
notify-admin-674 remove gds_metrics
2023-08-24 20:28:39 -04:00
stvnrlly
6c6c22c307 Merge branch 'main' into notify-admin-211 2023-08-24 20:27:40 -04:00
Steven Reilly
be39bc9692 Merge pull request #727 from GSA/dependabot/pip/pytest-env-1.0.1
Bump pytest-env from 1.0.0 to 1.0.1
2023-08-24 20:25:33 -04:00
dependabot[bot]
ea40b59643 Bump pytest-env from 1.0.0 to 1.0.1
Bumps [pytest-env](https://github.com/pytest-dev/pytest-env) from 1.0.0 to 1.0.1.
- [Release notes](https://github.com/pytest-dev/pytest-env/releases)
- [Commits](https://github.com/pytest-dev/pytest-env/compare/1.0.0...1.0.1)

---
updated-dependencies:
- dependency-name: pytest-env
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-25 00:13:28 +00:00
Steven Reilly
5e4faf2b0a Merge pull request #696 from GSA/686-remove-uk-styles
686 Remove UK references and styles
2023-08-24 16:20:18 -04:00
Steven Reilly
cd8c11e66c Merge pull request #726 from GSA/cleanup-e2e-test-state
Clean up state of E2E tests
2023-08-24 15:50:11 -04:00
Carlo Costino
d79e15c2a1 Clean up state of E2E tests
This changeset takes care of leaving E2E tests in a clean state so that
we can revisit the work later.  The efforts to add authentication
support did not pan out, so we will go a different route in the near
future.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-08-24 15:31:21 -04:00
Kenneth Kehl
b98909727f notify-api-389 unpin gunicorn 2023-08-24 11:12:23 -07:00
Kenneth Kehl
476644369d notify-admin-211 remove nhs-specific code 2023-08-24 07:49:42 -07:00
Jonathan Bobel
a9ee0769ee Fixing this test 2023-08-23 16:34:33 -04:00
Jonathan Bobel
412fad89ff Changing the govuk grid to USWDS 2023-08-23 16:18:25 -04:00
Jonathan Bobel
4aa781ed9a Merge branch 'main' of https://github.com/GSA/notifications-admin into 686-remove-uk-styles 2023-08-23 11:24:50 -04:00
Jonathan Bobel
966e929d47 Got the tests to work 2023-08-23 11:24:35 -04:00
Kenneth Kehl
f47deb1f99 Merge pull request #690 from GSA/notify-api-387
notify-api-387 Scan projects for unused code
2023-08-23 07:38:16 -07:00
Kenneth Kehl
3109476637 merge from main 2023-08-23 07:28:00 -07:00
Kenneth Kehl
8f4fd494c5 merge from main 2023-08-23 07:21:28 -07:00
Kenneth Kehl
c597b2d898 Merge pull request #716 from GSA/dependabot/pip/pytest-env-1.0.0
Bump pytest-env from 0.8.2 to 1.0.0
2023-08-23 07:11:40 -07:00
dependabot[bot]
a34d6f139f Bump pytest-env from 0.8.2 to 1.0.0
Bumps [pytest-env](https://github.com/pytest-dev/pytest-env) from 0.8.2 to 1.0.0.
- [Release notes](https://github.com/pytest-dev/pytest-env/releases)
- [Commits](https://github.com/pytest-dev/pytest-env/compare/0.8.2...1.0.0)

---
updated-dependencies:
- dependency-name: pytest-env
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-22 23:48:36 +00:00
stvnrlly
8eba976ec1 one further step back in pipenv-land 2023-08-22 18:12:51 -04:00
stvnrlly
266416f07b pin pipenv to older version 2023-08-22 18:10:31 -04:00
Steven Reilly
88236f3ff0 Merge pull request #706 from GSA/dependabot/pip/newrelic-8.10.1
Bump newrelic from 8.10.0 to 8.10.1
2023-08-22 17:59:34 -04:00
Kenneth Kehl
feebdd2f59 try another way 2023-08-22 14:59:19 -07:00
dependabot[bot]
d31905c8ad Bump newrelic from 8.10.0 to 8.10.1
Bumps [newrelic](https://github.com/newrelic/newrelic-python-agent) from 8.10.0 to 8.10.1.
- [Release notes](https://github.com/newrelic/newrelic-python-agent/releases)
- [Commits](https://github.com/newrelic/newrelic-python-agent/compare/v8.10.0...v8.10.1)

---
updated-dependencies:
- dependency-name: newrelic
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-22 21:52:35 +00:00
Steven Reilly
9fc44a352b Merge branch 'main' into notify-api-387 2023-08-22 17:45:04 -04:00
Steven Reilly
57b0a675ee Merge pull request #711 from GSA/dependabot/pip/flask-2.3.3
Bump flask from 2.3.2 to 2.3.3
2023-08-22 17:43:34 -04:00
Kenneth Kehl
9f62313332 try using commit hash 2023-08-22 10:09:21 -07:00
Kenneth Kehl
bf338368a1 change package name to v0.5.8-alpha 2023-08-22 09:59:49 -07:00
Jonathan Bobel
a4fc40bcba Renamed components folder, put failing tests back in to get some assistance with those 2023-08-22 12:40:53 -04:00
Kenneth Kehl
502af3b8fe try downgrade to 0.5.5 2023-08-22 09:33:52 -07:00
Kenneth Kehl
0829fa2fad try changing org name 2023-08-22 09:18:20 -07:00
Kenneth Kehl
f9c95eee4a merge from main 2023-08-22 08:09:23 -07:00
Kenneth Kehl
864c3dd6d9 code review feedback 2023-08-22 07:54:25 -07:00
dependabot[bot]
d9924ed857 Bump flask from 2.3.2 to 2.3.3
Bumps [flask](https://github.com/pallets/flask) from 2.3.2 to 2.3.3.
- [Release notes](https://github.com/pallets/flask/releases)
- [Changelog](https://github.com/pallets/flask/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/flask/compare/2.3.2...2.3.3)

---
updated-dependencies:
- dependency-name: flask
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-22 00:15:09 +00:00
Kenneth Kehl
5b8b235cb6 notify-admin-674 remove gds_metrics 2023-08-18 11:01:27 -07:00
Jonathan Bobel
96d9e009af Merge branch 'main' of https://github.com/GSA/notifications-admin into 686-remove-uk-styles 2023-08-18 11:57:47 -04:00
Jonathan Bobel
51fde90f79 A few clean-up items in the Platform Admin section 2023-08-18 11:30:30 -04:00
Carlo Costino
77271df2a8 Merge pull request #699 from GSA/tdlowden-sprint-goals
Update sprint-goals.md
2023-08-17 17:16:21 -04:00
Jonathan Bobel
cc0e0a90f0 Few amendments to a failing test 2023-08-17 15:27:49 -04:00
Jonathan Bobel
a574fc7b3a Working through the Platform Admin section 2023-08-17 15:13:26 -04:00
Carlo Costino
5ada4a5200 Merge pull request #705 from GSA/dependabot/pip/humanize-4.8.0
Bump humanize from 4.7.0 to 4.8.0
2023-08-17 10:48:21 -04:00
dependabot[bot]
93cc86b919 Bump humanize from 4.7.0 to 4.8.0
Bumps [humanize](https://github.com/python-humanize/humanize) from 4.7.0 to 4.8.0.
- [Release notes](https://github.com/python-humanize/humanize/releases)
- [Commits](https://github.com/python-humanize/humanize/compare/4.7.0...4.8.0)

---
updated-dependencies:
- dependency-name: humanize
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-16 23:59:41 +00:00
Carlo Costino
0d2d11282a Merge pull request #704 from GSA/notify-admin-703
notify-admin-703 remove outdated daily message
2023-08-16 16:22:48 -04:00
Kenneth Kehl
88d55242a6 notify-admin-703 remove outdated daily message 2023-08-16 12:21:01 -07:00
Andrew Shumway
9d16738c83 Add initial file for popup 2023-08-16 10:55:24 -06:00
Jonathan Bobel
031a643b26 Working through the Platform Admin section 2023-08-16 12:49:36 -04:00
Jonathan Bobel
01a319e0be Commit before editing platform admin area 2023-08-16 11:15:23 -04:00
Tim Lowden
b3db38e988 Update sprint-goals.md 2023-08-16 10:49:24 -04:00
Tim Lowden
e44e843614 Update sprint-goals.md 2023-08-16 10:48:48 -04:00
Jonathan Bobel
bad2fd5fe4 Adjusted styles to *not* break tests 2023-08-15 16:45:48 -04:00
Jonathan Bobel
d66ff27bae Merge branch 'main' of https://github.com/GSA/notifications-admin into 686-remove-uk-styles
# Conflicts:
#	app/assets/stylesheets/main.scss
#	app/templates/views/find-users/user-information.html
#	app/templates/views/two-factor-webauthn.html
#	app/templates/views/user-profile/manage-security-key.html
#	app/templates/views/user-profile/security-keys.html
#	gulpfile.js
2023-08-15 13:29:39 -04:00
Jonathan Bobel
6b22c347da Got the tests to pass, so doing a commit 2023-08-15 13:22:39 -04:00
Carlo Costino
01c18c9624 Merge pull request #698 from GSA/dependabot/pip/exceptiongroup-1.1.3
Bump exceptiongroup from 1.1.2 to 1.1.3
2023-08-15 09:39:55 -04:00
dependabot[bot]
e472282769 Bump exceptiongroup from 1.1.2 to 1.1.3
Bumps [exceptiongroup](https://github.com/agronholm/exceptiongroup) from 1.1.2 to 1.1.3.
- [Changelog](https://github.com/agronholm/exceptiongroup/blob/main/CHANGES.rst)
- [Commits](https://github.com/agronholm/exceptiongroup/compare/1.1.2...1.1.3)

---
updated-dependencies:
- dependency-name: exceptiongroup
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-14 23:59:27 +00:00
Steven Reilly
bc04bccdca Merge pull request #694 from GSA/switch-to-fips
Switch to using FIPS-enabled endpoints
2023-08-14 17:13:52 -04:00
Steven Reilly
1a34c5f6ce Merge pull request #697 from GSA/remove-webauthn
Remove webauthn hooks
2023-08-14 17:06:49 -04:00
Steven Reilly
26a454122c Merge pull request #684 from GSA/notify-api-386
notify-api-386 scan projects for code complexity
2023-08-14 17:06:37 -04:00
Carlo Costino
97dff0a92c Remove unnecessary ACL config additions
Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-08-14 17:03:18 -04:00
Carlo Costino
9e609efa1c Remove webauthn hooks
This changeset removes webauthn from the Notify.gov admin app.  We are not using webauthn at all in our implementation and will be looking at an entirely different authentication system in the near future.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-08-14 16:59:38 -04:00
Steven Reilly
da4a78a7e2 Merge branch 'main' into notify-api-386 2023-08-14 16:40:46 -04:00
Jonathan Bobel
ff33c7c7f9 Fixing tests 2023-08-14 15:29:10 -04:00
Jonathan Bobel
ffafc16430 Fixed a few broken styles in the template search 2023-08-14 15:02:07 -04:00
Jonathan Bobel
68d49fc8dd More updates to checkboxes and radio buttons 2023-08-14 14:30:57 -04:00
Jonathan Bobel
0929a920b7 Merge branch 'main' of https://github.com/GSA/notifications-admin into 686-remove-uk-styles 2023-08-14 12:33:35 -04:00
Jonathan Bobel
1be305d045 Reworking checkboxes to adhere to USWDS styling 2023-08-14 10:35:11 -04:00
Carlo Costino
a85b98ecb5 Merge pull request #695 from GSA/dependabot/pip/newrelic-8.10.0
Bump newrelic from 8.9.0 to 8.10.0
2023-08-11 16:37:02 -04:00
dependabot[bot]
e4dad627df Bump newrelic from 8.9.0 to 8.10.0
Bumps [newrelic](https://github.com/newrelic/newrelic-python-agent) from 8.9.0 to 8.10.0.
- [Release notes](https://github.com/newrelic/newrelic-python-agent/releases)
- [Commits](https://github.com/newrelic/newrelic-python-agent/compare/v8.9.0...v8.10.0)

---
updated-dependencies:
- dependency-name: newrelic
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-10 23:43:29 +00:00
Carlo Costino
bb1c90ff34 Fix use of botocore Config object
Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-08-10 18:27:35 -04:00
Carlo Costino
7e7f4245a4 Switch to using FIPS-enabled endpoints
This changeset switches AWS service touchpoints to use their FIPS-enabled counterparts.  Note that S3 has some specific configuration associated with it.

This changeset also updates our allow ACLs to cover the FIPS-enabled endpoints.  We should investigate removing the non-FIPS endpoints as a part of this.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-08-10 18:05:40 -04:00
Jonathan Bobel
fc9667d25b Merge branch 'main' of https://github.com/GSA/notifications-admin into 686-remove-uk-styles
# Conflicts:
#	app/templates/views/service-settings/set-sms.html
2023-08-08 16:49:56 -04:00
Jonathan Bobel
348e29fb40 - Removed links to the gov uk stylesheets
- Deleted /stylesheets folder
- Removed sass build from gulpfile
- Changed gov links to usa links
- Changed other govuk styles, like breadcrumbs
- Changed name of uk_components file to us_components
- Fixed a few tests that broke on account of the changes
2023-08-08 16:19:17 -04:00
Kenneth Kehl
621c381de8 add dead code command to Makefile 2023-08-08 13:16:20 -07:00
Carlo Costino
c0915a619f Merge pull request #691 from GSA/update-playwright
Update Playwright as a dev dependency
2023-08-08 15:57:30 -04:00
Carlo Costino
15745475b9 Update Playwright as a dev dependency
This changeset updates Playwright to the latest release.  It also modifies it to be correctly identified as a dev dependency with all of the other pytest packages.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-08-08 15:26:11 -04:00
Kenneth Kehl
d36c70ed16 notify-api-387 scan projects for unused code 2023-08-08 12:12:15 -07:00
Kenneth Kehl
5afecc2210 undo change to github workflow because I don't have permission 2023-08-08 11:02:33 -07:00
Kenneth Kehl
b92f386290 notify-api-387 scan projects for unused code 2023-08-08 11:00:09 -07:00
Carlo Costino
382d263972 Merge pull request #671 from GSA/tdlowden-patch-1
Update sprint-goals.md
2023-08-08 12:05:28 -04:00
Carlo Costino
00d9b324dc Merge pull request #688 from GSA/notify-admin-687
notify-admin-687 settings/send text messages changes
2023-08-08 11:59:01 -04:00
Tim Lowden
08fef34c5e Update sprint-goals.md 2023-08-08 11:54:06 -04:00
Kenneth Kehl
47ab69c4ec notify-admin-687 settings/send text messages changes 2023-08-08 07:53:06 -07:00
Kenneth Kehl
4dd3679c4f change failure to be C, D, or F 2023-08-07 10:58:32 -07:00
Kenneth Kehl
1ddc821dd1 notify-api-386 scan projects for code complexity 2023-08-07 10:41:07 -07:00
Carlo Costino
1a1ca0a7c9 Merge pull request #683 from GSA/production
Demo and Production deploy for 8/7/2023
2023-08-07 12:35:41 -04:00
Kenneth Kehl
7637695417 Merge pull request #665 from GSA/dependabot/pip/flake8-6.1.0
Bump flake8 from 6.0.0 to 6.1.0
2023-08-07 08:35:23 -07:00
Carlo Costino
4897658fd0 Merge branch 'main' into production 2023-08-07 11:17:15 -04:00
Kenneth Kehl
d5f9fb15d7 fix test for flake8 2023-08-07 08:07:36 -07:00
Carlo Costino
9c384c1183 Merge pull request #682 from GSA/668-change-UK-to-US-international-phone-number
Changed UK to US for sending international phone numbers
2023-08-04 14:54:12 -04:00
Steven Reilly
5314d82799 Merge pull request #681 from GSA/666-fix-template-bar-length
Removing the section that calculated the count bar for templates
2023-08-04 14:33:29 -04:00
Jonathan Bobel
ec14370b5a Changed UK to US for sending international phone numbers 2023-08-04 14:32:25 -04:00
Jonathan Bobel
d9e5709a0f Removing the section that calculated the count bar for templates and simplified 2023-08-04 14:23:19 -04:00
Carlo Costino
d430bea3ee Merge pull request #675 from GSA/636-remove-uk-requirements
Changed link to email notify support instead of going to request to go live page
2023-08-03 16:42:21 -04:00
Jonathan Bobel
0675749b0c Merge branch 'main' of https://github.com/GSA/notifications-admin into 636-remove-uk-requirements 2023-08-03 14:54:09 -04:00
Jonathan Bobel
74c1bb3baf Changed link to email address instead, adjusted test to reflect 2023-08-03 14:46:36 -04:00
dependabot[bot]
0188bf1cf2 Bump flake8 from 6.0.0 to 6.1.0
Bumps [flake8](https://github.com/pycqa/flake8) from 6.0.0 to 6.1.0.
- [Commits](https://github.com/pycqa/flake8/compare/6.0.0...6.1.0)

---
updated-dependencies:
- dependency-name: flake8
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-03 15:55:17 +00:00
Carlo Costino
41d1d055a4 Merge pull request #672 from GSA/stvnrlly/update-cryptography
Update lockfile to resolve pip-audit finding
2023-08-03 11:29:39 -04:00
Carlo Costino
ab92764840 Remove unused HTTP response header
See https://github.com/wntrblm/flask-talisman/issues/27 for more details

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-08-03 11:13:18 -04:00
Carlo Costino
6972290064 Updated Pipfile.lock with missing dev dependencies
Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-08-03 09:58:57 -04:00
stvnrlly
8438c59064 include dev dependencies in update 2023-08-02 17:01:30 -04:00
stvnrlly
9dc81b101b update pipfile 2023-08-02 09:43:57 -04:00
Steven Reilly
61f6bbd0e8 Merge pull request #663 from GSA/tdlowden-patch-1
Quick name change
2023-08-01 09:26:29 -04:00
Tim Lowden
da57b109fc Merge pull request #662 from GSA/capitalize-notify-logo
Quick change per Meghan
2023-07-31 16:13:32 -04:00
Jonathan Bobel
1dc8d6ee53 Changed the wrong Notify, updating 2023-07-31 14:28:14 -04:00
Tim Lowden
a030c0aaca Update notify-pilot-info.md 2023-07-31 14:21:18 -04:00
Jonathan Bobel
fdd35e8c6b Quick change per Meghan 2023-07-31 12:34:38 -04:00
Steven Reilly
a2db4b5738 Merge pull request #658 from GSA/649-edit-landing-page-content
649 edit landing page content
2023-07-28 15:21:20 -04:00
Jonathan Bobel
e1528a27b2 Seeing if this test change will let it pass 2023-07-28 14:11:03 -04:00
Jonathan Bobel
196f160696 no message 2023-07-28 12:14:31 -04:00
Steven Reilly
0c5090c94b Merge pull request #640 from GSA/notify-admin-638
notify-admin-638 adjust coverage report to fail under 96%
2023-07-28 11:18:59 -04:00
Steven Reilly
be5144b99a Merge pull request #643 from GSA/notify-admin-530 2023-07-28 11:18:36 -04:00
Andrew Shumway
abf06247d2 Added if admin check to remove row in service settings (#621) 2023-07-28 11:17:02 -04:00
Jonathan Bobel
242c7acd34 Changing U.S. Notify to Notify.gov (#656) 2023-07-28 11:12:46 -04:00
Jonathan Bobel
817ebbe923 Small class rearrangement on landing page (#646) 2023-07-28 11:10:02 -04:00
Steven Reilly
eec2caa6e4 Merge branch 'main' into notify-admin-638 2023-07-28 11:04:45 -04:00
Jonathan Bobel
27a193160f 619 - Removing all mention of emails from the pilot (#615) 2023-07-28 11:03:37 -04:00
Carlo Costino
b5664c3d20 Add support for E2E (end-to-end) tests (#625)
This changeset lays the foundation for supporting E2E (end-to-end) integration tests for US Notify.  It brings in the Playwright testing framework along with the Playwright pytest plugin to make this possible, and includes the following adjustments:

- A new test session fixture for ensuring that Playwright authenticates with the sites that are currently behind HTTP Auth (requies env-var config)
- A new end_to_end test directory specifically for E2E tests
- Updates to the Makefile that make sure E2E tests are not run as a part of the normal test routine but can be run separately
- A new command in the Makefile to run E2E tests that will run in Chromium, Firefox, and Webkit headless browsers

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2023-07-28 09:31:45 -04:00
Kenneth Kehl
e3e11327da Merge pull request #629 from GSA/dependabot/npm_and_yarn/word-wrap-1.2.4
Bump word-wrap from 1.2.3 to 1.2.4
2023-07-27 12:30:54 -07:00
Andrew Shumway
34fef6954c Added UTC to formatter return strings and appropriate tests (#617)
Co-authored-by: Andrew Shumway <ashumway@flexion.us>
2023-07-27 11:22:05 -04:00
Kenneth Kehl
08d612166a Merge pull request #657 from GSA/dependabot/pip/flake8-bugbear-23.7.10
Bump flake8-bugbear from 23.3.12 to 23.7.10
2023-07-27 07:39:26 -07:00
Kenneth Kehl
185f98512b fix flake8 2023-07-27 07:29:30 -07:00
Jonathan Bobel
b9736f4cf6 Fixed the test 2023-07-27 09:36:58 -04:00
Jonathan Bobel
18a53b972a Content updates 2023-07-27 09:32:45 -04:00
dependabot[bot]
4aaf73ca7a Bump flake8-bugbear from 23.3.12 to 23.7.10
Bumps [flake8-bugbear](https://github.com/PyCQA/flake8-bugbear) from 23.3.12 to 23.7.10.
- [Release notes](https://github.com/PyCQA/flake8-bugbear/releases)
- [Commits](https://github.com/PyCQA/flake8-bugbear/compare/23.3.12...23.7.10)

---
updated-dependencies:
- dependency-name: flake8-bugbear
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-26 23:38:55 +00:00
Carlo Costino
39e7ba1843 Merge pull request #654 from GSA/main
Deploy 7/26/23
2023-07-26 16:27:18 -04:00
Kenneth Kehl
69598afa0c Merge pull request #578 from GSA/dependabot/pip/flake8-6.0.0
Bump flake8 from 4.0.1 to 6.0.0
2023-07-26 11:10:11 -07:00
Kenneth Kehl
f188dea3cd fix flake8 2023-07-26 10:58:53 -07:00
dependabot[bot]
6d9b60042a Bump flake8 from 4.0.1 to 6.0.0
Bumps [flake8](https://github.com/pycqa/flake8) from 4.0.1 to 6.0.0.
- [Commits](https://github.com/pycqa/flake8/compare/4.0.1...6.0.0)

---
updated-dependencies:
- dependency-name: flake8
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-26 17:18:28 +00:00
Kenneth Kehl
11687479d5 Merge pull request #612 from GSA/dependabot/pip/flake8-bugbear-23.3.12
Bump flake8-bugbear from 22.4.25 to 23.3.12
2023-07-26 09:29:04 -07:00
Kenneth Kehl
3a463737c7 merge from main and resolve 2023-07-26 09:20:05 -07:00
Kenneth Kehl
559ed217e4 fix test 2023-07-26 09:09:06 -07:00
Kenneth Kehl
dc342385ce notify-admin-641 let platform admins export listing of all users (#647)
Co-authored-by: Kenneth Kehl <@kkehl@flexion.us>
Co-authored-by: stvnrlly <steven.reilly@gsa.gov>
2023-07-26 12:08:55 -04:00
dependabot[bot]
8280dadc35 Bump flake8-bugbear from 22.4.25 to 23.3.12
Bumps [flake8-bugbear](https://github.com/PyCQA/flake8-bugbear) from 22.4.25 to 23.3.12.
- [Release notes](https://github.com/PyCQA/flake8-bugbear/releases)
- [Commits](https://github.com/PyCQA/flake8-bugbear/compare/22.4.25...23.3.12)

---
updated-dependencies:
- dependency-name: flake8-bugbear
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-26 15:01:42 +00:00
Kenneth Kehl
71f3ae2316 Merge pull request #653 from GSA/dependabot/pip/pytest-env-0.8.2
Bump pytest-env from 0.6.2 to 0.8.2
2023-07-26 07:53:26 -07:00
dependabot[bot]
8b6a4d9e48 Bump pytest-env from 0.6.2 to 0.8.2
Bumps [pytest-env](https://github.com/pytest-dev/pytest-env) from 0.6.2 to 0.8.2.
- [Release notes](https://github.com/pytest-dev/pytest-env/releases)
- [Commits](https://github.com/pytest-dev/pytest-env/compare/0.6.2...0.8.2)

---
updated-dependencies:
- dependency-name: pytest-env
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-25 23:45:50 +00:00
Kenneth Kehl
adb8229dae Merge pull request #648 from GSA/dependabot/pip/pip-audit-2.6.1
Bump pip-audit from 2.6.0 to 2.6.1
2023-07-25 08:08:24 -07:00
dependabot[bot]
80da9873da Bump pip-audit from 2.6.0 to 2.6.1
Bumps [pip-audit](https://github.com/pypa/pip-audit) from 2.6.0 to 2.6.1.
- [Release notes](https://github.com/pypa/pip-audit/releases)
- [Changelog](https://github.com/pypa/pip-audit/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pypa/pip-audit/compare/v2.6.0...v2.6.1)

---
updated-dependencies:
- dependency-name: pip-audit
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-25 00:02:56 +00:00
Kenneth Kehl
10977b310d Merge pull request #644 from GSA/dependabot/pip/pytest-xdist-3.3.1
Bump pytest-xdist from 2.5.0 to 3.3.1
2023-07-24 09:27:29 -07:00
Carlo Costino
5f7e1cf0dd Merge pull request #628 from GSA/tdlowden-patch-1
Update sprint-goals.md
2023-07-24 09:43:37 -04:00
Tim Lowden
4642c0fa58 Update sprint-goals.md 2023-07-24 08:24:57 -04:00
dependabot[bot]
a6c75d4123 Bump pytest-xdist from 2.5.0 to 3.3.1
Bumps [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) from 2.5.0 to 3.3.1.
- [Changelog](https://github.com/pytest-dev/pytest-xdist/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-xdist/compare/v2.5.0...v3.3.1)

---
updated-dependencies:
- dependency-name: pytest-xdist
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-21 23:41:01 +00:00
Kenneth Kehl
9e323e9477 Merge pull request #619 from GSA/dependabot/pip/prometheus-client-0.17.1
Bump prometheus-client from 0.14.1 to 0.17.1
2023-07-21 09:13:09 -07:00
Kenneth Kehl
933a4808e4 notify-admin-530 remove email info in service name settings 2023-07-21 08:24:10 -07:00
Kenneth Kehl
6188f7bc74 notify-admin-638 adjust coverage report to fail under 96% 2023-07-20 13:20:22 -07:00
Amy Ashida
773298fa54 fixing mailto typo (#637) 2023-07-20 13:47:48 -04:00
Tim Lowden
9800cd0879 Update sprint-goals.md 2023-07-20 11:47:25 -04:00
Tim Lowden
ccca301f8d Merge pull request #632 from GSA/em-herrick-patch-1
Updated "support" email to "marketing" email adress
2023-07-19 17:23:25 -04:00
Emily Herrick
4c004cbc50 Updated support email to marketing email 2023-07-19 16:35:00 -04:00
Carlo Costino
10e4e6a973 Merge pull request #630 from GSA/pilot-info-update
Changing "U.S. Notify" to Notify.gov
2023-07-19 15:35:08 -04:00
Amy Ashida
28220a0c79 Changing "U.S. Notify" to Notify.gov 2023-07-19 13:27:45 -06:00
dependabot[bot]
7f522b918c Bump word-wrap from 1.2.3 to 1.2.4
Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3 to 1.2.4.
- [Release notes](https://github.com/jonschlinkert/word-wrap/releases)
- [Commits](https://github.com/jonschlinkert/word-wrap/compare/1.2.3...1.2.4)

---
updated-dependencies:
- dependency-name: word-wrap
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-19 17:06:22 +00:00
Tim Lowden
ec5cd10511 Update sprint-goals.md 2023-07-19 08:54:31 -04:00
dependabot[bot]
0eb91a4294 Bump prometheus-client from 0.14.1 to 0.17.1
Bumps [prometheus-client](https://github.com/prometheus/client_python) from 0.14.1 to 0.17.1.
- [Release notes](https://github.com/prometheus/client_python/releases)
- [Commits](https://github.com/prometheus/client_python/compare/v0.14.1...v0.17.1)

---
updated-dependencies:
- dependency-name: prometheus-client
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-18 19:12:36 +00:00
stvnrlly
b63192ecaa Merge branch 'main' into production 2023-07-17 13:40:45 -04:00
Ryan Ahearn
8d00f2269a Merge pull request #503 from GSA/main
Enable networking in production
2023-05-09 14:29:01 -04:00
Ryan Ahearn
d2a27ff4c5 Merge pull request #501 from GSA/main
First production deploy
2023-05-09 12:40:00 -04:00
Ryan Ahearn
8840869aee Merge pull request #485 from GSA/main
Demo deploy (Admin)
2023-04-28 11:26:22 -04:00
Ryan Ahearn
9d7adf4416 Merge pull request #444 from GSA/main
Demo deploy (Admin)
2023-03-30 10:53:52 -04:00
Ryan Ahearn
7e4ec44003 Merge pull request #441 from GSA/main
Demo deploy
2023-03-28 17:58:42 -04:00
Ryan Ahearn
c07806d3dd Merge pull request #437 from GSA/main
Demo Deploy
2023-03-24 10:19:21 -04:00
Ryan Ahearn
68c784c202 Merge pull request #396 from GSA/main
Demo deploy
2023-02-27 16:13:50 -05:00
Ryan Ahearn
027fca16b8 Merge pull request #324 from GSA/main
Demo deploy
2023-01-09 10:27:39 -05:00
Ryan Ahearn
a4adb2e8aa Merge pull request #246 from GSA/main
Demo deploy
2022-12-15 14:03:21 -05:00
Ryan Ahearn
200c3c6315 Merge pull request #228 from GSA/main
Demo deploy
2022-12-05 14:17:05 -05:00
Ryan Ahearn
5d5d25d6d3 Merge pull request #224 from GSA/main
Demo deploy
2022-12-02 09:57:08 -05:00
Ryan Ahearn
4fd472182d Merge pull request #188 from GSA/main
Demo deploy
2022-11-15 13:46:41 -05:00
Ryan Ahearn
f02a14e5d0 Merge pull request #183 from GSA/main
Demo deploy
2022-11-07 15:34:30 -05:00
Ryan Ahearn
3e764fe5a6 Merge pull request #177 from GSA/main
Enable network policy in demo
2022-11-03 14:41:33 -04:00
Ryan Ahearn
fefdb54665 Merge pull request #175 from GSA/main
Fix demo deploy script
2022-11-03 14:23:48 -04:00
Ryan Ahearn
414d6621bf Merge pull request #173 from GSA/main
Deploy to demo environment
2022-11-03 14:07:58 -04:00
735 changed files with 42910 additions and 65518 deletions

71
.github/ISSUE_TEMPLATE/bug_template.yml vendored Normal file
View File

@@ -0,0 +1,71 @@
name: "Bug Report"
description: "Use this template to file a bug report"
title: "Bug: [Brief description of the bug]"
labels:
- "Type: Bug"
body:
- type: markdown
attributes:
value: |
Please use this form to file new bugs! Add screenshots to the comments of this initial form.
- type: input
id: contact
attributes:
label: Who discovered this?
description: Was it something you found or are you filing for someone else? If someone else, how can we contact them?
placeholder: ex. email@example.com
validations:
required: false
- type: textarea
id: what-happened
attributes:
label: What happened?
description: Also tell us, what did you expect to happen?
placeholder: Tell us what you see!
value: "A bug happened!"
validations:
required: true
- type: dropdown
id: environment
attributes:
label: Environment
description: In which environment did you experience the bug?
options:
- staging
- demo
- production
validations:
required: true
- type: textarea
id: page
attributes:
label: What pages did this appear on?
description: please include URLs of where you saw the bug
validations:
required: true
- type: textarea
id: reproSteps
attributes:
label: "Detail the steps for someone to reproduce"
description: "Reproduction steps"
validations:
required: true
- type: dropdown
id: browsers
attributes:
label: What browsers are you seeing the problem on?
multiple: true
options:
- Firefox
- Chrome
- Safari
- Microsoft Edge
- type: textarea
id: logs
attributes:
label: Relevant log output
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
render: shell

1
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1 @@
blank_issues_enabled: true

View File

@@ -0,0 +1,76 @@
name: "User Story Template"
description: "Use this template for creating user stories"
title: "User Story: [Brief description of the user story]"
labels:
- "Type: User Story"
body:
- type: markdown
attributes:
value: '**User Story:**'
- type: textarea
id: userType
attributes:
label: "As a [type of user],"
description: "Describe the type of user involved in this story."
validations:
required: true
- type: textarea
id: actionFeature
attributes:
label: "I want [an action or feature],"
description: "Describe the desired action or feature from the user's perspective."
validations:
required: true
- type: textarea
id: benefitValue
attributes:
label: "So that [benefit or value]."
description: "Describe the benefit or value the user expects from the action or feature."
validations:
required: true
- type: markdown
attributes:
value: '**Acceptance Criteria:**'
- type: textarea
id: acceptanceCriteria
attributes:
label: "Detailed condition or criteria that must be met for the user story to be considered complete."
description: "List the acceptance criteria for the user story."
validations:
required: true
- type: markdown
attributes:
value: '**Tasks:**'
- type: textarea
id: tasks
attributes:
label: "List of specific tasks or sub-tasks that need to be done to implement the user story."
description: "Outline the tasks necessary to implement the user story."
validations:
required: true
- type: markdown
attributes:
value: '**Dependencies:**'
- type: textarea
id: dependencies
attributes:
label: "List any dependencies that need to be resolved before starting or completing this user story."
description: "Specify any dependencies related to the user story."
validations:
required: false
- type: markdown
attributes:
value: '**Notes:**'
- type: textarea
id: notes
attributes:
label: "Any additional information or context that might be useful for the team."
description: "Provide any extra notes or context for the user story."
validations:
required: false

View File

@@ -0,0 +1,82 @@
name: "QA Checklist"
description: "Use this template to manually QA for prod push"
title: "QA for prod push: Admin #[insert PR number], API #[insert PR number], Utils #[insert PR number]"
body:
- type: checkboxes
id: Logging_in
attributes:
label: Log In
options:
- label: notify-staging.app.cloud.gov resolves
- label: Clicking sign in takes you to login page
- label: 2FA code is sent promptly
- label: 2FA code input screen appears as expected
- label: After code is entered, you are brought to the “choose service” screen
- label: Choosing a service brings you to the dashboard for that service
- type: checkboxes
id: send_template
attributes:
label: Create a template and send
options:
- label: Clicking “Send messages” brings you to templates page
- label: When “Create a template” button is clicked, the option to create new or copy existing template appears
- label: Uploading a csv is quick and automatically directs you to the preview/send page
- label: Formatting looks clean and in place
- label: Message dashboard populates and shows “pending” until call is made to AWS for delivery receipt
- type: checkboxes
id: send__copied_template
attributes:
label: Send a message from copied template
options:
- label: When “Create a template” button is clicked, the option to create new or copy existing template appears
- label: Clicking “copy an existing template” allows you to choose from pre-existing template
- label: After editing, the new template saves and you prepare to send
- type: checkboxes
id: send__existing_template
attributes:
label: Send a message from existing template
options:
- label: Clicking on existing template brings you to preview screen with `prepare to send` button
- label: All else above persists as true (formatting, send, dashboard, etc)
- type: checkboxes
id: download_report
attributes:
label: Download the csv delivery report
options:
- label: Clicking on the csv download directly after a message send downloads a report that contains the data we expect
- label: The batch report appears on the main dashboard batch table with accurate information
- label: Clicking on the csv download link from the main dashboard downloads a report that contains the data we expect
- type: checkboxes
id: invite_member
attributes:
label: Invite a team member
options:
- label: Clicking on “Team” in settings brings you to team member screen
- label: Clicking “Invite a team member” brings you to email and permissions screen
- label: Clicking invite team member sends an invite and shows confirmation
- label: Invite email provides live link that works to register new team member
- type: checkboxes
id: delete_member
attributes:
label: Delete a team member
options:
- label: From team member screen, clicking “Change Details” on a specific profile brings you to that persons profile
- label: Clicking on “Remove this team member” prompts a confirmation
- label: Clicking the confirmation removes the team member
- type: checkboxes
id: sign_out
attributes:
label: Sign Out
options:
- label: Hitting “Sign Out” takes you back to the homepage and logs you out

View File

@@ -13,9 +13,9 @@ runs:
uses: actions/setup-python@v3
with:
python-version: "3.9"
- name: Install pipenv
- name: Install poetry
shell: bash
run: pip install --upgrade pipenv
run: pip install poetry
- name: Install application dependencies
shell: bash
run: make bootstrap

View File

@@ -33,17 +33,40 @@ jobs:
annotations: failed-tests
prnumber: ${{ steps.findPr.outputs.number }}
- name: Run style checks
run: pipenv run flake8 .
run: poetry run flake8 .
- name: Check imports alphabetized
run: pipenv run isort --check-only ./app ./tests
run: poetry run isort --check-only ./app ./tests
- name: Check dead code
run: make dead-code
- name: Run js lint
run: npm run lint
- name: Run js tests
run: npm test
- name: Run py tests with coverage
run: pipenv run coverage run --omit=*/notifications_utils/* -m pytest --maxfail=10
run: poetry run coverage run --omit=*/notifications_utils/* -m pytest --maxfail=10 --ignore=tests/end_to_end tests/
# - name: Run E2E tests
# run: poetry run pytest -v --browser chromium --browser firefox --browser webkit tests/end_to_end
# env:
# NOTIFY_E2E_AUTH_STATE_PATH: ${{ secrets.NOTIFY_E2E_AUTH_STATE_PATH }}
# NOTIFY_E2E_TEST_EMAIL: ${{ secrets.NOTIFY_E2E_TEST_EMAIL }}
# NOTIFY_E2E_TEST_PASSWORD: ${{ secrets.NOTIFY_E2E_TEST_PASSWORD }}
# NOTIFY_E2E_TEST_URI: ${{ secrets.NOTIFY_E2E_TEST_URI }}
- name: Check coverage threshold
run: pipenv run coverage report --fail-under=90
run: poetry run coverage report --fail-under=90
# - name: Health check
# run: |
# response=$(curl -url ${{secrets.NOTIFY_E2E_TEST_URI}}_status)
# if grep -q "ok" <<< "$response"; then
# echo "Health check passed"
# else
# echo "Health check failed"
# exit 1
# fi
# env:
# NOTIFY_E2E_AUTH_STATE_PATH: ${{ secrets.NOTIFY_E2E_AUTH_STATE_PATH }}
# NOTIFY_E2E_TEST_EMAIL: ${{ secrets.NOTIFY_E2E_TEST_EMAIL }}
# NOTIFY_E2E_TEST_PASSWORD: ${{ secrets.NOTIFY_E2E_TEST_PASSWORD }}
# NOTIFY_E2E_TEST_URI: ${{ secrets.NOTIFY_E2E_TEST_URI }}
validate-new-relic-config:
runs-on: ubuntu-latest
@@ -56,7 +79,7 @@ jobs:
NEW_RELIC_LICENSE_KEY: ${{ secrets.NEW_RELIC_LICENSE_KEY }}
# Need to set a NEW_RELIC_ENVIRONMENT with monitor_mode: true
NEW_RELIC_ENVIRONMENT: staging
run: pipenv run newrelic-admin validate-config $NEW_RELIC_CONFIG_FILE
run: poetry run newrelic-admin validate-config $NEW_RELIC_CONFIG_FILE
dependency-audits:
runs-on: ubuntu-latest
@@ -64,7 +87,7 @@ jobs:
- uses: actions/checkout@v3
- uses: ./.github/actions/setup-project
- name: Create requirements.txt
run: pipenv requirements > requirements.txt
run: poetry export --without-hashes --format=requirements.txt > requirements.txt
- uses: pypa/gh-action-pip-audit@v1.0.6
with:
inputs: requirements.txt
@@ -77,7 +100,7 @@ jobs:
- uses: actions/checkout@v3
- uses: ./.github/actions/setup-project
- name: Run scan
run: pipenv run bandit -r app/ --confidence-level medium
run: poetry run bandit -r app/ --confidence-level medium
dynamic-scan:
runs-on: ubuntu-latest
@@ -89,14 +112,14 @@ jobs:
env:
NOTIFY_ENVIRONMENT: scanning
- name: Run OWASP Baseline Scan
uses: zaproxy/action-baseline@v0.7.0
uses: zaproxy/action-baseline@v0.9.0
with:
docker_name: "owasp/zap2docker-stable"
target: "http://localhost:6012"
docker_name: 'ghcr.io/zaproxy/zaproxy:weekly'
target: 'http://localhost:6012'
fail_action: true
allow_issue_writing: false
rules_file_name: "zap.conf"
cmd_options: "-I"
rules_file_name: 'zap.conf'
cmd_options: '-I'
a11y-scan:
runs-on: ubuntu-20.04

View File

@@ -25,7 +25,7 @@ jobs:
- uses: actions/checkout@v3
- uses: ./.github/actions/setup-project
- name: Create requirements.txt
run: pipenv requirements > requirements.txt
run: poetry export --without-hashes --format=requirements.txt > requirements.txt
- uses: pypa/gh-action-pip-audit@v1.0.6
with:
inputs: requirements.txt
@@ -38,7 +38,7 @@ jobs:
- uses: actions/checkout@v3
- uses: ./.github/actions/setup-project
- name: Run scan
run: pipenv run bandit -r app/ --confidence-level medium
run: poetry run bandit -r app/ --confidence-level medium
dynamic-scan:
runs-on: ubuntu-latest
@@ -50,9 +50,9 @@ jobs:
env:
NOTIFY_ENVIRONMENT: scanning
- name: Run OWASP Full Scan
uses: zaproxy/action-full-scan@v0.4.0
uses: zaproxy/action-full-scan@v0.7.0
with:
docker_name: 'owasp/zap2docker-stable'
docker_name: 'ghcr.io/zaproxy/zaproxy:weekly'
target: 'http://localhost:6012'
fail_action: true
allow_issue_writing: false

View File

@@ -18,7 +18,7 @@ jobs:
- name: Check for changes to Terraform
id: changed-terraform-files
uses: tj-actions/changed-files@v1.1.2
uses: tj-actions/changed-files@v41.0.0
with:
files: |
terraform/demo
@@ -43,8 +43,8 @@ jobs:
- uses: ./.github/actions/setup-project
- name: Create requirements.txt because Cloud Foundry does a weird pipenv thing
run: pipenv requirements > requirements.txt
- name: Create requirements.txt
run: poetry export --without-hashes --format=requirements.txt > requirements.txt
- name: Deploy to cloud.gov
uses: 18f/cg-deploy-action@main
@@ -52,13 +52,20 @@ jobs:
DANGEROUS_SALT: ${{ secrets.DANGEROUS_SALT }}
SECRET_KEY: ${{ secrets.SECRET_KEY }}
ADMIN_CLIENT_SECRET: ${{ secrets.ADMIN_CLIENT_SECRET }}
BASIC_AUTH_PASSWORD: ${{ secrets.BASIC_AUTH_PASSWORD }}
NEW_RELIC_LICENSE_KEY: ${{ secrets.NEW_RELIC_LICENSE_KEY }}
NR_BROWSER_KEY: ${{ secrets.NR_BROWSER_KEY }}
LOGIN_PEM: ${{ secrets.LOGIN_PEM }}
LOGIN_DOT_GOV_CLIENT_ID: "urn:gov:gsa:openidconnect.profiles:sp:sso:gsa:notify-gov"
LOGIN_DOT_GOV_USER_INFO_URL: "https://idp.int.identitysandbox.gov/api/openid_connect/userinfo"
LOGIN_DOT_GOV_ACCESS_TOKEN_URL: "https://idp.int.identitysandbox.gov/api/openid_connect/token"
LOGIN_DOT_GOV_LOGOUT_URL: "https://idp.int.identitysandbox.gov/openid_connect/logout?client_id=urn:gov:gsa:openidconnect.profiles:sp:sso:gsa:notify-gov&post_logout_redirect_uri=https://notify-demo.app.cloud.gov/sign-out"
LOGIN_DOT_GOV_BASE_LOGOUT_URL: "https://idp.int.identitysandbox.gov/openid_connect/logout?"
LOGIN_DOT_GOV_SIGNOUT_REDIRECT: "https://notify-demo.app.cloud.gov/sign-out"
LOGIN_DOT_GOV_INITIAL_SIGNIN_URL: "https://idp.int.identitysandbox.gov/openid_connect/authorize?acr_values=http%3A%2F%2Fidmanagement.gov%2Fns%2Fassurance%2Fial%2F1&client_id=urn:gov:gsa:openidconnect.profiles:sp:sso:gsa:notify-gov&nonce=01234567890123456789012345&prompt=select_account&redirect_uri=https://notify-demo.app.cloud.gov/sign-in&response_type=code&scope=openid+email&state=abcdefghijklmnopabcdefghijklmnop"
with:
cf_username: ${{ secrets.CLOUDGOV_USERNAME }}
cf_password: ${{ secrets.CLOUDGOV_PASSWORD }}
cf_org: gsa-tts-benefits-studio-prototyping
cf_org: gsa-tts-benefits-studio
cf_space: notify-demo
push_arguments: >-
--vars-file deploy-config/demo.yml
@@ -66,14 +73,20 @@ jobs:
--var SECRET_KEY="$SECRET_KEY"
--var ADMIN_CLIENT_USERNAME="notify-admin"
--var ADMIN_CLIENT_SECRET="$ADMIN_CLIENT_SECRET"
--var BASIC_AUTH_USERNAME="curiousabout"
--var BASIC_AUTH_PASSWORD="$BASIC_AUTH_PASSWORD"
--var NEW_RELIC_LICENSE_KEY="$NEW_RELIC_LICENSE_KEY"
--var NR_BROWSER_KEY="$NR_BROWSER_KEY"
--var LOGIN_PEM="$LOGIN_PEM"
--var LOGIN_DOT_GOV_CLIENT_ID="$LOGIN_DOT_GOV_CLIENT_ID"
--var LOGIN_DOT_GOV_USER_INFO_URL="$LOGIN_DOT_GOV_USER_INFO_URL"
--var LOGIN_DOT_GOV_ACCESS_TOKEN_URL="$LOGIN_DOT_GOV_ACCESS_TOKEN_URL"
--var LOGIN_DOT_GOV_LOGOUT_URL="$LOGIN_DOT_GOV_LOGOUT_URL"
--var LOGIN_DOT_GOV_BASE_LOGOUT_URL="$LOGIN_DOT_GOV_BASE_LOGOUT_URL"
--var LOGIN_DOT_GOV_SIGNOUT_REDIRECT="$LOGIN_DOT_GOV_SIGNOUT_REDIRECT"
--var LOGIN_DOT_GOV_INITIAL_SIGNIN_URL="$LOGIN_DOT_GOV_INITIAL_SIGNIN_URL"
- name: Check for changes to egress config
id: changed-egress-config
uses: tj-actions/changed-files@v34
uses: tj-actions/changed-files@v41.0.0
with:
files: |
deploy-config/egress_proxy/notify-admin-demo.*.acl

View File

@@ -18,7 +18,7 @@ jobs:
- name: Check for changes to Terraform
id: changed-terraform-files
uses: tj-actions/changed-files@v1.1.2
uses: tj-actions/changed-files@v41.0.0
with:
files: |
terraform/production
@@ -43,8 +43,8 @@ jobs:
- uses: ./.github/actions/setup-project
- name: Create requirements.txt because Cloud Foundry does a weird pipenv thing
run: pipenv requirements > requirements.txt
- name: Create requirements.txt
run: poetry export --without-hashes --format=requirements.txt > requirements.txt
- name: Deploy to cloud.gov
uses: 18f/cg-deploy-action@main
@@ -52,13 +52,20 @@ jobs:
DANGEROUS_SALT: ${{ secrets.DANGEROUS_SALT }}
SECRET_KEY: ${{ secrets.SECRET_KEY }}
ADMIN_CLIENT_SECRET: ${{ secrets.ADMIN_CLIENT_SECRET }}
BASIC_AUTH_PASSWORD: ${{ secrets.BASIC_AUTH_PASSWORD }}
NEW_RELIC_LICENSE_KEY: ${{ secrets.NEW_RELIC_LICENSE_KEY }}
NR_BROWSER_KEY: ${{ secrets.NR_BROWSER_KEY }}
LOGIN_PEM: ${{ secrets.LOGIN_PEM }}
LOGIN_DOT_GOV_CLIENT_ID: "urn:gov:gsa:openidconnect.profiles:sp:sso:gsa:notify-gov"
LOGIN_DOT_GOV_USER_INFO_URL: "https://secure.login.gov/api/openid_connect/userinfo"
LOGIN_DOT_GOV_ACCESS_TOKEN_URL: "https://secure.login.gov/api/openid_connect/token"
LOGIN_DOT_GOV_LOGOUT_URL: "https://secure.login.gov/openid_connect/logout?client_id=urn:gov:gsa:openidconnect.profiles:sp:sso:gsa:notify-gov&post_logout_redirect_uri=https://beta.notify.gov/sign-out"
LOGIN_DOT_GOV_BASE_LOGOUT_URL: "https://secure.login.gov/openid_connect/logout?"
LOGIN_DOT_GOV_SIGNOUT_REDIRECT: "https://beta.notify.gov/sign-out"
LOGIN_DOT_GOV_INITIAL_SIGNIN_URL: "https://secure.login.gov/openid_connect/authorize?acr_values=http%3A%2F%2Fidmanagement.gov%2Fns%2Fassurance%2Fial%2F1&client_id=urn:gov:gsa:openidconnect.profiles:sp:sso:gsa:notify-gov&nonce=01234567890123456789012345&prompt=select_account&redirect_uri=https://beta.notify.gov/sign-in&response_type=code&scope=openid+email&state=abcdefghijklmnopabcdefghijklmnop"
with:
cf_username: ${{ secrets.CLOUDGOV_USERNAME }}
cf_password: ${{ secrets.CLOUDGOV_PASSWORD }}
cf_org: gsa-tts-benefits-studio-prototyping
cf_org: gsa-tts-benefits-studio
cf_space: notify-production
push_arguments: >-
--vars-file deploy-config/production.yml
@@ -66,14 +73,20 @@ jobs:
--var SECRET_KEY="$SECRET_KEY"
--var ADMIN_CLIENT_USERNAME="notify-admin"
--var ADMIN_CLIENT_SECRET="$ADMIN_CLIENT_SECRET"
--var BASIC_AUTH_USERNAME="curiousabout"
--var BASIC_AUTH_PASSWORD="$BASIC_AUTH_PASSWORD"
--var NEW_RELIC_LICENSE_KEY="$NEW_RELIC_LICENSE_KEY"
--var NR_BROWSER_KEY="$NR_BROWSER_KEY"
--var LOGIN_PEM="$LOGIN_PEM"
--var LOGIN_DOT_GOV_CLIENT_ID="$LOGIN_DOT_GOV_CLIENT_ID"
--var LOGIN_DOT_GOV_USER_INFO_URL="$LOGIN_DOT_GOV_USER_INFO_URL"
--var LOGIN_DOT_GOV_ACCESS_TOKEN_URL="$LOGIN_DOT_GOV_ACCESS_TOKEN_URL"
--var LOGIN_DOT_GOV_LOGOUT_URL="$LOGIN_DOT_GOV_LOGOUT_URL"
--var LOGIN_DOT_GOV_BASE_LOGOUT_URL="$LOGIN_DOT_GOV_BASE_LOGOUT_URL"
--var LOGIN_DOT_GOV_SIGNOUT_REDIRECT="$LOGIN_DOT_GOV_SIGNOUT_REDIRECT"
--var LOGIN_DOT_GOV_INITIAL_SIGNIN_URL="$LOGIN_DOT_GOV_INITIAL_SIGNIN_URL"
- name: Check for changes to egress config
id: changed-egress-config
uses: tj-actions/changed-files@v34
uses: tj-actions/changed-files@v41.0.0
with:
files: |
deploy-config/egress_proxy/notify-admin-production.*.acl

View File

@@ -23,7 +23,7 @@ jobs:
- name: Check for changes to Terraform
id: changed-terraform-files
uses: tj-actions/changed-files@v1.1.2
uses: tj-actions/changed-files@v41.0.0
with:
files: |
terraform/staging
@@ -48,8 +48,9 @@ jobs:
- uses: ./.github/actions/setup-project
- name: Create requirements.txt because Cloud Foundry does a weird pipenv thing
run: pipenv requirements > requirements.txt
- name: Create requirements.txt
run: poetry export --without-hashes --format=requirements.txt > requirements.txt
- name: Deploy to cloud.gov
uses: 18f/cg-deploy-action@main
@@ -57,13 +58,20 @@ jobs:
DANGEROUS_SALT: ${{ secrets.DANGEROUS_SALT }}
SECRET_KEY: ${{ secrets.SECRET_KEY }}
ADMIN_CLIENT_SECRET: ${{ secrets.ADMIN_CLIENT_SECRET }}
BASIC_AUTH_PASSWORD: ${{ secrets.BASIC_AUTH_PASSWORD }}
NEW_RELIC_LICENSE_KEY: ${{ secrets.NEW_RELIC_LICENSE_KEY }}
NR_BROWSER_KEY: ${{ secrets.NR_BROWSER_KEY }}
LOGIN_PEM: ${{ secrets.LOGIN_PEM }}
LOGIN_DOT_GOV_CLIENT_ID: "urn:gov:gsa:openidconnect.profiles:sp:sso:gsa:notify-gov"
LOGIN_DOT_GOV_USER_INFO_URL: "https://idp.int.identitysandbox.gov/api/openid_connect/userinfo"
LOGIN_DOT_GOV_ACCESS_TOKEN_URL: "https://idp.int.identitysandbox.gov/api/openid_connect/token"
LOGIN_DOT_GOV_LOGOUT_URL: "https://idp.int.identitysandbox.gov/openid_connect/logout?client_id=urn:gov:gsa:openidconnect.profiles:sp:sso:gsa:notify-gov&post_logout_redirect_uri=https://notify-staging.app.cloud.gov/sign-out"
LOGIN_DOT_GOV_BASE_LOGOUT_URL: "https://idp.int.identitysandbox.gov/openid_connect/logout?"
LOGIN_DOT_GOV_SIGNOUT_REDIRECT: "https://notify-staging.app.cloud.gov/sign-out"
LOGIN_DOT_GOV_INITIAL_SIGNIN_URL: "https://idp.int.identitysandbox.gov/openid_connect/authorize?acr_values=http%3A%2F%2Fidmanagement.gov%2Fns%2Fassurance%2Fial%2F1&client_id=urn:gov:gsa:openidconnect.profiles:sp:sso:gsa:notify-gov&nonce=01234567890123456789012345&prompt=select_account&redirect_uri=https://notify-staging.app.cloud.gov/sign-in&response_type=code&scope=openid+email&state=abcdefghijklmnopabcdefghijklmnop"
with:
cf_username: ${{ secrets.CLOUDGOV_USERNAME }}
cf_password: ${{ secrets.CLOUDGOV_PASSWORD }}
cf_org: gsa-tts-benefits-studio-prototyping
cf_org: gsa-tts-benefits-studio
cf_space: notify-staging
push_arguments: >-
--vars-file deploy-config/staging.yml
@@ -71,14 +79,21 @@ jobs:
--var SECRET_KEY="$SECRET_KEY"
--var ADMIN_CLIENT_USERNAME="notify-admin"
--var ADMIN_CLIENT_SECRET="$ADMIN_CLIENT_SECRET"
--var BASIC_AUTH_USERNAME="curiousabout"
--var BASIC_AUTH_PASSWORD="$BASIC_AUTH_PASSWORD"
--var NEW_RELIC_LICENSE_KEY="$NEW_RELIC_LICENSE_KEY"
--var NR_BROWSER_KEY="$NR_BROWSER_KEY"
--var LOGIN_PEM="$LOGIN_PEM"
--var LOGIN_DOT_GOV_CLIENT_ID="$LOGIN_DOT_GOV_CLIENT_ID"
--var LOGIN_DOT_GOV_USER_INFO_URL="$LOGIN_DOT_GOV_USER_INFO_URL"
--var LOGIN_DOT_GOV_ACCESS_TOKEN_URL="$LOGIN_DOT_GOV_ACCESS_TOKEN_URL"
--var LOGIN_DOT_GOV_LOGOUT_URL="$LOGIN_DOT_GOV_LOGOUT_URL"
--var LOGIN_DOT_GOV_BASE_LOGOUT_URL="$LOGIN_DOT_GOV_BASE_LOGOUT_URL"
--var LOGIN_DOT_GOV_SIGNOUT_REDIRECT="$LOGIN_DOT_GOV_SIGNOUT_REDIRECT"
--var LOGIN_DOT_GOV_INITIAL_SIGNIN_URL="$LOGIN_DOT_GOV_INITIAL_SIGNIN_URL"
- name: Check for changes to egress config
id: changed-egress-config
uses: tj-actions/changed-files@v34
uses: tj-actions/changed-files@v41.0.0
with:
files: |
deploy-config/egress_proxy/notify-admin-staging.*.acl

9
.gitignore vendored
View File

@@ -123,3 +123,12 @@ app/templates/vendor
secrets.auto.tfvars
terraform.tfstate
terraform.tfstate.backup
# Playwright
playwright/
# Pyenv
.python-version
# Nodenv
.node-version

View File

@@ -1,12 +1,12 @@
{
"defaults": {
"standard": "WCAG2AA",
"runners": ["axe"],
"runners": ["htmlcs"],
"concurrency": 1,
"hideElements": [
"nav > ol a",
"#sms-pricing-details",
"a.govuk-footer__link.govuk-footer__copyright-logo"
"a.usa-footer__link.usa-footer__copyright-logo"
]
},
"urls": [

13
.pre-commit-config.yaml Normal file
View File

@@ -0,0 +1,13 @@
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v3.2.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- id: check-added-large-files
- id: debug-statements
- id: check-merge-conflict
- id: check-toml

View File

@@ -4,3 +4,6 @@
##
export NEW_RELIC_PROXY_HOST=$egress_proxy
export http_proxy=$egress_proxy
export https_proxy=$egress_proxy
export no_proxy="apps.internal"

View File

@@ -1 +0,0 @@
3.9

View File

@@ -15,7 +15,11 @@ NVMSH := $(shell [ -f "$(HOME)/.nvm/nvm.sh" ] && echo "$(HOME)/.nvm/nvm.sh" || e
.PHONY: bootstrap
bootstrap: generate-version-file ## Set up everything to run the app
pipenv install --dev
poetry self update
poetry self add poetry-dotenv-plugin
poetry install --sync --no-root
poetry run playwright install --with-deps
poetry run pre-commit install
source $(NVMSH) --no-use && nvm install && npm ci --no-audit
source $(NVMSH) && npm run build
@@ -25,10 +29,10 @@ watch-frontend: ## Build frontend and watch for changes
.PHONY: run-flask
run-flask: ## Run flask
pipenv run newrelic-admin run-program flask run -p 6012 --host=0.0.0.0
poetry run newrelic-admin run-program flask run -p 6012 --host=0.0.0.0
.PHONY: run-flask-bare
run-flask-bare: ## Run flask without invoking pipenv so we can override ENV variables in .env
run-flask-bare: ## Run flask without invoking poetry so we can override ENV variables in .env
flask run -p 6012 --host=0.0.0.0
.PHONY: npm-audit
@@ -47,16 +51,37 @@ generate-version-file: ## Generates the app version file
test: py-lint py-test js-lint js-test ## Run tests
.PHONY: py-lint
py-lint: ## Run python linting scanners
pipenv run flake8 .
pipenv run isort --check-only ./app ./tests
py-lint: ## Run python linting scanners and black
poetry self add poetry-dotenv-plugin
poetry run black .
poetry run flake8 .
poetry run isort --check-only ./app ./tests
.PHONY: avg-complexity
avg-complexity:
echo "*** Shows average complexity in radon of all code ***"
poetry run radon cc ./app -a -na
.PHONY: too-complex
too-complex:
echo "*** Shows code that got a rating of C, D or F in radon ***"
poetry run radon cc ./app -a -nc
.PHONY: py-test
py-test: export NEW_RELIC_ENVIRONMENT=test
py-test: ## Run python unit tests
pipenv run coverage run --omit=*/notifications_utils/* -m pytest --maxfail=10 tests/
pipenv run coverage report --fail-under=90
pipenv run coverage html -d .coverage_cache
poetry run coverage run --omit=*/notifications_utils/* -m pytest --maxfail=10 --ignore=tests/end_to_end tests/
poetry run coverage report --fail-under=96
poetry run coverage html -d .coverage_cache
.PHONY: dead-code
dead-code:
poetry run vulture ./app --min-confidence=100
.PHONY: e2e-test
e2e-test: export NEW_RELIC_ENVIRONMENT=test
e2e-test: ## Run end-to-end integration tests
poetry run pytest -v --browser chromium --browser firefox --browser webkit tests/end_to_end
.PHONY: js-lint
js-lint: ## Run javascript linting scanners
@@ -68,25 +93,37 @@ js-test: ## Run javascript unit tests
.PHONY: fix-imports
fix-imports: ## Fix imports using isort
pipenv run isort ./app ./tests
poetry run isort ./app ./tests
.PHONY: py-lock
py-lock: ## Syncs dependencies and updates lock file without performing recursive internal updates
poetry lock --no-update
poetry install --sync
.PHONY: update-utils
update-utils: ## Forces Poetry to pull the latest changes from the notifications-utils repo; requires that you commit the changes to poetry.lock!
poetry update notifications-utils
@echo
@echo !!! PLEASE MAKE SURE TO COMMIT AND PUSH THE UPDATED poetry.lock FILE !!!
@echo
.PHONY: freeze-requirements
freeze-requirements: ## create static requirements.txt
pipenv requirements > requirements.txt
poetry export --without-hashes --format=requirements.txt > requirements.txt
.PHONY: pip-audit
pip-audit:
pipenv requirements > requirements.txt
pipenv requirements --dev > requirements_for_test.txt
pipenv run pip-audit -r requirements.txt
-pipenv run pip-audit -r requirements_for_test.txt
poetry requirements > requirements.txt
poetry requirements --dev > requirements_for_test.txt
poetry run pip-audit -r requirements.txt
poetry run pip-audit -r requirements_for_test.txt
.PHONY: audit
audit: npm-audit pip-audit
.PHONY: static-scan
static-scan:
pipenv run bandit -r app/
poetry run bandit -r app/
.PHONY: a11y-scan
a11y-scan:

59
Pipfile
View File

@@ -1,59 +0,0 @@
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
ago = "~=0.0.95"
blinker = "~=1.4"
fido2 = "~=0.9"
flask = "~=2.3"
flask-basicauth = "~=0.2"
flask-login = "~=0.6"
flask-wtf = "~=1.1"
gds-metrics = {version = "==0.2.4", ref = "6f1840a57b6fb1ee40b7e84f2f18ec229de8aa72", git = "https://github.com/alphagov/gds_metrics_python.git"}
govuk-bank-holidays = "==0.13"
govuk-frontend-jinja = {version = "==0.5.8-alpha", git = "https://github.com/alphagov/govuk-frontend-jinja.git"}
gunicorn = {version = "==20.1.0", extras = ["eventlet"], ref = "1299ea9e967a61ae2edebe191082fd169b864c64", git = "https://github.com/benoitc/gunicorn.git"}
humanize = "~=4.1"
itsdangerous = "~=2.1"
jinja2 = "~=3.1"
notifications-python-client = "==8.0.1"
prometheus-client = "==0.14.1"
pyexcel = "==0.7.0"
pyexcel-io = "==0.6.6"
pyexcel-ods3 = "==0.6.1"
pyexcel-xls = "==0.7.0"
pyexcel-xlsx = "==0.6.0"
openpyxl = "==3.0.10"
pyproj = "==3.6.0"
python-dotenv = "==1.0.0"
pytz = "==2023.3"
rtreelib = "==0.2.0"
werkzeug = "~=2.3"
wtforms = "~=3.0"
newrelic = "*"
flask-talisman = "*"
notifications-utils = {editable = true, ref = "main", git = "https://github.com/GSA/notifications-utils.git"}
coverage = "*"
[dev-packages]
isort = "==5.12.0"
pytest = "==7.4.0"
pytest-env = "==0.6.2"
pytest-mock = "==3.11.1"
pytest-xdist = "==2.5.0"
beautifulsoup4 = "==4.12.2"
freezegun = "==1.2.2"
flake8 = "==4.0.1"
flake8-bugbear = "==22.4.25"
flake8-print = "==5.0.0"
moto = "~=4.1"
requests-mock = "==1.11.0"
# used for creating manifest file locally
jinja2-cli = {version = "==0.8.2", extras = ["yaml"]}
pip-audit = "*"
bandit = "*"
[requires]
python_version = "3.9"

2109
Pipfile.lock generated

File diff suppressed because it is too large Load Diff

480
README.md
View File

@@ -1,6 +1,8 @@
# Notify UI
# Notify.gov Admin UI
This is the Notify front-end for government users and admins. To see it in action, check out [the demo site](https://notify-demo.app.cloud.gov) (contact team for credentials).
This is the Notify front-end for government users and admins. To see it in
action, check out [the demo site](https://notify-demo.app.cloud.gov)
(contact team for credentials).
Through the interface, users can:
@@ -9,50 +11,433 @@ Through the interface, users can:
- Send batch SMS by uploading a CSV
- View their history of notifications
The [Notify API](https://github.com/GSA/notifications-api) provides the UI's backend and is required for most things to function. Set that up first!
The [Notify.gov API](https://github.com/GSA/notifications-api) provides the
UI's backend and is required for most things to function. Set that up first!
## Local setup
Our other repositories are:
### Common steps
- [notifications-admin](https://github.com/GSA/notifications-admin)
- [notifications-utils](https://github.com/GSA/notifications-utils)
- [us-notify-compliance](https://github.com/GSA/us-notify-compliance/)
- [notify-python-demo](https://github.com/GSA/notify-python-demo)
1. Install pre-requisites for setup:
- [jq](https://stedolan.github.io/jq/): `brew install jq`
- [terraform](https://www.terraform.io/): `brew install terraform` or `brew install tfenv` and use `tfenv` to install `terraform ~> 1.4.0`
- [cf-cli@8](https://docs.cloudfoundry.org/cf-cli/install-go-cli.html): `brew install cloudfoundry/tap/cf-cli@8`
1. [Log into cloud.gov](https://cloud.gov/docs/getting-started/setup/#set-up-the-command-line): `cf login -a api.fr.cloud.gov --sso`
1. Ensure you have access to the `notify-local-dev` and `notify-staging` spaces in cloud.gov
1. Run the API setup steps
1. Run the development terraform with:
## Before You Start
```
$ cd terraform/development
$ ./run.sh
```
You will need the following items:
1. If you want to send data to New Relic from your local develpment environment, set `NEW_RELIC_LICENSE_KEY` within `.env`
1. Follow the instructions for either `Direct installation` or `Docker installation` below
- An active cloud.gov account with the correct permissions - speak with your
onboarding buddy for help with
[setting up an account](https://cloud.gov/sign-up/) (requires a `.mil`,
`.gov`, or `.fed.us` email address) and getting access to the
`notify-local-dev` and `notify-staging` spaces.
- Admin priviliges and SSH access on your machine; you may need to work with
your organization's IT support staff if you're not sure or don't currently
have this access.
### Direct installation
**In addition, you should set up the Notify.gov API first!**
1. Get the API running
[Follow the instructions here to set up the Notify.gov API.](https://github.com/GSA/notifications-api#before-you-start)
1. Install [pipenv](https://pipenv.pypa.io/en/latest/)
The Notify.gov API is required in order for the Notify.gov Admin UI to run, and
it will also take care of many of the steps that are listed here. The sections
that are a repeat from the API setup are flagged with an **[API Step]** label
in front of them.
1. Install [nvm (Node Version Manager)](https://github.com/nvm-sh/nvm#installing-and-updating)
## Local Environment Setup
1. Install Python and Node dependencies
This project is set up to work with
[nvm (Node Version Manager)](https://github.com/nvm-sh/nvm#installing-and-updating)
for managing and using Node.js (version 16.15.1) and the `npm` package manager.
`make bootstrap`
1. Run the Flask server
`make run-flask`
1. Go to http://localhost:6012
These instructions will walk you through how to set your machine up with all of
the required tools for this project.
### Docker installation
If you are using VS Code, there are also instructions for [running inside Docker](./docs/docker-remote-containers.md)
If you are using VS Code, there are also instructions for
[running inside Docker](./docs/docker-remote-containers.md).
### [API Step] Project Pre-Requisite Setup
On MacOS, using [Homebrew](https://brew.sh/) for package management is highly
recommended. This helps avoid some known installation issues. Start by following
the installation instructions on the Homebrew homepage.
**Note:** You will also need Xcode or the Xcode Command Line Tools installed. The
quickest way to do this is is by installing the command line tools in the shell:
```sh
xcode-select -install
```
#### [API Step] Homebrew Setup
If this is your first time installing Homebrew on your machine, you may need to
add its binaries to your system's `$PATH` environment variable so that you can
use the `brew` command. Try running `brew help` to see if Homebrew is
recognized and runs properly. If that fails, then you'll need to add a
configuration line to wherever your `$PATH` environment variable is set.
Your system `$PATH` environment variable is likely set in one of these
locations:
For BASH shells:
- `~/.bashrc`
- `~/.bash_profile`
- `~/.profile`
For ZSH shells:
- `~/.zshrc`
- `~/.zprofile`
There may be different files that you need to modify for other shell
environments.
Which file you need to modify depends on whether or not you are running an
interactive shell or a login shell
(see [this Stack Overflow post](https://stackoverflow.com/questions/18186929/what-are-the-differences-between-a-login-shell-and-interactive-shell)
for an explanation of the differences). If you're still not sure, please ask
the team for help!
Once you determine which file you'll need to modify, add these lines before any
lines that add or modify the `$PATH` environment variable; near or at the top
of the file is appropriate:
```sh
# Homebrew setup
eval "$(/opt/homebrew/bin/brew shellenv)"
```
This will make sure Homebrew gets setup correctly. Once you make these changes,
either start a new shell session or source the file
(`source ~/.FILE-YOU-MODIFIED`) you modified to have your system recognize the
changes.
Verify that Homebrew is now working by trying to run `brew help` again.
### [API Step] System-Level Package Installation
There are several packages you will need to install for your system in order to
get the app running (and these are good to have in general for any software
development).
Start off with these packages since they're quick and don't require additional
configuration after installation to get working out of the box:
- [jq](https://stedolan.github.io/jq/) - for working with JSON in the command
line
- [git](https://git-scm.com/) - for version control management
- [tfenv](https://github.com/tfutils/tfenv) - for managing
[Terraform](https://www.terraform.io/) installations
- [cf-cli@8](https://docs.cloudfoundry.org/cf-cli/install-go-cli.html) - for
working with a Cloud Foundry platform (e.g., cloud.gov)
- [vim](https://www.vim.org/) - for editing files more easily in the command
line
- [wget](https://www.gnu.org/software/wget/) - for retrieving files in the
command line
You can install them by running the following:
```sh
brew install jq git tfenv cloudfoundry/tap/cf-cli@8 vim wget
```
#### [API Step] Terraform Installation
As a part of the installation above, you just installed `tfenv` to manage
Terraform installations. This is great, but you still need to install Terraform
itself, which can be done with this command:
```sh
tfenv install latest:^1.4.0
```
_NOTE: This project currently uses the latest `1.4.x release of Terraform._
#### [API Step] Python Installation
Now we're going to install a tool to help us manage Python versions and
virtual environments on our system. First, we'll install
[pyenv](https://github.com/pyenv/pyenv) and one of its plugins,
[pyenv-virtualenv](https://github.com/pyenv/pyenv-virtualenv), with Homebrew:
```sh
brew install pyenv pyenv-virtualenv
```
When these finish installing, you'll need to make another adjustment in the
file that you adjusted for your `$PATH` environment variable and Homebrew's
setup. Open the file, and add these lines to it:
```
# pyenv setup
export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
```
Once again, start a new shell session or source the file in your current shell
session to make the changes take effect.
Now we're ready to install the Python version we need with `pyenv`, like so:
```sh
pyenv install 3.9
```
This will install the latest version of Python 3.9.
_NOTE: This project currently runs on Python 3.9.x._
#### [API Step] Python Dependency Installation
Lastly, we need to install the tool we use to manage Python dependencies within
the project, which is [poetry](https://python-poetry.org/).
Visit the
[official installer instructions page](https://python-poetry.org/docs/#installing-with-the-official-installer)
and follow the steps to install Poetry directly with the script.
This will ensure `poetry` doesn't conflict with any project virtual environments
and can update itself properly.
#### Node.js and npm Installation
The project will manage most of the Node.js pieces for you, but you will need to
install
[nvm (Node Version Manager)](https://github.com/nvm-sh/nvm#installing-and-updating)
in order for things to work.
Follow the steps in the installation instructions to get `nvm` installed with
the install script they provide, and double check that the file that you
adjusted for your `$PATH` environment variable and Homebrew's setup is properly
updated with the `nvm` setup as well.
Open the file and check for the `nvm` setup lines; if they're not there, then
add the lines found in the
[nvm installation instructions](https://github.com/nvm-sh/nvm#install--update-script)
to to the file after the `pyenv` section you created, e.g.:
```
# nvm setup
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
```
### First-Time Project Setup
Once all of pre-requisites for the project are installed and you have a
cloud.gov account, you can now set up the admin project and get things running
locally!
First, clone the respository in the directory of your choosing on your machine:
```sh
git clone git@github.com:GSA/notifications-admin.git
```
Now go into the project directory (`notifications-admin` by default), create a
virtual environment, and set the local Python version to point to the virtual
environment (assumes version Python `3.9.18` is what is installed on your
machine):
```sh
cd notifications-admin
pyenv virtualenv 3.9.18 notify-admin
pyenv local notify-admin
```
_If you're not sure which version of Python was installed with `pyenv`, you can check by running `pyenv versions` and it'll list everything available currently._
Now [log into cloud.gov](https://cloud.gov/docs/getting-started/setup/#set-up-the-command-line)
in the command line by using this command:
```sh
cf login -a api.fr.cloud.gov --sso
```
_REMINDER: Ensure you have access to the `notify-local-dev` and `notify-staging` spaces in cloud.gov_
Now run the development Terraform setup by navigating to the development
folder and running the script in it:
```sh
cd terraform/development
./run.sh
```
In addition to some infrastructure setup, this will also create a local `.env`
file for you in the project's root directory, which will include a handful of
project-specific environment variables.
#### Updating the .env file for E2E tests
With the newly created `.env` file in place, you'll need to make one more
adjustment in it for things to run properly for the E2E tests.
Open the `.env` file and look for the `NODE_EXTRA_CA_CERTS` environment variable
toward the top. You will need to modify its value to be the path to Homebrew's
CA certificate file.
Run `brew --prefix` to see Homebrew's root directory, and use that value to
update the `NODE_EXTRA_CA_CERTS` environment variable with the path. For
example, if `brew --prefix` gave `/opt/homebrew` as output, then the line would
look like this:
```
NODE_EXTRA_CA_CERTS=/opt/homebrew/etc/ca-certificates/cert.pem
```
Save this change to the `.env` file and you'll be squared away.
## Running the Project and Routine Maintenance
The first time you run the project you'll need to run the project setup from the
root project directory:
```sh
make bootstrap
```
This command is handled by the `Makefile` file in the root project directory, as
are a few others.
_NOTE: You'll want to occasionally run `make bootstrap` to keep your project up-to-date, especially when there are dependency updates._
Now you can run the web server and background workers for asynchronous jobs:
```sh
make run-flask
```
This will run the local development web server and make the admin site
available at http://localhost:6012; remember to make sure that the Notify.gov
API is running as well!
## Git Hooks
We're using [`pre-commit`](https://pre-commit.com/) to manage hooks in order to
automate common tasks or easily-missed cleanup. It's installed as part of
`make bootstrap` and is limited to this project's virtualenv.
To run the hooks in advance of a `git` operation, use
`poetry run pre-commit run`. For running across the whole codebase (useful after
adding a new hook), use `poetry run pre-commit run --all-files`.
The configuration is stored in `.pre-commit-config.yaml`. In that config, there
are links to the repos from which the hooks are pulled, so hop through there if
ou want a detailed description of what each one is doing.
We do not maintain any hooks in this repository.
## Python Dependency Management
We're using [`Poetry`](https://python-poetry.org/) for managing our Python
dependencies and local virtual environments. When it comes to managing the
Python dependencies, there are a couple of things to bear in mind.
For situations where you manually manipulate the `pyproject.toml` file, you
should use the `make py-lock` command to sync the `poetry.lock` file. This will
ensure that you don't inadvertently bring in other transitive dependency updates
that have not been fully tested with the project yet.
If you're just trying to update a dependency to a newer (or the latest) version,
you should let Poetry take care of that for you by running the following:
```sh
poetry update <dependency> [<dependency>...]
```
You can specify more than one dependency together. With this command, Poetry
will do the following for you:
- Find the latest compatible version(s) of the specified dependency/dependencies
- Install the new versions
- Update and sync the `poetry.lock` file
In either situation, once you are finished and have verified the dependency
changes are working, please be sure to commit both the `pyproject.toml` and
`poetry.lock` files.
### Keeping the notification-utils Dependency Up-to-Date
The `notifications-utils` dependency references the other repository we have at
https://github.com/GSA/notifications-utils - this dependency requires a bit of
extra legwork to ensure it stays up-to-date.
Whenever a PR is merged in the `notifications-utils` repository, we need to make
sure the changes are pulled in here and committed to this repository as well.
You can do this by going through these steps:
- Make sure your local `main` branch is up-to-date
- Create a new branch to work in
- Run `make update-utils`
- Commit the updated `poetry.lock` file and push the changes
- Make a new PR with the change
- Have the PR get reviewed and merged
### Python dependency management
We're using [`Poetry`](https://python-poetry.org/) for managing our Python
dependencies and local virtual environments. When it comes to managing the
Python dependencies, there are a couple of things to bear in mind.
For situations where you manually manipulate the `pyproject.toml` file, you
should use the `make py-lock` command to sync the `poetry.lock` file. This will
ensure that you don't inadvertently bring in other transitive dependency updates
that have not been fully tested with the project yet.
If you're just trying to update a dependency to a newer (or the latest) version,
you should let Poetry take care of that for you by running the following:
```sh
poetry update <dependency> [<dependency>...]
```
You can specify more than one dependency together. With this command, Poetry
will do the following for you:
- Find the latest compatible version(s) of the specified dependency/dependencies
- Install the new versions
- Update and sync the `poetry.lock` file
In either situation, once you are finished and have verified the dependency
changes are working, please be sure to commit both the `pyproject.toml` and
`poetry.lock` files.
### Keeping the notification-utils dependency up-to-date
The `notifications-utils` dependency references the other repository we have at
https://github.com/GSA/notifications-utils - this dependency requires a bit of
extra legwork to ensure it stays up-to-date.
Whenever a PR is merged in the `notifications-utils` repository, we need to make
sure the changes are pulled in here and committed to this repository as well.
You can do this by going through these steps:
- Make sure your local `main` branch is up-to-date
- Create a new branch to work in
- Run `make update-utils`
- Commit the updated `poetry.lock` file and push the changes
- Make a new PR with the change
- Have the PR get reviewed and merged
## Known Installation Issues
### Python Installation Errors
On M1 Macs, if you get a `fatal error: 'Python.h' file not found` message, try a
different method of installing Python. The recommended approach is to use
[`pyenv`](https://github.com/pyenv/pyenv), as noted above in the installation
instructions.
If you're using PyCharm for Python development, we've noticed some quirkiness
with the IDE and the interaction between Poetry and virtual environment
management that could cause a variety of problems to come up during project
setup and dependency management. Other tools, such as Visual Studio Code, have
proven to be a smoother experience for folks.
## To test the application
@@ -66,11 +451,13 @@ make test
npm run test-watch
```
To run a specific JavaScript test, you'll need to copy the full command from `package.json`.
To run a specific JavaScript test, you'll need to copy the full command from
`package.json`.
## Running a11y-scans locally
Unlike most of the tests and scans, pa11y-ci cannot currently be run from within the VSCode dev container.
Unlike most of the tests and scans, pa11y-ci cannot currently be run from within
the VSCode dev container.
1. `make run-flask` from within the devcontainer
2. Run `make a11y-scan` from your host computer.
@@ -83,16 +470,31 @@ Unlike most of the tests and scans, pa11y-ci cannot currently be run from within
## License && public domain
Work through [commit `543be77`](https://github.com/GSA/notifications-admin/commit/543be77776b64fddb6ba70fbb015ecd81a372478) is licensed by the UK government under the MIT license. Work after that commit is in the worldwide public domain. See [LICENSE.md](./LICENSE.md) for more information.
Work through
[commit `543be77`](https://github.com/GSA/notifications-admin/commit/543be77776b64fddb6ba70fbb015ecd81a372478)
is licensed by the UK government under the MIT license. Work after that commit
is in the worldwide public domain. See [LICENSE.md](./LICENSE.md) for more
information.
## Contributing
As stated in [CONTRIBUTING.md](CONTRIBUTING.md), all contributions to this project will be released under the CC0 dedication. By submitting a pull request, you are agreeing to comply with this waiver of copyright interest.
As stated in [CONTRIBUTING.md](CONTRIBUTING.md), all contributions to this
project will be released under the CC0 dedication. By submitting a pull request,
you are agreeing to comply with this waiver of copyright interest.
## About the TTS Public Benefits Studio
The Public Benefits Studio is a team inside of [GSAs Technology Transformation Services](https://www.gsa.gov/about-us/organization/federal-acquisition-service/technology-transformation-services) (TTS), home to innovative programs like [18F](https://18f.gsa.gov/) and [Login.gov](https://login.gov). We collaborate with benefits programs to develop shared technology tools and best practices that reduce the burden of navigating government programs for low income individuals and families.
The Public Benefits Studio is a team inside of
[GSAs Technology Transformation Services](https://www.gsa.gov/about-us/organization/federal-acquisition-service/technology-transformation-services)
(TTS), home to innovative programs like [18F](https://18f.gsa.gov/) and
[Login.gov](https://login.gov). We collaborate with benefits programs to develop
shared technology tools and best practices that reduce the burden of navigating
government programs for low income individuals and families.
Were a cross-functional team of technologists with specialized experience working across public benefits programs like Medicaid, SNAP, and unemployment insurance.
Were a cross-functional team of technologists with specialized experience
working across public benefits programs like Medicaid, SNAP, and unemployment
insurance.
For more information on what we're working on, the Notify tool, and how to get involved with our team, [see our flyer.](https://github.com/GSA/notifications-admin/blob/main/docs/notify-pilot-flyer.md)
For more information on what we're working on, the Notify tool, and how to get
involved with our team,
[see our flyer.](https://github.com/GSA/notifications-admin/blob/main/docs/notify-pilot-flyer.md)

View File

@@ -2,6 +2,7 @@ import os
import pathlib
from functools import partial
from time import monotonic
from urllib.parse import urlparse, urlunparse
import jinja2
from flask import (
@@ -20,8 +21,6 @@ from flask_login import LoginManager, current_user
from flask_talisman import Talisman
from flask_wtf import CSRFProtect
from flask_wtf.csrf import CSRFError
from gds_metrics import GDSMetrics
from govuk_frontend_jinja.flask_ext import init_govuk_frontend
from itsdangerous import BadSignature
from notifications_python_client.errors import HTTPError
from notifications_utils import logging, request_helper
@@ -34,12 +33,12 @@ from werkzeug.exceptions import HTTPException as WerkzeugHTTPException
from werkzeug.exceptions import abort
from werkzeug.local import LocalProxy
from app import proxy_fix, webauthn_server
from app import proxy_fix
from app.asset_fingerprinter import asset_fingerprinter
from app.config import configs
from app.custom_auth import CustomBasicAuth
from app.extensions import redis_client, zendesk_client
from app.formatters import (
convert_markdown_template,
convert_to_boolean,
format_auth_type,
format_billions,
@@ -54,6 +53,7 @@ from app.formatters import (
format_datetime_normal,
format_datetime_relative,
format_datetime_short,
format_datetime_short_america,
format_day_of_week,
format_delta,
format_delta_days,
@@ -89,12 +89,12 @@ from app.navigation import (
HeaderNavigation,
MainNavigation,
OrgNavigation,
SecondaryNavigation,
)
from app.notify_client import InviteTokenError
from app.notify_client.api_key_api_client import api_key_api_client
from app.notify_client.billing_api_client import billing_api_client
from app.notify_client.complaint_api_client import complaint_api_client
from app.notify_client.email_branding_client import email_branding_client
from app.notify_client.events_api_client import events_api_client
from app.notify_client.inbound_number_client import inbound_number_client
from app.notify_client.invite_api_client import invite_api_client
@@ -105,55 +105,41 @@ from app.notify_client.organizations_api_client import organizations_client
from app.notify_client.performance_dashboard_api_client import (
performance_dashboard_api_client,
)
from app.notify_client.platform_stats_api_client import (
platform_stats_api_client,
)
from app.notify_client.provider_client import provider_client
from app.notify_client.platform_stats_api_client import platform_stats_api_client
from app.notify_client.service_api_client import service_api_client
from app.notify_client.status_api_client import status_api_client
from app.notify_client.template_folder_api_client import (
template_folder_api_client,
)
from app.notify_client.template_statistics_api_client import (
template_statistics_client,
)
from app.notify_client.template_folder_api_client import template_folder_api_client
from app.notify_client.template_statistics_api_client import template_statistics_client
from app.notify_client.upload_api_client import upload_api_client
from app.notify_client.user_api_client import user_api_client
from app.url_converters import (
SimpleDateTypeConverter,
TemplateTypeConverter,
TicketTypeConverter,
)
from app.url_converters import SimpleDateTypeConverter, TemplateTypeConverter
from app.utils.govuk_frontend_jinja.flask_ext import init_govuk_frontend
login_manager = LoginManager()
csrf = CSRFProtect()
talisman = Talisman()
metrics = GDSMetrics()
basic_auth = CustomBasicAuth()
# The current service attached to the request stack.
current_service = LocalProxy(partial(getattr, request_ctx, 'service'))
current_service = LocalProxy(partial(getattr, request_ctx, "service"))
# The current organization attached to the request stack.
current_organization = LocalProxy(partial(getattr, request_ctx, 'organization'))
current_organization = LocalProxy(partial(getattr, request_ctx, "organization"))
navigation = {
'casework_navigation': CaseworkNavigation(),
'main_navigation': MainNavigation(),
'header_navigation': HeaderNavigation(),
'org_navigation': OrgNavigation(),
"casework_navigation": CaseworkNavigation(),
"main_navigation": MainNavigation(),
"header_navigation": HeaderNavigation(),
"org_navigation": OrgNavigation(),
"secondary_navigation": SecondaryNavigation(),
}
def _csp(config):
asset_domain = config['ASSET_DOMAIN']
logo_domain = config['LOGO_CDN_DOMAIN']
asset_domain = config["ASSET_DOMAIN"]
logo_domain = config["LOGO_CDN_DOMAIN"]
return {
"default-src": [
"'self'",
asset_domain
],
"default-src": ["'self'", asset_domain],
"frame-ancestors": "'none'",
"form-action": "'self'",
"script-src": [
@@ -162,53 +148,43 @@ def _csp(config):
"'unsafe-eval'",
"https://js-agent.newrelic.com",
"https://gov-bam.nr-data.net",
"https://www.googletagmanager.com",
"https://www.google-analytics.com",
"https://dap.digitalgov.gov",
],
"connect-src": [
"'self'",
"https://gov-bam.nr-data.net"
"https://gov-bam.nr-data.net",
"https://www.google-analytics.com",
],
"style-src": [
"'self'",
asset_domain
],
"img-src": [
"'self'",
asset_domain,
logo_domain
]
"style-src": ["'self'", asset_domain],
"img-src": ["'self'", asset_domain, logo_domain],
}
def create_app(application):
notify_environment = os.environ['NOTIFY_ENVIRONMENT']
notify_environment = os.environ["NOTIFY_ENVIRONMENT"]
application.config.from_object(configs[notify_environment])
asset_fingerprinter._asset_root = application.config['ASSET_PATH']
asset_fingerprinter._asset_root = application.config["ASSET_PATH"]
init_app(application)
if 'extensions' not in application.jinja_options:
application.jinja_options['extensions'] = []
if "extensions" not in application.jinja_options:
application.jinja_options["extensions"] = []
init_govuk_frontend(application)
init_jinja(application)
for client in (
# Gubbins
# Note, metrics purposefully first so we start measuring response times as early as possible before any
# other `app.before_request` handlers (introduced by any of these clients) are processed (which would
# otherwise mean we aren't measuring the full response time)
metrics,
csrf,
login_manager,
proxy_fix,
request_helper,
# API clients
api_key_api_client,
billing_api_client,
complaint_api_client,
email_branding_client,
events_api_client,
inbound_number_client,
invite_api_client,
@@ -218,54 +194,48 @@ def create_app(application):
organizations_client,
performance_dashboard_api_client,
platform_stats_api_client,
provider_client,
service_api_client,
status_api_client,
template_folder_api_client,
template_statistics_client,
upload_api_client,
user_api_client,
# External API clients
redis_client,
zendesk_client,
):
client.init_app(application)
talisman.init_app(
application,
content_security_policy=_csp(application.config),
content_security_policy_nonce_in=['style-src', 'script-src'],
content_security_policy_nonce_in=["style-src", "script-src"],
permissions_policy={
'accelerometer': '()',
'ambient-light-sensor': '()',
'autoplay': '()',
'battery': '()',
'camera': '()',
'document-domain': '()',
'geolocation': '()',
'gyroscope': '()',
'local-fonts': '()',
'magnetometer': '()',
'microphone': '()',
'midi': '()',
'payment': '()',
'screen-wake-lock': '()'
"accelerometer": "()",
"ambient-light-sensor": "()",
"autoplay": "()",
"battery": "()",
"camera": "()",
"document-domain": "()",
"geolocation": "()",
"gyroscope": "()",
"local-fonts": "()",
"magnetometer": "()",
"microphone": "()",
"midi": "()",
"payment": "()",
"screen-wake-lock": "()",
},
frame_options='deny',
force_https=(application.config['HTTP_PROTOCOL'] == 'https')
frame_options="deny",
force_https=(application.config["HTTP_PROTOCOL"] == "https"),
)
logging.init_app(application)
webauthn_server.init_app(application)
login_manager.login_view = 'main.sign_in'
login_manager.login_message_category = 'default'
login_manager.login_view = "main.sign_in"
login_manager.login_message_category = "default"
login_manager.session_protection = None
login_manager.anonymous_user = AnonymousUser
setup_basic_auth(application)
# make sure we handle unicode correctly
redis_client.redis_store.decode_responses = True
@@ -284,28 +254,32 @@ def create_app(application):
def init_app(application):
application.before_request(redirect_notify_to_beta)
application.before_request(load_service_before_request)
application.before_request(load_organization_before_request)
application.before_request(request_helper.check_proxy_header_before_request)
application.before_request(make_session_permanent)
application.after_request(save_service_or_org_after_request)
start = len(asset_fingerprinter._filesystem_path)
font_paths = [
str(item)[len(asset_fingerprinter._filesystem_path):]
for item in pathlib.Path(asset_fingerprinter._filesystem_path).glob('fonts/*.woff2')
str(item)[start:]
for item in pathlib.Path(asset_fingerprinter._filesystem_path).glob(
"fonts/*.woff2"
)
]
@application.context_processor
def _attach_current_service():
return {'current_service': current_service}
return {"current_service": current_service}
@application.context_processor
def _attach_current_organization():
return {'current_org': current_organization}
return {"current_org": current_organization}
@application.context_processor
def _attach_current_user():
return {'current_user': current_user}
return {"current_user": current_user}
@application.context_processor
def _nav_selected():
@@ -313,13 +287,28 @@ def init_app(application):
@application.context_processor
def _attach_current_global_daily_messages():
global_limit = 0
remaining_global_messages = 0
if current_app:
global_limit = current_app.config['GLOBAL_SERVICE_MESSAGE_LIMIT']
global_messages_count = service_api_client.get_global_notification_count()
remaining_global_messages = global_limit - global_messages_count
return {'daily_global_messages_remaining': remaining_global_messages}
if request.view_args:
service_id = request.view_args.get(
"service_id", session.get("service_id")
)
else:
service_id = session.get("service_id")
if service_id:
global_limit = current_app.config["GLOBAL_SERVICE_MESSAGE_LIMIT"]
global_messages_count = (
service_api_client.get_global_notification_count(service_id)
)
remaining_global_messages = global_limit - global_messages_count.get(
"count"
)
return {
"global_message_limit": global_limit,
"daily_global_messages_remaining": remaining_global_messages,
}
@application.before_request
def record_start_time():
@@ -329,16 +318,15 @@ def init_app(application):
@application.context_processor
def inject_global_template_variables():
return {
'asset_path': application.config['ASSET_PATH'],
'header_colour': application.config['HEADER_COLOUR'],
'asset_url': asset_fingerprinter.get_url,
'font_paths': font_paths,
"asset_path": application.config["ASSET_PATH"],
"header_colour": application.config["HEADER_COLOUR"],
"asset_url": asset_fingerprinter.get_url,
"font_paths": font_paths,
}
application.url_map.converters['uuid'].to_python = lambda self, value: value
application.url_map.converters['template_type'] = TemplateTypeConverter
application.url_map.converters['ticket_type'] = TicketTypeConverter
application.url_map.converters['simple_date'] = SimpleDateTypeConverter
application.url_map.converters["uuid"].to_python = lambda self, value: value
application.url_map.converters["template_type"] = TemplateTypeConverter
application.url_map.converters["simple_date"] = SimpleDateTypeConverter
@login_manager.user_loader
@@ -350,7 +338,7 @@ def make_session_permanent():
"""
Make sessions permanent. By permanent, we mean "admin app sets when it expires". Normally the cookie would expire
whenever you close the browser. With this, the session expiry is set in `config['PERMANENT_SESSION_LIFETIME']`
(20 hours) and is refreshed after every request. IE: you will be logged out after twenty hours of inactivity.
(30 min) and is refreshed after every request. IE: you will be logged out after thirty minutes of inactivity.
We don't _need_ to set this every request (it's saved within the cookie itself under the `_permanent` flag), only
when you first log in/sign up/get invited/etc, but we do it just to be safe. For more reading, check here:
@@ -359,22 +347,39 @@ def make_session_permanent():
session.permanent = True
def create_beta_url(url):
url_created = urlparse(url)
url_list = list(url_created)
url_list[1] = "beta.notify.gov"
url_for_redirect = urlunparse(url_list)
return url_for_redirect
def redirect_notify_to_beta():
if (
current_app.config["NOTIFY_ENVIRONMENT"] == "production"
and "beta.notify.gov" not in request.url
):
url_to_beta = create_beta_url(request.url)
return redirect(url_to_beta, 302)
def load_service_before_request():
if '/static/' in request.url:
if "/static/" in request.url:
request_ctx.service = None
return
if request_ctx is not None:
request_ctx.service = None
if request.view_args:
service_id = request.view_args.get('service_id', session.get('service_id'))
service_id = request.view_args.get("service_id", session.get("service_id"))
else:
service_id = session.get('service_id')
service_id = session.get("service_id")
if service_id:
try:
request_ctx.service = Service(
service_api_client.get_service(service_id)['data']
service_api_client.get_service(service_id)["data"]
)
except HTTPError as exc:
# if service id isn't real, then 404 rather than 500ing later because we expect service to be set
@@ -385,14 +390,14 @@ def load_service_before_request():
def load_organization_before_request():
if '/static/' in request.url:
if "/static/" in request.url:
request_ctx.organization = None
return
if request_ctx is not None:
request_ctx.organization = None
if request.view_args:
org_id = request.view_args.get('org_id')
org_id = request.view_args.get("org_id")
if org_id:
try:
@@ -407,15 +412,19 @@ def load_organization_before_request():
def save_service_or_org_after_request(response):
# Only save the current session if the request is 200
service_id = request.view_args.get('service_id', None) if request.view_args else None
organization_id = request.view_args.get('org_id', None) if request.view_args else None
service_id = (
request.view_args.get("service_id", None) if request.view_args else None
)
organization_id = (
request.view_args.get("org_id", None) if request.view_args else None
)
if response.status_code == 200:
if service_id:
session['service_id'] = service_id
session['organization_id'] = None
session["service_id"] = service_id
session["organization_id"] = None
elif organization_id:
session['service_id'] = None
session['organization_id'] = organization_id
session["service_id"] = None
session["organization_id"] = organization_id
return response
@@ -423,32 +432,38 @@ def register_errorhandlers(application): # noqa (C901 too complex)
def _error_response(error_code, error_page_template=None):
if error_page_template is None:
error_page_template = error_code
return make_response(render_template("error/{0}.html".format(error_page_template)), error_code)
return make_response(
render_template("error/{0}.html".format(error_page_template)), error_code
)
@application.errorhandler(HTTPError)
def render_http_error(error):
application.logger.warning("API {} failed with status {} message {}".format(
error.response.url if error.response else 'unknown',
error.status_code,
error.message
))
application.logger.warning(
"API {} failed with status {} message {}".format(
error.response.url if error.response else "unknown",
error.status_code,
error.message,
)
)
error_code = error.status_code
if error_code not in [401, 404, 403, 410]:
# probably a 500 or 503.
# it might be a 400, which we should handle as if it's an internal server error. If the API might
# legitimately return a 400, we should handle that within the view or the client that calls it.
application.logger.exception("API {} failed with status {} message {}".format(
error.response.url if error.response else 'unknown',
error.status_code,
error.message
))
application.logger.exception(
"API {} failed with status {} message {}".format(
error.response.url if error.response else "unknown",
error.status_code,
error.message,
)
)
error_code = 500
return _error_response(error_code)
@application.errorhandler(400)
def handle_client_error(error):
# This is tripped if we call `abort(400)`.
application.logger.exception('Unhandled 400 client error')
application.logger.exception("Unhandled 400 client error")
return _error_response(400, error_page_template=500)
@application.errorhandler(410)
@@ -470,23 +485,24 @@ def register_errorhandlers(application): # noqa (C901 too complex)
@application.errorhandler(BadSignature)
def handle_bad_token(error):
# if someone has a malformed token
flash('Theres something wrong with the link youve used.')
flash("Theres something wrong with the link youve used.")
return _error_response(404)
@application.errorhandler(CSRFError)
def handle_csrf(reason):
application.logger.warning('csrf.error_message: {}'.format(reason))
application.logger.warning("csrf.error_message: {}".format(reason))
if 'user_id' not in session:
if "user_id" not in session:
application.logger.warning(
u'csrf.session_expired: Redirecting user to log in page'
"csrf.session_expired: Redirecting user to log in page"
)
return application.login_manager.unauthorized()
application.logger.warning(
u'csrf.invalid_token: Aborting request, user_id: {user_id}',
extra={'user_id': session['user_id']})
"csrf.invalid_token: Aborting request, user_id: {user_id}",
extra={"user_id": session["user_id"]},
)
return _error_response(400, error_page_template=500)
@@ -505,14 +521,14 @@ def register_errorhandlers(application): # noqa (C901 too complex)
@application.errorhandler(InviteTokenError)
def handle_bad_invite_token(error):
flash(str(error))
return redirect(url_for('main.sign_in'))
return redirect(url_for("main.sign_in"))
@application.errorhandler(500)
@application.errorhandler(Exception)
def handle_bad_request(error):
current_app.logger.exception(error)
# We want the Flask in browser stacktrace
if current_app.config.get('DEBUG', None):
if current_app.config.get("DEBUG", None):
raise error
return _error_response(500)
@@ -533,6 +549,7 @@ def add_template_filters(application):
format_datetime_24h,
format_datetime_normal,
format_datetime_short,
format_datetime_short_america,
valid_phone_number,
linkable_name,
format_date,
@@ -570,18 +587,15 @@ def add_template_filters(application):
format_mobile_network,
format_yes_no,
square_metres_to_square_miles,
convert_markdown_template,
]:
application.add_template_filter(fn)
def init_jinja(application):
repo_root = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
repo_root = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
template_folders = [
os.path.join(repo_root, 'app/templates'),
os.path.join(repo_root, "app/templates"),
]
jinja_loader = jinja2.FileSystemLoader(template_folders)
application.jinja_loader = jinja_loader
def setup_basic_auth(application):
application.basic_auth = CustomBasicAuth(application)

View File

@@ -3,23 +3,23 @@ import hashlib
class AssetFingerprinter(object):
"""
Get a unique hash for an asset file, so that it doesn't stay cached
when it changes
Get a unique hash for an asset file, so that it doesn't stay cached
when it changes
Usage:
Usage:
in the application
template_data.asset_fingerprinter = AssetFingerprinter()
in the application
template_data.asset_fingerprinter = AssetFingerprinter()
where template data is how you pass variables to every template.
where template data is how you pass variables to every template.
in template.html:
{{ asset_fingerprinter.get_url('stylesheets/application.css') }}
in template.html:
{{ asset_fingerprinter.get_url('stylesheets/application.css') }}
* 'app/static' is assumed to be the root for all asset files
* 'app/static' is assumed to be the root for all asset files
"""
def __init__(self, asset_root='/static/', filesystem_path='app/static/'):
def __init__(self, asset_root="/static/", filesystem_path="app/static/"):
self._cache = {}
self._asset_root = asset_root
self._filesystem_path = filesystem_path
@@ -29,10 +29,10 @@ class AssetFingerprinter(object):
return self._asset_root + asset_path
if asset_path not in self._cache:
self._cache[asset_path] = (
self._asset_root +
asset_path +
'?' +
self.get_asset_fingerprint(self._filesystem_path + asset_path)
self._asset_root
+ asset_path
+ "?"
+ self.get_asset_fingerprint(self._filesystem_path + asset_path)
)
return self._cache[asset_path]
@@ -42,7 +42,7 @@ class AssetFingerprinter(object):
).hexdigest()
def get_asset_file_contents(self, asset_file_path):
with open(asset_file_path, 'rb') as asset_file:
with open(asset_file_path, "rb") as asset_file:
contents = asset_file.read()
return contents

View File

@@ -1,10 +1,10 @@
<!DOCTYPE html>
<html lang="en" class="govuk-template ">
<html lang="en" class="usa-template">
<head>
<meta charset="utf-8" />
<title>
Sorry, there is a problem with the service U.S. Notify
Sorry, there is a problem with the service Notify.gov
</title>
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<meta name="theme-color" content="#0b0c0c" />
@@ -12,50 +12,43 @@
<link rel="shortcut icon" sizes="16x16 32x32 48x48" href="/static/images/favicon.ico?de7abc5226925203ac10b0a4a94af949"
type="image/x-icon" />
<link rel="mask-icon" href="/static/images/govuk-mask-icon.svg?2afd125b1db96109388d4a0727312f3e" color="#0b0c0c">
<link rel="mask-icon" href="/static/images/usa-mask-icon.svg?2afd125b1db96109388d4a0727312f3e" color="#F0F0F0">
<link rel="apple-touch-icon" sizes="180x180"
href="/static/images/govuk-apple-touch-icon-180x180.png?a0f7e1b728a42016b247dc54ee40d055">
<link rel="apple-touch-icon" sizes="167x167"
href="/static/images/govuk-apple-touch-icon-167x167.png?f636cb7d471fc6239d2241d75cbdabcb">
<link rel="apple-touch-icon" sizes="152x152"
href="/static/images/govuk-apple-touch-icon-152x152.png?40846d46aa37232e2b35065769ce567c">
<link rel="apple-touch-icon" href="/static/images/govuk-apple-touch-icon.png?3c45daa1f1e716458e4da954b973002e">
href="/static/images/apple-touch-icon.png?a0f7e1b728a42016b247dc54ee40d055">
<link rel="icon" type="image/png" sizes="32x32" href="/static/images/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/static/images/favicon-16x16.png">
<link rel="manifest" href="/static/images/site.webmanifest">
<link rel="stylesheet" media="screen" href="/static/stylesheets/main.css?d077f86473501ab244de0b30600536ee" />
<link rel="stylesheet" media="print" href="/static/stylesheets/print.css?28010888ca5719dc83d7c2c80f6ed2b2" />
<style>
.govuk-header__container {
border-color: #005EA5
}
</style>
<meta property="og:image" content="/static/images/govuk-opengraph-image.png">
<meta property="og:image" content="/static/images/usa-opengraph-image.png">
</head>
<body class="govuk-template__body ">
<a href="#main-content" class="govuk-skip-link">Skip to main content</a>
<header class="govuk-header " role="banner" data-module="header">
<div class="govuk-header__container govuk-width-container">
<body class="usa-template__body">
<a href="#main-content" class="usa-skip-link">Skip to main content</a>
<header class="usa-header " role="banner" data-module="header">
<div class="usa-header__container usa-width-container">
<div class="govuk-header__logo">
<a href="/accounts-or-dashboard" class="govuk-header__link govuk-header__link--homepage">
<span class="govuk-header__logotype">
<div class="usa-header__logo">
<a href="/accounts-or-dashboard" class="usa-header__link usa-header__link--homepage">
<span class="usa-header__logotype">
<svg role="presentation" focusable="false" class="govuk-header__logotype"
<svg role="presentation" focusable="false" class="usa-header__logotype"
xmlns="http://www.w3.org/2000/svg" viewbox="0 0 132 97" height="32" width="36">
<path fill="currentColor" fill-rule="evenodd"
d="M25 30.2c3.5 1.5 7.7-.2 9.1-3.7 1.5-3.6-.2-7.8-3.9-9.2-3.6-1.4-7.6.3-9.1 3.9-1.4 3.5.3 7.5 3.9 9zM9 39.5c3.6 1.5 7.8-.2 9.2-3.7 1.5-3.6-.2-7.8-3.9-9.1-3.6-1.5-7.6.2-9.1 3.8-1.4 3.5.3 7.5 3.8 9zM4.4 57.2c3.5 1.5 7.7-.2 9.1-3.8 1.5-3.6-.2-7.7-3.9-9.1-3.5-1.5-7.6.3-9.1 3.8-1.4 3.5.3 7.6 3.9 9.1zm38.3-21.4c3.5 1.5 7.7-.2 9.1-3.8 1.5-3.6-.2-7.7-3.9-9.1-3.6-1.5-7.6.3-9.1 3.8-1.3 3.6.4 7.7 3.9 9.1zm64.4-5.6c-3.6 1.5-7.8-.2-9.1-3.7-1.5-3.6.2-7.8 3.8-9.2 3.6-1.4 7.7.3 9.2 3.9 1.3 3.5-.4 7.5-3.9 9zm15.9 9.3c-3.6 1.5-7.7-.2-9.1-3.7-1.5-3.6.2-7.8 3.7-9.1 3.6-1.5 7.7.2 9.2 3.8 1.5 3.5-.3 7.5-3.8 9zm4.7 17.7c-3.6 1.5-7.8-.2-9.2-3.8-1.5-3.6.2-7.7 3.9-9.1 3.6-1.5 7.7.3 9.2 3.8 1.3 3.5-.4 7.6-3.9 9.1zM89.3 35.8c-3.6 1.5-7.8-.2-9.2-3.8-1.4-3.6.2-7.7 3.9-9.1 3.6-1.5 7.7.3 9.2 3.8 1.4 3.6-.3 7.7-3.9 9.1zM69.7 17.7l8.9 4.7V9.3l-8.9 2.8c-.2-.3-.5-.6-.9-.9L72.4 0H59.6l3.5 11.2c-.3.3-.6.5-.9.9l-8.8-2.8v13.1l8.8-4.7c.3.3.6.7.9.9l-5 15.4v.1c-.2.8-.4 1.6-.4 2.4 0 4.1 3.1 7.5 7 8.1h.2c.3 0 .7.1 1 .1.4 0 .7 0 1-.1h.2c4-.6 7.1-4.1 7.1-8.1 0-.8-.1-1.7-.4-2.4V34l-5.1-15.4c.4-.2.7-.6 1-.9zM66 92.8c16.9 0 32.8 1.1 47.1 3.2 4-16.9 8.9-26.7 14-33.5l-9.6-3.4c1 4.9 1.1 7.2 0 10.2-1.5-1.4-3-4.3-4.2-8.7L108.6 76c2.8-2 5-3.2 7.5-3.3-4.4 9.4-10 11.9-13.6 11.2-4.3-.8-6.3-4.6-5.6-7.9 1-4.7 5.7-5.9 8-.5 4.3-8.7-3-11.4-7.6-8.8 7.1-7.2 7.9-13.5 2.1-21.1-8 6.1-8.1 12.3-4.5 20.8-4.7-5.4-12.1-2.5-9.5 6.2 3.4-5.2 7.9-2 7.2 3.1-.6 4.3-6.4 7.8-13.5 7.2-10.3-.9-10.9-8-11.2-13.8 2.5-.5 7.1 1.8 11 7.3L80.2 60c-4.1 4.4-8 5.3-12.3 5.4 1.4-4.4 8-11.6 8-11.6H55.5s6.4 7.2 7.9 11.6c-4.2-.1-8-1-12.3-5.4l1.4 16.4c3.9-5.5 8.5-7.7 10.9-7.3-.3 5.8-.9 12.8-11.1 13.8-7.2.6-12.9-2.9-13.5-7.2-.7-5 3.8-8.3 7.1-3.1 2.7-8.7-4.6-11.6-9.4-6.2 3.7-8.5 3.6-14.7-4.6-20.8-5.8 7.6-5 13.9 2.2 21.1-4.7-2.6-11.9.1-7.7 8.8 2.3-5.5 7.1-4.2 8.1.5.7 3.3-1.3 7.1-5.7 7.9-3.5.7-9-1.8-13.5-11.2 2.5.1 4.7 1.3 7.5 3.3l-4.7-15.4c-1.2 4.4-2.7 7.2-4.3 8.7-1.1-3-.9-5.3 0-10.2l-9.5 3.4c5 6.9 9.9 16.7 14 33.5 14.8-2.1 30.8-3.2 47.7-3.2z">
</path>
<image src="https://images.emojiterra.com/twitter/v14.0/512px/1f1fa-1f1f8.png" xlink:href=""
class="govuk-header__logotype-fallback-image" width="36" height="32"></image>
class="usa-header__logotype-fallback-image" width="36" height="32"></image>
</svg>
<span class="govuk-header__logotype-text">
<span class="usa-header__logotype-text">
US
</span>
</span>
<span class="govuk-header__product-name">
<span class="usa-header__product-name">
Notify
</span>
@@ -65,18 +58,18 @@
</div>
</header>
<div class="govuk-width-container">
<main class="govuk-main-wrapper govuk-!-padding-top-0 govuk-!-padding-bottom-12" id="main-content" role="main">
<div class="govuk-grid-row">
<div class="govuk-grid-column-full">
<h1 class="govuk-heading-l govuk-!-padding-top-7">
<div class="usa-width-container">
<main class="usa-main-wrapper" id="main-content" role="main">
<div class="grid-row">
<div class="grid-col-12">
<h1 class="usa-heading-l">
Sorry, there is a problem with the service
</h1>
<p class="govuk-body">
<p class="usa-body">
Try again later.
</p>
<p class="govuk-body">
You can check our <a class="govuk-link govuk-link--no-visited-state"
<p class="usa-body">
You can check our <a class="usa-link"
href="https://status.notifications.service.gov.uk/">system status</a> page to see if there are any known
issues.<br />To report a problem, email <a
href="mailto:gov-uk-notify-support@digital.cabinet-office.gov.uk">gov-uk-notify-support@digital.cabinet-office.gov.uk</a>
@@ -85,25 +78,25 @@
</main>
</div>
<footer class="govuk-footer " role="contentinfo">
<div class="govuk-width-container ">
<div class="govuk-footer__meta">
<div class="govuk-footer__meta-item govuk-footer__meta-item--grow">
<footer class="usa-footer " role="contentinfo">
<div class="usa-width-container ">
<div class="usa-footer__meta">
<div class="usa-footer__meta-item usa-footer__meta-item--grow">
<h2 class="usa-sr-only">Support links</h2>
<div class="govuk-footer__meta-custom">
<div class="usa-footer__meta-custom">
Built by the <a href="https://www.gsa.gov/about-us/organization/federal-acquisition-service/technology-transformation-services/tts-solutions"
class="govuk-footer__link">Technology Transformation Services</a>
class="usa-footer__link">Technology Transformation Services</a>
</div>
<svg role="presentation" focusable="false" class="govuk-footer__licence-logo"
<svg role="presentation" focusable="false" class="usa-footer__licence-logo"
xmlns="http://www.w3.org/2000/svg" viewbox="0 0 483.2 195.7" height="17" width="41">
<path fill="currentColor"
d="M421.5 142.8V.1l-50.7 32.3v161.1h112.4v-50.7zm-122.3-9.6A47.12 47.12 0 0 1 221 97.8c0-26 21.1-47.1 47.1-47.1 16.7 0 31.4 8.7 39.7 21.8l42.7-27.2A97.63 97.63 0 0 0 268.1 0c-36.5 0-68.3 20.1-85.1 49.7A98 98 0 0 0 97.8 0C43.9 0 0 43.9 0 97.8s43.9 97.8 97.8 97.8c36.5 0 68.3-20.1 85.1-49.7a97.76 97.76 0 0 0 149.6 25.4l19.4 22.2h3v-87.8h-80l24.3 27.5zM97.8 145c-26 0-47.1-21.1-47.1-47.1s21.1-47.1 47.1-47.1 47.2 21 47.2 47S123.8 145 97.8 145" />
</svg>
<span class="govuk-footer__licence-description">
<span class="usa-footer__licence-description">
All content is available under the
<a class="govuk-footer__link"
<a class="usa-footer__link"
href="https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/" rel="license">Open
Government Licence v3.0</a>, except where otherwise stated
</span>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 283 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 384 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 128 KiB

After

Width:  |  Height:  |  Size: 105 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 52 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 156 KiB

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

View File

@@ -0,0 +1 @@
{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}

View File

@@ -0,0 +1,4 @@
<svg width="680" height="680" viewBox="0 0 680 680" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M672 211H332V161L672 161V211ZM672 294H332V244H672V294ZM672 377H332V327H672V377ZM672 410V460H8V410H672ZM672 493V543H8V493H672Z" fill="#D83933"/>
<path d="M8 161H299V377H8V161Z" fill="#3C3B6E"/>
</svg>

After

Width:  |  Height:  |  Size: 349 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -1,74 +0,0 @@
(function (window) {
"use strict";
window.GOVUK.Modules.AuthenticateSecurityKey = function () {
this.start = function (component) {
$(component)
.on('click', function (event) {
event.preventDefault();
// hide any existing error prompt
window.GOVUK.ErrorBanner.hideBanner();
fetch('/webauthn/authenticate')
.then(response => {
if (!response.ok) {
throw Error(response.statusText);
}
return response.arrayBuffer();
})
.then(data => {
var options = window.CBOR.decode(data);
// triggers browser dialogue to login with authenticator
return window.navigator.credentials.get(options);
})
.then(credential => {
const currentURL = new URL(window.location.href);
// create authenticateURL from admin hostname plus /webauthn/authenticate path
const authenticateURL = new URL('/webauthn/authenticate', window.location.href);
const nextUrl = currentURL.searchParams.get('next');
if (nextUrl) {
// takes nextUrl from the query string on the current browser URL
// (which should be /two-factor-webauthn) and pass it through to
// the POST. put it in a query string so it's consistent with how
// the other login flows manage it
authenticateURL.searchParams.set('next', nextUrl);
}
return fetch(authenticateURL, {
method: 'POST',
headers: { 'X-CSRFToken': component.data('csrfToken') },
body: window.CBOR.encode({
credentialId: new Uint8Array(credential.rawId),
authenticatorData: new Uint8Array(credential.response.authenticatorData),
signature: new Uint8Array(credential.response.signature),
clientDataJSON: new Uint8Array(credential.response.clientDataJSON),
})
});
})
.then(response => {
if (!response.ok) {
throw Error(response.statusText);
}
return response.arrayBuffer();
})
.then(cbor => {
return Promise.resolve(window.CBOR.decode(cbor));
})
.then(data => {
window.location.assign(data.redirect_url);
})
.catch(error => {
console.error(error);
// some browsers will show an error dialogue for some
// errors; to be safe we always display an error message on the page.
window.GOVUK.ErrorBanner.showBanner();
});
});
};
};
}) (window);

View File

@@ -20,7 +20,7 @@
}[field] || `No ${field}s`)
};
Summary.prototype.addContent = function() {
const $hint = this.module.$formGroup.find('.govuk-hint');
const $hint = this.module.$formGroup.find('.usa-hint');
this.$text = $(`<p class="selection-summary__text" />`);
if (this.fieldLabel === 'folder') { this.$text.addClass('selection-summary__text--folders'); }
@@ -90,7 +90,7 @@
};
CollapsibleCheckboxes.prototype.start = function(component) {
this.$component = $(component);
this.$formGroup = this.$component.find('.govuk-form-group').first();
this.$formGroup = this.$component.find('.usa-form-group').first();
this.$fieldset = this.$formGroup.find('fieldset').first();
this.$checkboxes = this.$fieldset.find('input[type=checkbox]');
this.fieldLabel = this.$component.data('fieldLabel');

View File

@@ -10,7 +10,7 @@
this.$input = $(component);
this.$input.closest('.govuk-form-group').append(
this.$input.closest('.usa-form-group').append(
this.$preview = $('<span class="textbox-colour-preview"></span>')
);

View File

@@ -1,15 +0,0 @@
(function (window) {
"use strict";
function hasConsentFor (cookieCategory, consentCookie) {
if (consentCookie === undefined) { consentCookie = window.GOVUK.getConsentCookie(); }
if (consentCookie === null) { return false; }
if (!(cookieCategory in consentCookie)) { return false; }
return consentCookie[cookieCategory];
}
window.GOVUK.hasConsentFor = hasConsentFor;
})(window);

View File

@@ -1,104 +0,0 @@
window.GOVUK = window.GOVUK || {};
window.GOVUK.Modules = window.GOVUK.Modules || {};
(function (Modules) {
function CookieBanner () { }
CookieBanner.clearOldCookies = function (consent) {
var gaCookies = ['_ga', '_gid'];
// clear old cookie set by our previous JS, set on the www domain
if (window.GOVUK.cookie('seen_cookie_message')) {
document.cookie = 'seen_cookie_message=;expires=' + new Date().toGMTString() + ';path=/';
}
if (consent === null) {
for (var i = 0; i < gaCookies.length; i++) {
if (window.GOVUK.cookie(gaCookies[i])) {
// GA cookies are set on the base domain so need the www stripping
var cookieString = gaCookies[i] + '=;expires=' + new Date().toGMTString() + ';domain=' + window.location.hostname.replace(/^www\./, '.') + ';path=/';
document.cookie = cookieString;
}
}
}
};
CookieBanner.prototype.start = function ($module) {
this.$module = $module[0];
this.$module.hideCookieMessage = this.hideCookieMessage.bind(this);
this.$module.showConfirmationMessage = this.showConfirmationMessage.bind(this);
this.$module.setCookieConsent = this.setCookieConsent.bind(this);
this.$module.cookieBanner = document.querySelector('.notify-cookie-banner');
this.$module.cookieBannerConfirmationMessage = this.$module.querySelector('.notify-cookie-banner__confirmation');
this.setupCookieMessage();
};
CookieBanner.prototype.setupCookieMessage = function () {
this.$hideLink = this.$module.querySelector('button[data-hide-cookie-banner]');
if (this.$hideLink) {
this.$hideLink.addEventListener('click', this.$module.hideCookieMessage);
}
this.$acceptCookiesLink = this.$module.querySelector('button[data-accept-cookies=true]');
if (this.$acceptCookiesLink) {
this.$acceptCookiesLink.addEventListener('click', () => this.$module.setCookieConsent(true));
}
this.$rejectCookiesLink = this.$module.querySelector('button[data-accept-cookies=false]');
if (this.$rejectCookiesLink) {
this.$rejectCookiesLink.addEventListener('click', () => this.$module.setCookieConsent(false));
}
this.showCookieMessage();
};
CookieBanner.prototype.showCookieMessage = function () {
// Show the cookie banner if not in the cookie settings page
if (!this.isInCookiesPage()) {
var hasCookiesPolicy = window.GOVUK.cookie('cookies_policy');
if (this.$module && !hasCookiesPolicy) {
this.$module.style.display = 'block';
}
}
};
CookieBanner.prototype.hideCookieMessage = function (event) {
if (this.$module) {
this.$module.style.display = 'none';
}
if (event.target) {
event.preventDefault();
}
};
CookieBanner.prototype.setCookieConsent = function (analyticsConsent) {
window.GOVUK.setConsentCookie({ 'analytics': analyticsConsent });
this.$module.showConfirmationMessage(analyticsConsent);
this.$module.cookieBannerConfirmationMessage.focus();
if (analyticsConsent) { window.GOVUK.initAnalytics(); }
};
CookieBanner.prototype.showConfirmationMessage = function (analyticsConsent) {
var messagePrefix = analyticsConsent ? 'Youve accepted analytics cookies.' : 'You told us not to use analytics cookies.';
this.$cookieBannerMainContent = document.querySelector('.notify-cookie-banner__wrapper');
this.$cookieBannerConfirmationMessage = document.querySelector('.notify-cookie-banner__confirmation-message');
this.$cookieBannerConfirmationMessage.insertAdjacentText('afterbegin', messagePrefix);
this.$cookieBannerMainContent.style.display = 'none';
this.$module.cookieBannerConfirmationMessage.style.display = 'block';
};
CookieBanner.prototype.isInCookiesPage = function () {
return window.location.pathname === '/cookies';
};
Modules.CookieBanner = CookieBanner;
})(window.GOVUK.Modules);

View File

@@ -0,0 +1,10 @@
(function (window) {
"use strict";
// Show the current year
const currentYearElement = document.getElementById("current-year");
if (currentYearElement) {
currentYearElement.textContent = new Date().getFullYear();
}
})(window);

View File

@@ -9,9 +9,8 @@
This may behave in unexpected ways if you have more than one element with the `banner-dangerous` class on your page.
*/
window.GOVUK.ErrorBanner = {
hideBanner: () => $('.banner-dangerous').addClass('govuk-!-display-none'),
hideBanner: () => $('.banner-dangerous').addClass('display-none'),
showBanner: () => $('.banner-dangerous')
.removeClass('govuk-!-display-none')
.trigger('focus'),
.removeClass('display-none')
};
})(window);

View File

@@ -15,9 +15,9 @@
// The label gets styled like a button and is used to hide the native file upload control. This is so that
// users see a button that looks like the others on the site.
//
this.$form.find('label.file-upload-button').addClass('usa-button');
this.$form.find('label.file-upload-button').addClass('usa-button margin-bottom-1').attr( {role: 'button', tabindex: '0'} );
// Clear the form if the user navigates back to the page
$(window).on("pageshow", () => this.$form[0].reset());

View File

@@ -1,163 +0,0 @@
// used by the cookie banner component
(function (root) {
'use strict';
window.GOVUK = window.GOVUK || {};
var DEFAULT_COOKIE_CONSENT = {
'analytics': false
};
var COOKIE_CATEGORIES = {
'_ga': 'analytics',
'_gid': 'analytics'
};
/*
Cookie methods
==============
Usage:
Setting a cookie:
GOVUK.cookie('hobnob', 'tasty', { days: 30 });
Reading a cookie:
GOVUK.cookie('hobnob');
Deleting a cookie:
GOVUK.cookie('hobnob', null);
*/
window.GOVUK.cookie = function (name, value, options) {
if (typeof value !== 'undefined') {
if (value === false || value === null) {
return window.GOVUK.setCookie(name, '', { days: -1 });
} else {
// Default expiry date of 30 days
if (typeof options === 'undefined') {
options = { days: 30 };
}
return window.GOVUK.setCookie(name, value, options);
}
} else {
return window.GOVUK.getCookie(name);
}
};
window.GOVUK.getConsentCookie = function () {
var consentCookie = window.GOVUK.cookie('cookies_policy');
var consentCookieObj;
if (consentCookie) {
try {
consentCookieObj = JSON.parse(consentCookie);
} catch (err) {
return null;
}
if (typeof consentCookieObj !== 'object' && consentCookieObj !== null) {
consentCookieObj = JSON.parse(consentCookieObj);
}
} else {
return null;
}
return consentCookieObj;
};
window.GOVUK.setConsentCookie = function (options) {
var cookieConsent = window.GOVUK.getConsentCookie();
if (!cookieConsent) {
cookieConsent = JSON.parse(JSON.stringify(DEFAULT_COOKIE_CONSENT));
}
for (var cookieType in options) {
cookieConsent[cookieType] = options[cookieType];
// Delete cookies of that type if consent being set to false
if (!options[cookieType]) {
for (var cookie in COOKIE_CATEGORIES) {
if (COOKIE_CATEGORIES[cookie] === cookieType) {
window.GOVUK.cookie(cookie, null);
if (window.GOVUK.cookie(cookie)) {
document.cookie = cookie + '=;expires=' + new Date() + ';domain=' + window.location.hostname.replace(/^www\./, '.') + ';path=/';
}
}
}
}
}
window.GOVUK.setCookie('cookies_policy', JSON.stringify(cookieConsent), { days: 365 });
};
window.GOVUK.checkConsentCookieCategory = function (cookieName, cookieCategory) {
var currentConsentCookie = window.GOVUK.getConsentCookie();
// If the consent cookie doesn't exist, but the cookie is in our known list, return true
if (!currentConsentCookie && COOKIE_CATEGORIES[cookieName]) {
return true;
}
currentConsentCookie = window.GOVUK.getConsentCookie();
// Sometimes currentConsentCookie is malformed in some of the tests, so we need to handle these
try {
return currentConsentCookie[cookieCategory];
} catch (e) {
console.error(e);
return false;
}
};
window.GOVUK.checkConsentCookie = function (cookieName, cookieValue) {
// If we're setting the consent cookie OR deleting a cookie, allow by default
if (cookieName === 'cookies_policy' || (cookieValue === null || cookieValue === false)) {
return true;
}
if (COOKIE_CATEGORIES[cookieName]) {
var cookieCategory = COOKIE_CATEGORIES[cookieName];
return window.GOVUK.checkConsentCookieCategory(cookieName, cookieCategory);
} else {
// Deny the cookie if it is not known to us
return false;
}
};
window.GOVUK.setCookie = function (name, value, options) {
if (window.GOVUK.checkConsentCookie(name, value)) {
if (typeof options === 'undefined') {
options = {};
}
var cookieString = name + '=' + value + '; path=/';
if (options.days) {
var date = new Date();
date.setTime(date.getTime() + (options.days * 24 * 60 * 60 * 1000));
cookieString = cookieString + '; expires=' + date.toGMTString();
}
if (document.location.protocol === 'https:') {
cookieString = cookieString + '; Secure';
}
document.cookie = cookieString;
}
};
window.GOVUK.getCookie = function (name) {
var nameEQ = name + '=';
var cookies = document.cookie.split(';');
for (var i = 0, len = cookies.length; i < len; i++) {
var cookie = cookies[i];
while (cookie.charAt(0) === ' ') {
cookie = cookie.substring(1, cookie.length);
}
if (cookie.indexOf(nameEQ) === 0) {
return decodeURIComponent(cookie.substring(nameEQ.length));
}
}
return null;
};
}(window));

View File

@@ -1,12 +1,5 @@
window.GOVUK.Frontend.initAll();
var consentData = window.GOVUK.getConsentCookie();
window.GOVUK.Modules.CookieBanner.clearOldCookies(consentData);
if (window.GOVUK.hasConsentFor('analytics', consentData)) {
window.GOVUK.initAnalytics();
}
$(() => $("time.timeago").timeago());
var showHideContent = new GOVUK.ShowHideContent();
@@ -16,8 +9,6 @@ $(() => GOVUK.modules.start());
$(() => $('.error-message, .usa-error-message').eq(0).parent('label').next('input').trigger('focus'));
$(() => $('.banner-dangerous').eq(0).trigger('focus'));
$(() => $('.govuk-header__container').on('click', function() {
$(this).css('border-color', '#005ea5');
}));

View File

@@ -1,36 +0,0 @@
(function (global) {
'use strict';
$ = global.jQuery;
let branding_style = $('.govuk-radios__item input[name="branding_style"]:checked');
if (!branding_style.length) { return; }
branding_style = branding_style.val();
const $paneWrapper = $('<div class="govuk-grid-column-full"></div>');
const $form = $('form');
const previewType = $form.data('previewType');
const $previewPane = $(`<iframe src="/_${previewType}?${buildQueryString(['branding_style', branding_style])}" class="branding-preview" scrolling="no"></iframe>`);
function buildQueryString () {
return $.map(arguments, (val, idx) => encodeURI(val[0]) + '=' + encodeURI(val[1])).join('&');
}
function setPreviewPane (e) {
const $target = $(e.target);
if ($target.attr('name') == 'branding_style') {
branding_style = $target.val();
}
$previewPane.attr('src', `/_${previewType}?${buildQueryString(['branding_style', branding_style])}`);
}
$paneWrapper.append($previewPane);
$form.find('.govuk-grid-row').eq(0).prepend($paneWrapper);
$form.attr('action', location.pathname.replace(new RegExp(`set-${previewType}-branding$`), `preview-${previewType}-branding`));
$form.find('button[type="submit"]').text('Save');
$('fieldset').on('change', 'input[name="branding_style"]', setPreviewPane);
})(window);

View File

@@ -9,57 +9,57 @@
let states = {
'initial': Hogan.compile(`
{{#showNowAsDefault}}
<div class="radio-select__column">
<div class="govuk-radios__item">
<input class="govuk-radios__input" checked="checked" id="{{name}}-0" name="{{name}}" type="radio" value="">
<label class="govuk-label govuk-radios__label" for="{{name}}-0">Now</label>
<div class="radio-select__column margin-y-2">
<div class="usa-radio">
<input class="usa-radio__input" checked="checked" id="{{name}}-0" name="{{name}}" type="radio" value="">
<label class="usa-radio__label" for="{{name}}-0">Now</label>
</div>
</div>
{{/showNowAsDefault}}
<div class="radio-select__column">
<div class="radio-select__column margin-y-2">
{{#categories}}
<input type='button' class='govuk-button govuk-button--secondary radio-select__button--category' aria-expanded="false" value='{{.}}' />
<input type='button' class='usa-button usa-button--outline radio-select__button--category' aria-expanded="false" value='{{.}}' />
{{/categories}}
</div>
`),
'choose': Hogan.compile(`
{{#showNowAsDefault}}
<div class="radio-select__column">
<div class="govuk-radios__item">
<input class="govuk-radios__input" checked="checked" id="{{name}}-0" name="{{name}}" type="radio" value="">
<label class="govuk-label govuk-radios__label" for="{{name}}-0">Now</label>
<div class="radio-select__column margin-y-2">
<div class="usa-radio">
<input class="usa-radio__input" checked="checked" id="{{name}}-0" name="{{name}}" type="radio" value="">
<label class="usa-radio__label" for="{{name}}-0">Now</label>
</div>
</div>
{{/showNowAsDefault}}
<div class="radio-select__column">
<div class="radio-select__column margin-y-2">
{{#choices}}
<div class="govuk-radios__item js-option">
<input class="govuk-radios__input" type="radio" value="{{value}}" id="{{id}}" name="{{name}}" />
<label class="govuk-label govuk-radios__label" for="{{id}}">{{label}}</label>
<div class="usa-radio js-option">
<input class="usa-radio__input" type="radio" value="{{value}}" id="{{id}}" name="{{name}}" />
<label class="usa-radio__label" for="{{id}}">{{label}}</label>
</div>
{{/choices}}
<input type='button' class='govuk-button govuk-button--secondary radio-select__button--done' aria-expanded='true' value='Done' />
<input type='button' class='usa-button usa-button--outline radio-select__button--done' aria-expanded='true' value='Done' />
</div>
`),
'chosen': Hogan.compile(`
{{#showNowAsDefault}}
<div class="radio-select__column">
<div class="govuk-radios__item">
<input class="govuk-radios__input" id="{{name}}-0" name="{{name}}" type="radio" value="">
<label class="govuk-label govuk-radios__label" for="{{name}}-0">Now</label>
<div class="radio-select__column margin-y-2">
<div class="usa-radio">
<input class="usa-radio__input" id="{{name}}-0" name="{{name}}" type="radio" value="">
<label class="usa-radio__label" for="{{name}}-0">Now</label>
</div>
</div>
{{/showNowAsDefault}}
<div class="radio-select__column">
<div class="radio-select__column margin-y-2">
{{#choices}}
<div class="govuk-radios__item">
<input class="govuk-radios__input" checked="checked" type="radio" value="{{value}}" id="{{id}}" name="{{name}}" />
<label class="govuk-label govuk-radios__label" for="{{id}}">{{label}}</label>
<div class="usa-radio">
<input class="usa-radio__input" checked="checked" type="radio" value="{{value}}" id="{{id}}" name="{{name}}" />
<label class="usa-radio__label" for="{{id}}">{{label}}</label>
</div>
{{/choices}}
</div>
<div class="radio-select__column">
<input type='button' class='govuk-button govuk-button--secondary radio-select__button--reset' aria-expanded='false' value='Choose a different time' />
<div class="radio-select__column margin-y-2">
<input type='button' class='usa-button usa-button--outline radio-select__button--reset' aria-expanded='false' value='Choose a different time' />
</div>
`)
};

View File

@@ -1,58 +0,0 @@
(function(window) {
"use strict";
window.GOVUK.Modules.RegisterSecurityKey = function() {
this.start = function(component) {
$(component)
.on('click', function(event) {
event.preventDefault();
// hide any existing error prompt
window.GOVUK.ErrorBanner.hideBanner();
fetch('/webauthn/register')
.then((response) => {
if (!response.ok) {
throw Error(response.statusText);
}
return response.arrayBuffer();
})
.then((data) => {
var options = window.CBOR.decode(data);
// triggers browser dialogue to select authenticator
return window.navigator.credentials.create(options);
})
.then((credential) => {
return postWebAuthnCreateResponse(
credential.response, component.data('csrfToken')
);
})
.then((response) => {
if (!response.ok) {
throw Error(response.statusText);
}
window.location.reload();
})
.catch((error) => {
console.error(error);
// some browsers will show an error dialogue for some
// errors; to be safe we always display an error message on the page.
window.GOVUK.ErrorBanner.showBanner();
});
});
};
};
function postWebAuthnCreateResponse(response, csrf_token) {
return fetch('/webauthn/register', {
method: 'POST',
headers: { 'X-CSRFToken': csrf_token },
body: window.CBOR.encode({
attestationObject: new Uint8Array(response.attestationObject),
clientDataJSON: new Uint8Array(response.clientDataJSON),
})
});
}
})(window);

View File

@@ -0,0 +1,65 @@
window.GOVUK = window.GOVUK || {};
window.GOVUK.Modules = window.GOVUK.Modules || {};
window.GOVUK.Modules.TimeoutPopup = window.GOVUK.Modules.TimeoutPopup || {};
(function(global) {
"use strict";
const sessionTimer = document.getElementById("sessionTimer");
let intervalId = null;
function checkTimer(timeTillSessionEnd) {
var now = new Date().getTime();
var difference = timeTillSessionEnd - now;
var minutes = Math.floor((difference % (1000 * 60 * 60)) / (1000 * 60));
var seconds = Math.floor((difference % (1000 * 60)) / 1000);
document.getElementById("timeLeft").innerHTML = + minutes + "m " + seconds + "s";
showTimer();
document.getElementById("logOutTimer").addEventListener("click", signoutUser);
document.getElementById("extendSessionTimer").addEventListener("click", extendSession);
if (difference < 0) {
clearInterval(intervalId);
intervalId = null;
closeTimer();
expireUserSession();
}
}
function expireUserSession() {
var signOutLink = '/sign-out?next=' + window.location.pathname;
window.location.href = signOutLink;
}
function signoutUser() {
window.location.href = '/sign-out';
}
function extendSession() {
window.location.reload();
}
function showTimer() {
sessionTimer.showModal();
}
function closeTimer() {
sessionTimer.close();
}
function setSessionTimer() {
var timeTillSessionEnd = new Date().getTime() + (5 * 60 * 1000);
intervalId = setInterval(checkTimer, 1000, timeTillSessionEnd);
}
if (document.getElementById("timeLeft") !== null) {
setTimeout(setSessionTimer, 25 * 60 * 1000);
}
global.GOVUK.Modules.TimeoutPopup.checkTimer = checkTimer;
global.GOVUK.Modules.TimeoutPopup.expireUserSession = expireUserSession;
global.GOVUK.Modules.TimeoutPopup.signoutUser = signoutUser;
global.GOVUK.Modules.TimeoutPopup.extendSession = extendSession;
global.GOVUK.Modules.TimeoutPopup.showTimer = showTimer;
global.GOVUK.Modules.TimeoutPopup.closeTimer = closeTimer;
})(window);

View File

@@ -0,0 +1,342 @@
@use "uswds-core" as *;
// SMS Box Style
.sms-message-wrapper {
position: relative;
width: 100%;
max-width: 464px;
box-sizing: border-box;
padding: units(1);
background: color('gray-cool-10');
border: 1px solid color('gray-cool-10');
border-radius: 5px;
white-space: normal;
margin: 0 0 units(1) 0;
clear: both;
word-wrap: break-word;
&:after {
content: "";
display: block;
position: absolute;
bottom: -5px;
right: -20px;
border: 10px solid transparent;
border-left-width: 13px;
border-right-width: 13px;
border-bottom-color: color('gray-cool-10');
border-left-color: color('gray-cool-10');
transform: rotate(17deg);
}
}
.sms-message-inbound {
.sms-message-wrapper {
&:after {
border-left-color: transparent;
border-bottom-color: color('gray-cool-10');
border-right-color: color('gray-cool-10');
right: auto;
left: -20px;
transform: rotate(17deg);
}
}
}
.sms-message-sender {
margin: units(1) 0 0;
}
.sms-message-recipient {
color: color('gray-cool-90');
margin: 0 0 units(1);
}
.sms-message-status {
color: color('gray-cool-90');
margin: -20px units(1) 20px units(1);
}
.sms-message-status-outbound {
text-align: right;
}
.sms-message-row {
&:focus {
outline: none;
padding-top: 120px;
margin-top: -120px;
}
}
.sms-message-reply-link {
text-align: right;
}
// File upload area
.page-footer {
position: relative;
margin-bottom: 30px;
&-link {
line-height: 40px;
padding: 1px 0 0 15px;
font-weight: normal;
&:first-of-type {
padding-left: 0px;
}
}
&-delete-link-without-button {
padding: 0;
display: inline-block;
}
&-secondary-link {
display: block;
margin-top: units(1);
}
&-right-aligned-link {
position: absolute;
right: 0;
top: 9px; // align baseline with buttons
&-without-button {
position: absolute;
right: 0;
top: 0;
}
}
&__button {
margin-right: 10px;
}
.js-cancel {
margin: 0;
}
&__button--centred {
display: block;
margin: 0 auto;
}
}
.file-upload {
&-label,
&-button-label {
font-weight: bold;
font-size: 19px;
display: block;
margin: 0 0 10px 0;
}
&-label .error-message,
&-button-label.error-message {
padding: 0;
}
&-field {
margin-bottom: 10px;
}
// Hide normal upload form if we're adding a custom version with JS
.js-enabled &-label,
.js-enabled &-field,
.js-enabled &-submit {
display: none;
}
&-alternate-link {
display: inline-block;
line-height: 35px;
a {
font-weight: bold;
}
}
}
.spreadsheet {
margin-bottom: units (1);
.table {
margin-bottom: 0;
}
.usa-table--borderless thead th {
border-top: 1px solid color('gray-cool-10');
}
th,
.table-field-index {
background: color('gray-cool-10');
border: 1px solid color('gray-cool-10');
font-weight: bold;
text-align: center;
}
th, td {
padding-left: 10px;
padding-right: 10px;
border: 1px solid color('gray-cool-10');
}
td {
border-top: 0;
// 194 is the width of the table * 1/3.5, so the overflow cuts off
// at 3.5 columns wide.
// 11 accounts for the padding of the table cell
min-width: 194px - 11px;
&:first-child {
min-width: auto;
}
}
.fullscreen-fixed-table {
z-index: 1000;
.table-field-heading-first {
background: color('gray-cool-10');
}
}
}
.fullscreen {
&-content {
background: #FFFFFF;
z-index: 10;
overflow-y: hidden;
box-sizing: border-box;
margin: 0 0 units(1) 0;
padding: 0 0 0 0;
overflow: hidden;
border-bottom: 1px solid color('gray-cool-10');
.table {
margin-bottom: 0;
tr:last-child {
td {
border-bottom: 1px solid #FFFFFF;
}
}
}
th,
.table-field-error-label,
.table-field-left-aligned {
white-space: nowrap;
}
}
&-right-shadow {
position: absolute;
top: 0;
right: 0;
width: 4px;
height: 100%;
z-index: 200;
&.visible {
&.with-transition {
transition: box-shadow 0.6s ease-out;
}
box-shadow: inset -1px 0 0 0 color('gray-cool-10'), inset -3px 0 0 0 rgba(color('gray-cool-10'), 0.2);
}
}
&-scrollable-table {
overflow-x: auto;
overflow-y: hidden;
.table-field-heading-first,
.table-field-index {
display: none;
}
.table-field-left-aligned {
position: relative;
z-index: 150;
background: #FFFFFF;
}
&::-webkit-scrollbar {
-webkit-appearance: none;
}
&::-webkit-scrollbar:horizontal {
height: 11px;
background-color: #FFFFFF;
}
&::-webkit-scrollbar-thumb {
border-radius: 8px;
border: 2px solid #FFFFFF;
background-color: rgba(0, 0, 0, .5);
}
&::-webkit-scrollbar-track {
background-color: #FFFFFF;
border-radius: 8px;
}
}
&-fixed-table {
position: absolute;
top: 0;
overflow: hidden;
.table-field-heading {
visibility: hidden;
}
.table-field-left-aligned {
width: 0;
position: relative;
z-index: 100;
visibility: hidden;
}
.table-field-heading-first,
.table-field-index {
transition: none;
position: relative;
z-index: 200;
background: #FFFFFF;
}
}
&-scrolled-table {
padding-bottom: 20px;
.table-field-heading-first,
.table-field-index {
transition: box-shadow 0.3s ease-in-out;
box-shadow: 1px 0 0 0 color('gray-cool-10'), 3px 0 0 0 rgba(color('gray-cool-10'), 0.2);
}
}
&-shim {
width: 100%;
position: relative;
z-index: 9;
margin-bottom: 30px;
pointer-events: none;
& + .table-show-more-link {
margin-top: -20px;
}
}
}
.js-focus-style {
outline: 3px solid color("blue-40v");
box-shadow: 0 0 0 7px color("blue-40v");
*:focus {
outline: none;
}
}

View File

@@ -22,38 +22,48 @@ i.e.
@use "uswds-core" as *;
.usa-logo {
font-family: family("sans");
img {
@include at-media($theme-header-min-width) {
width: 80px;
height: 70px;
.usa-header--extended {
.usa-logo {
font-family: family("sans");
margin: units(4) 0;
@include at-media-max('mobile-lg') {
margin: units(4) 0 units(4) units(2);
}
img {
@include at-media($theme-header-min-width) {
width: 80px;
height: 70px;
}
}
}
.usa-nav__secondary {
.usa-nav__link {
padding: 0;
&.usa-current {
text-decoration: underline;
}
}
}
}
.usa-nav__primary > .usa-nav__primary-item > a {
font-size: size("body", 4);
.usa-banner__header-action {
font-size: size("body", 2);
}
.usa-nav__primary {
&> .usa-nav__primary-item > a {
font-size: size("body", 4);
}
// &> .usa-nav__primary-item:last-child {
// margin-left: auto;
// @include u-margin-right(-4);
// }
}
h1 {
font-weight: bold !important;
}
.sub-content {
h1,
h2:not(.get-started-list__heading, .usa-process-list__heading) {
margin-top: units(4);
font-weight: bold;
}
h2:not(.get-started-list__heading, .usa-process-list__heading),
h3 {
margin-top: units(5);
margin-bottom: units(2);
}
}
p,
.list li {
font-family: family("sans");
@@ -64,16 +74,6 @@ p,
font-size: size("body", 16);
}
.big-number-with-status .big-number,
.big-number-with-status .big-number-smaller {
@include u-bg("primary");
}
.big-number-with-status .big-number-status,
.big-number-with-status .big-number-status-failing {
@include u-bg("green-cool-40v");
}
.show-more-no-border:focus,
.show-more:focus,
.table-field-right-aligned a:active:before,
@@ -81,14 +81,6 @@ p,
box-shadow: none !important;
}
.govuk-checkboxes__label::after {
top: 13px;
left: 9px;
width: 22px;
height: 11px;
}
.govuk-checkboxes__input:focus + .govuk-checkboxes__label::before,
.multiple-choice [type="radio"]:focus + label::before {
box-shadow: 0 0 0 3px color("blue-40v");
}
@@ -120,10 +112,6 @@ td.table-empty-message {
font-family: family("sans");
}
.govuk-inset-text {
border-color: color("blue-40v");
}
.usa-dark-background .pill-item__label {
color: white;
text-decoration: none !important;
@@ -133,9 +121,16 @@ td.table-empty-message {
text-decoration: none !important;
}
.sub-content .banner-dangerous h1,
.sub-content h2.user-list-item-heading {
margin-top: 0;
.button-flex-header {
flex-direction: column;
align-items: flex-start;
margin-bottom: units(2);
@include at-media(desktop) {
flex-direction: row;
display: flex;
align-items: center;
justify-content: space-between;
}
}
.user-list-edit-link:active:before,
@@ -144,6 +139,30 @@ td.table-empty-message {
border: 0;
}
.user-list {
display: inline-flex;
flex-wrap: wrap;
gap: units(4);
.user-list-item {
@include at-media(desktop) {
flex: 1 1 calc(50% - units(2));
flex-grow: 0;
}
flex: 1 1 calc(100% - units(2));
border: 1px solid color('gray-cool-10');
padding: units(2);
.tick-cross-list-permissions {
margin: units(1) 0;
padding-left: units(2);
}
.hint {
display: block;
font-size: size("body", "sm");
font-weight: normal;
}
}
}
.template-list-item-without-ancestors .template-list-folder:active,
.template-list-item-without-ancestors .template-list-folder:active::before,
.template-list-item-without-ancestors .template-list-folder:focus,
@@ -156,32 +175,45 @@ td.table-empty-message {
box-shadow: none;
}
.template-list-item-without-ancestors a.template-list-folder:first-of-type {
background-image: url(../images/folder-blue-bold.svg);
background-size: 30px 30px;
.template-list-item-hidden-by-default {
display: none
}
.folder-heading a.folder-heading-folder,
.template-list-folder {
background-image: url(../images/folder-blue-bold.svg);
&:hover {
color: color("blue-warm-70v");
background-image: url(../images/folder-blue-bold.svg);
}
}
.folder-heading-folder {
background-image: url(../images/folder-black.svg);
}
.folder-heading a.folder-heading-folder-truncated {
background: url(../img/material-icons/folder.svg) no-repeat;
padding-left: units(4);
display: inline-block;
background-position: 0;
}
.usa-template-list-template {
.usa-checkbox .usa-checkbox__label {
+ a.template-list-folder {
margin-left: units(4);
}
}
.usa-checkbox__label-description {
margin: units(2px) 0 units(1) units(4);
}
.folder-heading-folder {
background: url(../img/material-icons/folder_open.svg) no-repeat;
padding-left: units(4);
display: inline-block;
background-size: units(3) units(3);
background-position: 0;
}
.message-name-separator:before, .folder-heading-separator:before {
content: ">";
margin: 0 units(0.5);
}
.template-list-template {
background: url(../img/material-icons/description.svg) no-repeat;
padding-left: 40px;
background-size: 30px 30px;
padding-left: units(4);
display: inline-flex;
}
.js-enabled .live-search {
@@ -201,10 +233,8 @@ td.table-empty-message {
}
.js-stick-at-bottom-when-scrolling {
margin: 0 0 units(5);
padding: units(2) 0;
display: flex;
align-items: center;
align-items: flex-end;
justify-content: space-between;
overflow: visible;
button {
@@ -218,8 +248,303 @@ td.table-empty-message {
.sticky-template-form {
margin: 0;
padding: 0;
border: 1px solid color("gray-cool-10");
padding: units(2);
&:focus {
outline-offset: units(1);
}
}
.spark-bar-bar {
font-size: units(2);
background-color: transparent;
}
.usa-hero {
background-image: none;
}
.usa-prose {
h1, h2, h3, h4, h5 {
font-family: family("sans");
}
}
.usa-section {
&__home {
h2 {
font-family: family("serif");
}
}
}
.navigation-service.usa-breadcrumb {
bottom: 0;
}
// Dashboard
.dashboard {
.big-number-with-status {
a {
background: color("blue-60v");
padding: units(2);
margin-bottom: units(1);
text-decoration: none;
&:hover{
background: color("blue-warm-70v");
}
}
span {
color: white;
}
.big-number-smaller {
display: flex;
flex-direction: column;
.big-number-number {
font-size: units(5);
line-height: units(6);
}
.big-number-label {
font-size: units(3);
}
}
.big-number-status {
background: color("green-cool-40v");
display: flex;
padding: units(1) units(2);
&--failing {
padding: 0;
a.usa-link {
color: white;
background: color("red-warm-50v");
padding: units(1) units(2);
margin: 0;
width: 100%;
&:hover {
background: color("red-warm-60v");
}
}
}
}
}
.usa-table {
width: 100%;
caption {
margin-bottom: 0;
}
.table-field-center-aligned {
text-align: center;
}
.template-statistics-table-template-name {
padding-left: units(4);
display: inline-block;
background-repeat: no-repeat;
background-image: url(../img/material-icons/description.svg);
}
}
}
.dashboard-table {
table {
width: 100%;
}
.file-list-filename {
font-weight: bold;
}
.file-list-hint {
margin: 0;
}
.table-field, .table-field-right-aligned {
width: 50%;
}
&.usage-table {
.table-field, .table-field-left-aligned, .table-field-right-aligned {
width: auto;
}
}
}
.usage-table {
ul {
list-style: none;
padding: 0;
margin: 0;
}
.big-number-smallest {
display: flex;
flex-direction: column;
}
}
.job-table {
.usa-table {
thead th.file-name {
width: 25%;
}
thead th.template {
width: 20%;
}
thead th.time-sent {
width: 30%;
}
thead th.sender {
width: 15%;
}
thead th.\#-of-recipients {
width: 5%;
}
thead th.report {
width: 5%;
}
th {
padding: 0.5rem 0.5rem;
}
}
}
#template-list {
max-height: 500px;
overflow-y: auto;
padding: units(1) 0 units(1) units(1);
margin: units(2) 0 units(5);
ul {
padding: 0;
margin: 0;
list-style: none;
}
}
// Tabs
.tabs {
.pill {
display: flex;
list-style: none;
padding: 0;
.pill-item__container {
border: 1px solid color("gray-cool-10");
flex: 1;
display: flex;
flex-direction: column;
text-align: center;
font-size: units(2);
a {
padding: units(4);
.big-number-smaller {
font-size: units(5);
line-height: units(6);
}
.big-number-smallest {
font-size: units(3);
}
&:not(.pill-item--selected):hover {
background: color("blue-warm-70v");
}
&.pill-item--selected:hover {
color: color("blue-60v");
}
}
}
}
}
// Etc
.email-brand, .browse-list {
padding: 0;
margin: 0;
list-style: none;
margin-bottom: units(2);
li {
padding: 8px 0;
}
}
details form {
box-sizing:border-box;
}
// Textbox highlight
.textbox-highlight {
&-wrapper {
position: relative;
}
&-textbox {
resize: none;
z-index: 20;
background: none;
}
&-textbox,
&-background,
&-foreground,
&-mask {
font-size: units(2);
display: block;
box-sizing: border-box;
position: relative;
padding: 4px;
overflow: hidden;
line-height: 1.6;
}
&-background {
position: absolute;
top: 0;
left: 0;
pointer-events: none;
color: transparent;
white-space: pre-wrap;
overflow-wrap: break-word;
word-wrap: break-word;
border: 2px solid transparent;
padding-bottom: units(3);
z-index: 10;
// transparent borders become visible in high contrast modes so set to match background
@media (-ms-high-contrast: active), (forced-colors: active) {
border-color: Canvas;
}
.placeholder,
.placeholder-conditional {
background-color: #fff;
position: relative;
&:after {
content: "";
background-color: color("yellow-20v");
border: 1px solid color("yellow-20v");
display: block;
position: absolute;
top: 0;
left: 5px;
right: 6px;
height: 100%;
border-radius: 7px;
}
}
}
}
.textbox-help-link {
margin: 10px 0 0 0;
}
.textbox-right-aligned {
text-align: right;
}
.extra-tracking .usa-input {
font-size: units(2);
padding-left: 5px;
letter-spacing: 0.04em;
}
.edit-textbox-error-mt {
margin-top: 1.5rem;
}

View File

@@ -1,3 +1,4 @@
@forward "uswds-theme";
@forward "uswds";
@forward "uswds-theme-custom-styles";
@forward "legacy-styles";

View File

@@ -1,115 +0,0 @@
.govuk-grid-column-one-sixth {
@include govuk-grid-column(one-sixth, $class: false);
}
.govuk-grid-column-five-sixths {
@include govuk-grid-column(five-sixths, $class: false);
}
.govuk-grid-column-one-eighth {
@include govuk-grid-column(one-eighth, $class: false);
}
.govuk-grid-column-five-eighths {
@include govuk-grid-column(five-eighths, $class: false);
}
.govuk-grid-column-seven-eighths {
@include govuk-grid-column(seven-eighths, $class: false);
}
%top-gutter,
.top-gutter {
@extend %contain-floats;
display: block;
margin-top: govuk-spacing(6);
clear: both;
}
.top-gutter-4-3 {
@extend %top-gutter;
margin-top: govuk-spacing(7);
}
.top-gutter-1-2 {
@extend %top-gutter;
margin-top: govuk-spacing(3);
}
.top-gutter-1-3 {
@extend %top-gutter;
margin-top: govuk-spacing(2);
}
.top-gutter-2-3 {
@extend %top-gutter;
margin-top: govuk-spacing(4);
}
.top-gutter-0 {
margin-top: 0;
}
%bottom-gutter,
.bottom-gutter {
@extend %contain-floats;
margin-bottom: govuk-spacing(6);
clear: both;
}
.bottom-gutter-2-3 {
@extend %bottom-gutter;
margin-bottom: govuk-spacing(4);
}
.bottom-gutter-1-2 {
@extend %bottom-gutter;
margin-bottom: govuk-spacing(3);
}
.bottom-gutter-1-3 {
@extend %bottom-gutter;
margin-bottom: govuk-spacing(2);
}
.bottom-gutter-3-2 {
@extend %bottom-gutter;
margin-bottom: govuk-spacing(6) * 3/2;
}
.bottom-gutter-2 {
@extend %bottom-gutter;
margin-bottom: govuk-spacing(9);
}
.left-gutter {
padding-left: govuk-spacing(6);
}
.left-gutter-4-3 {
padding-left: govuk-spacing(7);
}
.align-with-heading {
display: block;
text-align: center;
margin-top: 13px;
padding-left: 2px;
padding-right: 2px;
}
.align-with-heading-copy {
display: block;
margin-top: 25px;
}
.align-with-heading-copy-right {
display: block;
margin: 21px 0 19px 0;
text-align: right;
}
.align-with-big-number-hint {
margin-top: govuk-spacing(8);
}

View File

@@ -1,12 +0,0 @@
// Copy of _url-helpers.scss in govuk_frontend_toolkit
// to prepend the path to where we store images
@function file-url($file) {
$url: '';
@if $path {
$url: url($path + $file);
} @else {
$url: url($file);
}
@return $url;
}

View File

@@ -1,255 +0,0 @@
// Extra CSS overlaying elements
.form-control-1-1 {
width: 100%;
}
.form-control-5em {
width: 100%;
@include media(tablet) {
width: 5em;
}
}
.column-main {
.heading-large,
> .heading-medium {
margin: govuk-spacing(3) 0 govuk-spacing(4) 0;
word-wrap: break-word;
&.top-gutter-0 {
margin-top: 0;
}
}
}
.highlight {
font-family: monospace;
overflow-x: scroll;
padding: 10px 0 10px 10px;
}
.inline {
.block-label {
@include media(tablet) {
float: none;
display: inline-block;
}
}
}
td {
vertical-align: top;
}
.heading-xlarge {
margin-bottom: 20px;
}
.heading-medium {
margin-top: govuk-spacing(6);
}
.form-label {
margin-bottom: 5px;
&.heading-small {
@include bold-19();
}
}
.hint {
color: $secondary-text-colour;
.form-label + & {
display: block;
margin-top: -5px;
margin-bottom: 5px;
}
}
.list-bullet {
.list-bullet {
list-style: circle;
}
}
details summary {
text-decoration: underline;
margin-bottom: govuk-spacing(3);
}
.spreadsheet {
margin-bottom: -1 * govuk-spacing(6);
.table {
margin-bottom: 0;
}
th,
.table-field-index {
background: $grey-4;
font-weight: bold;
text-align: center;
}
th, td {
padding-left: 10px;
padding-right: 10px;
border: 1px solid $border-colour;
}
td {
border-top: 0;
// 194 is the width of the table * 1/3.5, so the overflow cuts off
// at 3.5 columns wide.
// 11 accounts for the padding of the table cell
min-width: 194px - 11px;
&:first-child {
min-width: auto;
}
}
.fullscreen-fixed-table {
z-index: 1000;
.table-field-heading-first {
background: $grey-4;
}
}
}
.body-copy-table {
table {
th,
td {
@include core-19;
word-wrap: break-word;
}
thead {
th {
@include bold-19;
}
}
}
}
.tabular-numbers {
@include core-19($tabular-numbers: true);
}
summary::-moz-details-marker {
display: none;
}
summary::-ms-details-marker {
display: none;
}
summary::-o-details-marker {
display: none;
}
summary::details-marker {
display: none;
}
summary::-webkit-details-marker {
display: none;
}
details .arrow {
font-size: 16px;
}
.block-label-hint {
@include core-16;
margin-top: 5px;
}
.multiple-choice input:disabled+label {
opacity: 1;
color: $secondary-text-colour;
cursor: default;
}
.heading-inline {
display: inline-block;
}
.bordered-text-box {
padding: 5px;
outline: 2px solid $black;
max-width: 100%;
}
.nowrap {
white-space: nowrap;
}
.heading-upcoming-jobs {
margin-top: govuk-spacing(3);
}
@keyframes live-pulse {
0% {
background: $red;
box-shadow: inset 0 0 0 2px $red, inset 0 0 0 4px $white;
}
40% {
background: $red;
box-shadow: inset 0 0 0 2px $red, inset 0 0 0 4px $white;
}
50% {
background: $white;
box-shadow: inset 0 0 0 2px $red, inset 0 0 0 2px $white;
}
100% {
background: $white;
box-shadow: inset 0 0 0 2px $red, inset 0 0 0 4px $white;
}
}
input:-webkit-autofill::first-line {
@include core-19;
}
.pilot-disabled {
a {
background-color: gray;
border-color: gray;
span {
color: lightgray;
}
}
.big-number-status {
background-color: gray;
border-color: gray;
color: lightgray;
}
& > * {
color: gray;
}
}

View File

@@ -1,189 +0,0 @@
.area-list {
display: inline;
&-item {
display: inline-block;
border: 2px solid $black;
// Create space for the remove link on the right of the list item (including borders)
padding: (govuk-spacing(1) + 1px) (govuk-spacing(2) + 37px) govuk-spacing(1) govuk-spacing(2);
margin: 0 govuk-spacing(1) govuk-spacing(2) 0;
position: relative;
&-remove {
display: block; // fallback for browsers that don't support flexbox
display: flex;
// center SVG vertically and horizontally
align-items: center;
justify-content: center;
position: absolute;
top: -2px; // cover list-item border-top
right: -2px; // cover list-item border-right
bottom: -2px; // cover list-item border-bottom
width: 37px;
padding: 0;
border: 2px solid $govuk-blue;
border-left: none;
text-align: center;
font-size: inherit; // counter govuk-button styles
line-height: 36px; // match area-list-item for browsers that don't support flexbox
// set styles so they don't get overriden by govuk-button styles
&,
&:hover {
background: $govuk-blue;
}
&:hover {
color: $light-blue-25;
}
// set styles so they don't get overriden by govuk-button styles
&:active {
top: -2px;
}
// The box-shadow that separates the remove link from the list item is hidden in
// high contrast mode. Remake using a border instead
// Also sets text colour to match govuk-button
@media (-ms-high-contrast: active), (forced-colors: active) {
&:link,
&:active,
&:hover,
&:focus:not(:active):not(:hover) {
border-left: 2px solid $govuk-blue;
color: LinkText;
}
}
// set styles so they don't get overriden by govuk-button styles
&,
&:focus,
&:focus:not(:active):not(:hover) {
box-shadow: -2px 0 0 0 $black, inset 1px 0 0 0 rgba($white, 0.1);
}
// set styles so they don't get overriden by govuk-button styles
&:focus,
&:focus:not(:active):not(:hover) {
border-color: $black;
}
&:focus:hover {
background-color: $govuk-focus-colour;
color: $black;
}
// show outline to make focus visible when background colours are overridden
@media (-ms-high-contrast: active), (forced-colors: active) {
// set styles so they don't get overriden by govuk-button styles
&:focus:not(:active):not(:hover) {
outline: 3px solid transparent;
}
// override hover styles when focused, to preserve dimensions and outline
&:focus:hover {
top: -2px;
right: -2px;
bottom: -2px;
width: 37px;
}
}
}
&:last-child {
margin-right: govuk-spacing(1) * 1.5;
}
&--unremoveable {
padding-right: govuk-spacing(2);
background: $light-blue-25;
color: mix($black, $govuk-blue, 66%);
border-color: $light-blue-25;
margin: 0 govuk-spacing(1) govuk-spacing(2) 0;
font-weight: bold;
}
&--smaller {
@include bold-16;
}
}
.govuk-button--secondary {
margin-left: 3px;
}
}
#area-list-map {
z-index: 50;
margin-bottom: govuk-spacing(4);
}
.area-list-key {
display: inline-block;
position: relative;
margin-right: govuk-spacing(3);
margin-bottom: govuk-spacing(4);
height: govuk-spacing(7);
padding-left: govuk-spacing(8);
line-height: govuk-spacing(7);
&__icon {
position: absolute;
left: -5px;
top: -7px;
}
&--certain {
&:before {
border: 2px solid $black;
background: $light-blue-50;
}
}
&--likely {
&:before {
padding: 1px;
border: 2px dashed $govuk-blue;
border-image: file-url('dashed-border-govuk-blue.svg') 4 round;
background: $light-blue-25;
}
}
&--phone-estimate {
padding-left: govuk-spacing(1);
margin-right: 0;
float: right;
&:before {
display: none;
}
}
}
.area-list-map-details {
.govuk-details__summary {
display: block;
padding-top: govuk-spacing(1);
padding-bottom: govuk-spacing(1);
margin-top: 1px;
}
.govuk-details__text {
padding: 0;
border: none;
border-bottom: 1px solid $border-colour;
margin-top: -1px;
}
}

View File

@@ -1,217 +0,0 @@
%banner,
.banner,
.banner-default {
@include bold-19;
color: $button-colour;
display: block;
padding: govuk-spacing(3);
margin: govuk-spacing(3) 0 govuk-spacing(6) 0;
text-align: left;
position: relative;
clear: both;
border: 5px solid $button-colour;
&-title {
@include bold-24;
}
p {
margin: 10px 0 5px 0;
}
.list-bullet {
@include copy-19;
}
.page-footer {
margin-bottom: govuk-spacing(1);
}
}
%banner-with-tick,
.banner-with-tick {
padding: govuk-spacing(3) (govuk-spacing(6) + govuk-spacing(3));
background-image: file-url('tick.png');
background-size: 19px;
background-repeat: no-repeat;
background-position: govuk-spacing(3) govuk-spacing(3);
}
.banner-default-with-tick {
@extend %banner;
@extend %banner-with-tick;
}
.banner-dangerous {
@extend %banner;
@include bold-19;
background: $white;
color: $text-colour;
border: 5px solid $error-colour;
margin: 15px 0;
text-align: left;
&:focus {
outline: 3px solid $govuk-focus-colour;
}
.list {
margin-bottom: 0;
}
}
.banner-tour {
@extend %banner;
background: $govuk-blue;
color: $white;
margin-top: 10px;
margin-bottom: 0;
padding: govuk-spacing(6);
height: 425px;
overflow: hidden;
box-shadow: inset 0 -1em 1.6em 0 rgba(0, 0, 0, 0.05);
border: 0;
&-no-fixed-height {
height: auto;
padding-top: govuk-spacing(8);
min-height: 425px;
}
&-with-service-name {
margin-top: -10px;
padding-top: 0;
box-shadow: 0 -1px 0 0 darken($govuk-blue, 10%);
}
.heading-medium {
@include core-24;
}
p {
margin-top: 0;
margin-bottom: govuk-spacing(6);
color: $white;
&:last-child {
margin-bottom: 0;
}
& + p {
margin-top: -1 * govuk-spacing(3);
}
}
ul {
@include core-24;
color: $white;
margin-bottom: govuk-spacing(5);
}
li {
margin-bottom: govuk-spacing(3);
list-style-type: disc;
margin-left: govuk-spacing(6);
}
a {
font-weight: bold;
display: block;
padding: 0 ;
margin: 0 0 govuk-spacing(6) 0;
&:link,
&:visited {
color: $white;
}
&:hover {
color: $white;
background-color: $link-hover-colour;
box-shadow: 0 0 0 10px $link-hover-colour;
}
&:focus,
&:active {
color: $govuk-focus-text-colour;
background-color: $govuk-focus-colour;
box-shadow: 0 0 0 10px $govuk-focus-colour, 0 4px 0 10px $govuk-focus-text-colour;
}
}
img {
width: 100%;
height: auto;
position: relative;
top: -1 * govuk-spacing(2);
}
.greyed-out-step {
opacity: 0.6;
}
}
.banner-dashboard {
$baseline-shift: 5px;
display: block; // for browsers that don't support flexbox
display: flex;
align-items: baseline;
flex-wrap: wrap;
padding: (govuk-spacing(3) - 1px) 0 (govuk-spacing(3) + 1px) 0;
border-top: 1px solid $border-colour;
border-bottom: 1px solid $border-colour;
margin-bottom: govuk-spacing(6);
text-decoration: none;
&:focus {
border-top: 1px solid transparent;
border-bottom: 1px solid transparent;
}
&-count,
&-meta {
float: left; // for browsers that don't support flexbox
}
&-count {
@include govuk-font(36, $weight: bold, $tabular: true);
padding-right: 8px;
position: relative;
// remove the top of the extra line-height this introduces
top: $baseline-shift;
margin-top: -$baseline-shift;
flex: 0 1 0.85ch;
}
&-count-label {
@include govuk-font(24, $weight: bold);
text-decoration: underline;
padding-right: govuk-spacing(6);
margin: 10px 0px 5px; // 10px includes 5px extra to counter the -5px margin-top on the count item
flex: 2 1 auto;
}
&-meta {
@include govuk-font(19);
float: right;
text-align: right;
flex: initial;
}
& + .banner-dashboard {
margin-top: -1 * govuk-spacing(6);
border-top: none;
}
}

View File

@@ -1,195 +0,0 @@
%big-number,
.big-number {
display: block;
&-number,
&-label {
display: block;
}
&-number {
@include bold-48($tabular-numbers: true);
}
&-label {
@include core-19;
padding-bottom: 10px;
}
}
.pill .big-number-number {
// reduce padding until screen is bigger than 420px / zoomed below 300%
padding-left: govuk-spacing(1);
@include govuk-media-query($from: 420px) {
padding-left: govuk-spacing(2);
}
}
.big-number-dark {
@extend %big-number;
padding: govuk-spacing(3);
position: relative;
background: $black;
color: $white;
.big-number-number {
@include bold-36($tabular-numbers: true);
}
}
.big-number-smaller {
@extend %big-number;
.big-number-number {
@include bold-36($tabular-numbers: true);
}
}
.big-number-smallest {
@extend %big-number;
.big-number-number {
@include bold-24($tabular-numbers: true);
}
}
.big-number-with-status {
@extend %big-number;
position: relative;
margin-bottom: govuk-spacing(4);
.big-number,
.big-number-smaller {
padding: govuk-spacing(3);
position: relative;
background: $black;
color: $white;
}
.big-number-label {
padding-bottom: 0;
&:link,
&:visited {
color: $link-colour;
}
}
.big-number-link {
text-decoration: none;
background: $link-colour;
color: $white;
display: block;
border: 2px solid $link-colour;
margin-bottom: 5px;
&:hover {
color: $light-blue-25;
.big-number,
.big-number-number,
.big-number-smaller,
.big-number-label {
color: $light-blue-25;
}
}
&:active,
&:focus {
background: $govuk-focus-colour;
border: none;
padding: 2px; /* replace the spacing the border gave */
/* override the default focus style to inset the underline */
box-shadow: inset 0 -4px $govuk-focus-text-colour;
.big-number-number,
.big-number-smaller,
.big-number-label {
color: $govuk-focus-text-colour;
text-decoration: none;
}
}
.big-number,
.big-number-smaller {
background: transparent;
}
.big-number-label {
text-decoration: underline;
}
}
%big-number-status,
.big-number-status {
@include core-19;
display: block;
background: $green;
color: $white;
padding: 15px;
a {
&:link,
&:visited,
&:active,
&:hover {
color: $white;
text-decoration: underline;
}
&:active,
&:focus {
color: $black;
}
}
}
.big-number-status-failing {
@extend %big-number-status;
background: $error-colour;
}
}
.big-number-meta-wrapper {
position: relative;
margin: govuk-spacing(3) 0 govuk-spacing(6) 0;
background: $govuk-blue;
.big-number-meta {
padding: govuk-spacing(2) govuk-spacing(3);
color: $white;
pointer-events: none;
@include media(desktop) {
position: absolute;
bottom: 7px;
right: 5px;
text-align: right;
}
}
}

View File

@@ -1,28 +0,0 @@
.browse-list {
margin-bottom: govuk-spacing(3);
.browse-sub-list {
margin-top: govuk-spacing(3);
margin-left: govuk-spacing(6);
@include media('desktop') {
margin-left: govuk-spacing(9);
}
}
&-item,
&-sub-item {
@include bold-24;
list-style: none;
margin-bottom: govuk-spacing(3);
}
&-link {
@include govuk-font(24, $weight: bold);
}
&-hint {
@include core-19;
margin: 5px 0 10px 0;
color: $secondary-text-colour;
}
}

View File

@@ -1,120 +0,0 @@
// Taken from https://github.com/alphagov/govuk-frontend/blob/v2.13.0/src/components/checkboxes/_checkboxes.scss
$govuk-touch-target-size: 44px;
$govuk-checkboxes-size: 40px;
.selection-summary {
.selection-summary__text {
@include core-19($tabular-numbers: true);
padding: 5px 0 0 0;
margin-bottom: govuk-spacing(3);
&:focus {
outline: none;
}
}
.selection-summary__text--folders {
padding: 10px 15px 5px 51px;
background-image: file-url('folder-black.svg');
background-repeat: no-repeat;
background-size: 39px auto;
background-position: 0px 4px;
}
}
.checkboxes-nested {
margin-bottom: 10px;
.multiple-choice {
$circle-diameter: 39px;
$border-thickness: 4px;
$border-indent: ($circle-diameter / 2) - ($border-thickness / 2);
$border-colour: $border-colour;
float: none;
position: relative;
&:before {
content: "";
position: absolute;
bottom: 0;
left: $border-indent;
width: $border-thickness;
height: 100%;
background: $border-colour;
}
label {
float: none;
}
[type=checkbox]+label::before {
// To overlap the grey inset line
background: $white;
}
ul {
// To equalise the spacing between the line and the top/bottom of
// the radio
margin-top: 5px;
margin-bottom: -5px;
padding-left: 12px;
}
}
}
.govuk-form-group--nested {
$border-thickness: $govuk-touch-target-size - $govuk-checkboxes-size;
$border-indent: $govuk-touch-target-size / 2;
position: relative;
// To equalise the spacing between the line and the top/bottom of
// the radio
margin-top: govuk-spacing(1) + ($border-thickness / 2);
margin-bottom: govuk-spacing(1) * -1;
padding-left: govuk-spacing(2) + 2;
&:before {
content: "";
position: absolute;
bottom: 0;
left: $border-indent * -1;
width: $border-thickness;
height: 100%;
background: $govuk-border-colour;
}
}
.selection-content {
margin-bottom: govuk-spacing(4);
.checkboxes-nested {
margin-bottom: 0;
}
}
.selection-footer {
clear: both;
}
.selection-footer__button {
// revert full-width button for smaller screens
display: inline-block;
width: auto;
}
// styles specific to the collapsible checkboxes module
.selection-wrapper {
fieldset:focus {
outline: none;
}
}

View File

@@ -1,27 +0,0 @@
$border-thickness: 4px;
$top-spacing: govuk-spacing(5);
.multiple-choice {
z-index: 10;
.block-label {
&:before {
box-shadow: 0 5px 0 0 $white;
}
}
}
.conditional-radios {
&-panel {
border-left: $border-thickness solid $border-colour;
margin: 0 0 (-1 * govuk-spacing(3)) (govuk-spacing(3) + ($border-thickness / 2));
padding: govuk-spacing(3) 0 0 (govuk-spacing(6) - ($border-thickness / 2));
position: relative;
top: -$top-spacing;
z-index: 1;
}
}

View File

@@ -1,43 +0,0 @@
.content-metadata {
@include govuk-font(16);
@include govuk-clearfix;
@include govuk-responsive-margin(5, "bottom");
color: $govuk-text-colour;
margin-top: 15px;
.content-metadata__term,
.content-metadata__definition {
line-height: 1.4;
}
.content-metadata__term {
margin-top: .5em;
@include govuk-media-query($from: tablet) {
box-sizing: border-box;
float: left;
clear: left;
padding-right: govuk-spacing(1);
margin-top: 0;
}
}
.content-metadata__definition {
margin: 0;
@include govuk-media-query($from: tablet) {
&:not(:last-of-type) {
margin-bottom: govuk-spacing(1);
}
}
}
.content-metadata__suffix {
margin-top: 0.628em;
margin-bottom: 0;
@include govuk-media-query($from: tablet) {
margin-top: 6px;
}
}
}

View File

@@ -1,33 +0,0 @@
.copy-to-clipboard {
position: relative;
padding-bottom: 38px; // height of button
display: flex;
&__name {
@include bold-19;
margin-bottom: 5px;
}
&__notice,
&__value {
font-family: monospace;
display: block;
padding: 0 0 10px 0;
margin: auto 0;
}
&__button--show,
&__button--copy {
position: absolute;
bottom: 2px;
left: 0px;
&:active {
top: auto;
}
}
}

View File

@@ -1,75 +0,0 @@
$white-50-opaque: rgba($white, 0.5);
$button-bottom-border-colour: rgba(0, 0, 0, 0.17);
$email-message-gutter: govuk-spacing(9);
// sass-lint:disable no-important
.email-message {
margin-bottom: govuk-spacing(6);
border: 1px solid $border-colour;
&-meta {
@include core-19;
margin: 0;
td,
th {
@include core-19;
border-top: 0;
border-bottom: 1px solid $border-colour;
vertical-align: top;
}
th {
color: $secondary-text-colour;
padding-left: $email-message-gutter;
}
td {
width: 99%;
padding-right: $email-message-gutter;
word-break: break-word;
&:last-child {
padding-right: $email-message-gutter;
}
}
}
&-from {
padding-top: 15px;
}
&-body {
width: 100%;
box-sizing: border-box;
padding: govuk-spacing(3) $email-message-gutter 0 $email-message-gutter;
margin: 0 0 0 0;
clear: both;
position: relative;
word-wrap: break-word;
table {
margin: 0 0 20px 0;
td {
border: 0;
padding: 0;
font-family: inherit !important;
}
li:first-child {
margin-top: 0 !important;
}
}
}
}

View File

@@ -1,46 +0,0 @@
.js-enabled {
.file-upload {
&-label {
@include bold-19;
display: block;
margin: 0 0 10px 0;
.error-message {
padding: 0;
}
}
&-field {
width: 0.1px;
height: 0.1px;
opacity: 0;
overflow: hidden;
position: absolute;
z-index: -1;
// &:focus + .file-upload-button {
// background: $govuk-focus-colour;
// color: $govuk-focus-text-colour;
// }
}
&-filename {
@include bold-19;
display: inline-block;
padding-left: govuk-spacing(3);
}
&-submit {
display: none;
}
&-alternate-link {
display: inline-block;
line-height: 35px;
a {
font-weight: bold;
}
}
}
}

View File

@@ -1,155 +0,0 @@
.fullscreen {
&-content {
background: $white;
z-index: 10;
overflow-y: hidden;
box-sizing: border-box;
margin: 0 0 govuk-spacing(6) 0;
padding: 0 0 0 0;
overflow: hidden;
border-bottom: 1px solid $border-colour;
.table {
margin-bottom: 0;
tr:last-child {
td {
border-bottom: 1px solid $white;
}
}
}
th,
.table-field-error-label,
.table-field-left-aligned {
white-space: nowrap;
}
}
&-right-shadow {
position: absolute;
top: 0;
right: 0;
width: 4px;
height: 100%;
z-index: 200;
&.visible {
&.with-transition {
transition: box-shadow 0.6s ease-out;
}
box-shadow: inset -1px 0 0 0 $border-colour, inset -3px 0 0 0 rgba($border-colour, 0.2);
}
}
&-scrollable-table {
overflow-x: auto;
overflow-y: hidden;
.table-field-heading-first,
.table-field-index {
display: none;
}
.table-field-left-aligned {
position: relative;
z-index: 150;
background: $white;
}
&::-webkit-scrollbar {
-webkit-appearance: none;
}
&::-webkit-scrollbar:horizontal {
height: 11px;
background-color: $white;
}
&::-webkit-scrollbar-thumb {
border-radius: 8px;
border: 2px solid $white;
background-color: rgba(0, 0, 0, .5);
}
&::-webkit-scrollbar-track {
background-color: $white;
border-radius: 8px;
}
}
&-fixed-table {
position: absolute;
top: 0;
overflow: hidden;
.table-field-heading {
visibility: hidden;
}
.table-field-left-aligned {
width: 0;
position: relative;
z-index: 100;
visibility: hidden;
}
.table-field-heading-first,
.table-field-index {
transition: none;
position: relative;
z-index: 200;
background: $white;
}
}
&-scrolled-table {
padding-bottom: 20px;
.table-field-heading-first,
.table-field-index {
transition: box-shadow 0.3s ease-in-out;
box-shadow: 1px 0 0 0 $border-colour, 3px 0 0 0 rgba($border-colour, 0.2);
}
}
&-shim {
width: 100%;
position: relative;
z-index: 9;
margin-bottom: 30px;
pointer-events: none;
& + .table-show-more-link {
margin-top: -28px;
}
}
}
.js-focus-style {
outline: 3px solid $govuk-focus-text-colour;
box-shadow: 0 0 0 7px $govuk-focus-colour;
*:focus {
outline: none;
}
}

View File

@@ -1,39 +0,0 @@
.input-list {
.list-entry {
vertical-align: middle;
margin-bottom: 15px;
position: relative;
// move the left border, signifying the error, out of the main column
.govuk-form-group--error {
margin-left: ($govuk-border-width + $govuk-gutter-half) * -1;
}
}
&__button--remove,
&__button--add {
width: auto;
}
&__button--remove {
display: block;
margin-bottom: 15px;
margin-top: 5px;
position: static;
overflow: hidden;
@include media(tablet) {
@include inline-block;
margin: 0 0 0 10px;
position: absolute;
top: 0;
left: 100%;
}
}
&__button--add {
margin: 0 0 20px 0;
}
}

View File

@@ -1,20 +0,0 @@
input[type=search] {
// overrides this nasty global from GOV.UK template
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.live-search {
display: none;
.js-enabled & {
display: block;
}
.form-group {
margin-bottom: govuk-spacing(4);
}
}

View File

@@ -1,16 +0,0 @@
@keyframes ellipsis {
to {
width: 1.25em;
}
}
.loading-indicator {
&:after {
overflow: hidden;
display: inline-block;
vertical-align: bottom;
animation: ellipsis steps(4,end) 1.5s infinite;
content: "\2026"; // ellipsis
width: 0;
}
}

View File

@@ -1,314 +0,0 @@
$app-body-text-line-height-default: get-govuk-typography-style($size: 19, $breakpoint: null, $property: "line-height");
$app-body-text-line-height-tablet: get-govuk-typography-style($size: 19, $breakpoint: tablet, $property: "line-height");
@mixin separator {
display: inline-block;
vertical-align: top;
width: 20px;
height: govuk-spacing(6);
position: relative;
&:before {
content: "";
display: block;
position: absolute;
top: -5px;
bottom: 1px;
right: 7px;
width: 9px;
height: 9px;
margin: auto 0;
-webkit-transform: rotate(45deg);
-ms-transform: rotate(45deg);
transform: rotate(45deg);
border: solid;
border-width: 2px 2px 0 0;
border-color: $secondary-text-colour;
}
}
$govuk-checkboxes-size: 40px;
$govuk-checkboxes-label-padding-left-right: govuk-spacing(3);
$message-type-bottom-spacing: govuk-spacing(4);
a {
&:hover .message-name-separator:before {
border-color: $link-hover-colour;
}
.message-name-separator {
margin-right: -2px;
margin-left: -2px;
&:before {
border-color: $link-colour;
}
}
}
.message-name-separator {
@include separator;
}
.template-list {
&-item {
&-with-checkbox {
padding-left: $govuk-checkboxes-size + $govuk-checkboxes-label-padding-left-right;
}
&-hidden-by-default {
display: none;
}
&-without-ancestors {
a {
display: block;
&:first-child {
display: block;
}
&.template-list-folder:first-of-type {
background-position: 0 2px;
padding-left: 0;
text-indent: 35px;
@include govuk-media-query($from: tablet) {
text-indent: 40px;
}
}
}
.template-list-template,
.template-list-folder {
position: relative; /* contain absolutely positioned ::before pseudo element*/
display: block; /* fill horizontal space to allow hint/meta below to float */
&::before {
content: '';
position: absolute;
left: 0px;
bottom: -1 * $app-body-text-line-height-default; /* extend link by line height of hint/meta so it covers it */
width: 100%;
height: $app-body-text-line-height-default;
@include govuk-media-query($from: tablet) {
bottom: -1 * $app-body-text-line-height-tablet;
height: $app-body-text-line-height-tablet;
}
}
&:focus,
&:active {
&,
&::before {
background-color: $govuk-focus-colour;
}
&,
& + .template-list-item-hint,
.message-type {
color: $govuk-focus-text-colour;
}
&::before {
box-shadow: 0px -2px $govuk-focus-colour, 0px 4px $govuk-focus-text-colour;
}
}
& + .template-list-item-hint,
& + .message-type {
position: relative; /* needs to be non-static to have a z-index above the link :before element */
}
}
}
&-label {
position: absolute;
left: 0;
width: $govuk-checkboxes-size + $govuk-checkboxes-label-padding-left-right;
height: 100%;
padding: 0;
}
// Fix for GOVUK Frontend selector with high precendence
// https://github.com/alphagov/govuk-frontend/blob/v2.13.0/src/components/hint/_hint.scss
&-label:not(.govuk-label--m):not(.govuk-label--l):not(.govuk-label--xl)+.template-list-item-hint {
margin-bottom: $message-type-bottom-spacing;
}
&-hint {
padding-left: 0;
}
}
&-folder,
&-template {
@include govuk-font($size: 24, $weight: bold, $line-height: 1.5);
@include govuk-media-query($from: tablet) {
line-height: 1.25;
}
}
&-folder {
display: inline;
padding-left: 35px;
background-image: file-url('folder-blue-bold.svg');
background-repeat: no-repeat;
background-size: auto 20px;
background-position: 0px 4px;
@include govuk-media-query($from: tablet) {
padding-left: 40px;
}
&:hover {
background-image: file-url('folder-blue-bold-hover.svg');
}
&:focus,
&:active {
background-image: file-url('folder-black-bold.svg');
}
}
&-template {
a {
display: inline;
}
}
&-empty {
color: $secondary-text-colour;
padding: govuk-spacing(3) 0 govuk-spacing(2) 0;
}
&-selected-counter {
color: $secondary-text-colour;
margin: govuk-spacing(3) 0;
@include media(tablet) {
position: absolute;
right: 0;
top: govuk-spacing(6) - 1px;
margin: 0;
}
.content-fixed__bottom & {
right: govuk-spacing(3);
}
}
}
.sticky-template-form {
padding: govuk-spacing(3);
margin: govuk-spacing(3) * -1;
&:focus {
outline: none;
}
}
.folder-heading {
.govuk-grid-row & {
margin: govuk-spacing(3) 0 20px 0;
word-wrap: break-word;
}
a,
&-folder,
&-subfolder {
display: inline;
vertical-align: top;
background-repeat: no-repeat;
background-size: auto 20px;
background-position: 0px 4px;
min-height: 30px;
}
&-folder {
padding: 0 0 0 40px;
background-image: file-url('folder-black-bold.svg');
}
&-folder-truncated {
width: 0;
padding: 0 0 0 30px;
white-space: nowrap;
overflow: hidden;
}
&-folder-root-truncated {
max-width: 1.4em;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
a {
display: inline-block;
vertical-align: top;
&.folder-heading-folder {
display: inline;
background-image: file-url('folder-blue-bold.svg');
background-position: 0px 4px;
overflow: hidden;
text-overflow: ellipsis;
&:hover {
background-image: file-url('folder-blue-bold-hover.svg');
}
}
&.folder-heading-folder-truncated {
display: inline-block;
background-position: 0px 2px;
}
&:hover {
color: $link-hover-colour;
}
}
&-separator {
@include separator;
}
&-manage-link {
display: block;
text-align: right;
padding: govuk-spacing(4) 0 0 0;
position: relative;
top: -6px;
}
}

View File

@@ -1,247 +0,0 @@
.navigation {
@include govuk-font($size: 19);
padding: 0 govuk-spacing(6) 0 0;
$padding-top: 14px;
$padding-bottom: 11px;
&-service-name,
&-organization-link {
display: inline-block;
overflow: hidden;
// aligning to the baseline with overflow: hidden adds to the parent's height
// aligning to the top doesn't
// see: https://stackoverflow.com/questions/23529369/why-does-x-overflowhidden-cause-extra-space-below#answer-51088033
vertical-align: top;
white-space: nowrap;
text-overflow: ellipsis;
}
&-service-type {
@include bold-16;
position: relative;
display: inline-block;
margin-left: govuk-spacing(2);
padding: 0 govuk-spacing(1);
text-transform: uppercase;
letter-spacing: 0.05em;
&--training {
background: $grey-3;
color: mix($grey-1, $text-colour);
box-shadow: 0 -3px 0 0 $grey-3;
}
&--suspended {
background: $grey-3;
color: mix($grey-1, $text-colour);
box-shadow: 0 -3px 0 0 $grey-3;
}
&--live,
&--test,
&--operator {
// This uses new Design System colours to match .govuk-tag--red
background: #F6D7D2;
color: #942514;
box-shadow: 0 -3px 0 0 #F6D7D2;
}
&--government {
background: #942514;
color: #F6D7D2;
box-shadow: 0 -3px 0 0 #942514;
}
}
&-service-switch,
&-service-back-to,
&-organization-link {
&:link,
&:visited {
text-decoration: none;
}
&:hover {
text-decoration: underline;
}
&:focus {
text-decoration: none; // override the :hover style (the focus style has its own underline)
}
}
&-service {
@include govuk-font($size: 19);
border-bottom: 1px solid $border-colour;
margin: 0 0 10px;
position: relative;
&-name {
padding: $padding-top 0 $padding-bottom 0;
max-width: 50%;
}
&-switch {
text-align: right;
position: absolute;
top: 0;
right: 0;
padding: $padding-top 0 $padding-bottom govuk-spacing(3);
&:focus {
padding: $padding-top 0px $padding-bottom + 1px govuk-spacing(3) + 10;
/* override default focus style to inset bottom underline */
box-shadow: inset 0 -4px $govuk-focus-text-colour;
}
}
&-back-to {
padding: $padding-top govuk-spacing(3) $padding-bottom 0;
display: inline-block;
}
}
&-organization-link {
max-width: 25%;
padding: $padding-top 20px $padding-bottom 0;
margin-right: 5px;
box-sizing: border-box;
position: relative;
&:before {
content: "";
display: block;
position: absolute;
top: -1px;
bottom: 1px;
right: 2px;
width: 7px;
height: 7px;
margin: auto 0;
-webkit-transform: rotate(45deg);
-ms-transform: rotate(45deg);
transform: rotate(45deg);
border: solid;
border-width: 1px 1px 0 0;
border-color: $secondary-text-colour;
}
&:focus:before {
border-color: $govuk-focus-text-colour;
}
// hack to make the focus style fit in the navigation bar
&:focus {
box-shadow: inset 0 -3px $govuk-focus-text-colour, 0 1px $govuk-focus-text-colour;
}
}
li {
margin: 0;
list-style-type: none;
}
a {
display: block;
padding: 5px 0;
position: relative;
top: 5px;
&:link,
&:visited {
text-decoration: none;
}
&:hover {
text-decoration: underline;
}
&:focus {
// override the :hover style (the focus style has its own underline)
text-decoration: none;
}
&.selected {
@include bold-19;
position: relative;
// These two lines stop the width of the item jumping so much
// between selected and unselected states
left: -0.5px;
letter-spacing: -0.01em;
}
}
}
// https://github.com/alphagov/product-page-example/blob/master/source/stylesheets/modules/_sub-navigation.scss
.sub-navigation {
@include media(tablet) {
margin-top: govuk-spacing(6) * 1.5;
}
ol,
ul {
list-style: none;
padding: 0;
margin: 0;
ol,
ul {
margin-top: govuk-spacing(2);
border-top: 1px $grey-3 solid;
}
}
&__item {
@include core-16;
border-bottom: 1px $grey-3 solid;
display: block;
padding: govuk-spacing(2) 0;
a:link {
text-decoration: none;
}
a:hover,
a:active {
text-decoration: underline;
}
ol ol & {
padding-left: govuk-spacing(6);
&:last-of-type {
border-bottom: none;
padding-bottom: 0;
}
}
}
&__item--active {
@include bold-16;
a:link,
a:visited {
color: $text-colour;
}
}
}

View File

@@ -1,67 +0,0 @@
.page-footer {
position: relative;
margin-bottom: 30px;
&-link {
line-height: 40px;
padding: 1px 0 0 15px;
font-weight: normal;
}
&-delete-link-without-button {
padding: 0;
display: inline-block;
}
&-secondary-link {
display: block;
margin-top: govuk-spacing(6);
}
&-right-aligned-link {
position: absolute;
right: 0;
top: 9px; // align baseline with buttons
&-without-button {
position: absolute;
right: 0;
top: 0;
}
}
&__button {
margin-right: 10px;
}
.js-cancel {
margin: 0;
}
&__button--centred {
display: block;
margin: 0 auto;
}
}
.search-form__button {
@include media(desktop) {
position: relative;
top: 30px;
left: -30px;
width: 100%;
margin-right: -30px;
padding-top: 9px;
box-sizing: content-box;
&:active {
top: 32px;
}
}
}

View File

@@ -1,151 +0,0 @@
.pill {
display: flex;
&-item__container {
width: 25%;
flex-grow: 1;
text-align: left;
/*
For browsers that dont support flexbox, use float instead.
Float does not create floating of flex item, and do not take it
out-of-flow. So this is ignored by browsers that support flexbox.
See: https://www.w3.org/TR/css-flexbox-1/#flex-containers
*/
float: left;
/*
Setting this as a flex container means the contents (1 item)
will fill the vertical space due to `align-items` defaulting
to `stretch`.
See: https://css-tricks.com/snippets/css/a-guide-to-flexbox/#prop-align-items
*/
display: flex;
}
&-item,
&-item--selected {
display: flex; // float causes display: block in browsers without flexbox
flex-direction: column;
justify-content: center;
float: left;
box-sizing: border-box;
width: 100%;
padding: 10px 0;
}
&-item {
$background: $link-colour;
background: $background;
color: $white;
border: 2px solid $background;
position: relative;
text-decoration: none;
cursor: pointer;
&:link,
&:visited {
color: $white;
}
&:hover {
color: $light-blue-25;
}
&:active,
&:focus {
z-index: 10;
color: $govuk-focus-text-colour;
/* override default focus styles to inset bottom underline */
box-shadow: inset 0 -4px $govuk-focus-text-colour;
border: none;
padding: 12px 2px; /* compensate for lack of border with padding */
}
}
&-item--selected {
background: inherit;
border: 2px solid $black;
outline: 1px solid rgba($white, 0.1);
position: relative;
z-index: 10;
&:link,
&:visited {
color: $govuk-text-colour;
}
&:hover {
color: govuk-tint($govuk-text-colour, 25%);
}
&:active,
&:focus {
z-index: 1000;
color: $govuk-focus-text-colour;
border: solid 2px $black;
padding: 10px 0px; /* reset padding to default */
box-shadow: inset 0 -2px $govuk-focus-text-colour; /* remove bottom border from underline */
}
}
&-item__label {
text-decoration: underline;
// reduce padding until screen is above 420px / zoomed below 300%
padding-left: govuk-spacing(1);
@include govuk-media-query($from: 420px) {
padding-left: govuk-spacing(2);
}
}
&-item,
&-item--selected {
&:focus .pill-item__label {
text-decoration: none;
}
}
&-item--centered {
text-align: center;
padding-left: 0;
}
}
.pill-separate {
&-item {
display: block;
text-align: left;
padding: 9px (govuk-spacing(3) - 1);
border: 1px solid transparent;
text-align: center;
&:link,
&:visited {
background: $link-colour;
color: $white;
text-decoration: underline;
}
&:hover {
color: $light-blue-25;
}
&:focus,
&:link:focus {
color: $govuk-focus-text-colour;
text-decoration: none;
background: $govuk-focus-colour;
/* override default focus style to inset bottom underline */
box-shadow: inset 0 -4px $govuk-focus-text-colour;
}
}
}

View File

@@ -1,59 +0,0 @@
%placeholder,
.placeholder {
display: inline;
background: $govuk-focus-colour;
color: $text-colour;
overflow-wrap: break-word;
word-wrap: break-word;
border-radius: 20px;
box-shadow: inset 0.47em 0 0 0 $white, inset -0.47em 0 0 0 $white, inset 0 -0.15em 0 0 $white, inset 0 0.15em 0 0 $white;
.sms-message-wrapper & {
box-shadow: inset 0.47em 0 0 0 $panel-colour, inset -0.47em 0 0 0 $panel-colour, inset 0 -0.18em 0 0 $panel-colour, inset 0 0.18em 0 0 $panel-colour;
}
}
.placeholder-no-brackets {
@extend %placeholder;
padding-left: 3px;
padding-right: 3px;
border-radius: 1px;
box-shadow: inset 0 -0.1em 0 0 $white, inset 0 0.1em 0 0 $white;
}
.placeholder-conditional {
@extend %placeholder;
border-radius: 0;
border-top-left-radius: 20px;
border-bottom-left-radius: 20px;
border-top-right-radius: 8px;
border-bottom-right-radius: 8px;
box-shadow: inset 0.47em 0 0 0 $white, inset -0.89em 0 0 0 $white, inset 0 -0.16em 0 0 $white, inset 0 0.16em 0 0 $white;
.sms-message-wrapper & {
box-shadow: inset 0.47em 0 0 0 $panel-colour, inset -0.89em 0 0 0 $panel-colour, inset 0 -0.18em 0 0 $panel-colour, inset 0 0.18em 0 0 $panel-colour;
}
}
.placeholder-redacted {
background: currentColor;
padding: 0 0.5em;
opacity: 0.8;
box-shadow: inset 0 -0.35em 0 0 $white;
position: relative;
top: 0.1em;
.sms-message-wrapper & {
box-shadow: inset 0 -0.35em 0 0 $panel-colour;
}
*:focus + p & {
box-shadow: inset 0 -0.35em 0 0 $govuk-focus-colour;
}
}

View File

@@ -1,18 +0,0 @@
.branding-preview {
width: 100%;
box-sizing: border-box;
border: solid 1px $border-colour;
min-height: 200px;
margin-bottom: govuk-spacing(6)
}
#logo-img {
background-color: $grey-4;
background-image: linear-gradient(45deg, $grey-3 25%, transparent 25%), linear-gradient(-45deg, $grey-3 25%, transparent 25%), linear-gradient(45deg, transparent 75%, $grey-3 75%), linear-gradient(-45deg, transparent 75%, $grey-3 75%);
background-size: 20px 20px;
background-position: 0 0, 0 10px, 10px -10px, -10px 0px;
img {
display: block;
}
}

View File

@@ -1,169 +0,0 @@
.radio-select {
min-height: 39px;
&__column {
display: inline-block;
vertical-align: top;
.multiple-choice {
padding-right: 10px;
padding-left: 54px - 10px;
}
}
&__button--category {
margin-right: govuk-spacing(3);
width: auto;
}
&__button--done {
display: block;
clear: both;
margin: 0 0 govuk-spacing(6) 0;
position: relative;
top: govuk-spacing(3);
&:active {
top: govuk-spacing(3) + 2px;
}
}
.js-enabled & {
overflow: visible;
.multiple-choice {
display: none;
}
.js-multiple-choice {
display: block;
}
}
}
.radios-nested {
margin-bottom: 10px;
.multiple-choice {
$circle-diameter: 39px;
$border-thickness: 4px;
$border-indent: ($circle-diameter / 2) - ($border-thickness / 2);
$border-colour: $border-colour;
float: none;
position: relative;
&:before {
content: "";
position: absolute;
bottom: 0;
left: $border-indent;
width: $border-thickness;
height: 100%;
background: $border-colour;
}
label {
float: none;
}
[type=radio]+label::before {
// To overlap the grey inset line
background: $white;
}
ul {
// To equalise the spacing between the line and the top/bottom of
// the radio
margin-top: 5px;
margin-bottom: -5px;
padding-left: 12px;
}
.block-label-hint {
&:after {
// Adds an little extra segment of line alongside the current folder
// hint so that it extends all the way down to the next radio
content: "";
position: absolute;
top: $circle-diameter + 5px;
left: $border-indent;
width: $border-thickness;
height: 25px;
background: $border-colour;
}
}
}
}
.inline {
.multiple-choice {
margin-right: 15px;
}
}
.radio-slider {
border-bottom: 2px solid $black;
height: 18px;
margin-bottom: 18px + 30px;
margin-right: -18px;
margin-left: -18px;
white-space: nowrap;
legend {
display: none;
}
.govuk-radios__item {
margin-right: 0;
padding: 0;
width: 38px;
margin-right: calc((100% - (38px * 11)) / 10);
&:last-child {
margin-right: 0;
}
label {
font-size: 0;
padding: 0;
&:before {
background: $white;
}
}
}
&-left-value {
position: absolute;
bottom: 30px;
left: 0;
}
&-right-value {
position: absolute;
bottom: 30px;
right: 0;
text-align: right;
}
}

View File

@@ -1,8 +0,0 @@
.research-mode {
font-weight: bold;
display: inline-block;
padding: 5px 10px;
background: $govuk-blue;
color: $white;
border-radius: 2px;
}

View File

@@ -1,40 +0,0 @@
%show-more,
.show-more {
@include core-16;
display: block;
padding: 0 0;
margin: govuk-spacing(3) 0 govuk-spacing(3) 0;
text-align: center;
border-top: 1px solid $border-colour;
&:focus {
border-color: transparent;
/* override default focus style to increase top yellow box-shadow */
box-shadow: 0 -15px $govuk-focus-colour, 0 4px $govuk-focus-text-colour;
span {
outline: none;
border-color: transparent;
background-color: transparent;
}
}
span {
position: relative;
top: -11px;
outline: 10px solid white;
background: $white;
display: inline-block;
border-bottom: 1px solid $light-blue;
}
}
.show-more-no-border {
@extend %show-more;
border-top: 1px solid transparent;
margin-top: -5px;
}

View File

@@ -1,29 +0,0 @@
#footer {
.footer-categories {
margin: 0 auto;
&-wrapper {
margin-bottom: govuk-spacing(6);
padding-bottom: govuk-spacing(9);
border-bottom: 1px solid $grey-2;
}
h2 {
margin: 20px 0;
@include media(tablet) {
margin-top: 0;
}
}
ul {
margin: 0;
padding: 0;
}
li {
margin-bottom: 5px;
font-size: 16px;
}
}
}

View File

@@ -1,85 +0,0 @@
$tail-angle: 20deg;
.sms-message-wrapper {
position: relative;
width: 100%;
max-width: 464px;
box-sizing: border-box;
padding: govuk-spacing(3);
background: $panel-colour;
border: 1px solid $panel-colour;
border-radius: 5px;
white-space: normal;
margin: 0 0 govuk-spacing(6) 0;
clear: both;
word-wrap: break-word;
&:after {
content: "";
display: block;
position: absolute;
bottom: -5px;
right: -20px;
border: 10px solid transparent;
border-left-width: 13px;
border-right-width: 13px;
border-bottom-color: $panel-colour;
border-left-color: $panel-colour;
transform: rotate($tail-angle);
}
}
.sms-message-inbound {
.sms-message-wrapper {
&:after {
border-left-color: transparent;
border-bottom-color: $panel-colour;
border-right-color: $panel-colour;
right: auto;
left: -20px;
transform: rotate(-$tail-angle);
}
}
}
.sms-message-sender {
@include copy-19;
color: $secondary-text-colour;
margin: 0 0 -10px 0;
}
.sms-message-recipient {
@include copy-19;
color: $secondary-text-colour;
margin: 10px 0 0 0;
}
.sms-message-status {
@include core-16;
color: $secondary-text-colour;
margin: -20px govuk-spacing(3) 20px govuk-spacing(3);
}
.sms-message-status-outbound {
text-align: right;
}
.sms-message-row {
&:focus {
outline: none;
padding-top: 120px;
margin-top: -120px;
}
}
.sms-message-reply-link {
text-align: right;
}

View File

@@ -1,153 +0,0 @@
// CSS adapted from
// https://github.com/alphagov/govuk_frontend_toolkit/blob/d9489a987086471fe30b4b925a81c12cd198c91d/docs/javascript.md#stick-at-top-when-scrolling
$sticky-padding: govuk-spacing(4);
.js-stick-at-top-when-scrolling,
.js-stick-at-bottom-when-scrolling {
overflow: hidden;
margin-left: -1 * govuk-spacing(3);
padding: 10px 0 0 govuk-spacing(3);
position: relative;
.form-group {
margin-bottom: 20px;
legend {
outline: none;
}
}
.back-to-top-link {
position: absolute;
top: govuk-spacing(6);
right: govuk-spacing(3);
opacity: 0;
transition: opacity 0.1s ease-in-out;
}
}
.js-stick-at-top-when-scrolling {
margin-top: -10px;
margin-bottom: 5px;
top: 5px;
transition: top 0.1s ease-out, box-shadow 1s ease-in-out;
}
.js-stick-at-bottom-when-scrolling {
transition: bottom 0.1s ease-out, box-shadow 1s ease-in-out;
padding: $sticky-padding 0 $sticky-padding govuk-spacing(3);
margin-top: -$sticky-padding;
& + .js-stick-at-bottom-when-scrolling {
margin-top: ($sticky-padding * 2) * -1;
}
fieldset:focus {
outline: none;
}
.page-footer {
margin-bottom: 1px;
}
.notification-status {
margin: 0;
}
}
.content-fixed,
.content-fixed-onload {
position: fixed;
background: $white;
z-index: 100;
padding-right: govuk-spacing(3);
margin-top: 0;
.back-to-top-link {
opacity: 1;
transition: opacity 0.6s ease-in-out;
}
}
.js-stick-at-top-when-scrolling.content-fixed,
.js-stick-at-top-when-scrolling.content-fixed-onload {
top: 0;
margin-top: 0;
}
.js-stick-at-top-when-scrolling.content-fixed__top {
border-bottom: 1px solid $border-colour;
box-shadow: 0 2px 0 0 rgba($border-colour, 0.2);
}
.js-stick-at-top-when-scrolling.content-fixed {
transition: background 0.6s ease-in-out, margin-top 0.4s ease-out;
}
.js-stick-at-bottom-when-scrolling.content-fixed,
.js-stick-at-bottom-when-scrolling.content-fixed-onload {
top: auto; // cancel `top: 0;` inherited from govuk-template
bottom: 0;
}
.js-stick-at-bottom-when-scrolling.content-fixed__bottom {
border-top: 1px solid $border-colour;
box-shadow: 0 -2px 0 0 rgba($border-colour, 0.2);
}
.js-stick-at-bottom-when-scrolling.content-fixed {
transition: background 0.6s ease-in-out;
}
.js-stick-at-bottom-when-scrolling-loaded.content-fixed-onload {
transition: none;
}
.shim {
display: block;
margin-bottom: 5px;
}
.js-cancel {
display: inline-block;
padding: 10px 10px 5px 10px;
margin-top: -10px;
margin-right: -10px;
text-decoration: underline;
color: $govuk-blue;
cursor: pointer;
&:hover {
color: $link-hover-colour;
}
&:focus {
/* override default box shadow to stop it looking so large vertically */
box-shadow: inset 0 -4px $govuk-focus-text-colour;
}
}

View File

@@ -1,452 +0,0 @@
.table {
margin-bottom: govuk-spacing(6);
width: 100%;
}
.table-heading {
text-align: left;
margin: govuk-spacing(3) 0 govuk-spacing(3) 0;
}
.dashboard-table {
.heading-medium {
margin-bottom: 5px;
}
.table {
table-layout: fixed;
}
.table-field-headings {
th {
font-size: 1px;
}
}
.table-field-headings-visible {
th {
padding-bottom: 5px;
}
}
.table-field-heading-first {
width: 52.5%;
}
.table-row {
th {
display: table-cell;
width: 52.5%;
font-weight: normal;
.hint,
p {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}
}
.big-number-label {
padding-bottom: 0;
}
}
.template-statistics-table {
.table {
table-layout: fixed;
}
.table-heading {
@include core-19;
margin: 0 0 10px 0;
}
.table-field-heading-first {
width: 52.5%;
}
.table-row {
th {
display: table-cell;
width: 52.5%;
font-weight: normal;
.hint,
p {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}
}
&-template-name {
@include bold-24;
display: block;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
padding: 10px 0 32px 0;
margin: -10px 0 -32px 0;
&:focus {
color: $text-colour;
& + .template-statistics-table-hint {
color: $text-colour;
}
}
}
&-hint {
@include core-19;
color: $secondary-text-colour;
pointer-events: none;
}
}
.settings-table {
table {
table-layout: fixed;
margin-bottom: govuk-spacing(1);
}
th {
&:first-child {
width: 35%; // 33.33% + fudge
}
&:last-child {
width: 17.5% // 16.67% + fudge
}
}
td.table-field-left-aligned {
&:first-child {
div {
white-space: normal;
}
}
div {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
ul li {
margin-bottom: 5px;
}
}
td.table-field-wrap-text {
div {
white-space: normal;
}
ul li {
margin-bottom: 5px;
}
}
.table-heading {
margin-bottom: 20px;
}
}
.usage-table {
.table-field-heading-first {
width: 35%; // 33.33% + fudge
}
.table-row {
th {
width: 17.5% // 16.67% + fudge
}
}
}
%table-field,
.table-field {
vertical-align: top;
&:last-child {
padding-right: 0;
}
&-error {
border-left: 5px solid $error-colour;
padding-left: 7px;
display: block;
&-label {
display: block;
color: $error-colour;
font-weight: bold;
}
}
&-invisible-error {
border-left: 5px solid transparent;
padding-left: 7px;
display: block;
}
&-status {
&-default {
color: $secondary-text-colour;
}
&-error {
color: $error-colour;
font-weight: bold;
.status-hint {
display: block;
font-weight: normal;
color: $red;
margin-top: 5px;
}
}
&-sent-international {
.status-hint {
display: block;
font-weight: normal;
margin-top: 5px;
}
}
&-yes,
&-no {
display: block;
text-indent: -999em;
background-size: 19px 19px;
background-repeat: no-repeat;
background-position: 50% 50%;
}
&-yes {
background-image: file-url('tick.png');
}
}
&-noborder {
border: 0px;
}
&-index {
@include bold-16;
width: 15px;
a {
&:before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
&:focus {
box-shadow: none;
&:before {
background: $govuk-focus-colour;
box-shadow: inset 0 -4px 0 0 $govuk-focus-text-colour;
z-index: -1;
}
}
}
}
p {
margin: 0 0 5px 0;
}
}
.table-font-xsmall td.table-field-index { // overrides GOV.UK Elements
@include bold-16;
}
.table-field-headings {
th {
padding: 1px; /* needs some height for the grey border to show */
}
}
.table-field-headings-visible {
height: auto;
th {
padding: .75em 1.25em .5625em 0;
}
}
.table-field-headings,
.table-field-headings-visible {
th {
@include bold-19;
}
.dashboard-table &-first {
width: 52.5%;
}
}
.table-field-heading {
&:last-child {
padding-right: 0;
}
&-right-aligned {
display: block;
text-align: right;
}
}
.table-field-right-aligned {
@extend %table-field;
text-align: right;
a {
display: block;
position: relative;
/* remove default focus styles in favour of those for :before pseudo class */
&:focus {
box-shadow: none;
}
&:before {
content: "";
display: block;
position: absolute;
top: -1 * govuk-spacing(3);
right: 0;
bottom: -1 * govuk-spacing(3) + 4px;
left: -1 * govuk-spacing(3);
background: transparent;
}
&:active:before,
&:focus:before {
box-shadow: inset 0px -4px $govuk-focus-text-colour, inset 0px 15px $govuk-focus-colour, inset 15px 0px $govuk-focus-colour, inset 0px -11px $govuk-focus-colour;
}
}
}
.table-row-group {
border-top: 1px solid $border-colour;
border-bottom: 1px solid $border-colour;
}
.table-empty-message,
td.table-empty-message {
@include core-19;
color: $secondary-text-colour;
border-bottom: 1px solid $border-colour;
padding: 20px 0 20px 0;
}
.table-show-more-link {
@include core-16;
color: $secondary-text-colour;
margin-bottom: govuk-spacing(7);
border-bottom: 1px solid $border-colour;
padding: 35px 0 10px 0;
text-align: center;
.table + & {
margin-top: -1 * govuk-spacing(6);
}
}
a.table-show-more-link {
color: $link-colour;
}
.table-no-data {
@include core-16;
color: $secondary-text-colour;
margin-top: 10px;
margin-bottom: govuk-spacing(7);
border-top: 1px solid $border-colour;
border-bottom: 1px solid $border-colour;
padding: 0.75em 0 0.5625em 0;
}
.wide-left-hand-column {
display: block;
max-width: 560px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.truncate-text {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.spark-bar-bar {
width: 100%;
}

View File

@@ -1,62 +0,0 @@
$indicator-colour: $black;
%task-list-indicator {
@include bold-16;
display: inline-block;
padding: 3px 8px 1px 8px;
position: absolute;
right: 0;
top: govuk-spacing(6) - 2px;
margin-top: -15px;
border: 2px solid $indicator-colour;
pointer-events: none;
z-index: 2;
min-width: 20%;
text-align: center;
}
.task-list {
border-top: 1px solid $border-colour;
margin: govuk-spacing(6) 0;
&-item {
position: relative;
a {
border-bottom: 1px solid $border-colour;
display: block;
padding: govuk-spacing(3) 0;
padding-right: 20%;
position: relative;
&:focus {
box-shadow: inset 0 -4px $govuk-focus-text-colour;
border-color: transparent;
top: -1px;
margin-bottom: -2px;
padding-top: govuk-spacing(3) + 1px;
padding-bottom: govuk-spacing(3) + 1px;
}
}
}
&-indicator-completed {
@extend %task-list-indicator;
background-color: $indicator-colour;
color: $grey-4;
// Just a pinch of letter spacing to make reversed-out text a bit
// easier to read
letter-spacing: 0.02em;
}
&-indicator-not-completed {
@extend %task-list-indicator;
background-color: $white;
color: $indicator-colour;
}
}

View File

@@ -1,81 +0,0 @@
.textbox-highlight {
$tag-background: rgba($light-blue, 0.6);
&-wrapper {
position: relative;
}
&-textbox {
resize: none;
z-index: 20;
background: none;
}
&-textbox,
&-background,
&-foreground,
&-mask {
font-size: 19px;
display: block;
box-sizing: border-box;
position: relative;
margin: 0;
padding: 4px;
overflow: hidden;
line-height: 1.6;
}
&-background {
position: absolute;
top: 0;
left: 0;
pointer-events: none;
color: transparent;
white-space: pre-wrap;
overflow-wrap: break-word;
word-wrap: break-word;
border: 2px solid transparent;
padding-bottom: govuk-spacing(3);
z-index: 10;
// transparent borders become visible in high contrast modes so set to match background
@media (-ms-high-contrast: active), (forced-colors: active) {
border-color: Canvas;
}
.placeholder,
.placeholder-conditional {
color: transparent;
}
}
}
.textbox-help-link {
margin: 10px 0 0 0;
}
.textbox-right-aligned {
text-align: right;
}
.extra-tracking .govuk-input {
@include core-19($tabular-numbers: true);
padding-left: 5px;
letter-spacing: 0.04em;
}
.textbox-colour-preview {
@include media(desktop) {
width: 38px;
height: 38px;
margin-left: 5px;
border-radius: 50%;
box-shadow: inset 0 0 0 1px rgba($black, 0.2);
display: inline-block;
vertical-align: top;
transition: background 0.3s ease-out;
}
}

View File

@@ -1,46 +0,0 @@
%tick-cross {
@include core-19;
display: inline-block;
background-size: 19px 19px;
background-repeat: no-repeat;
background-position: 0 6px;
padding: 6px 0 5px 25px;
}
.tick-cross {
&-tick {
@extend %tick-cross;
background-image: file-url('tick.png');
}
&-cross {
@extend %tick-cross;
color: $secondary-text-colour;
background-image: file-url('cross-grey.svg');
}
&-list {
position: relative;
&-permissions {
margin-top: 5px;
li {
display: block;
margin-right: 0.5em;
}
}
&-hint {
color: #6F777B;
padding-top: 5px;
margin: 0;
}
}
}

View File

@@ -1,106 +0,0 @@
/**
* Breadcrumbs Component
*
* Based on the existing breadcrumbs from GOV.UK Elements, re-implemented
* using BEM, allowing for an `inverse` modifier (e.g. against a masthead), with
* structured data markup, and allowing for the 'current page' to be included
* as the last element in the breadcrumb.
*
* Notes:
*
* - Link the current page to the same place as your skip link (e.g. #main)
* this means that it is included by screen readers but is referred to as a
* 'same page' link, and clicking it does not reload the page.
* - You can test the structured data using Google's structured data testing
* tool: https://search.google.com/structured-data/testing-tool
*
* Example Usage:
*
* <nav class="breadcrumbs" aria-label="Breadcrumbs">
* <ol itemscope itemtype="http://schema.org/BreadcrumbList">
* <li class="breadcrumbs__item" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
* <a href="https://www.gov.uk/service-toolkit#components" itemprop="item"><span itemprop="name">Components</span></a>
* </li>
* <li class="breadcrumbs__item breadcrumbs__item--active" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
* <a href="#main" itemprop="item"><span itemprop="name">Product Page</span></a>
* </li>
* </ol>
* </nav>
*/
.breadcrumbs {
@include govuk-width-container;
@include core-16($line-height: (25 / 16), $line-height-640: 1.75);
padding: govuk-spacing(2) 0;
list-style: none;
@include media(tablet) {
margin-bottom: govuk-spacing(6);
}
ol {
margin: 0;
padding: 0;
list-style: none;
}
&__item {
display: inline-block;
margin: 0;
padding: 0 (govuk-spacing(6) / 4) 0 (11px + govuk-spacing(6) / 4);
background-image: file-url('separator.png');
background-repeat: no-repeat;
background-size: 6px 11px;
background-position: left center;
white-space: nowrap;
@include device-pixel-ratio(2) {
background-image: file-url('separator-2x.png');
}
&,
a:link,
a:hover,
a:active,
a:visited {
color: $black;
}
&--active {
@include bold-16;
a:link,
a:visited {
text-decoration: none;
}
}
&:first-child {
padding-left: 0;
background-image: none;
}
}
&--inverse {
border-bottom: 1px $white solid;
border-bottom-color: rgba($white, 0.25);
.breadcrumbs__item {
&--active,
a:link,
a:hover,
a:active,
a:visited {
color: $white;
}
a:focus {
color: $black;
}
}
}
}

View File

@@ -1,111 +0,0 @@
/*
Taken from the GOV.UK component at
https://github.com/alphagov/static/blob/3d93a762b9d7af54615c77ae3e479131c03b8175/app/assets/stylesheets/govuk-component/_previous-and-next-navigation.scss
and
https://github.com/alphagov/static/blob/da8aeeaa749093eab30286d7fc9f965533b66f47/app/assets/stylesheets/styleguide/_conditionals2.scss
*/
// Media query helpers. These make producing IE layouts
// super easy.
// These are desktop and down media queries
// There is also a local version of this in Smartanswers.
$is-ie: false !default;
@mixin media-down($size: false, $max-width: false, $min-width: false) {
@if $is-ie == false {
@if $size == mobile {
@media (max-width: 640px){
@content;
}
} @else if $size == tablet {
@media (max-width: 800px){
@content;
}
}
}
}
.govuk-previous-and-next-navigation {
display: block;
margin-top: govuk-spacing(6);
margin-bottom: govuk-spacing(6);
margin-left: -1 * govuk-spacing(3);
margin-right: -1 * govuk-spacing(3);
@include govuk-clearfix;
ul {
margin: 0;
padding: 0;
}
li {
@include core-16($line-height: (20 / 16));
float: left;
list-style: none;
text-align: right;
margin: 0;
padding: 0;
width: 50%;
a {
display: block;
padding: govuk-spacing(3);
text-decoration: none;
&:hover {
background-color: $canvas-colour;
}
&:focus {
background-color: $govuk-focus-colour;
}
.pagination-part-title {
@include core-27($line-height: (33.75 / 27));
display: block;
}
}
}
.previous-page {
float: left;
text-align: left;
}
.next-page {
float: right;
text-align: right;
}
@include media-down(mobile) {
.previous-page,
.next-page {
float: none;
width: 100%;
}
.next-page a {
text-align: right;
}
}
.pagination-icon {
display: inline-block;
margin-bottom: 1px;
height: .482em;
width: .63em;
}
.pagination-label {
display: inline-block;
margin-top: 0.1em;
text-decoration: underline;
&:empty {
display: none;
}
}
}

View File

@@ -1,60 +0,0 @@
/**
* Responsive Embed Component
*
* Notes:
*
* - Ensure you use either responsive-embed--16by9 or responsive-embed--4by3
* depending on the aspect ratio of your embed.
* - Credit: Nicolas Gallagher and SUIT CSS.
*
* Example Usage:
*
* <div class="responsive-embed responsive-embed--4by3 responsive-embed--bordered">
* <div class="responsive-embed__wrapper">
* <iframe width="560" height="315" src="https://www.youtube.com/watch?v=dQw4w9WgXcQ" frameborder="0" allowfullscreen=""></iframe>
* </div>
* </div>
*/
.responsive-embed {
.responsive-embed__wrapper {
position: relative;
display: block;
height: 0;
padding: 0;
overflow: hidden;
}
.responsive-embed__item,
iframe,
embed,
object,
video {
position: absolute;
top: 0;
left: 0;
bottom: 0;
height: 100%;
width: 100%;
border: 0;
}
}
.responsive-embed--bordered {
padding: 5px;
outline: 1px solid $border-colour;
}
// Modifier class for 16:9 aspect ratio
.responsive-embed--16by9 {
.responsive-embed__wrapper {
padding-bottom: 56.25%;
}
}
// Modifier class for 4:3 aspect ratio
.responsive-embed--4by3 {
.responsive-embed__wrapper {
padding-bottom: 75%;
}
}

Some files were not shown because too many files have changed in this diff Show More