Compare commits

...

854 Commits

Author SHA1 Message Date
Sheev Davé
42ff7aa623 Update issue_template.yml
Added a11y checks and language in the acceptance criteria, tasks, and dependencies sections
2025-01-22 12:14:31 -08:00
Beverly Nguyen
0dfad834bf Merge pull request #2288 from GSA/update-join-notify-template 2025-01-22 08:45:23 -08:00
Beverly Nguyen
86dfdb66df Merge pull request #2287 from GSA/revert-2206-2125-send-message-a11y-audit-unique-ids 2025-01-22 08:44:47 -08:00
Carlo Costino
17c6cd6e03 Update no-cost service details
This changeset updates the no-cost service details to show the correct amount of messages for the first year (100,000 instead of 250,000).

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2025-01-22 10:32:28 -05:00
Beverly Nguyen
084a5e37fc Revert "Send Message A11Y Audit - Unique IDs and also refactor error message on templates page" 2025-01-21 22:20:44 -08:00
Beverly Nguyen
56af19637e Merge pull request #2283 from GSA/sheevdave-patch-1
Update pull_request_template.md
2025-01-21 16:43:47 -08:00
Beverly Nguyen
6615d4fccb Merge pull request #2206 from GSA/2125-send-message-a11y-audit-unique-ids
Send Message A11Y Audit - Unique IDs and also refactor error message on templates page
2025-01-21 15:30:13 -08:00
Carlo Costino
4a773a5917 Merge pull request #2284 from GSA/bugfix/copy-change
Reverted change that accidentally pushed to main
2025-01-21 16:14:27 -05:00
alexjanousekGSA
16b43fa5bc Removed whitespace to trigger file change for PR 2025-01-21 16:03:50 -05:00
alexjanousekGSA
564db4cd84 Removing redundant text 2025-01-21 16:01:46 -05:00
alexjanousekGSA
561b2a345c Reverted change that accidentally pushed to main 2025-01-21 16:00:59 -05:00
alexjanousekGSA
5cde70a465 Removed redundant customize copy 2025-01-21 15:36:18 -05:00
Sheev Davé
ac79edf613 Update pull_request_template.md
Added a11y checks to PR template
2025-01-21 12:03:35 -08:00
Alex Janousek
8248833645 Merge pull request #2279 from GSA/dependabot/npm_and_yarn/rollup-4.31.0
Bump rollup from 4.30.1 to 4.31.0
2025-01-21 11:41:56 -05:00
dependabot[bot]
261c2311bd Bump rollup from 4.30.1 to 4.31.0
Bumps [rollup](https://github.com/rollup/rollup) from 4.30.1 to 4.31.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.30.1...v4.31.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-20 23:15:43 +00:00
Kenneth Kehl
028a154ea7 Merge pull request #2268 from GSA/notify-admin-2245
get rid of some noise in status updates
2025-01-20 11:27:09 -08:00
Beverly Nguyen
0168fc02df Merge pull request #2276 from GSA/2274-remove-in-a-bubble-text-from-why-text-messaging
adjust styling and content cards
2025-01-17 13:58:25 -08:00
Beverly Nguyen
b40999c646 adjust styling and content cards 2025-01-17 13:42:59 -08:00
Kenneth Kehl
1c77f8d60f fix test 2025-01-16 09:27:32 -08:00
Kenneth Kehl
6f7202eb30 fix test 2025-01-16 09:02:48 -08:00
Kenneth Kehl
3e8015ed50 get rid of some noise in status updates 2025-01-16 08:38:51 -08:00
Beverly Nguyen
92935867ea Merge pull request #2247 from GSA/2227-acceptable-use-policy
2227 - Adding Acceptable Use Policy page
2025-01-15 10:12:33 -08:00
Beverly Nguyen
b8252aec66 Merge pull request #2264 from GSA/jb-add-link-to-about-studio
Added link to /studio and made some small style updates
2025-01-15 09:52:39 -08:00
Alex Janousek
920c9f4d33 Merge pull request #2263 from GSA/dependabot/npm_and_yarn/sass-embedded-1.83.4
Bump sass-embedded from 1.83.1 to 1.83.4
2025-01-15 12:47:13 -05:00
Jonathan Bobel
f5fe608f41 Added link to /studio and made some small style updates 2025-01-15 12:15:05 -05:00
dependabot[bot]
31c67abd36 Bump sass-embedded from 1.83.1 to 1.83.4
Bumps [sass-embedded](https://github.com/sass/embedded-host-node) from 1.83.1 to 1.83.4.
- [Changelog](https://github.com/sass/embedded-host-node/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/embedded-host-node/compare/1.83.1...1.83.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-14 23:23:07 +00:00
Jonathan Bobel
b926b2da6f Merge pull request #2256 from GSA/feature/sidenav-expand-sublinks
Updated code to allow sidenav expand on click
2025-01-14 14:08:38 -05:00
alexjanousekGSA
dadfbc81e9 More content changes 2025-01-14 13:45:36 -05:00
alexjanousekGSA
8269fbbfa2 More content updates 2025-01-14 13:42:29 -05:00
alexjanousekGSA
ac211f3da1 Fixed one minor active state bug 2025-01-14 12:56:32 -05:00
alexjanousekGSA
a4968eae83 Added new backstop reference files 2025-01-14 12:38:44 -05:00
alexjanousekGSA
5a4021f625 Fixed last test hopefully 2025-01-14 12:10:23 -05:00
Jonathan Bobel
ab911ce942 Merge branch 'feature/sidenav-expand-sublinks' of https://github.com/GSA/notifications-admin into feature/sidenav-expand-sublinks 2025-01-14 09:55:56 -05:00
alexjanousekGSA
d5f4301747 More test fixes 2025-01-14 09:55:44 -05:00
alexjanousekGSA
cdf5d56938 Fixed more tests and pr comments 2025-01-14 09:30:52 -05:00
alexjanousekGSA
9666740af9 Fixing tests 2025-01-14 09:17:01 -05:00
Jonathan Bobel
872dbfd59a Merge branch 'main' of https://github.com/GSA/notifications-admin into feature/sidenav-expand-sublinks 2025-01-13 16:35:08 -05:00
alexjanousekGSA
369307f45a More test fixes 2025-01-13 16:07:32 -05:00
Jonathan Bobel
c59039d61d Merge branch 'feature/sidenav-expand-sublinks' of https://github.com/GSA/notifications-admin into feature/sidenav-expand-sublinks 2025-01-13 15:59:14 -05:00
alexjanousekGSA
b8735ea622 Fixed more tests 2025-01-13 15:53:57 -05:00
alexjanousekGSA
5994183c71 Fixing tests 2025-01-13 15:38:23 -05:00
alexjanousekGSA
2cfb069c9c Added line 2025-01-13 15:24:17 -05:00
alexjanousekGSA
66dfca579a Fixed test 2025-01-13 15:17:02 -05:00
alexjanousekGSA
0982e70a54 Fixed indention 2025-01-13 15:02:46 -05:00
alexjanousekGSA
52791cab7b Updated navigation links and backstopjs 2025-01-13 14:47:41 -05:00
Jonathan Bobel
ecadc49a55 Style and format updates 2025-01-13 13:57:59 -05:00
Jonathan Bobel
6d3bf9ae49 Merge branch 'feature/sidenav-expand-sublinks' of https://github.com/GSA/notifications-admin into feature/sidenav-expand-sublinks 2025-01-13 13:48:50 -05:00
alexjanousekGSA
6e0dd9e9ec Removed test that will break with next updates anyways 2025-01-13 12:53:44 -05:00
Jonathan Bobel
d580e131e3 Merge branch 'feature/sidenav-expand-sublinks' of https://github.com/GSA/notifications-admin into feature/sidenav-expand-sublinks 2025-01-13 12:45:12 -05:00
alexjanousekGSA
f047965ad4 Updating test 2025-01-13 12:45:01 -05:00
alexjanousekGSA
41ffb27d03 Trying one more test 2025-01-13 12:33:09 -05:00
Andrew Shumway
bb65ddb6a7 Merge pull request #2208 from GSA/dependabot/pip/phonenumbers-8.13.52
Bump phonenumbers from 8.13.48 to 8.13.52
2025-01-13 10:28:11 -07:00
dependabot[bot]
3666853f11 Bump phonenumbers from 8.13.48 to 8.13.52
Bumps [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) from 8.13.48 to 8.13.52.
- [Commits](https://github.com/daviddrysdale/python-phonenumbers/compare/v8.13.48...v8.13.52)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-13 17:22:21 +00:00
alexjanousekGSA
0ba7146012 Fixing end to end tests 2025-01-13 12:16:58 -05:00
alexjanousekGSA
cbfa11575d updated backstop files 2025-01-13 11:50:16 -05:00
alexjanousekGSA
e1b9985064 updated backstop files 2025-01-13 11:49:44 -05:00
alexjanousekGSA
36b9d2f772 Updated width of sidenav and fixed test 2025-01-13 11:42:48 -05:00
Jonathan Bobel
47cb8c27cc Merge branch 'main' of https://github.com/GSA/notifications-admin into feature/sidenav-expand-sublinks 2025-01-13 11:00:20 -05:00
Jonathan Bobel
50eeac806a Small content update 2025-01-13 10:32:49 -05:00
Jonathan Bobel
af5687349c Merge branch 'main' of https://github.com/GSA/notifications-admin into 2227-acceptable-use-policy 2025-01-13 10:31:49 -05:00
alexjanousekGSA
05e73da4e8 Fixing unit tests
'
2025-01-12 18:07:22 -05:00
alexjanousekGSA
c0d24b838a Fixed lint tests 2025-01-12 17:55:21 -05:00
alexjanousekGSA
b6353c41e5 Removed best practices flag 2025-01-12 17:42:15 -05:00
alexjanousekGSA
6441ae8ca7 Fixed missing login button on sublinks 2025-01-12 16:56:22 -05:00
alexjanousekGSA
817477bd72 Fixed bugs with sidenav 2025-01-10 16:06:55 -04:00
alexjanousekGSA
168d93a170 Updated code to allow sidenav expand on click 2025-01-09 12:00:50 -04:00
Alex Janousek
f012ab178f Merge pull request #2249 from GSA/dependabot/npm_and_yarn/sass-embedded-1.83.1
Bump sass-embedded from 1.83.0 to 1.83.1
2025-01-09 11:58:07 -04:00
dependabot[bot]
cd0507d199 Bump sass-embedded from 1.83.0 to 1.83.1
Bumps [sass-embedded](https://github.com/sass/embedded-host-node) from 1.83.0 to 1.83.1.
- [Changelog](https://github.com/sass/embedded-host-node/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/embedded-host-node/compare/1.83.0...1.83.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-09 15:10:04 +00:00
Alex Janousek
907aeca70c Merge pull request #2254 from GSA/dependabot/npm_and_yarn/rollup-4.30.1
Bump rollup from 4.29.1 to 4.30.1
2025-01-09 10:51:15 -04:00
Jonathan Bobel
7b1018e867 Merge branch 'main' of https://github.com/GSA/notifications-admin into 2227-acceptable-use-policy 2025-01-08 12:29:30 -05:00
Jonathan Bobel
7534de06e3 Merge pull request #2246 from GSA/2240-add-join-notify-to-the-main-nav
add side nav to join notify and contact page
2025-01-08 09:19:12 -05:00
Beverly Nguyen
227675c2c6 Merge branch 'main' into 2240-add-join-notify-to-the-main-nav 2025-01-07 15:54:44 -08:00
Beverly Nguyen
89ed31475d contact us side nav 2025-01-07 15:54:03 -08:00
Beverly Nguyen
322c23ab2f contact us 2025-01-07 15:49:32 -08:00
Beverly Nguyen
1aa589bbde Merge pull request #2225 from GSA/2224-fix-links-in-about-us-page
Quick fix: Links on the about us and join-notify needs to be updated
2025-01-07 15:41:36 -08:00
dependabot[bot]
85b19c4e2c Bump rollup from 4.29.1 to 4.30.1
Bumps [rollup](https://github.com/rollup/rollup) from 4.29.1 to 4.30.1.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.29.1...v4.30.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-07 23:40:58 +00:00
Carlo Costino
98e4334f2a Merge pull request #2251 from GSA/fix_broke_poetry
pin poetry to 1.8.5 for now
2025-01-07 13:30:53 -05:00
Kenneth Kehl
e9ba1c7726 pin poetry to 1.8.5 for now 2025-01-07 10:03:06 -08:00
Jonathan Bobel
02bf68989d Adjusting width in mobile 2025-01-06 12:49:39 -05:00
Jonathan Bobel
9ca9c1d504 2227 - Adding Acceptable Use Policy page 2025-01-06 10:40:35 -05:00
Beverly Nguyen
f176e86546 add side nav 2025-01-03 15:05:55 -08:00
Beverly Nguyen
5a437c91f8 Merge branch 'main' into 2224-fix-links-in-about-us-page 2025-01-03 14:01:56 -08:00
Beverly Nguyen
41ead43094 Merge pull request #2243 from GSA/2240-add-join-notify-to-the-main-nav
Add Join-Notify link to top nav
2025-01-03 13:56:34 -08:00
Beverly Nguyen
cbb2ecd6e4 Merge pull request #2232 from GSA/2210-user-story-update-home-page-phase-2-1
Updated css to add color for home page, updated backstop references
2025-01-03 13:50:04 -08:00
Beverly Nguyen
fd92d85636 add link to card 2025-01-03 13:21:07 -08:00
Beverly Nguyen
a1c76bc579 removed file 2025-01-03 13:07:49 -08:00
Beverly Nguyen
94c5eb5234 added side nav 2025-01-03 13:05:47 -08:00
Beverly Nguyen
3b2fa4314b add join notify link 2025-01-03 11:48:45 -08:00
alexjanousekGSA
b5d72a2062 Updated css to add color for home page, updated backstop references 2024-12-27 13:29:19 -05:00
Beverly Nguyen
c65352166d Merge pull request #2222 from GSA/2072-benefits-studio-about-page 2024-12-24 11:16:43 -08:00
Alex Janousek
44bf5d1478 Merge pull request #2216 from GSA/dependabot/npm_and_yarn/uswds/compile-1.2.1
Bump @uswds/compile from 1.2.0 to 1.2.1
2024-12-24 11:09:29 -05:00
Alex Janousek
7e8c9bcfc5 Merge pull request #2217 from GSA/dependabot/npm_and_yarn/uswds/uswds-3.11.0
Bump @uswds/uswds from 3.10.0 to 3.11.0
2024-12-24 11:08:59 -05:00
Alex Janousek
57e18d1e21 Merge pull request #2231 from GSA/dependabot/npm_and_yarn/rollup-4.29.1
Bump rollup from 4.28.1 to 4.29.1
2024-12-24 11:08:45 -05:00
dependabot[bot]
bc265ff4fd Bump rollup from 4.28.1 to 4.29.1
Bumps [rollup](https://github.com/rollup/rollup) from 4.28.1 to 4.29.1.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.28.1...v4.29.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-23 23:37:54 +00:00
Carlo Costino
231ce9f5a3 Merge pull request #2228 from GSA/bump-jinja2@3.1.5
Bump jinja2 from 3.1.4 to 3.1.5
2024-12-23 14:29:23 -05:00
Andrew Shumway
b60bbeb994 Bump jinja2 from 3.1.4 to 3.1.5 2024-12-23 12:14:35 -07:00
Beverly Nguyen
3da0ecc5f9 add links 2024-12-20 13:57:28 -08:00
Steven Reilly
e3674d1897 Merge pull request #2215 from GSA/feature/added-about-nav-button
Added nav button for about page
2024-12-20 16:25:16 -05:00
Jonathan Bobel
459ca8bed1 Updated navigation test 2024-12-20 14:46:13 -05:00
Jonathan Bobel
86060a5e02 White space updates 2024-12-20 14:04:25 -05:00
Jonathan Bobel
168a7b6446 2072 - Benefits Studio About Page 2024-12-20 13:38:01 -05:00
dependabot[bot]
5a4e755adc Bump @uswds/uswds from 3.10.0 to 3.11.0
Bumps [@uswds/uswds](https://github.com/uswds/uswds) from 3.10.0 to 3.11.0.
- [Release notes](https://github.com/uswds/uswds/releases)
- [Commits](https://github.com/uswds/uswds/compare/v3.10.0...v3.11.0)

---
updated-dependencies:
- dependency-name: "@uswds/uswds"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-19 23:54:42 +00:00
dependabot[bot]
92db1bf426 Bump @uswds/compile from 1.2.0 to 1.2.1
Bumps [@uswds/compile](https://github.com/uswds/uswds-compile) from 1.2.0 to 1.2.1.
- [Release notes](https://github.com/uswds/uswds-compile/releases)
- [Commits](https://github.com/uswds/uswds-compile/compare/v1.2.0...v1.2.1)

---
updated-dependencies:
- dependency-name: "@uswds/compile"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-19 23:54:33 +00:00
Alex Janousek
51e4fb3789 Merge pull request #2187 from GSA/dependabot/npm_and_yarn/rollup-4.28.1
Bump rollup from 4.28.0 to 4.28.1
2024-12-19 13:00:41 -05:00
Alex Janousek
993e8f5052 Merge pull request #2212 from GSA/dependabot/npm_and_yarn/rollup/plugin-commonjs-28.0.2
Bump @rollup/plugin-commonjs from 28.0.1 to 28.0.2
2024-12-19 13:00:23 -05:00
Alex Janousek
22f25b316d Merge pull request #2203 from GSA/dependabot/npm_and_yarn/playwright-1.49.1
Bump playwright from 1.49.0 to 1.49.1
2024-12-19 12:48:41 -05:00
Alex Janousek
cc028816f1 Merge pull request #2205 from GSA/dependabot/npm_and_yarn/sass-embedded-1.83.0
Bump sass-embedded from 1.82.0 to 1.83.0
2024-12-19 12:48:23 -05:00
dependabot[bot]
c6d68185bf Bump @rollup/plugin-commonjs from 28.0.1 to 28.0.2
Bumps [@rollup/plugin-commonjs](https://github.com/rollup/plugins/tree/HEAD/packages/commonjs) from 28.0.1 to 28.0.2.
- [Changelog](https://github.com/rollup/plugins/blob/master/packages/commonjs/CHANGELOG.md)
- [Commits](https://github.com/rollup/plugins/commits/commonjs-v28.0.2/packages/commonjs)

---
updated-dependencies:
- dependency-name: "@rollup/plugin-commonjs"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-19 17:46:55 +00:00
dependabot[bot]
3461f38c67 Bump rollup from 4.28.0 to 4.28.1
Bumps [rollup](https://github.com/rollup/rollup) from 4.28.0 to 4.28.1.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.28.0...v4.28.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-19 17:46:53 +00:00
Alex Janousek
c1c298c31d Merge pull request #2213 from GSA/dependabot/npm_and_yarn/rollup/plugin-node-resolve-16.0.0
Bump @rollup/plugin-node-resolve from 15.3.0 to 16.0.0
2024-12-19 12:45:34 -05:00
alexjanousekGSA
ea20512f41 Added nav button for about page 2024-12-19 12:44:58 -05:00
Beverly Nguyen
1e261fd353 fixed testing 2024-12-18 15:30:48 -08:00
Beverly Nguyen
1df019e78c adding required html field 2024-12-18 12:40:45 -08:00
Steven Reilly
38da133066 Merge pull request #2197 from GSA/2133-small-a11y-updates
2133 small a11y updates
2024-12-18 13:46:05 -05:00
Beverly Nguyen
ca5e5ce04c Merge branch 'main' into 2125-send-message-a11y-audit-unique-ids 2024-12-17 11:48:05 -08:00
Beverly Nguyen
56381f5b27 adding id 2024-12-17 10:06:10 -08:00
Jonathan Bobel
e0738dd9bf Merge branch 'main' of https://github.com/GSA/notifications-admin into 2133-small-a11y-updates 2024-12-17 11:34:30 -05:00
Jonathan Bobel
89fe517a21 Merge pull request #2134 from GSA/2104-join-notify
Add Join Notify content page
2024-12-17 11:34:02 -05:00
Beverly Nguyen
6856ead422 Merge branch 'main' into 2104-join-notify 2024-12-16 23:01:18 -08:00
dependabot[bot]
15dbf4a4d7 Bump @rollup/plugin-node-resolve from 15.3.0 to 16.0.0
Bumps [@rollup/plugin-node-resolve](https://github.com/rollup/plugins/tree/HEAD/packages/node-resolve) from 15.3.0 to 16.0.0.
- [Changelog](https://github.com/rollup/plugins/blob/master/packages/node-resolve/CHANGELOG.md)
- [Commits](https://github.com/rollup/plugins/commits/commonjs-v16.0.0/packages/node-resolve)

---
updated-dependencies:
- dependency-name: "@rollup/plugin-node-resolve"
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-16 23:19:41 +00:00
Alex Janousek
12660ef3d8 Merge pull request #2189 from GSA/2175-user-story-update-home-page-phase-s1
Update Homepage Content
2024-12-16 15:22:30 -05:00
Beverly Nguyen
c090794d53 Merge pull request #2192 from GSA/2124-send-message-a11y-audit-error-messages-not-reading-correctly-in-voiceover
Added errors focus to empty field
2024-12-16 09:48:28 -08:00
Jonathan Bobel
1486680293 Updating new home page styles to use more from the USWDS, and make sure it's responsive and accessible 2024-12-13 12:37:11 -05:00
Beverly Nguyen
12636d6a69 adding error annoucement 2024-12-12 23:31:22 -08:00
Beverly Nguyen
b731cd62bb adding error annoucement 2024-12-12 23:08:25 -08:00
Beverly Nguyen
17f758bace added id and also refactor error message on templates page 2024-12-12 18:42:03 -08:00
dependabot[bot]
7aeb1c067d Bump sass-embedded from 1.82.0 to 1.83.0
Bumps [sass-embedded](https://github.com/sass/embedded-host-node) from 1.82.0 to 1.83.0.
- [Changelog](https://github.com/sass/embedded-host-node/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/embedded-host-node/compare/1.82.0...1.83.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-12 23:38:33 +00:00
Jonathan Bobel
ad836d01be Fixing the ul 2024-12-12 11:06:58 -05:00
Jonathan Bobel
00949dc673 Moving ul to pass E2E test 2024-12-11 11:59:58 -05:00
Jonathan Bobel
649f3ee3ad Adding sr-only contextual content 2024-12-11 11:31:24 -05:00
Jonathan Bobel
e1e0a4dca0 Fixing test 2024-12-11 11:24:26 -05:00
Jonathan Bobel
1e3f15d98e Reverting as this should be addressed in a future issue 2024-12-11 10:56:34 -05:00
Jonathan Bobel
1a9408aeba Additional a11y updates 2024-12-11 10:30:16 -05:00
alexjanousekGSA
92f3794e61 Updated some text 2024-12-11 09:37:04 -05:00
alexjanousekGSA
dfef5203bf Fixed test 2024-12-11 09:34:24 -05:00
alexjanousekGSA
be5f789c5f Trying to get successful build 2024-12-11 09:15:18 -05:00
dependabot[bot]
4d0affee77 Bump playwright from 1.49.0 to 1.49.1
Bumps [playwright](https://github.com/microsoft/playwright) from 1.49.0 to 1.49.1.
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](https://github.com/microsoft/playwright/compare/v1.49.0...v1.49.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-10 23:14:25 +00:00
Beverly Nguyen
1f3d202a0d refactor a bit 2024-12-10 12:21:01 -08:00
Jonathan Bobel
00581521e7 Fixing tests 2024-12-10 14:50:36 -05:00
Jonathan Bobel
7f16edcfc7 Removing comments 2024-12-10 12:23:42 -05:00
Jonathan Bobel
4c710b6b12 2133 - small a11y updates 2024-12-10 12:21:01 -05:00
Beverly Nguyen
27abdc635e flake 2024-12-09 22:10:27 -08:00
Beverly Nguyen
2fb4b7538c added errors focus 2024-12-09 18:47:34 -08:00
alexjanousekGSA
e3bb69bc1c First commit of new updated homepage content 2024-12-09 12:53:38 -05:00
Beverly Nguyen
28a6b44a98 Merge pull request #2151 from GSA/2135-send-message-flow-h1-changes
2135 - Send Message A11Y Audit - Adjust headers in Send Message flow
2024-12-05 14:05:06 -08:00
Beverly Nguyen
7b56372415 Merge pull request #2128 from GSA/2105-contact
New Contact page
2024-12-05 14:03:34 -08:00
Beverly Nguyen
9c3560cf4e Merge pull request #2178 from GSA/2177-add-video-to-about-page
Add youtube video to about page
2024-12-05 14:02:30 -08:00
Beverly Nguyen
83c21ecefb fixed flake8 2024-12-04 14:33:05 -08:00
Beverly Nguyen
0f7d09ac74 fixed flake8 2024-12-04 14:32:17 -08:00
Beverly Nguyen
b49f579ece updated contact route 2024-12-04 14:29:49 -08:00
Beverly Nguyen
167cd2c3a0 Merge branch 'main' into 2105-contact 2024-12-04 14:27:03 -08:00
Beverly Nguyen
cce4997c63 moved join-notify out of about 2024-12-04 14:22:59 -08:00
Beverly Nguyen
a6a1aa0453 Merge branch 'main' into 2104-join-notify 2024-12-04 14:16:31 -08:00
Beverly Nguyen
cf45313ad8 added youtube video to about page 2024-12-04 14:10:59 -08:00
Alex Janousek
8e896eb57a Merge pull request #2164 from GSA/dependabot/pip/moto-5.0.22
Bump moto from 5.0.18 to 5.0.22
2024-12-04 12:26:59 -05:00
Jonathan Bobel
d684168a90 Style, clean up, a11y updates 2024-12-04 11:46:21 -05:00
Alex Janousek
3c621ee41d Merge pull request #2149 from GSA/dependabot/npm_and_yarn/cross-spawn-7.0.6
Bump cross-spawn from 7.0.3 to 7.0.6
2024-12-04 11:00:29 -05:00
dependabot[bot]
3728af6f40 Bump cross-spawn from 7.0.3 to 7.0.6
Bumps [cross-spawn](https://github.com/moxystudio/node-cross-spawn) from 7.0.3 to 7.0.6.
- [Changelog](https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/moxystudio/node-cross-spawn/compare/v7.0.3...v7.0.6)

---
updated-dependencies:
- dependency-name: cross-spawn
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-04 15:49:01 +00:00
Alex Janousek
46ee555d40 Merge pull request #2169 from GSA/dependabot/npm_and_yarn/rollup-4.28.0
Bump rollup from 4.27.3 to 4.28.0
2024-12-04 10:45:38 -05:00
Alex Janousek
0ba9943bb7 Merge pull request #2170 from GSA/dependabot/npm_and_yarn/sass-embedded-1.82.0
Bump sass-embedded from 1.81.0 to 1.82.0
2024-12-04 10:44:08 -05:00
Jonathan Bobel
30c249718d Merge branch '2135-send-message-flow-h1-changes' of https://github.com/GSA/notifications-admin into 2135-send-message-flow-h1-changes
# Conflicts:
#	app/templates/views/templates/template.html
2024-12-04 10:18:26 -05:00
Jonathan Bobel
b75d7dcd12 style changes 2024-12-04 10:17:29 -05:00
Beverly Nguyen
02bffa8c12 fixed testing 2024-12-03 17:15:52 -08:00
Beverly Nguyen
8468b4d5e0 fixed testing 2024-12-03 17:05:18 -08:00
Beverly Nguyen
9ef89666b0 fixed testing 2024-12-03 17:00:18 -08:00
dependabot[bot]
f45454b657 Bump sass-embedded from 1.81.0 to 1.82.0
Bumps [sass-embedded](https://github.com/sass/embedded-host-node) from 1.81.0 to 1.82.0.
- [Changelog](https://github.com/sass/embedded-host-node/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/embedded-host-node/compare/1.81.0...1.82.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-03 23:27:20 +00:00
dependabot[bot]
d275e7b6a3 Bump rollup from 4.27.3 to 4.28.0
Bumps [rollup](https://github.com/rollup/rollup) from 4.27.3 to 4.28.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.27.3...v4.28.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-03 23:27:08 +00:00
Jonathan Bobel
d92255c427 Merge branch 'main' of https://github.com/GSA/notifications-admin into 2135-send-message-flow-h1-changes 2024-12-03 17:00:04 -05:00
Jonathan Bobel
35c1379853 Merge branch '2135-send-message-flow-h1-changes' of https://github.com/GSA/notifications-admin into 2135-send-message-flow-h1-changes 2024-12-03 16:17:49 -05:00
Beverly Nguyen
4946bed5cc fixed title testing 2024-12-03 13:05:55 -08:00
Beverly Nguyen
078f75b8a4 Merge pull request #2154 from GSA/2119-clean-up-best-practices-folders-and-components
2119 clean up best practices folders and components
2024-12-03 12:08:52 -08:00
Jonathan Bobel
b7b57149fc Merge branch '2135-send-message-flow-h1-changes' of https://github.com/GSA/notifications-admin into 2135-send-message-flow-h1-changes 2024-12-03 09:51:30 -05:00
Jonathan Bobel
b01f5be5bf Merge remote-tracking branch 'origin' into 2135-send-message-flow-h1-changes 2024-12-03 09:45:15 -05:00
dependabot[bot]
7ffb4b60de Bump moto from 5.0.18 to 5.0.22
Bumps [moto](https://github.com/getmoto/moto) from 5.0.18 to 5.0.22.
- [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/5.0.18...5.0.22)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-03 00:08:10 +00:00
Beverly Nguyen
66c377c39d changed page title and h1 on choose.html 2024-12-02 14:22:45 -08:00
Alex Janousek
4170ca7577 Merge pull request #2132 from GSA/2109-build-out-architecture-for-new-about-pages-behind-feature-flag
Added new header button that is displayed in header
2024-12-02 14:38:27 -05:00
Jonathan Bobel
994a314f31 Trying to decouple this h1 from the templates folder structure 2024-12-02 12:09:43 -05:00
Jonathan Bobel
6218d3eadd Adjusting tests 2024-12-02 10:53:06 -05:00
Jonathan Bobel
9a387923bf Merge branch 'main' of https://github.com/GSA/notifications-admin into 2135-send-message-flow-h1-changes 2024-12-02 10:00:07 -05:00
Jonathan Bobel
b98e3d87e2 Fixing tests 2024-12-02 09:59:58 -05:00
Beverly Nguyen
68e5ac50ab fix testing 2024-11-27 10:14:09 -08:00
Beverly Nguyen
5e114094c8 merge main 2024-11-27 09:56:13 -08:00
Carlo Costino
162d3708ab Merge pull request #2163 from GSA/bump-admin-prod-memory
Bump admin production memory to 2GB per instance
2024-11-27 09:29:45 -05:00
Carlo Costino
3dd8d25089 Bump admin production memory to 2GB per instance
This changeset bumps the admin production memory to 2GB per instance.  We were noticing that the admin app was consuming almost all of the 1.5GB memory currently.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2024-11-26 21:02:45 -05:00
Carlo Costino
de81866288 Merge pull request #2162 from GSA/2161-toggle-side-nav-items-when-featured-flag-is-onoff
making sub nav items conditional based on feature flag
2024-11-26 20:44:23 -05:00
Beverly Nguyen
a5c65439b6 update e2e 2024-11-26 14:38:15 -08:00
Beverly Nguyen
e638eb4ad1 isort fix 2024-11-26 13:50:00 -08:00
Beverly Nguyen
d4c646a788 making sub nav items conditional on feature flag 2024-11-26 13:45:43 -08:00
Beverly Nguyen
562f835096 convert include to macros 2024-11-26 12:58:32 -08:00
Beverly Nguyen
2fa9c1ed7d removed unnecessary route 2024-11-26 12:24:06 -08:00
alexjanousekGSA
1931e4359b Fixed more imports 2024-11-26 10:46:41 -05:00
Alex Janousek
c37fd5d461 Merge branch 'main' into 2109-build-out-architecture-for-new-about-pages-behind-feature-flag 2024-11-26 10:22:36 -05:00
Beverly Nguyen
d5ef2647fd changed naming 2024-11-25 18:23:15 -08:00
Beverly Nguyen
86ddcd3647 changed naming 2024-11-25 18:16:43 -08:00
Beverly Nguyen
276802a6c4 changed naming 2024-11-25 18:15:34 -08:00
Beverly Nguyen
9abfcf71de Merge pull request #2127 from GSA/2103-aboutsecurity
About Security Content
2024-11-25 16:51:36 -08:00
alexjanousekGSA
2d0a53e97d Sorted init 2024-11-25 13:51:24 -05:00
alexjanousekGSA
497533c52e More linting stuff 2024-11-25 13:40:14 -05:00
alexjanousekGSA
1763e75bef Cleaning up imports 2024-11-25 13:33:33 -05:00
alexjanousekGSA
c941e14587 Added more spacing 2024-11-25 13:24:47 -05:00
Carlo Costino
a01b93073b Merge pull request #2147 from GSA/notify-admin-1426
add carrier column to reports
2024-11-25 12:14:45 -05:00
alexjanousekGSA
c768b09255 Fixed indenting 2024-11-25 11:51:01 -05:00
Jonathan Bobel
90c7386b63 Header fix 2024-11-22 16:53:07 -05:00
Jonathan Bobel
35958769f4 Send Message A11Y Audit - Adjust headers in Send Message flow 2024-11-22 16:45:25 -05:00
Beverly Nguyen
76c10b7f90 Merge branch 'main' into 2103-aboutsecurity 2024-11-22 10:57:29 -08:00
Kenneth Kehl
1417f12ccf merge from main 2024-11-22 07:47:47 -08:00
Carlo Costino
971db71936 Merge pull request #2144 from GSA/redis-dependency-ignore-vulncheck
Add redis ID to ignore vulnerability list in audit/no current fix
2024-11-22 10:46:14 -05:00
Kenneth Kehl
8f30064f50 add carrier column to reports 2024-11-21 15:08:49 -08:00
alexjanousekGSA
8231b671af Updated logic in init to include nonce and state and removed from index 2024-11-21 17:52:44 -05:00
Beverly Nguyen
637457c8c2 merge main 2024-11-21 12:41:30 -08:00
Beverly Nguyen
daabee672e Merge pull request #2117 from GSA/2102-aboutwhy-text-messaging
About/why text messaging content
2024-11-21 12:36:50 -08:00
Andrew Shumway
598a9af6f1 Add redis ID to ignore vulnerability list in audit/no current fix 2024-11-21 11:42:30 -07:00
Beverly Nguyen
8672960871 content update 2024-11-20 11:14:09 -08:00
Beverly Nguyen
9483c099db update content 2024-11-20 11:11:12 -08:00
Beverly Nguyen
a8ecb57e51 removed logged in 2024-11-20 10:25:39 -08:00
Beverly Nguyen
a318b2dd0f updated external links 2024-11-20 09:49:52 -08:00
Beverly Nguyen
942489dc57 updated external links 2024-11-20 09:43:12 -08:00
Beverly Nguyen
93587f528e Merge pull request #2074 from GSA/2073---new-best-practice-side-nav-end2end
e2e test for best practice content pages
2024-11-20 09:33:55 -08:00
Beverly Nguyen
99d934c949 Merge pull request #2087 from GSA/1939-accessibility-audit-the-entire-send-message-flow-with-a-few-branching-situations-like-scheduling-a-send-vs-now
Fix a11y errors within the send flow
2024-11-20 09:33:15 -08:00
Beverly Nguyen
9e6dd5df89 links updated 2024-11-19 18:10:29 -08:00
Beverly Nguyen
3a6295b7a2 update contact 2024-11-19 18:06:23 -08:00
Beverly Nguyen
8d5581505b a11y 2024-11-19 12:34:51 -08:00
Beverly Nguyen
4a41c61c56 updatel link 2024-11-19 12:26:26 -08:00
Beverly Nguyen
b4cc2a7dea styling 2024-11-19 12:23:35 -08:00
Beverly Nguyen
9e8e7910dc added content and styling 2024-11-19 10:59:58 -08:00
alexjanousekGSA
9b246aa03f Fixed indent 2024-11-19 12:06:09 -05:00
alexjanousekGSA
9023943bb1 Fixed a few errors 2024-11-19 10:49:30 -05:00
alexjanousekGSA
9a8d8e12cf Added new header button that is displayed in header 2024-11-19 09:41:08 -05:00
Alex Janousek
f9034511c7 Merge pull request #2113 from GSA/dependabot/npm_and_yarn/uswds/uswds-3.10.0
Bump @uswds/uswds from 3.9.0 to 3.10.0
2024-11-19 08:27:31 -05:00
Alex Janousek
1d2abf0491 Merge pull request #2121 from GSA/dependabot/npm_and_yarn/sass-embedded-1.81.0
Bump sass-embedded from 1.80.6 to 1.81.0
2024-11-19 08:27:20 -05:00
Alex Janousek
b0b2132c67 Merge pull request #2130 from GSA/dependabot/npm_and_yarn/rollup-4.27.3
Bump rollup from 4.24.4 to 4.27.3
2024-11-19 08:26:31 -05:00
Alex Janousek
aae1a0d46c Merge pull request #2131 from GSA/dependabot/npm_and_yarn/playwright-1.49.0
Bump playwright from 1.48.2 to 1.49.0
2024-11-19 08:26:15 -05:00
dependabot[bot]
a740183a76 Bump playwright from 1.48.2 to 1.49.0
Bumps [playwright](https://github.com/microsoft/playwright) from 1.48.2 to 1.49.0.
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](https://github.com/microsoft/playwright/compare/v1.48.2...v1.49.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-19 00:00:13 +00:00
dependabot[bot]
9faa0ed069 Bump rollup from 4.24.4 to 4.27.3
Bumps [rollup](https://github.com/rollup/rollup) from 4.24.4 to 4.27.3.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.24.4...v4.27.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-19 00:00:02 +00:00
Beverly Nguyen
9a5a960e57 contact content 2024-11-18 14:00:52 -08:00
Beverly Nguyen
de8c4b7204 test 2024-11-18 13:41:32 -08:00
Beverly Nguyen
2ba369100c content 2024-11-18 13:35:24 -08:00
Beverly Nguyen
655ecb60e9 update sub links 2024-11-18 11:59:00 -08:00
Beverly Nguyen
0b81ed0247 changes to nav 2024-11-18 11:49:39 -08:00
Beverly Nguyen
df0e159550 merge main and nav 2024-11-18 10:41:45 -08:00
Jonathan Bobel
0a50913e62 Merge pull request #2112 from GSA/2101-about-notify
About Notify - About pages
2024-11-18 13:20:39 -05:00
dependabot[bot]
dba031dd23 Bump sass-embedded from 1.80.6 to 1.81.0
Bumps [sass-embedded](https://github.com/sass/embedded-host-node) from 1.80.6 to 1.81.0.
- [Changelog](https://github.com/sass/embedded-host-node/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/embedded-host-node/compare/1.80.6...1.81.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-15 23:18:56 +00:00
Beverly Nguyen
0138930172 assets 2024-11-15 13:31:14 -08:00
Beverly Nguyen
7390b60f2a padding change 2024-11-15 11:45:57 -08:00
alexjanousekGSA
c432e434ae Updated url 2024-11-15 12:12:04 -05:00
alexjanousekGSA
5b48127155 Fixed linting error 2024-11-15 12:00:06 -05:00
alexjanousekGSA
2aa5dd0174 Added back removed code 2024-11-15 11:55:16 -05:00
Carlo Costino
2106f00c08 Merge pull request #2118 from GSA/ADMIN-2086_Update_README_First_User_Docs
ADMIN-2086: Updated documentation.
2024-11-15 11:21:21 -05:00
Cliff Hill
4b50dfc702 Updated documentation.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-11-15 08:44:32 -05:00
Beverly Nguyen
cd7df2f9d2 flake8 2024-11-14 16:25:37 -08:00
Beverly Nguyen
170e06aba0 merge main 2024-11-14 16:18:35 -08:00
Beverly Nguyen
523c00f3a6 update images 2024-11-14 15:45:27 -08:00
Beverly Nguyen
ff4ee646ca content change 2024-11-14 14:00:05 -08:00
Alex Janousek
63493f28f8 Merge pull request #2078 from GSA/2069-user-story-add-new-link-to-best-practices-page
Added link to new guidance page that enables navigating
2024-11-14 16:52:52 -05:00
Beverly Nguyen
55ae37ad80 note to add youtube video 2024-11-14 11:23:23 -08:00
Beverly Nguyen
ba44ff5e8e content added 2024-11-14 09:58:04 -08:00
alexjanousekGSA
70ecf8fa09 Added feature flag for route 2024-11-14 10:53:48 -05:00
dependabot[bot]
c5fa28d42b Bump @uswds/uswds from 3.9.0 to 3.10.0
Bumps [@uswds/uswds](https://github.com/uswds/uswds) from 3.9.0 to 3.10.0.
- [Release notes](https://github.com/uswds/uswds/releases)
- [Commits](https://github.com/uswds/uswds/compare/v3.9.0...v3.10.0)

---
updated-dependencies:
- dependency-name: "@uswds/uswds"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-13 23:41:55 +00:00
Beverly Nguyen
3a52cba23e add testing 2024-11-13 15:02:35 -08:00
Beverly Nguyen
8d85da8a90 add testing 2024-11-13 15:00:40 -08:00
Carlo Costino
ad50568c10 Merge pull request #2111 from GSA/Disabling_verify_email_for_now
Ok, commenting out the check for emails for now.
2024-11-13 17:35:08 -05:00
Beverly Nguyen
50e7f3d33c first round of about content 2024-11-13 14:32:15 -08:00
Cliff Hill
9796d424b5 Flake8 is dumb.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-11-13 17:27:52 -05:00
Cliff Hill
d678659cbe Flake8 is annoying.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-11-13 17:23:57 -05:00
Cliff Hill
49932f6942 Ok, commenting out the check for emails for now.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-11-13 17:18:51 -05:00
Cliff Hill
0091fd0b31 Merge pull request #2110 from GSA/Fixing_verify_email_again
Re-fixing the verify email step.
2024-11-13 14:48:40 -05:00
Cliff Hill
683bf893c1 fixing things.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-11-13 14:34:34 -05:00
Steven Reilly
a95138f344 Merge pull request #2108 from GSA/ADMIN-2098_Fix_Login_For_Email_Verify_And_Expire_Redis_Stuff
Fixed email verify, put time limits on redis stuff.
2024-11-13 12:59:26 -05:00
Cliff Hill
cc5c4114e0 Fixed email verify, put time limits on redis stuff.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-11-13 10:58:40 -05:00
alexjanousekGSA
3da5fb406e Added subnav to fix css 2024-11-13 10:30:06 -05:00
alexjanousekGSA
b9ef8ea0c0 Removed unused code 2024-11-13 10:26:06 -05:00
alexjanousekGSA
6ca902acd3 Added back guides because its needed 2024-11-13 10:18:12 -05:00
alexjanousekGSA
b8ea1d812a Fixed error 2024-11-13 10:01:33 -05:00
alexjanousekGSA
c4ee02f038 Removed unused navigation link 2024-11-13 09:52:37 -05:00
alexjanousekGSA
f6fbe1bd8d Fixed linting error 2024-11-12 13:07:57 -05:00
alexjanousekGSA
1a14becc9a Updated link name and route 2024-11-12 12:54:22 -05:00
alexjanousekGSA
13e9b12367 Renamed guides to best practices 2024-11-12 10:32:51 -05:00
Steven Reilly
01e52b9a20 Merge pull request #2093 from GSA/fix-login-staging-env-var-url
Fix Login.gov sign in URL formatting for staging
2024-11-08 11:04:21 -05:00
Carlo Costino
044f1cf170 Fix flake8 warnings on comments
Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2024-11-08 10:53:20 -05:00
Carlo Costino
8f89d25909 Comment out part of test
This is due to recent changes in the API and an error now being thrown because the job cache cannot be properly accessed.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2024-11-08 10:45:07 -05:00
Jonathan Bobel
3afffde6cb Merge pull request #2076 from GSA/2056-template-creation-flow-voiceover-gets-stuck-in-a-loop
Template voiceover gets stuck in a loop #2056
2024-11-08 10:13:32 -05:00
Carlo Costino
312612a04d Fix Login.gov sign in URL formatting for staging
This changeset fixes a typo by removing an extra E from the Login.gov sign in URL, which was causing the STATE variable to not be properly replaced with the actual state, because STATE != STATEE.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2024-11-07 22:22:24 -05:00
Carlo Costino
fe00050e1f Merge pull request #2075 from GSA/USN-COMPLY-51-Verify_State
Verify state for login.gov
2024-11-07 14:18:17 -05:00
Alex Janousek
822fa6f397 Merge pull request #2084 from GSA/dependabot/npm_and_yarn/multi-9f37c16f8f
Bump cookie and express
2024-11-07 12:51:22 -05:00
Cliff Hill
e9b515d4cc Another test fixed.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-11-07 12:01:06 -05:00
Cliff Hill
923a345d19 Fixed tests.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-11-07 11:56:03 -05:00
Cliff Hill
6e3a569a0a Resend invites works.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-11-07 09:56:18 -05:00
Cliff Hill
14bbabcab7 Invites are now working.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-11-07 08:37:45 -05:00
Beverly Nguyen
c85bbb47eb fixing css 2024-11-06 16:05:33 -08:00
Cliff Hill
95a39cfd31 Trying to get invites to flow correctly.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-11-06 16:04:18 -05:00
Cliff Hill
f363a8e184 Getting all the needed data in place.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-11-06 14:30:28 -05:00
Cliff Hill
d798d3695e More little fixes.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-11-06 10:48:28 -05:00
Cliff Hill
c8ed66cbfe Storing user data in redis.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-11-06 10:41:20 -05:00
Cliff Hill
b532ce8959 Fixing tests, and resend invites endpoint.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-11-06 08:20:11 -05:00
Cliff Hill
fc09e70579 Working on fixing the tests. 2024-11-06 08:20:11 -05:00
Cliff Hill
a090c90ed6 Debuggin'
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-11-06 08:20:11 -05:00
Cliff Hill
a39c844c30 Properly handling and validating the state for login.gov
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-11-06 08:20:10 -05:00
Cliff Hill
a02448a0fa Removing unused state parameter for _get_access_token()
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-11-06 08:20:10 -05:00
Beverly Nguyen
ca96495e3d revert changes to color:transparent 2024-11-05 15:47:49 -08:00
Beverly Nguyen
7a63fcfc08 fix a11y errors 2024-11-05 14:35:22 -08:00
dependabot[bot]
0500da354d Bump cookie and express
Bumps [cookie](https://github.com/jshttp/cookie) and [express](https://github.com/expressjs/express). These dependencies needed to be updated together.

Updates `cookie` from 0.6.0 to 0.7.1
- [Release notes](https://github.com/jshttp/cookie/releases)
- [Commits](https://github.com/jshttp/cookie/compare/v0.6.0...v0.7.1)

Updates `express` from 4.21.0 to 4.21.1
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/4.21.1/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.21.0...4.21.1)

---
updated-dependencies:
- dependency-name: cookie
  dependency-type: indirect
- dependency-name: express
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-05 17:56:50 +00:00
Alex Janousek
ff194b2f2b Merge pull request #2082 from GSA/dependabot/npm_and_yarn/sass-embedded-1.80.6
Bump sass-embedded from 1.80.5 to 1.80.6
2024-11-05 12:56:03 -05:00
Alex Janousek
0aa2c76f9a Merge pull request #2083 from GSA/dependabot/npm_and_yarn/rollup-4.24.4
Bump rollup from 4.24.3 to 4.24.4
2024-11-05 12:55:48 -05:00
dependabot[bot]
2503eac887 Bump rollup from 4.24.3 to 4.24.4
Bumps [rollup](https://github.com/rollup/rollup) from 4.24.3 to 4.24.4.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.24.3...v4.24.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-04 23:49:15 +00:00
dependabot[bot]
1564507e13 Bump sass-embedded from 1.80.5 to 1.80.6
Bumps [sass-embedded](https://github.com/sass/embedded-host-node) from 1.80.5 to 1.80.6.
- [Changelog](https://github.com/sass/embedded-host-node/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/embedded-host-node/compare/1.80.5...1.80.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-04 23:49:02 +00:00
alexjanousekGSA
5cbb1f3bef Updated route 2024-11-04 15:04:34 -05:00
Alex Janousek
737d7b70bf Merge pull request #2065 from GSA/dependabot/npm_and_yarn/babel/preset-env-7.26.0
Bump @babel/preset-env from 7.25.9 to 7.26.0
2024-11-04 12:47:55 -05:00
Alex Janousek
937e258d2b Merge pull request #2066 from GSA/dependabot/npm_and_yarn/playwright-1.48.2
Bump playwright from 1.48.1 to 1.48.2
2024-11-04 12:47:40 -05:00
dependabot[bot]
569de1ab49 Bump @babel/preset-env from 7.25.9 to 7.26.0
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.25.9 to 7.26.0.
- [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.26.0/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-04 17:13:47 +00:00
dependabot[bot]
154912fda5 Bump playwright from 1.48.1 to 1.48.2
Bumps [playwright](https://github.com/microsoft/playwright) from 1.48.1 to 1.48.2.
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](https://github.com/microsoft/playwright/compare/v1.48.1...v1.48.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-04 17:13:02 +00:00
Alex Janousek
8c3b83091d Merge pull request #2064 from GSA/dependabot/npm_and_yarn/babel/core-7.26.0
Bump @babel/core from 7.25.8 to 7.26.0
2024-11-04 12:12:25 -05:00
Alex Janousek
78474aea65 Merge pull request #2070 from GSA/dependabot/npm_and_yarn/sass-embedded-1.80.5
Bump sass-embedded from 1.80.4 to 1.80.5
2024-11-04 12:11:58 -05:00
Alex Janousek
643b4a3d7c Merge pull request #2071 from GSA/dependabot/npm_and_yarn/rollup-4.24.3
Bump rollup from 4.24.0 to 4.24.3
2024-11-04 12:11:39 -05:00
alexjanousekGSA
5fa9172901 Fixing linting errors 2024-11-04 11:57:13 -05:00
alexjanousekGSA
e7c82b1fc3 Fixed indent 2024-11-04 11:50:29 -05:00
alexjanousekGSA
12c28682df Added link to new guidance page that enables navigating 2024-11-04 11:44:45 -05:00
Beverly Nguyen
66d18ced10 fixed testing 2024-11-01 12:16:22 -07:00
Beverly Nguyen
334cd4041a fixed managed folder position 2024-11-01 12:00:00 -07:00
Beverly Nguyen
4d0d92f825 added attributes for a11y 2024-11-01 11:47:25 -07:00
Beverly Nguyen
714be40851 fix testing 2024-10-31 12:26:20 -07:00
Beverly Nguyen
109f3d9992 feature flag for testing 2024-10-31 12:04:26 -07:00
Beverly Nguyen
e09eabd8ae Merge branch 'main' into 2073---new-best-practice-side-nav-end2end 2024-10-31 09:54:34 -07:00
Alex Janousek
60e9ac18f5 Merge pull request #1949 from GSA/1928-develop-new-page-templates-in-code-to-sit-behind-the-log-in
New guidance and subpages, and return to previous pages.
2024-10-31 12:49:47 -04:00
Beverly Nguyen
0bb0d3c24d e2e best practice 2024-10-30 21:08:45 -07:00
Beverly Nguyen
cf60dd7078 e2e best practice 2024-10-30 21:04:03 -07:00
Carlo Costino
1933dad137 Merge pull request #2063 from GSA/API-1328_Logging_Formatter_With_Scrub
API-1328 - Using a custom formatter to scrub PII from all log records.
2024-10-30 13:45:47 -04:00
Cliff Hill
278541fa5b Compiling email regex
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-10-30 11:44:39 -04:00
Cliff Hill
452ab7eb86 Fixing dependency error.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-10-30 09:36:22 -04:00
Cliff Hill
005e97f034 Using re.compile().
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-10-30 09:09:53 -04:00
Beverly Nguyen
4700534155 removed js from gulp 2024-10-29 20:33:56 -07:00
Beverly Nguyen
02e3efd105 adjusted subnav to hover 2024-10-29 20:19:51 -07:00
dependabot[bot]
4de7b5a5ec Bump rollup from 4.24.0 to 4.24.3
Bumps [rollup](https://github.com/rollup/rollup) from 4.24.0 to 4.24.3.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.24.0...v4.24.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-29 23:41:33 +00:00
dependabot[bot]
77716e254e Bump sass-embedded from 1.80.4 to 1.80.5
Bumps [sass-embedded](https://github.com/sass/embedded-host-node) from 1.80.4 to 1.80.5.
- [Changelog](https://github.com/sass/embedded-host-node/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/embedded-host-node/compare/1.80.4...1.80.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-29 23:41:21 +00:00
alexjanousekGSA
fd68a918e7 Updated feature flagging readme 2024-10-29 15:53:43 -04:00
Kenneth Kehl
64b979c0f7 Merge pull request #2005 from GSA/notify-admin-2001
fix moderate accessibility violation scope='row'
2024-10-29 12:38:07 -07:00
alexjanousekGSA
b806fd5eec Updated code based on comments 2024-10-29 15:28:07 -04:00
Beverly Nguyen
7ed04c82d6 removed feature flag content 2024-10-28 13:43:53 -07:00
Beverly Nguyen
a601906ef5 fixed a11y 2024-10-28 13:11:29 -07:00
Andrew Shumway
b352a13328 Merge pull request #2067 from GSA/dependabot/pip/werkzeug-3.0.6
Bump werkzeug from 3.0.3 to 3.0.6
2024-10-28 13:58:19 -06:00
alexjanousekGSA
d7db335a99 Updated depedency 2024-10-28 11:49:24 -04:00
alexjanousekGSA
94f90454e3 Linting issue addressed 2024-10-28 11:13:02 -04:00
alexjanousekGSA
de02780bd8 Added back tests that were removed 2024-10-28 11:07:48 -04:00
dependabot[bot]
70c95cdeb6 Bump werkzeug from 3.0.3 to 3.0.6
Bumps [werkzeug](https://github.com/pallets/werkzeug) from 3.0.3 to 3.0.6.
- [Release notes](https://github.com/pallets/werkzeug/releases)
- [Changelog](https://github.com/pallets/werkzeug/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/werkzeug/compare/3.0.3...3.0.6)

---
updated-dependencies:
- dependency-name: werkzeug
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-26 00:08:52 +00:00
Beverly Nguyen
a11bd0e344 removed pdf test 2024-10-25 13:33:08 -07:00
Beverly Nguyen
822682f256 fixed test failures 2024-10-25 13:23:58 -07:00
Beverly Nguyen
6a6a54e889 fixed test failures 2024-10-25 13:16:07 -07:00
Beverly Nguyen
bdb3e777c5 adjust settimeout 2024-10-25 11:20:41 -07:00
Beverly Nguyen
cf3c7be9bf pdf added 2024-10-25 11:00:51 -07:00
Beverly Nguyen
d8ae3f3056 pdf added 2024-10-25 10:59:55 -07:00
alexjanousekGSA
96a8ccc64a More linting 2024-10-25 11:35:56 -04:00
alexjanousekGSA
ccdf9f16d8 fixing lint errors, added another test 2024-10-25 11:29:07 -04:00
dependabot[bot]
b4f4e19665 Bump @babel/core from 7.25.8 to 7.26.0
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.25.8 to 7.26.0.
- [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.26.0/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-25 14:59:28 +00:00
Alex Janousek
1f1f8bcd75 Merge pull request #2060 from GSA/dependabot/npm_and_yarn/babel/preset-env-7.25.9
Bump @babel/preset-env from 7.25.8 to 7.25.9
2024-10-25 10:58:24 -04:00
Alex Janousek
e4445b097e Merge pull request #2062 from GSA/dependabot/npm_and_yarn/sass-embedded-1.80.4
Bump sass-embedded from 1.80.3 to 1.80.4
2024-10-25 10:58:10 -04:00
alexjanousekGSA
09f400ad8e Merge branch '1928-develop-new-page-templates-in-code-to-sit-behind-the-log-in' of https://github.com/GSA/notifications-admin into 1928-develop-new-page-templates-in-code-to-sit-behind-the-log-in 2024-10-25 10:57:40 -04:00
alexjanousekGSA
01f1175e52 Added back removed tests 2024-10-25 10:57:34 -04:00
Beverly Nguyen
12b2d0d86d isort 2024-10-24 17:43:10 -07:00
Beverly Nguyen
2bbc58c8af changed guidanced to best practices 2024-10-24 17:03:45 -07:00
Beverly Nguyen
4b85ae6493 remove files not needed 2024-10-24 16:39:48 -07:00
Beverly Nguyen
3010ae1d9e changed guidance to best practices 2024-10-24 16:30:15 -07:00
alexjanousekGSA
cf4ac930c5 Merge branch 'main' into 1928-develop-new-page-templates-in-code-to-sit-behind-the-log-in 2024-10-24 17:58:48 -04:00
alexjanousekGSA
09896b98cd Merge branch '1928-develop-new-page-templates-in-code-to-sit-behind-the-log-in' of https://github.com/GSA/notifications-admin into 1928-develop-new-page-templates-in-code-to-sit-behind-the-log-in 2024-10-24 17:58:28 -04:00
alexjanousekGSA
14880bf7ee Fixed one test 2024-10-24 17:58:23 -04:00
Sheev Davé
846b5b51e7 Merge pull request #2012 from GSA/1999-dashboard-a11y-fixes
1999 dashboard a11y fixes
2024-10-24 14:07:10 -07:00
Beverly Nguyen
00ad7b7581 updated content from feedback 2024-10-24 13:57:01 -07:00
alexjanousekGSA
e64ba86a2b Enabled new feature in demo 2024-10-24 13:02:44 -04:00
alexjanousekGSA
4dd8b578a9 Toggled guidance feature off from staging 2024-10-24 12:38:22 -04:00
Cliff Hill
a9948131cc Scrubbing log records with the formatter.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-10-24 12:35:40 -04:00
Cliff Hill
543239d078 Reversing accidental commit.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-10-24 12:32:26 -04:00
Cliff Hill
e6c0f045a5 Added PII scrub for all logging through the formatter.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-10-24 12:23:32 -04:00
alexjanousekGSA
1b18b4c146 Merge branch '1928-develop-new-page-templates-in-code-to-sit-behind-the-log-in' of https://github.com/GSA/notifications-admin into 1928-develop-new-page-templates-in-code-to-sit-behind-the-log-in 2024-10-24 11:54:26 -04:00
alexjanousekGSA
661d9b5517 Added feature flagging document 2024-10-24 11:54:21 -04:00
Carlo Costino
a349fb82dc Merge pull request #2004 from GSA/notify-admin-2003
Users can be invited with no permissions
2024-10-24 09:57:07 -04:00
Carlo Costino
a715b33fd0 Merge pull request #2053 from GSA/notify-admin-2037
remove permission to manage API integration
2024-10-24 09:49:21 -04:00
Carlo Costino
9ce00acec3 Merge pull request #2024 from GSA/USN-COMPLY-50-Verify_Nonce_for_Invite
US-NOTIFY-COMPLY 50: Verify Nonce For Invite
2024-10-24 09:36:58 -04:00
dependabot[bot]
353e2bb9a6 Bump sass-embedded from 1.80.3 to 1.80.4
Bumps [sass-embedded](https://github.com/sass/embedded-host-node) from 1.80.3 to 1.80.4.
- [Changelog](https://github.com/sass/embedded-host-node/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/embedded-host-node/compare/1.80.3...1.80.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-23 23:58:09 +00:00
Beverly Nguyen
c0d05c99a2 testing errors 2024-10-23 10:09:47 -07:00
dependabot[bot]
c95e949856 Bump @babel/preset-env from 7.25.8 to 7.25.9
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.25.8 to 7.25.9.
- [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.25.9/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-22 23:50:01 +00:00
Beverly Nguyen
ff4380b5a0 fixed testing 2024-10-22 16:48:07 -07:00
Beverly Nguyen
f2ea113856 subnav 2024-10-22 16:41:41 -07:00
Andrew Shumway
f4b6ca4a79 Merge pull request #2054 from GSA/dependabot/pip/coverage-7.6.4
Bump coverage from 7.6.0 to 7.6.4
2024-10-22 14:15:00 -06:00
Cliff Hill
341e5d4cb2 Removed logging.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-10-22 14:51:09 -04:00
alexjanousekGSA
4f802587b9 Fixing linting errors 2024-10-22 12:20:35 -04:00
Alex Janousek
3013d27d7c Merge pull request #2055 from GSA/dependabot/npm_and_yarn/sass-embedded-1.80.3
Bump sass-embedded from 1.79.5 to 1.80.3
2024-10-22 10:27:05 -04:00
dependabot[bot]
17e12495dd Bump sass-embedded from 1.79.5 to 1.80.3
Bumps [sass-embedded](https://github.com/sass/embedded-host-node) from 1.79.5 to 1.80.3.
- [Changelog](https://github.com/sass/embedded-host-node/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/embedded-host-node/compare/1.79.5...1.80.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-21 23:55:37 +00:00
dependabot[bot]
35d95e4f5c Bump coverage from 7.6.0 to 7.6.4
Bumps [coverage](https://github.com/nedbat/coveragepy) from 7.6.0 to 7.6.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.6.0...7.6.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-21 23:44:06 +00:00
Cliff Hill
e04adba4fd Test written for get_id_token.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-10-21 16:41:50 -04:00
Cliff Hill
866a4ad7bd Got the unit test to be fixed, still figuring out a new test for the new
function.

Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-10-21 16:41:49 -04:00
Cliff Hill
579a65c92d Removed defunct imports.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-10-21 16:41:49 -04:00
Cliff Hill
7275dac6a0 black, isort, and flake8.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-10-21 16:41:49 -04:00
Cliff Hill
8c40538334 Nonce is working now for invites.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-10-21 16:41:49 -04:00
Cliff Hill
da6882774b Getting the redis stuff configured correctly.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-10-21 16:41:49 -04:00
Cliff Hill
d0cda995cf Standardising nonce storage/retrieval through redis for both login and
invite.

Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-10-21 16:41:49 -04:00
Cliff Hill
82cef7dbd3 Nonce stuff added.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-10-21 16:41:33 -04:00
Kenneth Kehl
e2020c188a remove permsision to manage API integration 2024-10-21 12:38:08 -07:00
Kenneth Kehl
7db678ddec remove permsision to manage API integration 2024-10-21 12:27:44 -07:00
Beverly Nguyen
7775508c97 fixed testing 2024-10-21 10:45:08 -07:00
Kenneth Kehl
3601b16c7b Merge pull request #2049 from GSA/nonce_nonce_nonce
comment out check for now
2024-10-18 10:24:44 -07:00
Kenneth Kehl
eaed2fc879 comment out check for now 2024-10-18 07:23:19 -07:00
Alex Janousek
00f63aed23 Merge pull request #2033 from GSA/dependabot/npm_and_yarn/rollup/plugin-commonjs-28.0.1
Bump @rollup/plugin-commonjs from 28.0.0 to 28.0.1
2024-10-17 15:10:10 -04:00
Carlo Costino
185f00cd01 Merge pull request #2025 from GSA/notify-compliance-52
investigate security.txt
2024-10-17 14:51:00 -04:00
alexjanousekGSA
088c2244a3 Merge branch '1928-develop-new-page-templates-in-code-to-sit-behind-the-log-in' of https://github.com/GSA/notifications-admin into 1928-develop-new-page-templates-in-code-to-sit-behind-the-log-in 2024-10-17 14:48:10 -04:00
alexjanousekGSA
93bc3792be Added feature flagging to each environment yml 2024-10-17 14:48:02 -04:00
Alex Janousek
417fac6dd1 Merge branch 'main' into 1928-develop-new-page-templates-in-code-to-sit-behind-the-log-in 2024-10-17 13:17:18 -04:00
alexjanousekGSA
4b62d0e685 Added command variable from env ymls to manifest 2024-10-17 13:16:39 -04:00
Alex Janousek
149065576f Merge pull request #2034 from GSA/dependabot/npm_and_yarn/playwright-1.48.1
Bump playwright from 1.48.0 to 1.48.1
2024-10-17 13:11:08 -04:00
alexjanousekGSA
4eed138dc6 Merge branch '1928-develop-new-page-templates-in-code-to-sit-behind-the-log-in' of https://github.com/GSA/notifications-admin into 1928-develop-new-page-templates-in-code-to-sit-behind-the-log-in 2024-10-17 13:10:40 -04:00
alexjanousekGSA
7e505f7fda Updated sandbox and environment yamls 2024-10-17 13:09:58 -04:00
dependabot[bot]
4973cb84b1 Bump playwright from 1.48.0 to 1.48.1
Bumps [playwright](https://github.com/microsoft/playwright) from 1.48.0 to 1.48.1.
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](https://github.com/microsoft/playwright/compare/v1.48.0...v1.48.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-16 23:18:40 +00:00
dependabot[bot]
c2ea4684f6 Bump @rollup/plugin-commonjs from 28.0.0 to 28.0.1
Bumps [@rollup/plugin-commonjs](https://github.com/rollup/plugins/tree/HEAD/packages/commonjs) from 28.0.0 to 28.0.1.
- [Changelog](https://github.com/rollup/plugins/blob/master/packages/commonjs/CHANGELOG.md)
- [Commits](https://github.com/rollup/plugins/commits/commonjs-v28.0.1/packages/commonjs)

---
updated-dependencies:
- dependency-name: "@rollup/plugin-commonjs"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-16 23:18:17 +00:00
Carlo Costino
ca60eb03c0 Merge pull request #2030 from GSA/fix-deploy-actions
Fix demo and prod deploy actions
2024-10-16 14:36:23 -04:00
Carlo Costino
a3c021b154 Fix demo and prod deploy actions
This changeset makes a couple of more adjustments to the prod and demo deploy actions to make sure they are in sync with staging and work.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2024-10-16 14:26:02 -04:00
Carlo Costino
31076781a3 Merge pull request #2027 from GSA/fix-deploy-actions
Fix the prod and demo deployment actions
2024-10-16 13:11:16 -04:00
Carlo Costino
e54d18170e Add missing env var
Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2024-10-16 13:03:35 -04:00
Alex Janousek
c3f4482677 Merge pull request #2009 from GSA/dependabot/npm_and_yarn/uswds/uswds-3.9.0
Bump @uswds/uswds from 3.8.2 to 3.9.0
2024-10-16 12:50:18 -04:00
Alex Janousek
0183f37c7b Merge pull request #2022 from GSA/dependabot/npm_and_yarn/sass-embedded-1.79.5
Bump sass-embedded from 1.79.4 to 1.79.5
2024-10-16 12:49:58 -04:00
Carlo Costino
fc6adc6771 Fix the prod and demo deployment actions
This changeset fixes the prod and deployment actions so they have the correct environment variables.  It also fixes the egress proxy deploy config for each.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2024-10-16 12:44:55 -04:00
Kenneth Kehl
1dbb369143 fix test 2024-10-16 08:38:12 -07:00
Kenneth Kehl
f32845752a update email address 2024-10-16 08:18:19 -07:00
Kenneth Kehl
ae0f8d58d9 investigate security.txt 2024-10-16 07:48:00 -07:00
Beverly Nguyen
90e8017cd5 remove photos and edit content 2024-10-15 10:15:08 -07:00
Kenneth Kehl
34ccfb5bd7 Merge pull request #1996 from GSA/e2e_tests_uncomment
Make e2e tests work fully with staging API
2024-10-15 09:57:19 -07:00
alexjanousekGSA
2504e58a87 Fixed linting errors 2024-10-15 12:54:37 -04:00
dependabot[bot]
db5626f5b0 Bump sass-embedded from 1.79.4 to 1.79.5
Bumps [sass-embedded](https://github.com/sass/embedded-host-node) from 1.79.4 to 1.79.5.
- [Changelog](https://github.com/sass/embedded-host-node/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/embedded-host-node/compare/1.79.4...1.79.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-14 23:36:07 +00:00
alexjanousekGSA
e62cc021e9 Added code for hiding guidance pages and updated backstop reference files 2024-10-14 14:44:20 -04:00
Alex Janousek
2624bd885d Merge pull request #2019 from GSA/dependabot/npm_and_yarn/babel/core-7.25.8
Bump @babel/core from 7.25.2 to 7.25.8
2024-10-14 13:53:01 -04:00
Alex Janousek
a5ff9af1eb Merge pull request #2011 from GSA/dependabot/npm_and_yarn/playwright-1.48.0
Bump playwright from 1.47.2 to 1.48.0
2024-10-14 13:44:34 -04:00
dependabot[bot]
8e29229d8b Bump @babel/core from 7.25.2 to 7.25.8
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.25.2 to 7.25.8.
- [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.25.8/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-14 17:39:42 +00:00
Alex Janousek
c30dbec6ce Merge pull request #2020 from GSA/dependabot/npm_and_yarn/babel/preset-env-7.25.8
Bump @babel/preset-env from 7.25.7 to 7.25.8
2024-10-14 13:38:24 -04:00
Jonathan Bobel
bfead7ffac Merge branch 'main' of https://github.com/GSA/notifications-admin into 1999-dashboard-a11y-fixes 2024-10-11 10:22:14 -04:00
dependabot[bot]
29854c6164 Bump @babel/preset-env from 7.25.7 to 7.25.8
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.25.7 to 7.25.8.
- [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.25.8/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-10 23:19:49 +00:00
Carlo Costino
978031744f Merge pull request #2016 from GSA/use-the-correct-env-var-names
Use the correct environment variable names
2024-10-10 14:20:16 -04:00
Carlo Costino
f27703112a Use the correct environment variable names
This changeset corrects the reference to the environment names that we are actually trying to reference.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2024-10-10 13:06:47 -04:00
alexjanousekGSA
035c4158f9 Added new reference files 2024-10-10 11:29:20 -04:00
Carlo Costino
c47144a8b0 Merge pull request #2014 from GSA/swap-egress-proxy-config-to-env
Swap out config variables for env variables
2024-10-10 10:33:18 -04:00
alexjanousekGSA
54d5ee96d0 Merge branch 'main' into 1928-develop-new-page-templates-in-code-to-sit-behind-the-log-in 2024-10-10 09:47:04 -04:00
Carlo Costino
fd447e9a75 Swap out config variables for env variables
This changeset swaps the CF_USERNAME and CF_PASSWORD config vars to be proper env vars so they can be read in as expected.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2024-10-09 14:20:10 -06:00
Carlo Costino
9ee0da0b32 Merge pull request #2013 from GSA/add-missing-egress-proxy-inputs
Add missing inputs to egress proxy deploy action
2024-10-09 14:00:27 -06:00
Carlo Costino
2fbce24f97 Add missing inputs to egress proxy deploy action
This changeset adds a few missing inputs to the egress proxy deploy action so that it can use the provided environment variables properly.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2024-10-09 13:48:47 -06:00
Carlo Costino
10da94dbf8 Merge pull request #1997 from GSA/update-egress-proxy-even-more
Add missing environment veriables to egress deploy action
2024-10-09 13:24:56 -06:00
Kenneth Kehl
d86b1afb9a code review feedback 2024-10-09 11:42:20 -07:00
Beverly Nguyen
34f133cf62 Merge branch 'main' into 1928-develop-new-page-templates-in-code-to-sit-behind-the-log-in 2024-10-09 11:21:29 -07:00
Kenneth Kehl
10a8d1b938 code review feedback 2024-10-09 11:04:15 -07:00
Kenneth Kehl
b7b23ba6c8 try reverting hardcoding 2024-10-09 10:06:56 -07:00
Jonathan Bobel
a65f9f9bbf Updates to the js and tests 2024-10-09 12:46:19 -04:00
Kenneth Kehl
1cc760c153 write a script to get the VCAP value 2024-10-09 09:43:48 -07:00
Jonathan Bobel
175a47310e Adding the correct ID to the popup to read correctly to screen readers 2024-10-09 11:20:43 -04:00
Jonathan Bobel
77f96e901b Merge branch 'main' of https://github.com/GSA/notifications-admin into 1999-dashboard-a11y-fixes 2024-10-09 10:27:20 -04:00
Steven Reilly
338fbfc407 Merge pull request #2008 from GSA/2007-bug-total-messages-sms-sent-always-zero
2007 - bug - total messages sms sent always zero
2024-10-09 10:26:20 -04:00
Jonathan Bobel
5adcfae5d8 Fixing a test 2024-10-09 09:56:19 -04:00
dependabot[bot]
b8b4a707a3 Bump playwright from 1.47.2 to 1.48.0
Bumps [playwright](https://github.com/microsoft/playwright) from 1.47.2 to 1.48.0.
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](https://github.com/microsoft/playwright/compare/v1.47.2...v1.48.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-08 23:37:52 +00:00
dependabot[bot]
61ea8e0b03 Bump @uswds/uswds from 3.8.2 to 3.9.0
Bumps [@uswds/uswds](https://github.com/uswds/uswds) from 3.8.2 to 3.9.0.
- [Release notes](https://github.com/uswds/uswds/releases)
- [Commits](https://github.com/uswds/uswds/compare/v3.8.2...v3.9.0)

---
updated-dependencies:
- dependency-name: "@uswds/uswds"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-08 23:37:27 +00:00
Beverly Nguyen
edca721f5b content updates vs 2 2024-10-08 15:32:11 -07:00
Jonathan Bobel
3ad6f9daae Removing reference to financial year 2024-10-08 16:37:33 -04:00
Jonathan Bobel
947f85ba51 This was from a previous commit 2024-10-08 16:24:03 -04:00
Jonathan Bobel
65c99bf8e8 Removing instances of a financial year 2024-10-08 16:12:50 -04:00
Jonathan Bobel
d8feea6bd5 Merge branch 'main' of https://github.com/GSA/notifications-admin 2024-10-08 16:06:19 -04:00
Jonathan Bobel
98fb68ad14 Updated to table captions and hiding the legend on the dashboard if it's empty 2024-10-08 16:05:00 -04:00
Beverly Nguyen
6213a9bc96 font changes 2024-10-08 11:34:46 -07:00
Kenneth Kehl
9c59e40de7 fix moderate accessibility violation scope='row' 2024-10-08 11:32:55 -07:00
Alex Janousek
c89a6089a0 Merge pull request #1984 from GSA/dependabot/npm_and_yarn/babel/preset-env-7.25.7
Bump @babel/preset-env from 7.25.4 to 7.25.7
2024-10-08 12:55:44 -04:00
Alex Janousek
971486be20 Merge pull request #1994 from GSA/dependabot/npm_and_yarn/multi-cf87d80143
Bump send and express
2024-10-08 12:55:18 -04:00
Alex Janousek
cd6c9af0bc Merge pull request #1983 from GSA/dependabot/npm_and_yarn/rollup-4.24.0
Bump rollup from 4.22.5 to 4.24.0
2024-10-08 12:54:04 -04:00
Alex Janousek
7eb7ed1855 Merge pull request #1977 from GSA/dependabot/npm_and_yarn/sass-embedded-1.79.4
Bump sass-embedded from 1.79.3 to 1.79.4
2024-10-08 12:53:35 -04:00
Alex Janousek
ea93b57190 Merge pull request #1960 from GSA/dependabot/npm_and_yarn/rollup/plugin-commonjs-28.0.0
Bump @rollup/plugin-commonjs from 26.0.1 to 28.0.0
2024-10-08 12:52:58 -04:00
Kenneth Kehl
8df380ca0d Users can be invited with no permissions 2024-10-08 08:32:20 -07:00
Jonathan Bobel
3865c5b952 Update to address a11y issue of "Broken Aria link" in the dialog 2024-10-08 10:36:35 -04:00
Kenneth Kehl
f37b89849e cleanup 2024-10-07 13:44:43 -07:00
Kenneth Kehl
397bbeabde Merge pull request #2000 from GSA/stvnrlly-patch-1
Update notify-pilot-info.md
2024-10-07 13:42:33 -07:00
Kenneth Kehl
a11c567de3 fix moderate axe-core accessibility violation 2024-10-07 11:45:14 -07:00
Steven Reilly
bdc27c10d0 Update notify-pilot-info.md 2024-10-07 14:40:50 -04:00
Kenneth Kehl
f7f449ff07 try h2 2024-10-07 11:31:02 -07:00
Kenneth Kehl
b133def7fc cleanup 2024-10-07 11:02:04 -07:00
Kenneth Kehl
b4b15bc209 cleanup 2024-10-07 10:45:02 -07:00
Kenneth Kehl
44524eb9e2 try to not put vcap services into a secret 2024-10-07 10:26:43 -07:00
Kenneth Kehl
4b8b078476 try to not put vcap services into a secret 2024-10-07 10:03:45 -07:00
Kenneth Kehl
22f9ff603a try using h3 instead of h4 2024-10-07 09:11:10 -07:00
Kenneth Kehl
3f7e600ac1 try using h3 instead of h4 2024-10-07 08:37:34 -07:00
Kenneth Kehl
5a5b0649e0 restore axe_core level to minor 2024-10-07 08:23:18 -07:00
Kenneth Kehl
a23fe5c046 relax axe-core tests for now 2024-10-07 08:03:51 -07:00
Kenneth Kehl
306391c958 relax axe-core tests for now 2024-10-07 07:54:14 -07:00
Kenneth Kehl
e41ad9fab9 update secrets 2024-10-07 07:47:30 -07:00
Kenneth Kehl
fb83e8610c update secrets 2024-10-07 07:33:40 -07:00
Carlo Costino
d0a435becd Merge pull request #1978 from GSA/1971-bug-two-skip-links
1971 - BUG - There were two main content skip links
2024-10-05 15:47:58 -06:00
Carlo Costino
62f58c6e27 Merge pull request #1981 from GSA/1967-remove-uk-reference
1967 - Remove reference to UK on error page
2024-10-05 15:39:43 -06:00
Carlo Costino
0db68453b9 Merge pull request #1987 from GSA/1986-go-live-form-link-change
1986 - Updated links for Go Live Form
2024-10-05 15:29:10 -06:00
Carlo Costino
fbba1a735f Merge pull request #1992 from GSA/change-deploytools-demoprod
Switch out deprecated tools in demo/prod deploy scripts
2024-10-05 15:22:11 -06:00
Carlo Costino
35eb2a9013 Add missing environment veriables to egress deploy action
This changeset adds missing environment variables needed by the egress proxy to now properly deploy.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2024-10-04 22:49:42 -04:00
Kenneth Kehl
108e93d06a update secrets 2024-10-04 15:44:08 -07:00
Kenneth Kehl
4d4288d3c7 try again 2024-10-04 15:20:30 -07:00
Kenneth Kehl
c0ffa63f88 try again 2024-10-04 15:14:45 -07:00
Kenneth Kehl
89413c56ba try again 2024-10-04 15:04:34 -07:00
Kenneth Kehl
e6a3c0d4b7 try again 2024-10-04 14:52:58 -07:00
Kenneth Kehl
7d2f7d1c8a try again 2024-10-04 14:37:52 -07:00
Kenneth Kehl
f118b1c4bf try again 2024-10-04 14:28:12 -07:00
Kenneth Kehl
85a5e3075a try again 2024-10-04 14:18:48 -07:00
Kenneth Kehl
59959cfab4 try again 2024-10-04 14:09:39 -07:00
Kenneth Kehl
68cf422ca8 try again 2024-10-04 13:23:23 -07:00
Kenneth Kehl
a9999aa8ec try again 2024-10-04 13:18:15 -07:00
Kenneth Kehl
3a50fff6ea try again 2024-10-04 13:08:36 -07:00
Kenneth Kehl
c15d388fc2 try again 2024-10-04 13:00:31 -07:00
Kenneth Kehl
ec3ebe5b90 try again 2024-10-04 12:32:04 -07:00
Beverly Nguyen
fbdc01b109 Merge pull request #1995 from GSA/update-egress-proxy-more
Add one more potentially missing step
2024-10-04 12:29:08 -07:00
Kenneth Kehl
60e3c5291e try again 2024-10-04 12:18:46 -07:00
Carlo Costino
c178a3e77e Add one more potentially missing step
This changeset adds one more step that hopefully takes care of the egress proxy deploy.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2024-10-04 15:16:16 -04:00
Kenneth Kehl
4e3eb03040 try again 2024-10-04 12:10:16 -07:00
Carlo Costino
29b9e122ba Merge pull request #1993 from GSA/update-egress-proxy
Update cg-egress-proxy installation
2024-10-04 14:57:56 -04:00
dependabot[bot]
63c1652c40 Bump sass-embedded from 1.79.3 to 1.79.4
Bumps [sass-embedded](https://github.com/sass/embedded-host-node) from 1.79.3 to 1.79.4.
- [Changelog](https://github.com/sass/embedded-host-node/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/embedded-host-node/compare/1.79.3...1.79.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-04 18:48:30 +00:00
dependabot[bot]
f28a618e78 Bump @babel/preset-env from 7.25.4 to 7.25.7
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.25.4 to 7.25.7.
- [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.25.7/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-04 18:48:27 +00:00
dependabot[bot]
aa7c7b7d9a Bump rollup from 4.22.5 to 4.24.0
Bumps [rollup](https://github.com/rollup/rollup) from 4.22.5 to 4.24.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.22.5...v4.24.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-04 18:48:26 +00:00
dependabot[bot]
4c0221e295 Bump @rollup/plugin-commonjs from 26.0.1 to 28.0.0
Bumps [@rollup/plugin-commonjs](https://github.com/rollup/plugins/tree/HEAD/packages/commonjs) from 26.0.1 to 28.0.0.
- [Changelog](https://github.com/rollup/plugins/blob/master/packages/commonjs/CHANGELOG.md)
- [Commits](https://github.com/rollup/plugins/commits/commonjs-v28.0.0/packages/commonjs)

---
updated-dependencies:
- dependency-name: "@rollup/plugin-commonjs"
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-04 18:48:20 +00:00
dependabot[bot]
21d1b69c22 Bump send and express
Bumps [send](https://github.com/pillarjs/send) and [express](https://github.com/expressjs/express). These dependencies needed to be updated together.

Updates `send` from 0.18.0 to 0.19.0
- [Release notes](https://github.com/pillarjs/send/releases)
- [Changelog](https://github.com/pillarjs/send/blob/master/HISTORY.md)
- [Commits](https://github.com/pillarjs/send/compare/0.18.0...0.19.0)

Updates `express` from 4.20.0 to 4.21.0
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/4.21.0/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.20.0...4.21.0)

---
updated-dependencies:
- dependency-name: send
  dependency-type: indirect
- dependency-name: express
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-04 18:48:06 +00:00
Alex Janousek
5aac3130b3 Merge pull request #1950 from GSA/1927-user-story-brief-description-of-the-user-story
Backstop is implemented locally
2024-10-04 14:47:06 -04:00
Carlo Costino
75ce12f5da Update cg-egress-proxy installation
This changeset updates the installation of the cg-egress-proxy repo on account of the recent change to use the newer cg-cli-tools.  It also forces the update for staging to test this out for now; we will have to uncomment the check once this is working.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2024-10-04 14:41:26 -04:00
Kenneth Kehl
21bd20f607 try again 2024-10-04 11:32:16 -07:00
Andrew Shumway
371eb58392 Remove duplicate code in reference 2024-10-04 12:08:45 -06:00
Kenneth Kehl
a27b9a701b try again 2024-10-04 11:08:15 -07:00
Andrew Shumway
c328044636 Switch out deprecated tools in demo/prod deploy scripts 2024-10-04 12:03:16 -06:00
Kenneth Kehl
77f44d4d5e try again 2024-10-04 11:02:52 -07:00
alexjanousekGSA
73b3a61746 Moved condition back to top of method 2024-10-04 13:49:10 -04:00
alexjanousekGSA
c5b2535b8e Fixed calling of response.json() 2024-10-04 13:38:13 -04:00
Carlo Costino
9449b80975 Merge pull request #1991 from GSA/remove-extra-login-env-var
Remove an extra Login.gov environment variable
2024-10-04 13:01:49 -04:00
Kenneth Kehl
cc3d70303c add vcap secret 2024-10-04 09:57:15 -07:00
Carlo Costino
ef528360be Undo change to the cloud.gov repo
They reverted the repo name change

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2024-10-04 12:54:19 -04:00
Carlo Costino
ae1a51ff79 Update reference to the renaming of the cloud-gov/cli-tools repo
Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2024-10-04 12:14:07 -04:00
Carlo Costino
e9b364010a Remove an extra Login.gov environment variable
This changeset removes the LOGIN_DOT_GOV_REGISTRATION_URL environment variable from the admin app deployment configuration.  This is only needed for the API.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2024-10-04 11:33:40 -04:00
Carlo Costino
a8bf2414b4 Merge pull request #1990 from GSA/remove-e2e-env-vars-from-deploy
Remove E2E env vars from deploy
2024-10-04 11:11:54 -04:00
Kenneth Kehl
ced229167f add vcap secret 2024-10-04 08:04:41 -07:00
alexjanousekGSA
8deed320f8 Tweaked mismatch percentage 2024-10-04 11:02:39 -04:00
Kenneth Kehl
114814b0b5 add vcap secret 2024-10-04 07:50:34 -07:00
Kenneth Kehl
88262302e6 add VCAP_SERVICES 2024-10-04 07:06:35 -07:00
Carlo Costino
2e8f82be3b Remove E2E env vars from deploy
The E2E environment variables should not be included with our deploys because we do not want to enable or run E2E tests in production or production-like environments.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2024-10-04 08:35:35 -04:00
Carlo Costino
d63cfb3cb0 Merge pull request #1988 from GSA/switch-18f-deploy-tool-to-CG
Switch 18f deploy tool to CG
2024-10-04 08:06:11 -04:00
Andrew Shumway
6980e28786 Switch 18f deploy tool to CG 2024-10-03 14:19:09 -06:00
Andrew Shumway
c9acf937cf Merge pull request #1975 from GSA/fix-cfcommand-deploytool
Fix cf_command argument for deploy tool
2024-10-03 14:05:13 -06:00
Kenneth Kehl
37bb89402e add VCAP_SERVICES 2024-10-03 12:09:15 -07:00
Kenneth Kehl
f20803ecae add VCAP_SERVICES 2024-10-03 12:04:50 -07:00
Kenneth Kehl
addf4f0959 add VCAP_SERVICES 2024-10-03 12:00:31 -07:00
Kenneth Kehl
b7f26454ff add VCAP_SERVICES 2024-10-03 11:53:11 -07:00
Kenneth Kehl
a669477f48 add VCAP_SERVICES 2024-10-03 11:49:42 -07:00
Jonathan Bobel
8c932a6072 Updated links for Go Live Form 2024-10-03 14:39:51 -04:00
Kenneth Kehl
d2c654214b add VCAP_SERVICES 2024-10-03 11:28:12 -07:00
Kenneth Kehl
3120f82b1e add VCAP_SERVICES 2024-10-03 11:09:17 -07:00
Kenneth Kehl
0e45588e5a add VCAP_SERVICES 2024-10-03 10:52:49 -07:00
Kenneth Kehl
d4223429ec merge from main 2024-10-03 10:49:56 -07:00
Jonathan Bobel
1ea15d5ba1 Updated text for this error page (although I don't know when someone would see it) 2024-10-02 16:02:18 -04:00
Kenneth Kehl
915b18bbbd Merge pull request #1970 from GSA/notify-api-1299
optimize S3 partitioning
2024-10-02 09:55:14 -07:00
Beverly Nguyen
cecfeb7441 revised content phone content 2024-10-02 09:52:44 -07:00
alexjanousekGSA
f2fc6da0ee Updated docs 2024-10-02 11:19:33 -04:00
alexjanousekGSA
e96aec9898 Merged in main, created reference images and added delay to screenshots 2024-10-02 11:16:30 -04:00
alexjanousekGSA
e11b6376c2 Redid reference files 2024-10-02 10:37:04 -04:00
Andrew Shumway
4e2630d675 Remove whitespace/fix caps on var 2024-10-02 08:18:47 -06:00
Andrew Shumway
0a5ca7d0d6 Pull in main/fix merge conflicts 2024-10-02 07:58:04 -06:00
Andrew Shumway
64a01e70b7 Wrap vars with quotes and indent 2024-10-02 07:55:58 -06:00
Beverly Nguyen
4eff686e17 revising stylnig 2024-10-01 12:38:01 -07:00
Beverly Nguyen
282e27034d revised content 2024-10-01 12:28:05 -07:00
Alex Janousek
466137ba07 Update docs/backstop.md
Co-authored-by: Carlo Costino <ccostino@users.noreply.github.com>
2024-10-01 12:13:35 -04:00
Carlo Costino
0d04524525 Merge pull request #1966 from GSA/USN-COMPLY-49_Verify_Nonce_on_Login
Verify NONCE on login.
2024-10-01 11:05:09 -04:00
Jonathan Bobel
08c97a8066 Removing this link since it was duplicated 2024-10-01 10:42:33 -04:00
Andrew Shumway
6815493f4a Remove brackets from hardcoded var 2024-09-30 14:49:28 -06:00
Andrew Shumway
f578a52010 Retry syntax on cf command 2024-09-30 14:34:47 -06:00
Carlo Costino
40a0418731 Merge pull request #1972 from GSA/dependabot/npm_and_yarn/rollup-4.22.5
Bump rollup from 4.22.4 to 4.22.5
2024-09-30 15:56:25 -04:00
Andrew Shumway
b7d699feae Move admin client username to env variable block 2024-09-30 13:46:13 -06:00
Andrew Shumway
8b9293db0e Fix cf_command syntax 2024-09-30 13:42:48 -06:00
Kenneth Kehl
6ff8be5d3e Merge pull request #1973 from GSA/add-awscli
Add awscli tools to the admin
2024-09-30 11:35:08 -07:00
Andrew Shumway
475bd0c1b4 fix yaml 2024-09-30 11:26:27 -06:00
Carlo Costino
2c7d090b82 Merge pull request #1964 from GSA/notify-admin-1956
make sure phone number is always last in the one-off csv
2024-09-30 13:03:09 -04:00
Carlo Costino
4f193e362c Add awscli tools to the admin
This changeset adds the awscli tools as a development dependency so that we are able to manage local connectivity to AWS resources when needed.  It is also needed to help with deploying the project to the sandbox environment and/or updating the Terraform to manage the infrastructure.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2024-09-30 10:13:12 -04:00
alexjanousekGSA
687372fd6c Added new reference images, removed a few custom pages 2024-09-30 09:58:44 -04:00
dependabot[bot]
302a79b41f Bump rollup from 4.22.4 to 4.22.5
Bumps [rollup](https://github.com/rollup/rollup) from 4.22.4 to 4.22.5.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.22.4...v4.22.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-27 23:20:05 +00:00
Kenneth Kehl
f0299c4042 optimize S3 partitioning 2024-09-27 08:39:19 -07:00
Kenneth Kehl
bc5b980431 more debug 2024-09-27 07:49:15 -07:00
Kenneth Kehl
08384dd1fa more debug 2024-09-27 07:36:55 -07:00
Kenneth Kehl
bdc5614fff Update app/main/views/send.py
Co-authored-by: Carlo Costino <ccostino@users.noreply.github.com>
2024-09-27 07:20:40 -07:00
alexjanousekGSA
060db76640 Removed comment 2024-09-26 15:01:34 -04:00
alexjanousekGSA
b2b758ca8d Updated sensitivity 2024-09-26 14:54:55 -04:00
Kenneth Kehl
584ccce53d check bucket name 2024-09-26 10:51:51 -07:00
Kenneth Kehl
dda788b073 check bucket name 2024-09-26 10:46:26 -07:00
Kenneth Kehl
feff8ec1be try specifying region in the config 2024-09-26 10:32:22 -07:00
Kenneth Kehl
cfc9acc6f2 try specifying region in the config 2024-09-26 10:24:38 -07:00
Kenneth Kehl
959a680664 try specifying region in the config 2024-09-26 10:13:19 -07:00
Cliff Hill
a5e72ea4eb manifest.yml changed.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-09-26 12:46:07 -04:00
Kenneth Kehl
122343e46e try not using fips 2024-09-26 09:37:07 -07:00
Kenneth Kehl
86b217b1df remove extrtaneous comments 2024-09-26 09:22:16 -07:00
alexjanousekGSA
982f77413e updated mismatch threshold 2024-09-26 12:02:35 -04:00
Kenneth Kehl
3967612eb1 more debug 2024-09-26 08:53:40 -07:00
alexjanousekGSA
b0f0a8d8db Updated readme 2024-09-26 11:50:10 -04:00
Kenneth Kehl
fd2de9bf9b more debug 2024-09-26 08:44:10 -07:00
Kenneth Kehl
cd24c2b029 more debug 2024-09-26 08:23:13 -07:00
Cliff Hill
63747515db Updated the sample.env with new var.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-09-26 10:16:57 -04:00
Cliff Hill
55f588f13d Updated deploy workflows with new env var.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-09-26 10:11:46 -04:00
Cliff Hill
81a629935c Ok, now working 100% correctly with nonce.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-09-26 09:18:02 -04:00
Jonathan Bobel
49ec3dc559 Merge pull request #1963 from GSA/notify-admin-1937b
Fix moderate a11y violations reported by axe-core
2024-09-25 16:35:02 -04:00
Jonathan Bobel
647b37ae61 Removing moderate violations for the a11y scan 2024-09-25 16:19:00 -04:00
Cliff Hill
7b2d495c1b fixing so nonce check works correctly.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-09-25 16:01:13 -04:00
Cliff Hill
47f0952125 Getting id_token to decode correctly.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-09-25 15:34:31 -04:00
Jonathan Bobel
e0fb031cf5 Semantic update 2024-09-25 15:29:58 -04:00
Jonathan Bobel
72eff3235e Making sure it's testing against this code 2024-09-25 15:15:50 -04:00
Jonathan Bobel
67ad9148d6 Testing back button for a11y issues 2024-09-25 13:58:54 -04:00
alexjanousekGSA
2f40be8cd0 Added documentation 2024-09-25 13:12:18 -04:00
Beverly Nguyen
7d1c7fabc2 links fixed 2024-09-25 10:03:49 -07:00
Kenneth Kehl
a088409dfe fix 2024-09-25 09:54:31 -07:00
Kenneth Kehl
ddd413f299 fix 2024-09-25 09:38:59 -07:00
Beverly Nguyen
67097957f5 content 2024-09-25 09:38:21 -07:00
Kenneth Kehl
250a36836d fix 2024-09-25 09:29:50 -07:00
Kenneth Kehl
f8fd0422bf uncomment test code 2024-09-25 09:16:22 -07:00
Cliff Hill
4cdac9eba3 Making coverage not bother with sign in stuff since login.gov.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-09-25 12:05:56 -04:00
Cliff Hill
76863cd4dc Some unit test cleanup.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-09-25 11:23:36 -04:00
Cliff Hill
3d00b0c94f Making nonce passed through redis.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-09-25 10:45:57 -04:00
Kenneth Kehl
4594dc317f merge from main 2024-09-25 07:03:02 -07:00
Kenneth Kehl
5e93f2d572 merge from main 2024-09-25 07:00:10 -07:00
Cliff Hill
a2dbb6c9e6 Typo fix.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-09-24 20:46:48 -04:00
Cliff Hill
d097a0e2a6 I believe nonce is set up for sign_in.py.
Signed-off-by: Cliff Hill <clifford.hill@gsa.gov>
2024-09-24 20:39:08 -04:00
Beverly Nguyen
cff1fb8f2e guidance pages 2024-09-24 15:42:16 -07:00
Beverly Nguyen
5a1b59561f guidance content 2024-09-24 15:38:13 -07:00
Beverly Nguyen
1aad5f0ac1 merge main 2024-09-24 15:15:22 -07:00
Beverly Nguyen
d89fa8b987 Merge branch 'main' into 1928-develop-new-page-templates-in-code-to-sit-behind-the-log-in 2024-09-24 15:13:54 -07:00
Carlo Costino
d3855f47ac Merge pull request #1959 from GSA/dependabot/npm_and_yarn/rollup-4.22.4
Bump rollup from 4.22.2 to 4.22.4
2024-09-24 15:57:00 -04:00
Kenneth Kehl
6f91d60030 make sure phone number is always last in the one-off csv 2024-09-24 10:35:22 -07:00
Beverly Nguyen
9eb54bd837 updated 2024-09-24 10:07:18 -07:00
Beverly Nguyen
968f7881e7 fixed test 2024-09-24 10:01:56 -07:00
alexjanousekGSA
f4d8816eac Added updates 2024-09-24 12:19:20 -04:00
Kenneth Kehl
99ce42fc4a revert test setting to ignore moderate failures 2024-09-24 08:44:01 -07:00
Kenneth Kehl
899347d349 fix tests 2024-09-24 08:23:17 -07:00
Kenneth Kehl
14b37524ae revert to nav 2024-09-24 08:02:32 -07:00
Kenneth Kehl
5caa26e93c try adding service nav 2024-09-24 07:52:10 -07:00
Kenneth Kehl
5ee559da10 try adding service nav 2024-09-24 07:44:43 -07:00
Kenneth Kehl
73852a54f2 add aria-labels 2024-09-24 07:36:21 -07:00
Kenneth Kehl
ec806ce385 1937b 2024-09-24 07:11:08 -07:00
Beverly Nguyen
8eaaf1b067 fix test 2024-09-23 19:15:21 -07:00
Beverly Nguyen
296ebb5655 reverting index 2024-09-23 18:58:52 -07:00
Beverly Nguyen
d9805495de adjusting css margin and nav 2024-09-23 18:58:22 -07:00
dependabot[bot]
8c3cdabb92 Bump rollup from 4.22.2 to 4.22.4
Bumps [rollup](https://github.com/rollup/rollup) from 4.22.2 to 4.22.4.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.22.2...v4.22.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-23 23:13:18 +00:00
alexjanousekGSA
4e52d60a7c Fixed linting issue 2024-09-23 13:53:08 -04:00
Jonathan Bobel
a5889d3448 Merge pull request #1957 from GSA/notify-admin-1936
Fix serious a11y violations reported by axe-core
2024-09-23 13:40:37 -04:00
alexjanousekGSA
5234706ae1 Added script 2024-09-23 13:08:29 -04:00
alexjanousekGSA
70c9801f1d Added script 2024-09-23 13:07:24 -04:00
alexjanousekGSA
df22530fa4 Remove BackstopJS generated folders from Git tracking 2024-09-23 12:03:21 -04:00
alexjanousekGSA
df630b58d8 Merge branch 'main' into 1927-user-story-brief-description-of-the-user-story 2024-09-23 11:57:37 -04:00
alexjanousekGSA
f9337b614f Reverted sign in 2024-09-23 11:57:13 -04:00
Carlo Costino
09a775fdad Merge pull request #1953 from GSA/dependabot/npm_and_yarn/sass-embedded-1.79.3
Bump sass-embedded from 1.78.0 to 1.79.3
2024-09-23 11:50:48 -04:00
Carlo Costino
62cfa2c39c Merge pull request #1954 from GSA/dependabot/npm_and_yarn/rollup-4.22.2
Bump rollup from 4.21.2 to 4.22.2
2024-09-23 11:43:42 -04:00
Kenneth Kehl
8b6f719510 try to fix li elements 2024-09-23 08:18:41 -07:00
Kenneth Kehl
b953d316c4 fix aria label issue 2024-09-23 08:01:56 -07:00
Kenneth Kehl
5c3b5790ae try overriding default govuk-frontend font weight 2024-09-23 07:50:52 -07:00
Carlo Costino
d0d3878881 Merge pull request #1931 from GSA/notify-admin-1926
Integrate axe-core a11y tests into our e2e tests
2024-09-23 10:26:44 -04:00
Kenneth Kehl
b6e0249adb merge from main 2024-09-23 07:10:31 -07:00
dependabot[bot]
4a8d768b6f Bump rollup from 4.21.2 to 4.22.2
Bumps [rollup](https://github.com/rollup/rollup) from 4.21.2 to 4.22.2.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.21.2...v4.22.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-20 23:34:39 +00:00
dependabot[bot]
876db282d5 Bump sass-embedded from 1.78.0 to 1.79.3
Bumps [sass-embedded](https://github.com/sass/embedded-host-node) from 1.78.0 to 1.79.3.
- [Changelog](https://github.com/sass/embedded-host-node/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/embedded-host-node/compare/1.78.0...1.79.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-20 23:34:30 +00:00
alexjanousekGSA
028423adc1 Fixinng linting issues 2024-09-19 16:54:15 -04:00
alexjanousekGSA
56f7ad47e5 Solved merge conflict 2024-09-19 16:11:43 -04:00
Beverly Nguyen
1368384fdf fixed testing 2024-09-19 13:04:33 -07:00
Beverly Nguyen
17c63c0790 fix sort 2024-09-19 09:55:59 -07:00
Beverly Nguyen
d21e85278e fixed flake8 2024-09-18 22:45:49 -07:00
Beverly Nguyen
a4b9c16763 added guidance directory and nav 2024-09-18 22:40:48 -07:00
alexjanousekGSA
c44084f325 Backstop is working locally 2024-09-18 13:59:16 -04:00
Carlo Costino
cf39b32808 Merge pull request #1421 from GSA/notify-admin-1157
point to staging for e2e
2024-09-13 17:29:19 -04:00
Kenneth Kehl
84f3c61bc0 code review feedback 2024-09-13 07:50:24 -07:00
Kenneth Kehl
892705b125 revert fix for aria label 2024-09-11 14:19:31 -07:00
Kenneth Kehl
ef9e3aecbe set to critical for now 2024-09-11 14:11:19 -07:00
Kenneth Kehl
6da52f91b3 get list of serious violations 2024-09-11 14:01:57 -07:00
Kenneth Kehl
5eadcc0319 switch to serious and above try removing aria label 2024-09-11 13:54:42 -07:00
Kenneth Kehl
8d6478c3c1 switch to serious and above try removing aria label 2024-09-11 13:31:50 -07:00
Kenneth Kehl
a267cf3d4b expand to all tests 2024-09-11 13:16:58 -07:00
Kenneth Kehl
f82bcb0509 expand to all tests 2024-09-11 13:08:50 -07:00
Kenneth Kehl
c3a2441ade try expanding use of axe 2024-09-11 12:57:10 -07:00
Kenneth Kehl
8ef357ea61 try expanding use of axe 2024-09-11 12:36:58 -07:00
Kenneth Kehl
286166c2ad fix import 2024-09-11 11:07:59 -07:00
Kenneth Kehl
7b9e5288f8 fix import 2024-09-11 11:02:01 -07:00
Kenneth Kehl
df85f66a43 fix import 2024-09-11 10:48:26 -07:00
Kenneth Kehl
a91d6d25c8 initial test axe-core 2024-09-11 10:39:28 -07:00
Carlo Costino
88c47d15f6 Merge pull request #1924 from GSA/dependabot/npm_and_yarn/better-npm-audit-3.11.0
Bump better-npm-audit from 3.8.3 to 3.11.0
2024-09-10 14:41:20 -04:00
dependabot[bot]
6537eb2b1d Bump better-npm-audit from 3.8.3 to 3.11.0
Bumps [better-npm-audit](https://github.com/jeemok/better-npm-audit) from 3.8.3 to 3.11.0.
- [Release notes](https://github.com/jeemok/better-npm-audit/releases)
- [Changelog](https://github.com/jeemok/better-npm-audit/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jeemok/better-npm-audit/compare/v3.8.3...v3.11.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-10 18:28:31 +00:00
Carlo Costino
75727520c0 Merge pull request #1918 from GSA/dependabot/npm_and_yarn/uswds/compile-1.2.0
Bump @uswds/compile from 1.1.0 to 1.2.0
2024-09-10 14:27:14 -04:00
Kenneth Kehl
d6c8ee90e8 cleanup 2024-09-10 09:29:46 -07:00
Kenneth Kehl
a3ef868924 cleanup 2024-09-10 08:46:31 -07:00
Kenneth Kehl
bdf4c9597b clean up Makefile and checks.yml 2024-09-10 07:17:41 -07:00
Carlo Costino
6e3db9d59a Merge pull request #1914 from GSA/dependabot/npm_and_yarn/sass-embedded-1.78.0
Bump sass-embedded from 1.77.8 to 1.78.0
2024-09-09 18:13:01 -04:00
Carlo Costino
fc88ca55e7 Merge pull request #1912 from GSA/dependabot/npm_and_yarn/rollup-4.21.2
Bump rollup from 4.21.1 to 4.21.2
2024-09-09 17:47:08 -04:00
Kenneth Kehl
b8edfa8175 fix dead code 2024-09-09 13:57:45 -07:00
Kenneth Kehl
1a247260ff fix tests and flake8 2024-09-09 13:50:02 -07:00
Kenneth Kehl
92229707e2 comment out part of test that is still failing 2024-09-09 13:27:07 -07:00
Kenneth Kehl
5db3d4878f fix last test 2024-09-09 13:03:16 -07:00
Kenneth Kehl
b1f1005441 reenable e2e tests 2024-09-09 12:50:16 -07:00
Kenneth Kehl
6223341826 reenable e2e tests 2024-09-09 12:34:52 -07:00
Kenneth Kehl
6b3fde3356 merge from main 2024-09-09 12:09:53 -07:00
Kenneth Kehl
749e4cc708 Merge pull request #1911 from GSA/notify-api-1301
start load test work
2024-09-09 09:21:48 -07:00
alexjanousekGSA
a2d542c726 Upgraded vul package 2024-09-09 12:05:00 -04:00
dependabot[bot]
b67b15b6c9 Bump @uswds/compile from 1.1.0 to 1.2.0
Bumps [@uswds/compile](https://github.com/uswds/uswds-compile) from 1.1.0 to 1.2.0.
- [Release notes](https://github.com/uswds/uswds-compile/releases)
- [Commits](https://github.com/uswds/uswds-compile/compare/v1.1.0...v1.2.0)

---
updated-dependencies:
- dependency-name: "@uswds/compile"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-04 23:42:43 +00:00
Kenneth Kehl
d94a35cd30 get the error message in the url 2024-09-04 14:21:45 -07:00
Carlo Costino
26e53e76c5 Merge pull request #1910 from GSA/1487-display-data-most-used-templates-table
Display data: Most used templates table
2024-09-04 15:59:21 -04:00
Carlo Costino
6cf540be04 Merge pull request #1917 from GSA/cryptography-update
Update cryptography Python dependency
2024-09-04 15:37:26 -04:00
Carlo Costino
e3007f273e Update cryptography Python dependency
This changeset updates the Python cryptography package to the latest release to address a pip-audit finding.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2024-09-04 15:18:02 -04:00
Carlo Costino
46a980c505 Merge pull request #1909 from GSA/1908-remove-folder-and-header-folder-componentscomponents-since-we-no-longer-need-it
Deleting unused files/folders
2024-09-04 15:05:06 -04:00
Kenneth Kehl
b32dde1a07 debug key 2024-09-04 08:19:38 -07:00
Kenneth Kehl
87581705c6 merge from main 2024-09-04 08:09:25 -07:00
dependabot[bot]
3aa68a3d25 Bump sass-embedded from 1.77.8 to 1.78.0
Bumps [sass-embedded](https://github.com/sass/embedded-host-node) from 1.77.8 to 1.78.0.
- [Changelog](https://github.com/sass/embedded-host-node/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/embedded-host-node/compare/1.77.8...1.78.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-03 23:41:20 +00:00
Kenneth Kehl
1308894191 cleanup 2024-09-03 14:01:17 -07:00
Kenneth Kehl
35dcfccd5f fix tests maybe 2024-09-03 11:03:33 -07:00
Kenneth Kehl
ddf9c6d3ec fix tests maybe 2024-09-03 10:37:05 -07:00
Kenneth Kehl
9e9ba9186a try mock 2024-09-02 10:30:29 -07:00
Kenneth Kehl
b5e2bf705d try mock 2024-09-02 10:02:28 -07:00
Kenneth Kehl
5ada9914b4 try mock 2024-09-02 09:57:22 -07:00
Kenneth Kehl
c075cacae9 try mock 2024-09-02 09:46:27 -07:00
Kenneth Kehl
da7d618460 try mock 2024-09-02 09:42:52 -07:00
Kenneth Kehl
9340069454 try mock 2024-09-02 09:33:23 -07:00
Kenneth Kehl
6621144061 add load_test to excluded 2024-09-02 09:17:51 -07:00
Kenneth Kehl
f6a1f1af5b add load_test to excluded 2024-09-02 09:01:42 -07:00
Kenneth Kehl
8b81c5ce7d add load_test to excluded 2024-09-02 08:43:23 -07:00
Kenneth Kehl
ce74175be1 clean up 2024-09-02 08:34:15 -07:00
Kenneth Kehl
f74bf271a5 clean up 2024-09-02 08:22:03 -07:00
Kenneth Kehl
e8b12de581 clean up 2024-09-02 08:13:05 -07:00
Kenneth Kehl
dcc8055377 more work on load test 2024-09-02 07:51:57 -07:00
dependabot[bot]
ab96955982 Bump rollup from 4.21.1 to 4.21.2
Bumps [rollup](https://github.com/rollup/rollup) from 4.21.1 to 4.21.2.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.21.1...v4.21.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-30 23:35:24 +00:00
Kenneth Kehl
c36561ee4d start load test work 2024-08-30 09:50:01 -07:00
Beverly Nguyen
c51a5593a7 clean up 2024-08-29 17:34:24 -07:00
Beverly Nguyen
be14a4a0c4 fix testing 2024-08-29 17:10:51 -07:00
Beverly Nguyen
65ef22f26e removed template type 2024-08-29 15:19:51 -07:00
Beverly Nguyen
e704cb1b78 added template-stats.html 2024-08-29 15:10:08 -07:00
Beverly Nguyen
2cae3462d3 Merge branch 'main' into 1487-display-data-most-used-templates-table 2024-08-29 14:57:36 -07:00
Beverly Nguyen
5beb9fcce1 reverting changes 2024-08-29 14:56:12 -07:00
Beverly Nguyen
7fea566201 dashboard edit 2024-08-29 14:52:04 -07:00
Beverly Nguyen
3158b91378 new revised table 2024-08-29 14:28:37 -07:00
Beverly Nguyen
6f2c7be4ce fix testing 2024-08-29 12:24:44 -07:00
Beverly Nguyen
b15b3a67f6 delete unused files 2024-08-29 11:37:42 -07:00
Kenneth Kehl
8cc14ec4bf try using various commands in checks.yml to obtain admin logs while e2e tests are running 2024-08-29 11:37:21 -07:00
Kenneth Kehl
4dbd9ede92 try using various commands in checks.yml to obtain admin logs while e2e tests are running 2024-08-29 11:25:44 -07:00
Kenneth Kehl
38fde60348 try using various commands in checks.yml to obtain admin logs while e2e tests are running 2024-08-29 11:10:51 -07:00
Kenneth Kehl
b1ad888b65 try using various commands in checks.yml to obtain admin logs while e2e tests are running 2024-08-29 10:20:38 -07:00
Kenneth Kehl
43bafbb617 try using various commands in checks.yml to obtain admin logs while e2e tests are running 2024-08-29 10:07:21 -07:00
Kenneth Kehl
c5060d3f14 try putting default log handler back in place to get logs streaming to github job output 2024-08-29 09:40:36 -07:00
Kenneth Kehl
15a87ec026 try putting default log handler back in place to get logs streaming to github job output 2024-08-29 09:27:04 -07:00
Kenneth Kehl
2690a059d2 try putting default log handler back in place to get logs streaming to github job output 2024-08-29 09:15:23 -07:00
Kenneth Kehl
5cf80ec5dc try putting default log handler back in place to get logs streaming to github job output 2024-08-29 09:07:14 -07:00
Kenneth Kehl
6fffa3cf43 try putting default log handler back in place to get logs streaming to github job output 2024-08-29 08:54:53 -07:00
Kenneth Kehl
e4c99dc15b try to pass message back in 'next' field 2024-08-29 08:28:38 -07:00
Kenneth Kehl
33e616a8f1 try to pass message back in 'next' field 2024-08-29 08:07:37 -07:00
Kenneth Kehl
d4b9a95b29 hmmm 2024-08-28 13:39:35 -07:00
Kenneth Kehl
ed1ef5cd4a increase debug 2024-08-28 13:04:06 -07:00
Kenneth Kehl
caefc958df increase debug 2024-08-28 12:56:46 -07:00
Kenneth Kehl
981281f725 increase debug 2024-08-28 12:50:09 -07:00
Kenneth Kehl
4cacd108b1 increase debug 2024-08-28 12:36:32 -07:00
Kenneth Kehl
68c0763dec increase debug 2024-08-28 11:31:22 -07:00
Kenneth Kehl
3f7d1ffffe increase debug 2024-08-28 11:17:52 -07:00
Kenneth Kehl
7e38e28a5e increase debug 2024-08-28 11:04:25 -07:00
Kenneth Kehl
f5baf1cb79 increase debug 2024-08-28 10:50:47 -07:00
Kenneth Kehl
67f128c26e increase debug 2024-08-28 10:30:53 -07:00
Kenneth Kehl
88af5de89d increase debug 2024-08-28 10:14:31 -07:00
Kenneth Kehl
7d1a50a5b0 increase debug 2024-08-28 09:29:48 -07:00
Kenneth Kehl
758efa8215 increase debug 2024-08-28 08:02:40 -07:00
Kenneth Kehl
e9a8e2769a increase debug 2024-08-28 07:37:33 -07:00
Kenneth Kehl
f27d53116e increase debug 2024-08-28 07:17:13 -07:00
Beverly Nguyen
b20c8ec909 Merge pull request #1901 from GSA/notify-admin-1877
set timezone automatically
2024-08-27 17:35:58 -07:00
Kenneth Kehl
664d07b414 increase debug 2024-08-27 15:16:25 -07:00
Kenneth Kehl
da6e9f4e8c increase debug 2024-08-27 15:06:00 -07:00
Kenneth Kehl
549855c957 increase debug 2024-08-27 14:56:09 -07:00
Kenneth Kehl
20428f7485 increase debug 2024-08-27 14:43:28 -07:00
Kenneth Kehl
d00f4b5f46 try again 2024-08-27 14:22:07 -07:00
Kenneth Kehl
d756b2289f code review feedback 2024-08-27 12:47:15 -07:00
Beverly Nguyen
8f15a83415 Merge pull request #1898 from GSA/1862-data-visualization-bar-chart-isnt-show-clearly
1862 data visualization bar chart isnt show clearly
2024-08-27 12:26:47 -07:00
Beverly Nguyen
bb106c04f1 fixed testing 2024-08-27 12:19:55 -07:00
Carlo Costino
5a4402fd8b Merge pull request #1905 from GSA/dependabot/npm_and_yarn/rollup-4.21.1
Bump rollup from 4.21.0 to 4.21.1
2024-08-27 12:33:34 -04:00
Alex Janousek
3d808cd3e5 Merge pull request #1900 from GSA/dependabot/npm_and_yarn/babel/preset-env-7.25.4
Bump @babel/preset-env from 7.25.3 to 7.25.4
2024-08-27 08:41:46 -04:00
dependabot[bot]
87d4911f89 Bump rollup from 4.21.0 to 4.21.1
Bumps [rollup](https://github.com/rollup/rollup) from 4.21.0 to 4.21.1.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.21.0...v4.21.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-26 23:42:40 +00:00
Kenneth Kehl
407f049360 fix sort ugh 2024-08-26 11:11:59 -07:00
Kenneth Kehl
e15c89703b fix flake 8 2024-08-26 10:24:29 -07:00
Kenneth Kehl
9907409efd remove Change button for timezone 2024-08-26 10:06:29 -07:00
Kenneth Kehl
7b6b363532 add a call on the send page as well 2024-08-26 09:02:39 -07:00
Kenneth Kehl
f78fe350b0 fix flake 8 2024-08-26 07:59:39 -07:00
Kenneth Kehl
0c612581cd finish up 2024-08-26 07:50:24 -07:00
Beverly Nguyen
ca7c2e0c93 captialization 2024-08-23 18:36:16 -07:00
Beverly Nguyen
1768a4bbd9 changed scale y 2024-08-23 18:31:05 -07:00
Kenneth Kehl
3456bb47a1 move file around 2024-08-23 14:01:51 -07:00
Kenneth Kehl
8e3cd6324f fix some tests 2024-08-23 13:13:24 -07:00
Kenneth Kehl
c67407f090 fix some tests 2024-08-23 12:59:00 -07:00
Kenneth Kehl
50e67d2308 cleanup 2024-08-23 12:21:43 -07:00
Kenneth Kehl
85bafde78d fix flake 8 2024-08-23 12:13:14 -07:00
Kenneth Kehl
c7b83596ba add gulp reference 2024-08-23 11:47:43 -07:00
Kenneth Kehl
77d49754c6 initial 2024-08-23 11:03:32 -07:00
Carlo Costino
1361c2f836 Merge pull request #1834 from GSA/dependabot/pip/phonenumbers-8.13.43
Bump phonenumbers from 8.13.40 to 8.13.43
2024-08-23 11:42:54 -04:00
dependabot[bot]
5b14a4ea90 Bump @babel/preset-env from 7.25.3 to 7.25.4
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.25.3 to 7.25.4.
- [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.25.4/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-22 23:36:50 +00:00
Beverly Nguyen
769e63ebc7 Merge branch 'main' into 1862-data-visualization-bar-chart-isnt-show-clearly 2024-08-22 15:46:40 -07:00
Beverly Nguyen
b40cb5a9ad updated width when sms is zero 2024-08-22 15:46:17 -07:00
Beverly Nguyen
6ae00cabfe Merge pull request #1887 from GSA/1886-cleaning-up-admin-and-fix-missing-files
Clean up admin folders/templates and fix missing files
2024-08-22 14:38:33 -07:00
Beverly Nguyen
13cdb10d88 Merge branch 'main' into 1886-cleaning-up-admin-and-fix-missing-files 2024-08-22 09:56:22 -07:00
dependabot[bot]
8c0fd48e06 Bump phonenumbers from 8.13.40 to 8.13.43
Bumps [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) from 8.13.40 to 8.13.43.
- [Commits](https://github.com/daviddrysdale/python-phonenumbers/compare/v8.13.40...v8.13.43)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-22 16:18:00 +00:00
Andrew Shumway
4f9f546f23 Merge pull request #1829 from GSA/dependabot/pip/boto3-1.34.156
Bump boto3 from 1.34.150 to 1.34.156
2024-08-22 10:16:06 -06:00
Jonathan Bobel
4ca7087218 Merge pull request #1882 from GSA/1863-fix-pagination-count
remove ellipsis in pagination
2024-08-21 16:45:03 -04:00
Jonathan Bobel
75f6ee6837 Merge pull request #1885 from GSA/1881-closed-button-is-missing
updated url for close.svg
2024-08-21 16:44:16 -04:00
Carlo Costino
25722deb68 Merge pull request #1873 from GSA/dependabot/npm_and_yarn/better-npm-audit-3.8.3
Bump better-npm-audit from 3.7.3 to 3.8.3
2024-08-21 12:37:27 -04:00
dependabot[bot]
27c6098cc8 Bump better-npm-audit from 3.7.3 to 3.8.3
Bumps [better-npm-audit](https://github.com/jeemok/better-npm-audit) from 3.7.3 to 3.8.3.
- [Release notes](https://github.com/jeemok/better-npm-audit/releases)
- [Changelog](https://github.com/jeemok/better-npm-audit/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jeemok/better-npm-audit/compare/v3.7.3...v3.8.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-21 16:26:19 +00:00
Carlo Costino
f553b863c6 Merge pull request #1874 from GSA/dependabot/npm_and_yarn/rollup-4.21.0
Bump rollup from 4.20.0 to 4.21.0
2024-08-21 12:24:59 -04:00
Carlo Costino
5243878ef7 Merge pull request #1880 from GSA/notify-admin-1870
Change phone number in Notify.gov w/o entering password
2024-08-20 21:57:36 -04:00
Kenneth Kehl
3b1bd05a10 remove commented out code 2024-08-20 13:52:47 -07:00
Beverly Nguyen
10b65efe1f removed new folder and moved components to components folder 2024-08-20 13:17:01 -07:00
Beverly Nguyen
91f79f694e update webmanifest url to fix broken link 2024-08-20 12:19:09 -07:00
Beverly Nguyen
1bfd619057 updated url for close.svg 2024-08-20 12:01:06 -07:00
Kenneth Kehl
03fae4d08f fix test 2024-08-20 07:14:45 -07:00
Beverly Nguyen
67b928085c remove jobs 2024-08-19 14:37:45 -07:00
Beverly Nguyen
cd98439ac3 remove ellipsis in pagination 2024-08-19 14:33:28 -07:00
Kenneth Kehl
f0ec9e3da9 fix imports 2024-08-19 13:57:07 -07:00
Kenneth Kehl
66a555a2d4 remove print statements 2024-08-19 13:11:02 -07:00
Kenneth Kehl
339797558a remove debug 2024-08-19 13:02:20 -07:00
Kenneth Kehl
672fed7e4b initial 2024-08-19 10:57:08 -07:00
Carlo Costino
5a3f3e5ca0 Merge pull request #1864 from GSA/1859-activity-page-recent-job-reports-not-displaying-for-some-one-off-sends
changed download conditionals
2024-08-19 12:37:52 -04:00
dependabot[bot]
6b236bfa0f Bump boto3 from 1.34.150 to 1.34.156
Bumps [boto3](https://github.com/boto/boto3) from 1.34.150 to 1.34.156.
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.34.150...1.34.156)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-19 16:32:56 +00:00
Andrew Shumway
0c1fc478da Merge pull request #1872 from GSA/add-andrew-assignee-dependabot
Add andrew assignee dependabot
2024-08-19 10:30:21 -06:00
Kenneth Kehl
01eb194a08 Merge pull request #1858 from GSA/1857-no-messages-sent-y-axis-fix
1857 - Activity chart updates
2024-08-19 09:25:45 -07:00
Andrew Shumway
2c7d9d48dc Pull main 2024-08-19 09:57:25 -06:00
dependabot[bot]
1d03d73642 Bump rollup from 4.20.0 to 4.21.0
Bumps [rollup](https://github.com/rollup/rollup) from 4.20.0 to 4.21.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.20.0...v4.21.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-19 15:52:59 +00:00
Alex Janousek
b61329f86d Merge pull request #1853 from GSA/dependabot/update
Added Alex to dependabot node assignee
2024-08-19 11:51:36 -04:00
Andrew Shumway
062eefcf7a Add Andrew to dependabot assignee/review 2024-08-19 09:20:51 -06:00
Beverly Nguyen
8b2a3c26fa changed download conditionals 2024-08-16 11:01:00 -07:00
Andrew Shumway
b7a0dc2225 pull main 2024-08-16 10:59:40 -06:00
Andrew Shumway
6dc9efd13d Poetry lock 2024-08-16 10:59:14 -06:00
Jonathan Bobel
1eb54f8252 Activity chart updates 2024-08-16 11:27:48 -04:00
alexjanousekGSA
eca30e5b20 Added Alex to dependabot node assignee 2024-08-15 15:36:09 -04:00
Carlo Costino
0b75486210 Merge pull request #1852 from GSA/fix-prod-terraform-formatting
Fix formatting in production main.tf file
2024-08-15 14:48:12 -04:00
Alex Janousek
5adc45d591 Merge pull request #1836 from GSA/dependabot/npm_and_yarn/uswds/uswds-3.8.2
Bump @uswds/uswds from 3.8.1 to 3.8.2
2024-08-15 14:35:13 -04:00
Carlo Costino
4cdcdc075c Fix formatting in production main.tf file
This changeset fixes formatting in the production main.tf file.  The terraform fmt -check command is currently failing because of extra whitespace.

Signed-off-by: Carlo Costino <carlo.costino@gsa.gov>
2024-08-15 14:34:56 -04:00
dependabot[bot]
932963beb5 Bump @uswds/uswds from 3.8.1 to 3.8.2
Bumps [@uswds/uswds](https://github.com/uswds/uswds) from 3.8.1 to 3.8.2.
- [Release notes](https://github.com/uswds/uswds/releases)
- [Commits](https://github.com/uswds/uswds/compare/v3.8.1...v3.8.2)

---
updated-dependencies:
- dependency-name: "@uswds/uswds"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-13 02:28:57 +00:00
Andrew Shumway
136e82102b Pull main 2024-08-02 09:00:24 -06:00
Andrew Shumway
b84d00bfb1 poetry lock 2024-08-02 09:00:04 -06:00
Andrew Shumway
0ea4d8897e Pull main 2024-07-31 12:18:03 -06:00
Andrew Shumway
8a3bdd181d Pull main 2024-07-10 08:36:49 -06:00
Andrew Shumway
a81dc83133 pull main 2024-07-05 09:07:08 -06:00
Andrew Shumway
cc24604aa4 Pull main 2024-06-27 08:47:01 -06:00
Andrew Shumway
ea8cfbdadb poetry lock 2024-06-13 10:43:46 -06:00
Andrew Shumway
d1ed7e1d0c Pull main 2024-06-12 09:29:37 -06:00
Andrew Shumway
f9169fcbcb poetry lock 2024-06-03 15:55:37 -06:00
Andrew Shumway
17b21b2382 Pull main 2024-05-31 09:27:42 -06:00
Kenneth Kehl
170527cfdf add API HOST NAME to workaround 2024-04-29 12:05:25 -07:00
Kenneth Kehl
7b570bfbed ugh 2024-04-29 11:35:33 -07:00
Kenneth Kehl
bc72288d4d workaround in conftest for pytest.ini overriding all our env variables 2024-04-29 11:06:25 -07:00
Kenneth Kehl
e50b4bb5f7 try overriding pytest.ini variables 2024-04-29 10:42:31 -07:00
Kenneth Kehl
32f1bb4f87 revert 2024-04-29 09:42:32 -07:00
Kenneth Kehl
594ad74006 remove ampersand 2024-04-29 09:31:58 -07:00
Kenneth Kehl
3b9664f220 more debug 2024-04-29 09:09:49 -07:00
Kenneth Kehl
9897385837 try switching env to development 2024-04-29 08:59:08 -07:00
Kenneth Kehl
4ec3bc5892 merge from main 2024-04-29 07:44:10 -07:00
Kenneth Kehl
358971164e fix manifest 2024-04-15 13:07:53 -07:00
Kenneth Kehl
282611ec9c more debug about state.json 2024-04-15 10:39:37 -07:00
Kenneth Kehl
4a6539197f more debug about state.json 2024-04-15 10:27:25 -07:00
Kenneth Kehl
e92fd011ca more debug about state.json 2024-04-15 10:22:31 -07:00
Kenneth Kehl
9e0fe69d2b more debug 2024-04-15 09:25:46 -07:00
Kenneth Kehl
0ce3d5033c more debug 2024-04-15 09:20:15 -07:00
Kenneth Kehl
ff110de97f more debug 2024-04-15 09:08:47 -07:00
Kenneth Kehl
d54c339994 more debug 2024-04-15 08:56:38 -07:00
Kenneth Kehl
3dc73ab92e more debug 2024-04-15 08:24:20 -07:00
Kenneth Kehl
42570416da debug in case auth state path doesn't exist 2024-04-15 07:33:27 -07:00
Kenneth Kehl
e934e49137 fix 2024-04-12 15:07:47 -07:00
Kenneth Kehl
cec1e4cff0 fix 2024-04-12 14:57:37 -07:00
Kenneth Kehl
31762239dd fix 2024-04-12 14:46:49 -07:00
Kenneth Kehl
017198754f point to staging for e2e 2024-04-12 14:29:39 -07:00
230 changed files with 9090 additions and 8901 deletions

View File

@@ -133,15 +133,7 @@
"filename": ".github/workflows/checks.yml",
"hashed_secret": "5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8",
"is_verified": false,
"line_number": 65,
"is_secret": false
},
{
"type": "Basic Auth Credentials",
"filename": ".github/workflows/checks.yml",
"hashed_secret": "5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8",
"is_verified": false,
"line_number": 99,
"line_number": 68,
"is_secret": false
}
],
@@ -169,7 +161,7 @@
"filename": "app/config.py",
"hashed_secret": "577a4c667e4af8682ca431857214b3a920883efc",
"is_verified": false,
"line_number": 117,
"line_number": 120,
"is_secret": false
}
],
@@ -433,7 +425,7 @@
"filename": "deploy-config/sandbox.yml",
"hashed_secret": "113151dd10316fcb0d5507b6215d78e2f3fe9e54",
"is_verified": false,
"line_number": 8,
"line_number": 9,
"is_secret": false
}
],
@@ -563,7 +555,7 @@
"filename": "tests/app/main/views/test_register.py",
"hashed_secret": "5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8",
"is_verified": false,
"line_number": 201,
"line_number": 199,
"is_secret": false
},
{
@@ -571,7 +563,7 @@
"filename": "tests/app/main/views/test_register.py",
"hashed_secret": "bb5b7caa27d005d38039e3797c3ddb9bcd22c3c8",
"is_verified": false,
"line_number": 274,
"line_number": 272,
"is_secret": false
}
],
@@ -601,7 +593,7 @@
"filename": "tests/app/main/views/test_user_profile.py",
"hashed_secret": "8072d7aad32964ec43fbcb699c75dc38890792f7",
"is_verified": false,
"line_number": 350,
"line_number": 336,
"is_secret": false
},
{
@@ -609,7 +601,7 @@
"filename": "tests/app/main/views/test_user_profile.py",
"hashed_secret": "4c9dbb972da179e4f66f023eaa5fb9451d835030",
"is_verified": false,
"line_number": 351,
"line_number": 337,
"is_secret": false
}
],
@@ -692,5 +684,5 @@
}
]
},
"generated_at": "2024-08-15T16:29:15Z"
"generated_at": "2025-01-16T16:38:48Z"
}

View File

@@ -37,7 +37,7 @@ body:
- type: textarea
id: acceptanceCriteria
attributes:
label: "Detailed condition or criteria that must be met for the user story to be considered complete."
label: "Detailed condition or criteria that must be met for the user story to be considered complete. This includes basic a11y checks around screen readers and keyboard testing."
description: "List the acceptance criteria for the user story."
validations:
required: true
@@ -48,7 +48,7 @@ body:
- type: textarea
id: tasks
attributes:
label: "List of specific tasks or sub-tasks that need to be done to implement the user story."
label: "List of specific tasks or sub-tasks that need to be done to implement the user story. This includes a11y standards."
description: "Outline the tasks necessary to implement the user story."
validations:
required: true
@@ -59,7 +59,7 @@ body:
- type: textarea
id: dependencies
attributes:
label: "List any dependencies that need to be resolved before starting or completing this user story."
label: "List any dependencies that need to be resolved before starting or completing this user story. This includes screenreaders and keyboard testing passing."
description: "Specify any dependencies related to the user story."
validations:
required: false

View File

@@ -1,6 +1,9 @@
name: Deploy egress proxy
description: Set egress space security groups and deploy proxy
inputs:
cf_org:
description: The org the target app exists in.
required: true
cf_space:
description: The space the target app exists in.
required: true
@@ -16,6 +19,19 @@ inputs:
runs:
using: composite
steps:
- name: Install cf-cli
shell: bash
run: |
curl -A "cg-deploy-action" -v -L -o cf-cli_amd64.deb 'https://packages.cloudfoundry.org/stable?release=debian64&version=v8&source=github'
sudo dpkg -i cf-cli_amd64.deb
- name: Login to cf-cli
shell: bash
run: |
cf api api.fr.cloud.gov
cf auth
- name: Target org and space
shell: bash
run: cf target -o ${{ inputs.cf_org }} -s ${{ inputs.cf_space }}
- name: Set restricted space egress
shell: bash
run: ./terraform/set_space_egress.sh -t -s ${{ inputs.cf_space }}

View File

@@ -15,7 +15,7 @@ runs:
python-version: "3.12.3"
- name: Install poetry
shell: bash
run: pip install poetry
run: pip install poetry==1.8.5
- name: Install application dependencies
shell: bash
run: make bootstrap

View File

@@ -9,8 +9,16 @@ updates:
directory: "/" # Location of package manifests
schedule:
interval: "daily"
assignees:
- "A-Shumway42"
reviewers:
- "A-Shumway42"
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "daily"
versioning-strategy: increase
assignees:
- "alexjanousekGSA"
reviewers:
- "alexjanousekGSA"

View File

@@ -20,3 +20,8 @@ Please enter a detailed description here.
* Consideration 1
* Consideration 2
* Consideration ...
## A11y Checks (if applicable)
* Conduct automated tests through [AxeDevTools](https://www.deque.com/axe/devtools/) and [WAVE](https://wave.webaim.org/)
* Review the [Manual Checklist](https://docs.google.com/document/d/192bBXStebdXWtYhZQ73qaWMJhGcuSB1W6c9YBXhWZvc/edit?usp=sharing)

View File

@@ -53,11 +53,13 @@ jobs:
end-to-end-tests:
if: ${{ github.actor != 'dependabot[bot]' }}
permissions:
checks: write
pull-requests: write
contents: write
runs-on: ubuntu-latest
environment: staging
services:
postgres:
image: postgres
@@ -89,65 +91,33 @@ jobs:
- uses: ./.github/actions/setup-project
- uses: jwalton/gh-find-current-pr@v1
id: findPr
- name: Clone API
uses: actions/checkout@v4
with:
repository: GSA/notifications-api
path: "notifications-api"
- name: Install API dependencies
working-directory: "notifications-api"
run: make bootstrap
env:
DATABASE_URL: postgresql://user:password@localhost:5432/test_notification_api
SQLALCHEMY_DATABASE_TEST_URI: postgresql://user:password@localhost:5432/test_notification_api
REDIS_URL: redis://localhost:6379
NOTIFY_E2E_TEST_EMAIL: ${{ secrets.NOTIFY_E2E_TEST_EMAIL }}
NOTIFY_E2E_TEST_PASSWORD: ${{ secrets.NOTIFY_E2E_TEST_PASSWORD }}
NOTIFY_ENVIRONMENT: development
- name: Run API server
working-directory: "notifications-api"
run: make run-procfile &
env:
DATABASE_URL: postgresql://user:password@localhost:5432/test_notification_api
SQLALCHEMY_DATABASE_TEST_URI: postgresql://user:password@localhost:5432/test_notification_api
REDIS_URL: redis://localhost:6379
NOTIFY_E2E_TEST_EMAIL: ${{ secrets.NOTIFY_E2E_TEST_EMAIL }}
NOTIFY_E2E_TEST_PASSWORD: ${{ secrets.NOTIFY_E2E_TEST_PASSWORD }}
NOTIFY_ENVIRONMENT: development
- name: Check API Server availability
run: |
curl --fail -v https://notify-api-staging.app.cloud.gov || exit 1
- name: Run Admin server
run: make run-flask &
# If we want to log stuff and see what's broken,
# insert this line:
# tail -f admin-server.log &
# above make e2e-test
run: |
make run-flask > admin-server.log 2>&1 &
tail -f admin-server.log &
make e2e-test
env:
# API_HOST_NAME: https://notify-api-staging.app.cloud.gov
API_HOST_NAME: http://localhost:6011
DANGEROUS_SALT: ${{ secrets.DANGEROUS_SALT }}
API_HOST_NAME: https://notify-api-staging.app.cloud.gov/
SECRET_KEY: ${{ secrets.SECRET_KEY }}
DANGEROUS_SALT: ${{ secrets.DANGEROUS_SALT }}
ADMIN_CLIENT_SECRET: ${{ secrets.ADMIN_CLIENT_SECRET }}
ADMIN_CLIENT_USERNAME: notify-admin
NOTIFY_ENVIRONMENT: e2etest
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: http://localhost:6012
- name: Run E2E tests
# Run the E2E tests against the code found in this PR.
# run: poetry run pytest -v --browser chromium --browser firefox --browser webkit tests/end_to_end
# --browser webkit doesn't work at this time.
run: make e2e-test
# Debugging for now to troubleshoot a connectivity issue to the local servers
# run: curl --request GET --url "http://localhost:6012"
env:
API_HOST_NAME: http://localhost:6011
DANGEROUS_SALT: ${{ secrets.DANGEROUS_SALT }}
SECRET_KEY: ${{ secrets.SECRET_KEY }}
ADMIN_CLIENT_SECRET: ${{ secrets.ADMIN_CLIENT_SECRET }}
ADMIN_CLIENT_USERNAME: notify-admin
NOTIFY_ENVIRONMENT: e2etest
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: http://localhost:6012
NOTIFY_E2E_TEST_URI: http://localhost:6012/
VCAP_SERVICES: ${{ secrets.VCAP_SERVICES }}
validate-new-relic-config:
runs-on: ubuntu-latest
environment: staging
@@ -174,6 +144,7 @@ jobs:
inputs: requirements.txt
ignore-vulns: |
PYSEC-2024-60
PYSEC-2022-43162
- name: Run npm audit
run: make npm-audit

View File

@@ -47,11 +47,12 @@ jobs:
run: poetry export --without-hashes --format=requirements.txt > requirements.txt
- name: Deploy to cloud.gov
uses: 18f/cg-deploy-action@main
uses: cloud-gov/cg-cli-tools@main
env:
DANGEROUS_SALT: ${{ secrets.DANGEROUS_SALT }}
SECRET_KEY: ${{ secrets.SECRET_KEY }}
ADMIN_CLIENT_SECRET: ${{ secrets.ADMIN_CLIENT_SECRET }}
ADMIN_CLIENT_USERNAME: "notify-admin"
NEW_RELIC_LICENSE_KEY: ${{ secrets.NEW_RELIC_LICENSE_KEY }}
NR_BROWSER_KEY: ${{ secrets.NR_BROWSER_KEY }}
COMMIT_HASH: ${{ github.sha }}
@@ -63,21 +64,22 @@ jobs:
LOGIN_DOT_GOV_BASE_LOGOUT_URL: "https://secure.login.gov/openid_connect/logout?"
LOGIN_DOT_GOV_SIGNOUT_REDIRECT: "https://notify-demo.app.cloud.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=NONCE&prompt=select_account&redirect_uri=https://notify-demo.app.cloud.gov/sign-in&response_type=code&scope=openid+email&state=STATE"
LOGIN_DOT_GOV_CERTS_URL: "https://secure.login.gov/api/openid_connect/certs"
with:
cf_username: ${{ secrets.CLOUDGOV_USERNAME }}
cf_password: ${{ secrets.CLOUDGOV_PASSWORD }}
cf_org: gsa-tts-benefits-studio
cf_space: notify-demo
push_arguments: >-
cf_command: >-
push -f manifest.yml
--vars-file deploy-config/demo.yml
--var DANGEROUS_SALT="$DANGEROUS_SALT"
--var SECRET_KEY="$SECRET_KEY"
--var ADMIN_CLIENT_USERNAME="notify-admin"
--var ADMIN_CLIENT_SECRET="$ADMIN_CLIENT_SECRET"
--var ADMIN_CLIENT_USERNAME="$ADMIN_CLIENT_USERNAME"
--var NEW_RELIC_LICENSE_KEY="$NEW_RELIC_LICENSE_KEY"
--var NR_BROWSER_KEY="$NR_BROWSER_KEY"
--var COMMIT_HASH="$COMMIT_HASH"
--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"
@@ -85,6 +87,9 @@ jobs:
--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"
--var LOGIN_DOT_GOV_CERTS_URL="$LOGIN_DOT_GOV_CERTS_URL"
--var LOGIN_PEM="$LOGIN_PEM"
--strategy rolling
- name: Check for changes to egress config
id: changed-egress-config
@@ -97,6 +102,10 @@ jobs:
- name: Deploy egress proxy
if: steps.changed-egress-config.outputs.any_changed == 'true'
uses: ./.github/actions/deploy-proxy
env:
CF_USERNAME: ${{ secrets.CLOUDGOV_USERNAME }}
CF_PASSWORD: ${{ secrets.CLOUDGOV_PASSWORD }}
with:
cf_org: gsa-tts-benefits-studio
cf_space: notify-demo
app: notify-admin-demo

View File

@@ -47,11 +47,12 @@ jobs:
run: poetry export --without-hashes --format=requirements.txt > requirements.txt
- name: Deploy to cloud.gov
uses: 18f/cg-deploy-action@main
uses: cloud-gov/cg-cli-tools@main
env:
DANGEROUS_SALT: ${{ secrets.DANGEROUS_SALT }}
SECRET_KEY: ${{ secrets.SECRET_KEY }}
ADMIN_CLIENT_SECRET: ${{ secrets.ADMIN_CLIENT_SECRET }}
ADMIN_CLIENT_USERNAME: "notify-admin"
NEW_RELIC_LICENSE_KEY: ${{ secrets.NEW_RELIC_LICENSE_KEY }}
NR_BROWSER_KEY: ${{ secrets.NR_BROWSER_KEY }}
COMMIT_HASH: ${{ github.sha }}
@@ -63,21 +64,22 @@ jobs:
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=NONCE&prompt=select_account&redirect_uri=https://beta.notify.gov/sign-in&response_type=code&scope=openid+email&state=STATE"
LOGIN_DOT_GOV_CERTS_URL: "https://secure.login.gov/api/openid_connect/certs"
with:
cf_username: ${{ secrets.CLOUDGOV_USERNAME }}
cf_password: ${{ secrets.CLOUDGOV_PASSWORD }}
cf_org: gsa-tts-benefits-studio
cf_space: notify-production
push_arguments: >-
cf_command: >-
push -f manifest.yml
--vars-file deploy-config/production.yml
--var DANGEROUS_SALT="$DANGEROUS_SALT"
--var SECRET_KEY="$SECRET_KEY"
--var ADMIN_CLIENT_USERNAME="notify-admin"
--var ADMIN_CLIENT_SECRET="$ADMIN_CLIENT_SECRET"
--var ADMIN_CLIENT_USERNAME="$ADMIN_CLIENT_USERNAME"
--var NEW_RELIC_LICENSE_KEY="$NEW_RELIC_LICENSE_KEY"
--var NR_BROWSER_KEY="$NR_BROWSER_KEY"
--var COMMIT_HASH="$COMMIT_HASH"
--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"
@@ -85,6 +87,9 @@ jobs:
--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"
--var LOGIN_DOT_GOV_CERTS_URL="$LOGIN_DOT_GOV_CERTS_URL"
--var LOGIN_PEM="$LOGIN_PEM"
--strategy rolling
- name: Check for changes to egress config
id: changed-egress-config
@@ -97,6 +102,10 @@ jobs:
- name: Deploy egress proxy
if: steps.changed-egress-config.outputs.any_changed == 'true'
uses: ./.github/actions/deploy-proxy
env:
CF_USERNAME: ${{ secrets.CLOUDGOV_USERNAME }}
CF_PASSWORD: ${{ secrets.CLOUDGOV_PASSWORD }}
with:
cf_org: gsa-tts-benefits-studio
cf_space: notify-production
app: notify-admin-production

View File

@@ -53,11 +53,12 @@ jobs:
- name: Deploy to cloud.gov
uses: 18f/cg-deploy-action@main
uses: cloud-gov/cg-cli-tools@main
env:
DANGEROUS_SALT: ${{ secrets.DANGEROUS_SALT }}
SECRET_KEY: ${{ secrets.SECRET_KEY }}
ADMIN_CLIENT_SECRET: ${{ secrets.ADMIN_CLIENT_SECRET }}
ADMIN_CLIENT_USERNAME: "notify-admin"
NEW_RELIC_LICENSE_KEY: ${{ secrets.NEW_RELIC_LICENSE_KEY }}
NR_BROWSER_KEY: ${{ secrets.NR_BROWSER_KEY }}
COMMIT_HASH: ${{ github.sha }}
@@ -68,22 +69,23 @@ jobs:
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://notify-staging.app.cloud.gov/sign-out"
LOGIN_DOT_GOV_BASE_LOGOUT_URL: "https://secure.login.gov/openid_connect/logout?"
LOGIN_DOT_GOV_SIGNOUT_REDIRECT: "https://notify-staging.app.cloud.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=NONCE&prompt=select_account&redirect_uri=https://notify-staging.app.cloud.gov/sign-in&response_type=code&scope=openid+email&state=STATEE"
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=NONCE&prompt=select_account&redirect_uri=https://notify-staging.app.cloud.gov/sign-in&response_type=code&scope=openid+email&state=STATE"
LOGIN_DOT_GOV_CERTS_URL: "https://secure.login.gov/api/openid_connect/certs"
with:
cf_username: ${{ secrets.CLOUDGOV_USERNAME }}
cf_password: ${{ secrets.CLOUDGOV_PASSWORD }}
cf_org: gsa-tts-benefits-studio
cf_space: notify-staging
push_arguments: >-
cf_command: >-
push -f manifest.yml
--vars-file deploy-config/staging.yml
--var DANGEROUS_SALT="$DANGEROUS_SALT"
--var SECRET_KEY="$SECRET_KEY"
--var ADMIN_CLIENT_USERNAME="notify-admin"
--var ADMIN_CLIENT_SECRET="$ADMIN_CLIENT_SECRET"
--var ADMIN_CLIENT_USERNAME="$ADMIN_CLIENT_USERNAME"
--var NEW_RELIC_LICENSE_KEY="$NEW_RELIC_LICENSE_KEY"
--var NR_BROWSER_KEY="$NR_BROWSER_KEY"
--var COMMIT_HASH="$COMMIT_HASH"
--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"
@@ -91,6 +93,9 @@ jobs:
--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"
--var LOGIN_DOT_GOV_CERTS_URL="$LOGIN_DOT_GOV_CERTS_URL"
--var LOGIN_PEM="$LOGIN_PEM"
--strategy rolling
- name: Check for changes to egress config
@@ -104,7 +109,11 @@ jobs:
- name: Deploy egress proxy
if: steps.changed-egress-config.outputs.any_changed == 'true'
uses: ./.github/actions/deploy-proxy
env:
CF_USERNAME: ${{ secrets.CLOUDGOV_USERNAME }}
CF_PASSWORD: ${{ secrets.CLOUDGOV_PASSWORD }}
with:
cf_org: gsa-tts-benefits-studio
cf_space: notify-staging
app: notify-admin-staging

6
.gitignore vendored
View File

@@ -14,6 +14,7 @@
*.XLSX
## Non user files allowed to be commited
!app/assets/pdf/tcpa_overview.pdf
!tests/test_pdf_files/no_eof_marker.pdf
!tests/test_pdf_files/multi_page_pdf.pdf
!tests/test_pdf_files/big.pdf
@@ -134,3 +135,8 @@ playwright/
# Nodenv
.node-version
# BackstopJS
backstop_data/bitmaps_test/
backstop_data/html_report/
backstop_data/engine_scripts/playwright/

3
.prettierrc Normal file
View File

@@ -0,0 +1,3 @@
{
"singleQuote": true
}

View File

@@ -15,7 +15,6 @@ 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
poetry self update
poetry self add poetry-dotenv-plugin
poetry lock --no-update
poetry install --sync --no-root
@@ -88,7 +87,7 @@ dead-code: ## 60% is our aspirational goal, but currently breaks the build
.PHONY: e2e-test
e2e-test: export NEW_RELIC_ENVIRONMENT=test
e2e-test: ## Run end-to-end integration tests; note that --browser webkit isn't currently working
poetry run pytest -vv --browser chromium --browser firefox tests/end_to_end
DEBUG=pw:api,pw:browser poetry run pytest -vv --browser chromium --browser firefox tests/end_to_end
.PHONY: js-lint
js-lint: ## Run javascript linting scanners

View File

@@ -372,15 +372,9 @@ After you have completed all setup steps, you will be unable to log in, because
will not be a user in the database to link to the login.gov account you are using. So
you will need to create that user in your database using the 'create-test-user' command.
Open two terminals pointing to the api project and then run these commands in the
respective terminals.
Open a terminal pointing to the api project and then run this command.
(Server 1)
env ALLOW_EXPIRED_API_TOKEN=1 make run-flask
(Server 2)
poetry run flask command create-admin-jwt | tail -n 1 | pbcopy
poetry run flask command create-test-user --admin=True;
```poetry run flask command create-test-user --admin=True```
Supply your name, email address, mobile number, and password when prompted. Make sure the email address
is the same one you are using in login.gov and make sure your phone number is in the format 5555555555.
@@ -507,3 +501,13 @@ 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)
## Updating secrets for the E2E tests
At some point, E2E tests will fail because the secrets held in VCAP_SERVICES have expired. To refresh
them, you will need to do the following:
1. Log in the normal way to access cloudfoundry command line options
2. In your terminal, run `chmod +x print_vcap.sh`
3. In your terminal, run `./print_vcap.sh`
4. Copy the value in your terminal and paste it into the VCAP_SERVICES secret in Github on the staging tier.

View File

@@ -0,0 +1,2 @@
Contact: mailto:notify-support@gsa.gov
Expires: 2035-10-15T23:59:59Z

View File

@@ -1,8 +1,9 @@
import os
import pathlib
import secrets
from functools import partial
from time import monotonic
from urllib.parse import urlparse, urlunparse
from urllib.parse import unquote, urlparse, urlunparse
import jinja2
from flask import (
@@ -114,6 +115,7 @@ from notifications_utils.formatters import (
get_lines_with_normalised_whitespace,
)
from notifications_utils.recipients import format_phone_number_human_readable
from notifications_utils.url_safe_token import generate_token
login_manager = LoginManager()
csrf = CSRFProtect()
@@ -139,6 +141,10 @@ def _csp(config):
logo_domain = config["LOGO_CDN_DOMAIN"]
return {
"default-src": ["'self'", asset_domain],
"frame-src": [
"https://www.youtube.com",
"https://www.youtube-nocookie.com",
],
"frame-ancestors": "'none'",
"form-action": "'self'",
"script-src": [
@@ -162,6 +168,41 @@ def _csp(config):
def create_app(application):
@application.context_processor
def inject_feature_flags():
feature_about_page_enabled = application.config.get(
"FEATURE_ABOUT_PAGE_ENABLED", False
)
return dict(
FEATURE_ABOUT_PAGE_ENABLED=feature_about_page_enabled,
)
@application.context_processor
def inject_initial_signin_url():
ttl = 24 * 60 * 60
# make and store the state
state = generate_token(
str(request.remote_addr),
current_app.config["SECRET_KEY"],
current_app.config["DANGEROUS_SALT"],
)
state_key = f"login-state-{unquote(state)}"
redis_client.set(state_key, state, ex=ttl)
# make and store the nonce
nonce = secrets.token_urlsafe()
nonce_key = f"login-nonce-{unquote(nonce)}"
redis_client.set(nonce_key, nonce, ex=ttl)
url = os.getenv("LOGIN_DOT_GOV_INITIAL_SIGNIN_URL")
if url is not None:
url = url.replace("NONCE", nonce)
url = url.replace("STATE", state)
return {"initial_signin_url": url}
notify_environment = os.environ["NOTIFY_ENVIRONMENT"]
application.config.from_object(configs[notify_environment])

View File

@@ -17,7 +17,7 @@
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="manifest" href="{{ asset_url('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" />
@@ -68,11 +68,8 @@
<p class="usa-body">
Try again later.
</p>
<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>
<p>To report a problem you can email us at <a class="usa-link" href="mailto:notify-support@gsa.gov">notify-support@gsa.gov</a>.</p>
<p>You can expect a response within one business day.</p>
</div>
</div>
</main>

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.2 KiB

View File

@@ -0,0 +1 @@
<svg id="Capa_1" enable-background="new 0 0 512 512" height="512" viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg"><g><g><g><path d="m377.64 347.666c-4.473 0-8.1 3.626-8.1 8.099s3.626 8.1 8.1 8.1c4.473 0 8.099-3.626 8.099-8.1s-3.626-8.099-8.099-8.099z"/><path d="m377.716 334.615c4.149 0 7.511-3.363 7.511-7.511v-67.172c0-4.148-3.362-7.511-7.511-7.511-4.148 0-7.511 3.363-7.511 7.511v67.172c0 4.148 3.362 7.511 7.511 7.511z"/><path d="m377.64 219.085c-7.974 0-15.716 1.011-23.105 2.912v-14.937c0-59.921-37.644-111.208-90.522-131.476 2.741-6.491 4.267-13.614 4.267-21.092 0-30.047-24.445-54.492-54.492-54.492s-54.491 24.445-54.491 54.491c0 7.469 1.522 14.586 4.256 21.071-16.063 6.135-30.994 15.219-44.006 26.957-3.081 2.778-3.325 7.528-.547 10.608 2.781 3.081 7.53 3.324 10.608.546 23.118-20.854 53.014-32.339 84.18-32.339 69.324 0 125.725 56.4 125.725 125.725v20.222c-32.217 14.573-54.688 47.021-54.688 84.618 0 11.997 2.288 23.47 6.45 34.005h-203.212v-138.845c0-24.475 7.036-48.196 20.346-68.599 2.267-3.474 1.288-8.128-2.187-10.394-3.474-2.266-8.129-1.288-10.394 2.186-14.907 22.851-22.787 49.41-22.787 76.807v143.829l-28.543 37.616c-1.903 2.506-2.952 5.62-2.952 8.768v27.183c0 7.996 6.505 14.501 14.501 14.501h94.92c-.468 3.102-.719 6.274-.719 9.504 0 35.036 28.504 63.541 63.541 63.541 35.036 0 63.541-28.504 63.541-63.541 0-3.232-.263-6.402-.735-9.504h29.487c4.149 0 7.511-3.363 7.511-7.511s-3.362-7.511-7.511-7.511h-249.514v-26.486l27.713-36.521h214.585c15.307 24.506 41.72 41.39 72.142 43.548v19.459h-29.946c-4.148 0-7.511 3.363-7.511 7.511s3.362 7.511 7.511 7.511h30.467c7.996 0 14.5-6.505 14.5-14.501v-20.125c47.261-4.255 84.425-44.082 84.425-92.431 0-51.178-41.636-92.814-92.814-92.814zm-127.992-148.137c-11.454-3.02-23.471-4.636-35.86-4.636-12.217 0-24.259 1.583-35.863 4.634-2.311-5.012-3.607-10.584-3.607-16.455 0-21.764 17.706-39.469 39.469-39.469s39.469 17.706 39.469 39.469c.002 5.873-1.295 11.445-3.608 16.457zm-83.427 368.007h95.144c.616 3.074.942 6.251.942 9.504 0 26.753-21.765 48.519-48.519 48.519s-48.519-21.766-48.519-48.519c.001-3.254.335-6.429.952-9.504zm211.419-49.263c-42.895 0-77.793-34.898-77.793-77.793s34.897-77.793 77.793-77.793 77.793 34.898 77.793 77.793c-.001 42.895-34.898 77.793-77.793 77.793z"/></g></g></g></svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 26 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.0 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.2 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 8.3 KiB

View File

@@ -0,0 +1,17 @@
<svg width="48" height="49" viewBox="0 0 48 49" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_6378_116)">
<path d="M13.3517 3.77441H4.3344C3.40346 3.80666 3.40421 5.14865 4.3344 5.18053H13.3516C14.2826 5.14828 14.2819 3.80629 13.3517 3.77441Z" fill="black"/>
<path d="M15.8219 10.6309H5.94759C4.67037 10.6309 3.63135 11.6699 3.63135 12.9471V13.9669C3.63135 15.2441 4.67037 16.2832 5.94759 16.2832H15.8219C17.0991 16.2832 18.1381 15.2441 18.1381 13.9669V12.9471C18.1381 11.67 17.0991 10.6309 15.8219 10.6309ZM16.732 13.9669C16.732 14.4688 16.3238 14.877 15.8219 14.877H5.94759C5.4457 14.877 5.03746 14.4688 5.03746 13.9669V12.9471C5.03746 12.4452 5.4457 12.037 5.94759 12.037H15.8219C16.3238 12.037 16.732 12.4452 16.732 12.9471V13.9669Z" fill="black"/>
<path d="M10.2759 20.161V23.0556C10.2759 24.3328 11.3149 25.3718 12.5921 25.3718H22.4664C23.7436 25.3718 24.7826 24.3328 24.7826 23.0556V20.161C24.7826 18.8838 23.7436 17.8447 22.4664 17.8447H12.5921C11.3149 17.8446 10.2759 18.8838 10.2759 20.161ZM23.3765 20.161V23.0556C23.3765 23.5575 22.9683 23.9657 22.4664 23.9657H12.5921C12.0902 23.9657 11.682 23.5575 11.682 23.0556V20.161C11.682 19.6591 12.0902 19.2508 12.5921 19.2508H22.4664C22.9683 19.2507 23.3765 19.6591 23.3765 20.161Z" fill="black"/>
<path d="M3.63135 32.1435C3.63135 33.4207 4.67037 34.4597 5.94759 34.4597H15.8219C17.0991 34.4597 18.1381 33.4207 18.1381 32.1435V29.2489C18.1381 27.9716 17.0991 26.9326 15.8219 26.9326H5.94759C4.67037 26.9326 3.63135 27.9716 3.63135 29.2489V32.1435ZM5.03746 29.2489C5.03746 28.747 5.4457 28.3387 5.94759 28.3387H15.8219C16.3238 28.3387 16.732 28.747 16.732 29.2489V32.1435C16.732 32.6454 16.3238 33.0536 15.8219 33.0536H5.94759C5.4457 33.0536 5.03746 32.6454 5.03746 32.1435V29.2489Z" fill="black"/>
<path d="M38.1102 19.9331C33.5406 19.9331 29.6852 23.0494 28.5583 27.2682V3.4397C28.5583 1.81976 27.2404 0.501953 25.6205 0.501953H2.93784C1.3179 0.501953 0 1.81986 0 3.4397V20.0432C0 20.4314 0.314688 20.7462 0.703056 20.7462C1.09142 20.7462 1.40611 20.4314 1.40611 20.0432V8.45258H27.1521V28.8182C23.2126 29.346 20.0003 32.203 18.9507 35.9537H5.77819C4.52478 35.9537 3.50497 36.9735 3.50497 38.227C3.50497 39.4805 4.52478 40.5002 5.77819 40.5002H18.7678C18.9094 41.2299 19.1315 41.9311 19.4245 42.5943H2.93784C2.09323 42.5943 1.40611 41.9072 1.40611 41.0626V23.6671C1.40611 23.2788 1.09142 22.964 0.703056 22.964C0.314688 22.964 0 23.2788 0 23.6671V41.0626C0 42.6825 1.3179 44.0004 2.93784 44.0004H20.1877C22.6379 47.9355 28.1585 49.6822 32.5122 47.6362L34.4133 48.4393C34.9706 48.5729 35.2962 48.357 35.39 47.7917V45.6731C37.0359 44.0629 38.0518 41.9709 38.2985 39.6981C39.9145 39.6673 41.5059 39.2395 42.9126 38.4563C43.7068 38.0141 43.0228 36.7855 42.2286 37.2278C39.8606 38.5633 36.8283 38.6501 34.3934 37.4377C34.2107 37.3484 33.9984 37.3426 33.8112 37.4218L32.5984 37.9342V36.5738C32.5984 36.3771 32.516 36.1895 32.3712 36.0564C26.7203 30.87 30.4316 21.3351 38.1102 21.3392C45.1057 21.3061 49.1324 29.5318 44.8031 35.021C44.2444 35.738 45.3535 36.6024 45.9122 35.8853C50.961 29.4838 46.2654 19.8946 38.1102 19.9331ZM1.40611 7.04647V3.4397C1.40611 2.59509 2.09323 1.90807 2.93784 1.90807H25.6205C26.4651 1.90807 27.1522 2.59519 27.1522 3.4397V7.04647H1.40611ZM5.77819 39.0941C4.62902 39.0477 4.6277 37.4068 5.77819 37.3598H18.6662C18.5935 37.9316 18.5709 38.5182 18.5987 39.0941H5.77819ZM31.1924 36.8756V38.9945C31.2862 39.5598 31.6118 39.7757 32.169 39.6421L34.0701 38.839C34.9717 39.2439 35.9161 39.5072 36.8914 39.6264C36.6543 41.6316 35.7171 43.4683 34.211 44.8537C34.0663 44.9869 33.9839 45.1745 33.9839 45.3712V46.7316L32.7711 46.2192C32.5838 46.1401 32.3715 46.1458 32.1888 46.2351C26.6793 49.009 19.9179 44.7879 19.9931 38.6138C19.993 34.0203 23.6664 30.2683 28.2304 30.14C28.3143 32.6748 29.3798 35.0983 31.1924 36.8756Z" fill="black"/>
<path d="M40.2727 27.1796C41.2036 27.1473 41.2028 25.8053 40.2727 25.7734H35.9479C35.017 25.8057 35.0177 27.1477 35.9479 27.1796H40.2727Z" fill="black"/>
<path d="M42.9383 29.1133H33.2819C32.351 29.1455 32.3517 30.4875 33.2819 30.5194H42.9383C43.8692 30.4871 43.8685 29.1452 42.9383 29.1133Z" fill="black"/>
<path d="M35.9479 32.4531C35.017 32.4854 35.0177 33.8274 35.9479 33.8592H40.2727C41.2036 33.827 41.2028 32.485 40.2727 32.4531H35.9479Z" fill="black"/>
</g>
<defs>
<clipPath id="clip0_6378_116">
<rect width="48" height="48" fill="white" transform="translate(0 0.5)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

@@ -0,0 +1,22 @@
<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_6311_9508)">
<path d="M126.125 15.0417C127.161 15.0417 128 14.2022 128 13.1667V6.11825C128 2.74475 125.255 0 121.882 0H79.0155C75.6418 0 72.897 2.74475 72.897 6.11825V32.04C72.897 32.1707 72.8253 32.2905 72.71 32.3522L66.7345 35.552C65.5993 36.16 64.8943 37.3375 64.8943 38.625C64.8943 39.9125 65.5993 41.09 66.7345 41.698L72.71 44.8975C72.8255 44.9595 72.8973 45.079 72.8973 45.21V60.1317C72.8973 63.5055 75.642 66.25 79.0158 66.25H121.882C125.255 66.25 128 63.5052 128 60.1317V21.8333C128 20.7978 127.161 19.9583 126.125 19.9583C125.09 19.9583 124.25 20.7978 124.25 21.8333V60.1315C124.25 61.4375 123.188 62.4997 121.882 62.4997H79.0155C77.7095 62.4997 76.647 61.4373 76.647 60.1315V45.21C76.647 43.694 75.8168 42.3075 74.4803 41.5918L68.9398 38.625L74.4805 35.658C75.817 34.9422 76.6473 33.556 76.6473 32.04V6.11825C76.6473 4.81225 77.7098 3.75 79.0158 3.75H121.882C123.188 3.75 124.25 4.8125 124.25 6.11825V13.1665C124.25 14.2023 125.09 15.0417 126.125 15.0417Z" fill="black"/>
<path d="M45 49.6535V46.1367C47.5645 45.614 49.5 43.3415 49.5 40.625C49.5 37.5233 46.9767 35 43.875 35H34.875C31.7733 35 29.25 37.5233 29.25 40.625C29.25 43.3415 31.1855 45.6142 33.75 46.1367V49.6535C14.6938 52.3915 0 68.8232 0 88.625C0 100.683 5.4325 111.92 14.9047 119.453C15.7153 120.098 16.8947 119.964 17.5392 119.153C18.184 118.342 18.0495 117.163 17.239 116.519C8.6665 109.701 3.75 99.5338 3.75 88.625C3.75 68.9813 19.7313 53 39.375 53C59.0187 53 75 68.9813 75 88.625C75 108.269 59.0187 124.25 39.375 124.25C34.1278 124.25 29.0715 123.131 24.3463 120.923C23.408 120.485 22.2922 120.89 21.8538 121.828C21.4153 122.766 21.8205 123.882 22.7588 124.32C27.9848 126.762 33.5752 128 39.375 128C61.0865 128 78.75 110.337 78.75 88.625C78.75 68.8232 64.0563 52.3915 45 49.6535ZM33 40.625C33 39.591 33.841 38.75 34.875 38.75H43.875C44.909 38.75 45.75 39.591 45.75 40.625C45.75 41.659 44.909 42.5 43.875 42.5H34.875C33.841 42.5 33 41.659 33 40.625ZM37.5 49.2957V46.25H41.25V49.2957C40.6285 49.2665 40.0037 49.25 39.375 49.25C38.7463 49.25 38.1215 49.2665 37.5 49.2957Z" fill="black"/>
<path d="M71.25 88.625C71.25 71.049 56.951 56.75 39.375 56.75C21.799 56.75 7.5 71.049 7.5 88.625C7.5 106.201 21.799 120.5 39.375 120.5C56.951 120.5 71.25 106.201 71.25 88.625ZM11.25 88.625C11.25 73.1167 23.8667 60.5 39.375 60.5C54.8833 60.5 67.5 73.1167 67.5 88.625C67.5 104.133 54.8833 116.75 39.375 116.75C23.8667 116.75 11.25 104.133 11.25 88.625Z" fill="black"/>
<path d="M114.771 35.4187C116.496 33.7365 117.106 31.268 116.361 28.9762C115.616 26.6845 113.672 25.0457 111.288 24.6992L108.759 24.3317C108.149 24.243 107.622 23.86 107.349 23.3072L106.219 21.0152C105.152 18.8542 102.993 17.5117 100.583 17.5117C98.1738 17.5117 96.0145 18.8542 94.9483 21.015L93.8175 23.3067C93.5448 23.8597 93.0175 24.243 92.4073 24.3317L89.879 24.6992C87.4945 25.0457 85.5508 26.6845 84.806 28.9762C84.0613 31.268 84.6705 33.7365 86.3958 35.4187L88.226 37.2032C88.6678 37.634 88.869 38.254 88.7648 38.862L88.3325 41.3825C87.9253 43.7575 88.8835 46.1122 90.8328 47.5285C91.9343 48.3287 93.2228 48.7352 94.52 48.7352C95.519 48.7352 96.523 48.4942 97.4508 48.0062L99.7123 46.817C100.258 46.5302 100.909 46.53 101.455 46.817L103.715 48.0055C105.848 49.1267 108.384 48.944 110.334 47.5277C112.284 46.1115 113.242 43.7562 112.834 41.381L112.402 38.862C112.298 38.254 112.5 37.634 112.941 37.2035L114.771 35.4187ZM112.153 32.7337L110.323 34.5182C108.998 35.8105 108.393 37.6715 108.706 39.4957L109.138 42.0147C109.305 42.9872 108.928 43.914 108.13 44.4937C107.332 45.0737 106.334 45.1457 105.46 44.6865L103.2 43.498C101.562 42.6365 99.6053 42.6367 97.9668 43.498L95.7053 44.6872C94.8323 45.1462 93.8348 45.0742 93.0368 44.4945C92.2388 43.9147 91.862 42.9885 92.0285 42.0162L92.4608 39.496C92.7738 37.6715 92.1693 35.8107 90.8438 34.5182L89.0135 32.7337C88.307 32.045 88.0673 31.0737 88.3723 30.1352C88.6773 29.197 89.442 28.5522 90.4183 28.4102L92.9465 28.0427C94.7785 27.7765 96.3613 26.6262 97.1803 24.9662L98.311 22.6745C98.7475 21.79 99.5968 21.262 100.583 21.262C101.57 21.262 102.419 21.79 102.855 22.6745L103.986 24.9665C104.805 26.6265 106.388 27.7765 108.22 28.0427L110.748 28.4102C111.725 28.5522 112.489 29.197 112.794 30.1352C113.099 31.0735 112.86 32.045 112.153 32.7337Z" fill="black"/>
<path d="M39.375 69.328C40.4105 69.328 41.25 68.4885 41.25 67.453V66.625C41.25 65.5895 40.4105 64.75 39.375 64.75C38.3395 64.75 37.5 65.5895 37.5 66.625V67.453C37.5 68.4885 38.3395 69.328 39.375 69.328Z" fill="black"/>
<path d="M41.25 110.625V109.797C41.25 108.761 40.4105 107.922 39.375 107.922C38.3395 107.922 37.5 108.761 37.5 109.797V110.625C37.5 111.66 38.3395 112.5 39.375 112.5C40.4105 112.5 41.25 111.66 41.25 110.625Z" fill="black"/>
<path d="M55.6717 74.9795L56.2572 74.394C56.9895 73.6618 56.9895 72.4745 56.2572 71.7425C55.525 71.0103 54.3377 71.0103 53.6057 71.7425L53.0202 72.328C52.288 73.0603 52.2625 74.2738 53.0202 74.9795C53.802 75.708 55.0207 75.6248 55.6717 74.9795Z" fill="black"/>
<path d="M23.0783 102.27L22.4928 102.855C21.7605 103.588 21.7605 104.775 22.4928 105.507C23.203 106.217 24.4155 106.236 25.1443 105.507L25.7298 104.921C26.462 104.189 26.462 103.002 25.7298 102.27C24.9978 101.538 23.8105 101.538 23.0783 102.27Z" fill="black"/>
<path d="M60.5471 90.5H61.3751C62.4106 90.5 63.2501 89.6605 63.2501 88.625C63.2501 87.5895 62.4106 86.75 61.3751 86.75H60.5471C59.5116 86.75 58.6721 87.5895 58.6721 88.625C58.6721 89.6605 59.5116 90.5 60.5471 90.5Z" fill="black"/>
<path d="M18.203 86.75H17.375C16.3395 86.75 15.5 87.5895 15.5 88.625C15.5 89.6605 16.3395 90.5 17.375 90.5H18.203C19.2385 90.5 20.078 89.6605 20.078 88.625C20.078 87.5895 19.2385 86.75 18.203 86.75Z" fill="black"/>
<path d="M53.6054 105.507C54.3159 106.217 55.5276 106.236 56.2569 105.507C56.9891 104.775 56.9891 103.587 56.2569 102.855L55.6714 102.27C54.9391 101.538 53.7519 101.538 53.0199 102.27C52.2876 103.002 52.2876 104.189 53.0199 104.921L53.6054 105.507Z" fill="black"/>
<path d="M25.1445 71.7425C24.4123 71.0103 23.225 71.0103 22.493 71.7425C21.7608 72.4748 21.7608 73.662 22.493 74.394C22.493 74.394 23.0778 74.9788 23.0785 74.9795C23.784 75.685 25.0075 75.702 25.73 74.9795C26.4623 74.2473 26.4623 73.06 25.73 72.328L25.1445 71.7425Z" fill="black"/>
<path d="M42.5417 93.2714L49.2532 98.3992C49.593 98.6587 49.9932 98.7844 50.3902 98.7844C50.9545 98.7844 51.5125 98.5307 51.8815 98.0477C52.5102 97.2247 52.3527 96.0482 51.53 95.4194L44.7607 90.2474C44.9157 89.7337 45.0002 89.1892 45.0002 88.6254C45.0002 86.1809 43.4325 84.0969 41.2502 83.3229V74.9092C41.2502 73.8737 40.4107 73.0342 39.3752 73.0342C38.3397 73.0342 37.5002 73.8737 37.5002 74.9092V83.3229C35.318 84.0969 33.7502 86.1809 33.7502 88.6254C33.7502 91.7272 36.2735 94.2504 39.3752 94.2504C40.5487 94.2504 41.6392 93.8887 42.5417 93.2714ZM37.5 88.6254C37.5 87.5914 38.341 86.7504 39.375 86.7504C40.409 86.7504 41.25 87.5914 41.25 88.6254C41.25 89.6594 40.409 90.5004 39.375 90.5004C38.341 90.5004 37.5 89.6594 37.5 88.6254Z" fill="black"/>
</g>
<defs>
<clipPath id="clip0_6311_9508">
<rect width="128" height="128" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 7.0 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.2 KiB

View File

@@ -0,0 +1,10 @@
<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M117.375 5.82422H27.1625C26.127 5.82422 25.2875 6.66347 25.2875 7.69922C25.2875 8.73497 26.127 9.57422 27.1625 9.57422H117.375C121.166 9.57422 124.25 12.6582 124.25 16.4492V29.1212H3.75V16.4492C3.75 12.6585 6.834 9.57422 10.625 9.57422H18.4125C19.448 9.57422 20.2875 8.73497 20.2875 7.69922C20.2875 6.66347 19.448 5.82422 18.4125 5.82422H10.625C4.76625 5.82422 0 10.5905 0 16.4492V107.668C0 113.527 4.76625 118.293 10.625 118.293H48.4953C53.1185 120.77 58.3983 122.176 64 122.176C69.6018 122.176 74.8815 120.77 79.5048 118.293H117.375C123.234 118.293 128 113.527 128 107.668V16.4492C128 10.5905 123.234 5.82422 117.375 5.82422ZM37.2557 77.5242H47.687C47.0868 80.5977 46.7183 83.9017 46.6203 87.3632H34.8717C35.0877 83.9435 35.8947 80.6245 37.2557 77.5242ZM73.674 116.778C76.1003 113.758 78.0847 109.612 79.4355 104.702H88.7452C85.26 110.259 79.956 114.565 73.674 116.778ZM73.3053 68.1122C74.1665 69.8347 74.909 71.7352 75.5245 73.774H65.875V60.3527C68.5888 61.2235 71.2215 63.945 73.3053 68.1122ZM76.4805 77.5242C77.1335 80.613 77.5238 83.9302 77.628 87.3632H65.875V77.5242H76.4805ZM77.6277 91.1132C77.5235 94.5462 77.1332 97.8635 76.4802 100.952H65.875V91.1132H77.6277ZM75.5242 104.702C74.9087 106.741 74.1663 108.642 73.305 110.364C71.2215 114.531 68.5887 117.253 65.8747 118.124V104.702H75.5242ZM62.125 100.952H51.5195C50.8665 97.8637 50.4763 94.5465 50.372 91.1135H62.125V100.952ZM62.125 104.702V118.124C59.4113 117.253 56.7785 114.531 54.6948 110.364C53.8335 108.642 53.0913 106.741 52.4757 104.702H62.125ZM90.733 100.952H80.313C80.9133 97.879 81.2818 94.575 81.3798 91.1135H93.128C92.9062 94.5922 92.0723 97.9077 90.733 100.952ZM81.3798 87.3632C81.2818 83.9015 80.9135 80.5977 80.313 77.5242H90.733C92.0725 80.569 92.9062 83.8842 93.128 87.3632H81.3798ZM79.4355 73.7742C78.0847 68.8642 76.1003 64.7182 73.674 61.6985C79.956 63.9117 85.26 68.2172 88.7452 73.7742H79.4355ZM62.125 60.353V73.7742H52.4757C53.0913 71.7355 53.8338 69.8347 54.6948 68.1125C56.7785 63.945 59.4113 61.2235 62.125 60.353ZM62.125 77.5242V87.3632H50.3722C50.4765 83.9302 50.8667 80.613 51.5197 77.5242H62.125ZM46.6203 91.1132C46.7183 94.575 47.0865 97.8787 47.687 100.952H37.267C35.9277 97.9075 35.0938 94.5922 34.872 91.1132H46.6203ZM48.5645 104.702C49.9152 109.612 51.8997 113.758 54.326 116.778C48.044 114.565 42.74 110.259 39.2547 104.702H48.5645ZM124.25 107.668C124.25 111.459 121.166 114.543 117.375 114.543H85.0622C92.3148 108.496 96.9375 99.397 96.9375 89.2382C96.9375 71.1897 82.282 56.3007 64 56.3007C56.5457 56.3007 49.2417 58.8607 43.4333 63.5095C42.6248 64.1565 42.494 65.3365 43.141 66.145C43.7878 66.9532 44.968 67.0847 45.7765 66.4372C48.3908 64.345 51.276 62.7467 54.347 61.6722C51.9113 64.694 49.9193 68.8497 48.5645 73.774H39.2405C39.506 73.35 39.783 72.932 40.0715 72.5197C40.6652 71.6712 40.4592 70.5022 39.6107 69.9085C38.7625 69.3142 37.5933 69.5202 36.9995 70.369C33.1152 75.917 31.0623 82.442 31.0623 89.2382C31.0623 99.397 35.6852 108.496 42.9375 114.543H10.625C6.834 114.543 3.75 111.459 3.75 107.668V48.4022H78.2968C79.3325 48.4022 80.1718 47.563 80.1718 46.5272C80.1718 45.4915 79.3325 44.6522 78.2968 44.6522H3.75V32.871H124.25V36.8865H104.122C102.787 36.8865 101.531 37.4065 100.587 38.3507L94.6523 44.2855C94.4157 44.5217 94.1017 44.652 93.768 44.652H87.2968C86.261 44.652 85.4218 45.4912 85.4218 46.527C85.4218 47.5627 86.261 48.402 87.2968 48.402H93.768C95.1032 48.402 96.3585 47.882 97.3037 46.9377L103.239 41.0027C103.475 40.7667 103.788 40.6365 104.122 40.6365H124.25V107.668Z" fill="black"/>
<path d="M120.234 19.3476C120.234 16.1728 117.651 13.5898 114.477 13.5898C111.302 13.5898 108.719 16.1728 108.719 19.3476C108.719 22.5223 111.302 25.1053 114.477 25.1053C117.651 25.1053 120.234 22.5223 120.234 19.3476ZM112.469 19.3476C112.469 18.2403 113.369 17.3398 114.476 17.3398C115.583 17.3398 116.484 18.2406 116.484 19.3476C116.484 20.4546 115.583 21.3553 114.476 21.3553C113.369 21.3553 112.469 20.4546 112.469 19.3476Z" fill="black"/>
<path d="M104.703 19.3476C104.703 16.1728 102.12 13.5898 98.9453 13.5898C95.7705 13.5898 93.1875 16.1726 93.1875 19.3476C93.1875 22.5226 95.7705 25.1053 98.9453 25.1053C102.12 25.1053 104.703 22.5223 104.703 19.3476ZM96.9375 19.3476C96.9375 18.2403 97.8383 17.3398 98.9453 17.3398C100.052 17.3398 100.953 18.2406 100.953 19.3476C100.953 20.4546 100.052 21.3553 98.9453 21.3553C97.8383 21.3553 96.9375 20.4546 96.9375 19.3476Z" fill="black"/>
<path d="M89.172 19.3476C89.172 16.1728 86.589 13.5898 83.4142 13.5898C80.2395 13.5898 77.6565 16.1728 77.6565 19.3476C77.6565 22.5223 80.2395 25.1053 83.4142 25.1053C86.589 25.1053 89.172 22.5223 89.172 19.3476ZM81.4062 19.3476C81.4062 18.2403 82.307 17.3398 83.414 17.3398C84.521 17.3398 85.4217 18.2406 85.4217 19.3476C85.4217 20.4546 84.521 21.3553 83.414 21.3553C82.307 21.3553 81.4062 20.4546 81.4062 19.3476Z" fill="black"/>
<path d="M7.76538 17.3398V21.3553C7.76538 23.4231 9.44763 25.1053 11.5154 25.1053H38.8279C40.8956 25.1053 42.5779 23.4231 42.5779 21.3553V17.3398C42.5779 15.2721 40.8956 13.5898 38.8279 13.5898H11.5154C9.44788 13.5898 7.76538 15.2721 7.76538 17.3398ZM38.8304 21.3556H11.5154V17.3398H38.8279L38.8304 21.3556Z" fill="black"/>
<path d="M93.0546 38.7617C93.0546 37.726 92.2154 36.8867 91.1796 36.8867H25.1716C24.1361 36.8867 23.2966 37.726 23.2966 38.7617C23.2966 39.7975 24.1361 40.6367 25.1716 40.6367H91.1794C92.2151 40.6367 93.0546 39.7972 93.0546 38.7617Z" fill="black"/>
<path d="M17.4062 40.6367C18.4418 40.6367 19.2812 39.7973 19.2812 38.7617C19.2812 37.7262 18.4418 36.8867 17.4062 36.8867C16.3707 36.8867 15.5312 37.7262 15.5312 38.7617C15.5312 39.7973 16.3707 40.6367 17.4062 40.6367Z" fill="black"/>
<path d="M9.64038 40.6367C10.6759 40.6367 11.5154 39.7973 11.5154 38.7617C11.5154 37.7262 10.6759 36.8867 9.64038 36.8867C8.60485 36.8867 7.76538 37.7262 7.76538 38.7617C7.76538 39.7973 8.60485 40.6367 9.64038 40.6367Z" fill="black"/>
</svg>

After

Width:  |  Height:  |  Size: 5.8 KiB

View File

@@ -0,0 +1,3 @@
<svg viewBox="0 0 563 670" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M553.831 334.751V335.974L555.03 335.731C555.104 335.716 555.181 335.708 555.262 335.708H557.846C558.483 335.708 559 336.224 559 336.862V418.708C559 419.345 558.483 419.862 557.846 419.862H555.262C555.181 419.862 555.104 419.853 555.03 419.838L553.831 419.595V420.818V955.446C553.831 970.12 547.528 991.015 535.312 1008.3C522.978 1025.76 503.794 1040.6 477.723 1040.6H82.2769C56.206 1040.6 37.022 1025.76 24.6885 1008.3C12.472 991.015 6.16923 970.12 6.16923 955.446V420.818V419.595L4.97026 419.838C4.89621 419.853 4.8188 419.862 4.73846 419.862H2.15385C1.51659 419.862 1 419.345 1 418.708V358.4C1 357.763 1.51659 357.246 2.15385 357.246H4.73846C4.8188 357.246 4.89621 357.254 4.97026 357.269L6.16923 357.513V356.289V347.588V346.364L4.97026 346.608C4.89621 346.623 4.8188 346.631 4.73846 346.631H2.15385C1.51659 346.631 1 346.114 1 345.477V285.169C1 284.532 1.51659 284.015 2.15385 284.015H4.73846C4.8188 284.015 4.89621 284.023 4.97026 284.038L6.16923 284.282V283.058V261.434V260.21L4.97026 260.454C4.89621 260.469 4.8188 260.477 4.73846 260.477H2.15385C1.51659 260.477 1 259.96 1 259.323V220.554C1 219.917 1.51659 219.4 2.15385 219.4H4.73846C4.8188 219.4 4.89624 219.408 4.97036 219.423L6.16923 219.666V218.443V86.1538C6.16923 71.4804 12.472 50.5848 24.6885 33.2974C37.022 15.8443 56.206 1 82.2769 1H477.723C503.794 1 522.978 15.8443 535.312 33.2974C547.528 50.5848 553.831 71.4804 553.831 86.1538V334.751ZM400.615 16.2308H399.615V17.2308V43.0769C399.615 49.6619 394.277 55 387.692 55H172.308C165.723 55 160.385 49.6619 160.385 43.0769V17.2308V16.2308H159.385H82.2769C62.6883 16.2308 47.6257 27.2304 37.1269 42.0872C26.5125 57.1076 21.4 74.9813 21.4 86.1538V955.446C21.4 966.619 26.5125 984.492 37.1269 999.513C47.6257 1014.37 62.6883 1025.37 82.2769 1025.37H477.723C497.312 1025.37 512.374 1014.37 522.873 999.513C533.487 984.492 538.6 966.619 538.6 955.446V86.1538C538.6 74.9813 533.488 57.1076 522.873 42.0872C512.374 27.2304 497.312 16.2308 477.723 16.2308H400.615Z" stroke="black" stroke-width="2"/>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.4 KiB

View File

@@ -0,0 +1,17 @@
<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_6311_9575)">
<path d="M13.1356 105.339H93.2878C94.3236 105.339 95.1628 104.5 95.1628 103.464C95.1628 102.428 94.3236 101.589 93.2878 101.589H13.1356C11.6753 101.589 10.4873 100.401 10.4873 98.9407V26.0474H44.2016C41.9081 29.6852 40.5788 33.9892 40.5788 38.5982V46.6989C37.1923 47.1732 34.5773 50.0874 34.5773 53.6027V86.9362C34.5773 90.7812 37.7053 93.9092 41.5503 93.9092H86.8113C90.6563 93.9092 93.7843 90.7812 93.7843 86.9362V53.6029C93.7843 50.0877 91.1693 47.1734 87.7826 46.6992V38.5984C87.7826 33.9892 86.4533 29.6854 84.1598 26.0477H119.138V98.9409C119.138 100.401 117.95 101.589 116.49 101.589H102.282C101.246 101.589 100.407 102.428 100.407 103.464C100.407 104.5 101.246 105.339 102.282 105.339H116.49C120.018 105.339 122.888 102.469 122.888 98.9409V14.1582C122.888 9.20744 118.86 5.17969 113.909 5.17969H38.9261C37.8903 5.17969 37.0511 6.01894 37.0511 7.05469C37.0511 8.09044 37.8903 8.92969 38.9261 8.92969H113.909C116.792 8.92969 119.138 11.2752 119.138 14.1582V22.2974H81.3611C81.3201 22.2974 81.2798 22.3009 81.2393 22.3034C76.9391 17.8034 70.8815 14.9962 64.1805 14.9962C57.4533 14.9962 51.3748 17.8257 47.0716 22.3564C46.9241 22.3192 10.4873 22.2972 10.4873 22.2972V14.1582C10.4873 11.2752 12.8328 8.92969 15.7158 8.92969H30.1583C31.1941 8.92969 32.0333 8.09044 32.0333 7.05469C32.0333 6.01894 31.1941 5.17969 30.1583 5.17969H15.7158C10.7651 5.17969 6.7373 9.20744 6.7373 14.1582V98.9409C6.7373 102.469 9.60755 105.339 13.1356 105.339ZM90.0343 53.6029V86.9364C90.0343 88.7134 88.5886 90.1594 86.8113 90.1594H41.5503C39.7733 90.1594 38.3273 88.7137 38.3273 86.9364V53.6029C38.3273 51.8259 39.7731 50.3799 41.5503 50.3799H86.8113C88.5886 50.3802 90.0343 51.8259 90.0343 53.6029ZM74.5733 46.6302H53.7881V38.5984C53.7881 32.8677 58.4501 28.2057 64.1805 28.2057C69.911 28.2057 74.5731 32.8677 74.5731 38.5984V46.6302H74.5733ZM64.1808 18.7464C75.1271 18.7464 84.0326 27.6519 84.0326 38.5982V46.6299H78.3233V38.5982C78.3233 30.7999 71.979 24.4554 64.1808 24.4554C56.3826 24.4554 50.0383 30.7999 50.0383 38.5982V46.6299H44.3291V38.5982C44.3288 27.6519 53.2346 18.7464 64.1808 18.7464Z" fill="black"/>
<path d="M91.6201 17.4883C92.6558 17.4883 93.4951 16.649 93.4951 15.6133C93.4951 14.5775 92.6558 13.7383 91.6201 13.7383H89.5701C88.5343 13.7383 87.6951 14.5775 87.6951 15.6133C87.6951 16.649 88.5343 17.4883 89.5701 17.4883H91.6201Z" fill="black"/>
<path d="M100.641 17.4883C101.676 17.4883 102.516 16.649 102.516 15.6133C102.516 14.5775 101.676 13.7383 100.641 13.7383H98.5906C97.5548 13.7383 96.7156 14.5775 96.7156 15.6133C96.7156 16.649 97.5548 17.4883 98.5906 17.4883H100.641Z" fill="black"/>
<path d="M109.661 17.4883C110.697 17.4883 111.536 16.649 111.536 15.6133C111.536 14.5775 110.697 13.7383 109.661 13.7383H107.611C106.575 13.7383 105.736 14.5775 105.736 15.6133C105.736 16.649 106.575 17.4883 107.611 17.4883H109.661Z" fill="black"/>
<path d="M126.125 113.899H105.969C105.146 110.921 102.414 108.728 99.1775 108.728C95.9412 108.728 93.2095 110.921 92.3863 113.899H35.6138C34.7905 110.921 32.0588 108.728 28.8228 108.728C25.5865 108.728 22.8547 110.921 22.0315 113.899H1.875C0.83925 113.899 0 114.738 0 115.774C0 116.81 0.83925 117.649 1.875 117.649H22.0315C22.8547 120.627 25.5865 122.82 28.8228 122.82C32.0588 122.82 34.7905 120.627 35.6138 117.649H92.3865C93.2097 120.627 95.9415 122.82 99.1777 122.82C102.414 122.82 105.146 120.627 105.969 117.649H126.125C127.161 117.649 128 116.81 128 115.774C128 114.738 127.161 113.899 126.125 113.899ZM28.8228 119.07C27.005 119.07 25.5263 117.591 25.5263 115.774C25.5263 113.956 27.005 112.477 28.8228 112.477C30.6402 112.477 32.119 113.956 32.119 115.774C32.119 117.591 30.6402 119.07 28.8228 119.07ZM99.1775 119.07C97.3597 119.07 95.881 117.591 95.881 115.774C95.881 113.956 97.3597 112.477 99.1775 112.477C100.995 112.477 102.474 113.956 102.474 115.774C102.474 117.591 100.995 119.07 99.1775 119.07Z" fill="black"/>
<path d="M74.6482 63.1457C73.9162 62.4137 72.7289 62.4135 71.9967 63.146C71.2644 63.8782 71.2644 65.0655 71.9969 65.7975L76.4694 70.2697L71.9967 74.7422C71.2644 75.4747 71.2644 76.6617 71.9967 77.394C72.3629 77.76 72.8429 77.943 73.3227 77.943C73.8024 77.943 74.2824 77.76 74.6487 77.394L80.4469 71.5957C80.7984 71.244 80.9959 70.7672 80.9959 70.2697C80.9959 69.7722 80.7984 69.2957 80.4467 68.9437L74.6482 63.1457Z" fill="black"/>
<path d="M51.8922 70.2697L56.3647 65.7974C57.0972 65.0652 57.0972 63.8779 56.365 63.1459C55.6327 62.4139 54.4455 62.4134 53.7135 63.1456L47.9152 68.9436C47.5635 69.2954 47.366 69.7722 47.366 70.2697C47.366 70.7672 47.5635 71.2436 47.915 71.5956L53.7132 77.3939C54.0795 77.7599 54.5595 77.9429 55.0392 77.9429C55.519 77.9429 55.999 77.7599 56.3652 77.3939C57.0975 76.6614 57.0975 75.4744 56.3652 74.7421L51.8922 70.2697Z" fill="black"/>
<path d="M66.0639 62.6508C65.0587 62.4026 64.0422 63.0161 63.7937 64.0211L60.9274 75.6176C60.6792 76.6228 61.2927 77.6393 62.2977 77.8878C62.4487 77.9251 62.6002 77.9431 62.7492 77.9431C63.5912 77.9431 64.3569 77.3716 64.5679 76.5176L67.4342 64.9211C67.6824 63.9158 67.0689 62.8996 66.0639 62.6508Z" fill="black"/>
</g>
<defs>
<clipPath id="clip0_6311_9575">
<rect width="128" height="128" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 5.2 KiB

View File

@@ -0,0 +1,12 @@
<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_6311_9539)">
<path d="M107.26 81.0871C108.302 81.0871 109.145 80.2431 109.145 79.2021V61.7874C109.145 60.7464 108.302 59.9023 107.26 59.9023H103.538C102.497 59.9023 101.653 60.7464 101.653 61.7874C101.653 62.8285 102.497 63.6725 103.538 63.6725H105.375V79.2021C105.375 80.2431 106.219 81.0871 107.26 81.0871Z" fill="black"/>
<path d="M105.03 95.3332C104.018 95.0871 102.999 95.7069 102.752 96.7186L97.7374 117.306C97.6188 117.793 97.2262 117.927 97.0625 117.963C96.8997 117.998 96.486 118.037 96.1776 117.642L59.5854 70.7809L122.95 13.8064L115.318 45.1362C115.072 46.1479 115.692 47.1676 116.703 47.4139C116.853 47.4503 117.003 47.4679 117.151 47.4679C118 47.4679 118.771 46.8901 118.981 46.0285L127.914 9.35889C128.13 8.46888 127.846 7.53061 127.173 6.91004C126.499 6.28972 125.541 6.08387 124.671 6.37267L34.2959 36.438C33.3079 36.7667 32.7735 37.8339 33.1023 38.8217C33.4308 39.8095 34.4985 40.3441 35.4858 40.0153L119.097 12.2011L56.5961 68.3984L5.56399 49.9696L27.7773 42.58C28.7653 42.2513 29.2997 41.1841 28.9709 40.1963C28.6424 39.2088 27.5755 38.6744 26.5874 39.0027L1.98209 47.1877C0.793983 47.5828 0.0163241 48.647 0.000238096 49.8989C-0.0153452 51.1506 0.735168 52.2342 1.91221 52.6592L37.0421 65.3453V98.9988C37.0421 100.55 37.8471 101.934 39.1953 102.701C39.8571 103.077 40.5798 103.265 41.3014 103.265C42.0504 103.265 42.7986 103.062 43.4772 102.659L51.7857 97.7167C52.6807 97.1843 52.9743 96.0276 52.4422 95.1328C51.9098 94.2378 50.7532 93.9442 49.8584 94.4763L41.5499 99.4185C41.3479 99.5386 41.1717 99.4871 41.0591 99.4233C40.9465 99.3592 40.8122 99.2335 40.8122 98.9988V66.7068L55.8657 72.1429L65.8687 84.9529L56.7635 90.3691C55.8685 90.9015 55.5749 92.0581 56.107 92.9529C56.4597 93.5456 57.0863 93.8746 57.729 93.8746C58.057 93.8746 58.3887 93.7891 58.6908 93.6094L68.2077 87.9484L93.2062 119.962C94.1045 121.113 95.4456 121.755 96.8595 121.755C97.1892 121.755 97.523 121.72 97.856 121.648C99.6162 121.27 100.974 119.948 101.401 118.198L106.416 97.6108C106.662 96.5994 106.042 95.5797 105.03 95.3332Z" fill="black"/>
<path d="M126.484 72.7292C125.468 72.51 124.464 73.1573 124.244 74.1747C122.533 82.1121 115.391 87.873 107.26 87.873C97.6782 87.873 89.8825 80.0773 89.8825 70.495C89.8825 60.9128 97.6782 53.1171 107.26 53.1171C115.446 53.1171 122.599 58.9234 124.269 66.9232C124.482 67.9424 125.482 68.5969 126.5 68.3832C127.519 68.1703 128.173 67.1718 127.96 66.1526C125.927 56.4145 117.221 49.3467 107.261 49.3467C95.5995 49.3467 86.1125 58.8337 86.1125 70.4948C86.1125 82.1559 95.5995 91.6429 107.261 91.6429C112.123 91.6429 116.871 89.9511 120.63 86.8791C124.335 83.8517 126.927 79.6216 127.93 74.9685C128.149 73.9515 127.502 72.9484 126.484 72.7292Z" fill="black"/>
</g>
<defs>
<clipPath id="clip0_6311_9539">
<rect width="128" height="128" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

View File

@@ -0,0 +1 @@
<svg id="Capa_1" enable-background="new 0 0 512 512" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><g><path d="m488.19 30.63h-48.55c-4.143 0-7.5 3.357-7.5 7.5s3.357 7.5 7.5 7.5h48.551c4.857 0 8.81 3.952 8.81 8.811v39.835h-482.001v-39.836c0-4.858 3.952-8.811 8.81-8.811h380.83c4.143 0 7.5-3.357 7.5-7.5s-3.357-7.5-7.5-7.5h-380.83c-13.129.001-23.81 10.683-23.81 23.811v403.12c0 13.129 10.681 23.811 23.81 23.811h69c4.143 0 7.5-3.357 7.5-7.5s-3.357-7.5-7.5-7.5h-69c-4.857 0-8.81-3.952-8.81-8.811v-348.285h482v348.285c0 4.858-3.952 8.811-8.81 8.811h-360.38c-4.143 0-7.5 3.357-7.5 7.5s3.357 7.5 7.5 7.5h360.38c13.129 0 23.81-10.682 23.81-23.811v-403.12c0-13.128-10.681-23.81-23.81-23.81z"/><path d="m185.41 134.28h-131.91c-7.444 0-13.5 6.056-13.5 13.5v66.13c0 7.444 6.056 13.5 13.5 13.5h405c7.444 0 13.5-6.056 13.5-13.5v-66.13c0-7.444-6.056-13.5-13.5-13.5h-238.09c-4.143 0-7.5 3.357-7.5 7.5s3.357 7.5 7.5 7.5h236.59v63.13h-321.142v-63.13h49.552c4.143 0 7.5-3.357 7.5-7.5s-3.357-7.5-7.5-7.5zm-64.552 78.13h-65.858v-63.13h65.858z"/><path d="m67.935 188.478 11.756 9.094c1.321 1.021 2.937 1.567 4.589 1.567.329 0 .66-.021.989-.065 1.986-.265 3.783-1.312 4.992-2.909l18.666-24.671c2.499-3.304 1.847-8.007-1.456-10.507-3.304-2.499-8.006-1.847-10.507 1.456l-14.092 18.626-5.76-4.456c-3.275-2.533-7.985-1.934-10.521 1.344-2.534 3.275-1.933 7.985 1.344 10.521z"/><path d="m153.684 180.845c0 4.143 3.357 7.5 7.5 7.5h72.66c4.143 0 7.5-3.357 7.5-7.5s-3.357-7.5-7.5-7.5h-72.66c-4.143 0-7.5 3.357-7.5 7.5z"/><path d="m431.671 188.345c4.143 0 7.5-3.357 7.5-7.5s-3.357-7.5-7.5-7.5h-162.823c-4.143 0-7.5 3.357-7.5 7.5s3.357 7.5 7.5 7.5z"/><path d="m53.504 441.366h404.992c7.444 0 13.5-6.056 13.5-13.5v-66.132c0-7.444-6.056-13.5-13.5-13.5h-404.992c-7.444 0-13.5 6.056-13.5 13.5v66.132c0 7.445 6.056 13.5 13.5 13.5zm403.492-15h-321.138v-63.132h321.138zm-401.992-63.132h65.854v63.132h-65.854z"/><path d="m98.342 394.8 6.604-6.604c2.929-2.93 2.929-7.678 0-10.607-2.93-2.928-7.678-2.928-10.607 0l-6.604 6.604-6.604-6.604c-2.93-2.928-7.678-2.928-10.607 0-2.929 2.93-2.929 7.678 0 10.607l6.604 6.604-6.604 6.604c-2.929 2.93-2.929 7.678 0 10.607 1.465 1.464 3.385 2.196 5.304 2.196s3.839-.732 5.304-2.196l6.604-6.604 6.604 6.604c1.465 1.464 3.385 2.196 5.304 2.196s3.839-.732 5.304-2.196c2.929-2.93 2.929-7.678 0-10.607z"/><path d="m161.184 402.3h72.66c4.143 0 7.5-3.357 7.5-7.5s-3.357-7.5-7.5-7.5h-72.66c-4.143 0-7.5 3.357-7.5 7.5s3.357 7.5 7.5 7.5z"/><path d="m268.848 402.3h162.823c4.143 0 7.5-3.357 7.5-7.5s-3.357-7.5-7.5-7.5h-162.823c-4.143 0-7.5 3.357-7.5 7.5s3.357 7.5 7.5 7.5z"/><path d="m458.496 241.257h-404.992c-7.444 0-13.5 6.056-13.5 13.5v66.132c0 7.444 6.056 13.5 13.5 13.5h404.992c7.444 0 13.5-6.056 13.5-13.5v-66.132c0-7.445-6.056-13.5-13.5-13.5zm-403.492 15h65.854v63.132h-65.854zm401.992 63.132h-321.138v-63.132h321.138z"/><path d="m107.471 269.506c-3.304-2.499-8.006-1.847-10.507 1.456l-14.092 18.626-5.76-4.456c-3.275-2.534-7.985-1.933-10.521 1.344-2.534 3.276-1.933 7.986 1.344 10.521l11.756 9.094c1.321 1.021 2.937 1.567 4.589 1.567.329 0 .66-.021.989-.065 1.986-.265 3.783-1.312 4.992-2.909l18.666-24.671c2.499-3.304 1.846-8.007-1.456-10.507z"/><path d="m359.011 295.322h72.66c4.143 0 7.5-3.357 7.5-7.5s-3.357-7.5-7.5-7.5h-72.66c-4.143 0-7.5 3.357-7.5 7.5s3.357 7.5 7.5 7.5z"/><path d="m161.184 295.322h162.823c4.143 0 7.5-3.357 7.5-7.5s-3.357-7.5-7.5-7.5h-162.823c-4.143 0-7.5 3.357-7.5 7.5s3.357 7.5 7.5 7.5z"/><g><circle cx="42.069" cy="69.954" r="7.5"/><circle cx="76.192" cy="69.954" r="7.5"/><circle cx="110.31" cy="69.954" r="7.5"/></g></g><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/></svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@@ -0,0 +1,12 @@
<svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_6311_9544)">
<path d="M31.5182 96.3591C31.7232 97.3748 32.7129 98.0311 33.7269 97.8261C38.9609 96.7696 42.8322 94.7671 45.6829 92.5183C48.5337 94.7671 52.4049 96.7698 57.6389 97.8261C58.6529 98.0311 59.6429 97.3746 59.8477 96.3591C60.0524 95.3441 59.3957 94.3551 58.3807 94.1503C54.1179 93.2898 50.8949 91.7473 48.4574 89.9433C51.1487 87.0021 52.9734 83.4338 53.8114 79.8881H58.3314C59.3672 79.8881 60.2064 79.0486 60.2064 78.0131C60.2064 76.9776 59.3672 76.1381 58.3314 76.1381H47.5584V71.7363C47.5584 70.7008 46.7192 69.8613 45.6834 69.8613C44.6477 69.8613 43.8084 70.7008 43.8084 71.7363V76.1381H33.0344C31.9987 76.1381 31.1594 76.9776 31.1594 78.0131C31.1594 79.0486 31.9987 79.8881 33.0344 79.8881H37.5544C38.3907 83.4258 40.2092 86.9866 42.8907 89.9241C40.4537 91.7403 37.2347 93.2923 32.9852 94.1501C31.9699 94.3548 31.3132 95.3441 31.5182 96.3591ZM41.4162 79.8881H49.9329C49.3807 81.7618 48.1822 84.6693 45.6567 87.4271C43.1337 84.6718 41.9552 81.7671 41.4162 79.8881Z" fill="black"/>
<path d="M82.3162 18.748C81.5372 18.748 80.839 19.23 80.5627 19.9585L71.3715 44.2103C71.0045 45.1785 71.492 46.261 72.4602 46.628C73.429 46.995 74.5112 46.5073 74.8782 45.5393L76.6965 40.7418C76.7585 40.748 76.8212 40.7513 76.885 40.7513H87.84C87.873 40.7513 87.905 40.748 87.9375 40.7463L89.754 45.539C90.1212 46.5075 91.2042 46.9945 92.172 46.6278C93.1402 46.2608 93.6277 45.1783 93.2607 44.21L84.0695 19.9583C83.7935 19.23 83.0955 18.748 82.3162 18.748ZM78.1142 37.0013L82.3162 25.9138L86.5182 37.0013H78.1142Z" fill="black"/>
<path d="M11.7858 116.457H16.6226C18.1479 116.457 19.5237 117.42 20.0462 118.853L22.5182 125.628C23.0439 127.069 24.3747 128 25.9087 128C27.4427 128 28.7737 127.069 29.2997 125.628L31.7715 118.852C32.2943 117.42 33.67 116.457 35.195 116.457H53.6349C54.6707 116.457 55.5099 115.618 55.5099 114.582C55.5099 113.547 54.6707 112.707 53.6349 112.707H35.1953C32.1008 112.707 29.3092 114.66 28.2487 117.567L25.9092 123.98L23.5694 117.567C22.5089 114.66 19.7174 112.707 16.6229 112.707H11.7858C7.35481 112.707 3.75003 109.103 3.75003 104.672V62.0325C3.75003 57.6015 7.35481 53.9967 11.7858 53.9967H36.633V54.4249C36.633 60.9237 41.9201 66.2108 48.4189 66.2108H87.6172V104.672C87.6172 109.103 84.0122 112.708 79.5811 112.708H62.3852C61.3495 112.708 60.5102 113.547 60.5102 114.583C60.5102 115.618 61.3495 116.458 62.3852 116.458H79.5811C86.0799 116.458 91.3672 111.171 91.3672 104.672V66.2108H92.805C94.33 66.2108 95.706 67.1735 96.2285 68.606L98.7003 75.3813C99.2263 76.8226 100.558 77.7536 102.091 77.7536C103.626 77.7536 104.956 76.8221 105.482 75.3813L107.954 68.606C108.477 67.1735 109.852 66.2108 111.377 66.2108H116.214C122.713 66.2108 128 60.9237 128 54.4249V38.8768C128 37.8413 127.161 37.0018 126.125 37.0018C125.089 37.0018 124.25 37.8413 124.25 38.8768V54.4249C124.25 58.856 120.645 62.4607 116.214 62.4607H111.377C108.283 62.4607 105.491 64.4138 104.431 67.3205L102.091 73.7338L99.7515 67.3205C98.6908 64.4138 95.899 62.4607 92.805 62.4607C91.289 62.4607 50.0484 62.4607 48.4189 62.4607C43.9878 62.4607 40.3831 58.856 40.3831 54.4249C40.3831 52.6232 40.3831 14.9124 40.3831 11.7856C40.3831 7.35481 43.9878 3.75003 48.4186 3.75003H116.214C120.645 3.75003 124.25 7.35481 124.25 11.7858V30.1267C124.25 31.1622 125.089 32.0018 126.125 32.0018C127.161 32.0018 128 31.1622 128 30.1267V11.7858C128 5.28704 122.713 0 116.214 0H48.4186C41.9201 0 36.6328 5.28704 36.6328 11.7858V50.2466H11.7858C5.28729 50.2466 0 55.5337 0 62.0325V104.672C0 111.17 5.28729 116.457 11.7858 116.457Z" fill="black"/>
</g>
<defs>
<clipPath id="clip0_6311_9544">
<rect width="128" height="128" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@@ -0,0 +1 @@
<svg id="Capa_1" enable-background="new 0 0 512 512" height="512" viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg"><g><g><path d="m291.532 66.273c4.142 0 7.5-3.357 7.5-7.5v-.057c0-4.143-3.358-7.472-7.5-7.472s-7.5 3.386-7.5 7.528 3.358 7.501 7.5 7.501z"/><path d="m254.455 66.273c4.142 0 7.5-3.357 7.5-7.5v-.057c0-4.143-3.358-7.472-7.5-7.472s-7.5 3.386-7.5 7.528 3.358 7.501 7.5 7.501z"/><path d="m217.378 66.273c4.142 0 7.5-3.357 7.5-7.5v-.057c0-4.143-3.358-7.472-7.5-7.472s-7.5 3.386-7.5 7.528 3.358 7.501 7.5 7.501z"/><path d="m123.925 51.273-76.763-.057c-.002 0-.003 0-.005 0-4.14 0-7.497 3.354-7.5 7.494-.003 4.143 3.353 7.503 7.495 7.506l76.763.057h.005c4.14 0 7.497-3.354 7.5-7.494.002-4.142-3.353-7.503-7.495-7.506z"/><path d="m287.507 124.863h-111.062c-6.933 0-12.574 5.641-12.574 12.574v33.479c0 6.948 5.641 12.602 12.574 12.602h111.062c6.933 0 12.574-5.653 12.574-12.602v-33.479c0-6.933-5.641-12.574-12.574-12.574zm-2.426 43.655h-106.209v-28.654h106.209z"/><path d="m292.581 210.217h-121.209c-4.142 0-7.5 3.357-7.5 7.5s3.358 7.5 7.5 7.5h121.209c4.142 0 7.5-3.357 7.5-7.5s-3.358-7.5-7.5-7.5z"/><path d="m189.882 245.736h-18.51c-4.142 0-7.5 3.357-7.5 7.5s3.358 7.5 7.5 7.5h18.51c4.142 0 7.5-3.357 7.5-7.5s-3.358-7.5-7.5-7.5z"/><path d="m292.581 245.736h-62.05c-4.142 0-7.5 3.357-7.5 7.5s3.358 7.5 7.5 7.5h62.05c4.142 0 7.5-3.357 7.5-7.5s-3.358-7.5-7.5-7.5z"/><path d="m444.802 450.744h-.255c-4.142 0-7.5 3.357-7.5 7.5s3.358 7.5 7.5 7.5h.255c4.142 0 7.5-3.357 7.5-7.5s-3.358-7.5-7.5-7.5z"/><path d="m490.667 301.75h-59.114v-129.049c0-11.669-9.494-21.163-21.163-21.163h-71.7v-114.592c0-11.404-9.278-20.682-20.682-20.682h-297.327c-11.404.001-20.681 9.278-20.681 20.682v241.718c0 11.419 9.277 20.709 20.681 20.709h33.801v97.131c0 11.669 9.494 21.163 21.163 21.163h104.223l-8.866 29.646h-14.994c-13.342 0-24.196 10.867-24.196 24.226v11.707c0 6.887 5.603 12.489 12.489 12.489h197.434c6.887 0 12.489-5.603 12.489-12.489v-11.707c0-13.358-10.867-24.226-24.225-24.226h-14.991l-8.847-29.646h71.443v56.735c0 11.763 9.557 21.333 21.305 21.333h91.758c11.763 0 21.333-9.57 21.333-21.333v-151.346c0-11.748-9.57-21.306-21.333-21.306zm-475.667-23.086v-177.438h137.039c4.142 0 7.5-3.357 7.5-7.5s-3.358-7.5-7.5-7.5h-137.039v-49.28c0-3.133 2.548-5.682 5.681-5.682h297.327c3.133 0 5.682 2.549 5.682 5.682v49.279h-137.011c-4.142 0-7.5 3.357-7.5 7.5s3.358 7.5 7.5 7.5h137.011v177.438c0 3.147-2.549 5.709-5.682 5.709h-297.327c-3.133.001-5.681-2.56-5.681-5.708zm303.008 20.709c11.404 0 20.682-9.29 20.682-20.709v-112.126h71.7c3.398 0 6.163 2.765 6.163 6.163v129.049h-17.644c-11.748 0-21.305 9.558-21.305 21.306v41.683h-308.122v-65.365h248.526zm21.215 172.166v9.196h-192.411v-9.196c0-5.087 4.125-9.226 9.196-9.226h173.991c5.086 0 9.224 4.139 9.224 9.226zm-79.014-68.872c-4.142 0-7.5 3.357-7.5 7.5s3.358 7.5 7.5 7.5h30.298l8.847 29.646h-112.696l8.866-29.646h30.188c4.142 0 7.5-3.357 7.5-7.5s-3.358-7.5-7.5-7.5h-150.067c-3.398 0-6.163-2.765-6.163-6.163v-16.766h308.123v22.929zm236.791 71.735c0 3.492-2.841 6.333-6.333 6.333h-91.758c-3.477 0-6.305-2.841-6.305-6.333v-151.346c0-3.477 2.828-6.306 6.305-6.306h91.758c3.492 0 6.333 2.829 6.333 6.306z"/><path d="m127.661 124.863h-76.451c-6.949 0-12.603 5.641-12.603 12.574v110.696c0 6.949 5.653 12.603 12.603 12.603h76.451c6.949 0 12.602-5.653 12.602-12.603v-110.695c0-6.934-5.653-12.575-12.602-12.575zm-2.398 120.873h-71.655v-105.873h71.655z"/></g></g></svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -33,30 +33,43 @@
.attr('id', 'tooltip')
.style('display', 'none');
}
// Create legend
// Calculate total messages
const totalMessages = d3.sum(deliveredData) + d3.sum(failedData);
// Create legend only if there are messages
const legendContainer = d3.select('.chart-legend');
legendContainer.selectAll('*').remove(); // Clear any existing legend
const legendData = [
{ label: 'Delivered', color: COLORS.delivered },
{ label: 'Failed', color: COLORS.failed }
];
if (totalMessages > 0) {
// Show legend if there are messages
const legendData = [
{ label: 'Delivered', color: COLORS.delivered },
{ label: 'Failed', color: COLORS.failed }
];
const legendItem = legendContainer.selectAll('.legend-item')
.data(legendData)
.enter()
.append('div')
.attr('class', 'legend-item');
const legendItem = legendContainer.selectAll('.legend-item')
.data(legendData)
.enter()
.append('div')
.attr('class', 'legend-item');
legendItem.append('div')
.attr('class', 'legend-rect')
.style('background-color', d => d.color)
.style('display', 'inline-block')
.style('margin-right', '5px');
legendItem.append('div')
.attr('class', 'legend-rect')
.style('background-color', d => d.color)
.style('display', 'inline-block')
.style('margin-right', '5px');
legendItem.append('span')
.attr('class', 'legend-label')
.text(d => d.label);
legendItem.append('span')
.attr('class', 'legend-label')
.text(d => d.label);
// Ensure the legend is shown
legendContainer.style('display', 'flex');
} else {
// Hide the legend if there are no messages
legendContainer.style('display', 'none');
}
const x = d3.scaleBand()
.domain(labels)
@@ -64,7 +77,7 @@
.padding(0.1);
// Adjust the y-axis domain to add some space above the tallest bar
const maxY = d3.max(deliveredData.map((d, i) => d + (failedData[i] || 0)));
const y = d3.scaleLinear()
const y = d3.scaleSqrt()
.domain([0, maxY + 2]) // Add 2 units of space at the top
.nice()
.range([height, 0]);
@@ -201,6 +214,8 @@
deliveredData = [];
failedData = [];
let totalMessages = 0;
for (var dateString in data) {
if (data.hasOwnProperty(dateString)) {
const dateParts = dateString.split('-');
@@ -209,11 +224,38 @@
labels.push(formattedDate);
deliveredData.push(data[dateString].sms.delivered);
failedData.push(data[dateString].sms.failure);
// Calculate the total number of messages
totalMessages += data[dateString].sms.delivered + data[dateString].sms.failure;
}
}
createChart('#weeklyChart', labels, deliveredData, failedData);
createTable('weeklyTable', 'activityChart', labels, deliveredData, failedData);
// Check if there are no messages sent
const subTitle = document.querySelector(`#activityChartContainer .chart-subtitle`);
if (totalMessages === 0) {
// Remove existing chart and render the alert message
d3.select('#weeklyChart').selectAll('*').remove();
d3.select('#weeklyChart')
.append('div')
.html(`
<div class="usa-alert usa-alert--info usa-alert--slim">
<div class="usa-alert__body">
<p class="usa-alert__text">
No messages sent in the last 7 days
</p>
</div>
</div>
`);
// Hide the subtitle
if (subTitle) {
subTitle.style.display = 'none';
}
} else {
// If there are messages, create the chart and table
createChart('#weeklyChart', labels, deliveredData, failedData);
createTable('weeklyTable', 'activityChart', labels, deliveredData, failedData);
}
return data;
})
.catch(error => console.error('Error fetching daily stats:', error));

View File

@@ -0,0 +1,57 @@
document.addEventListener('DOMContentLoaded', () => {
const sidenavItems = document.querySelectorAll('.usa-sidenav__item > .parent-link');
let lastPath = window.location.pathname;
let debounceTimeout = null;
sidenavItems.forEach((link) => {
const parentItem = link.parentElement;
const sublist = parentItem.querySelector('.usa-sidenav__sublist');
const targetHref = link.getAttribute('href');
// initialize the menu to open the correct submenu based on the current route
if (window.location.pathname.startsWith(targetHref)) {
parentItem.classList.add('open');
link.setAttribute('aria-expanded', 'true');
}
link.addEventListener('click', (event) => {
const currentPath = window.location.pathname;
// prevent default behavior only if navigating to the same route
if (currentPath === targetHref) {
event.preventDefault();
return;
}
if (sublist && !parentItem.classList.contains('open')) {
// debounce the menu update to avoid flickering
clearTimeout(debounceTimeout);
debounceTimeout = setTimeout(() => {
parentItem.classList.add('open');
link.setAttribute('aria-expanded', 'true');
}, 50);
}
});
});
// handle browser back/forward navigation
window.addEventListener('popstate', () => {
const currentPath = window.location.pathname;
// sync menu state
sidenavItems.forEach((link) => {
const parentItem = link.parentElement;
const targetHref = link.getAttribute('href');
if (currentPath.startsWith(targetHref)) {
parentItem.classList.add('open');
link.setAttribute('aria-expanded', 'true');
} else {
parentItem.classList.remove('open');
link.setAttribute('aria-expanded', 'false');
}
});
lastPath = currentPath;
});
});

View File

@@ -14,7 +14,7 @@
document.getElementById('message').innerText = `${sms_sent.toLocaleString()} sent / ${sms_remaining_messages.toLocaleString()} remaining`;
// Calculate minimum width for "Messages Sent" as 1% of the total chart width
var minSentPercentage = 0.02; // Minimum width as a percentage of total messages (1% in this case)
var minSentPercentage = (sms_sent === 0) ? 0 : 0.02;
var minSentValue = totalMessages * minSentPercentage;
var displaySent = Math.max(sms_sent, minSentValue);
var displayRemaining = totalMessages - displaySent;

View File

@@ -0,0 +1,4 @@
document.addEventListener('DOMContentLoaded', function() {
var timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
document.cookie = `timezone=${timeZone}; path=/`;
})

Binary file not shown.

View File

@@ -9,6 +9,9 @@ $failed: color('gray-cool-20');
&.usage {
height: units(4);
}
svg {
overflow: visible;
}
}
#totalMessageChartContainer {

View File

@@ -8,7 +8,7 @@
width: 100%;
max-width: 464px;
box-sizing: border-box;
padding: units(1);
padding: units(2);
background: color('gray-cool-10');
border: 1px solid color('gray-cool-10');
border-radius: 5px;

File diff suppressed because it is too large Load Diff

View File

@@ -9,6 +9,10 @@ in the form $setting: value,
@use "uswds-core" with (
$theme-font-type-sans: "public-sans",
$theme-card-border-radius: 0,
$theme-card-gap: 4,
$theme-card-border-width: 2px,
$theme-card-border-color: "ink",
$theme-show-notifications: false,
$theme-banner-max-width: "desktop-lg",
$theme-grid-container-max-width: "desktop-lg",

View File

@@ -34,6 +34,11 @@ $path: '/static/images/';
// Dependencies from GOV.UK Frontend, packaged to be specific to this application
@import './govuk-frontend/all';
// Custom overrides
.govuk-link {
font-weight: bold;
}
// Specific to this application
@import 'local/typography';
@import 'grids';

View File

@@ -8,6 +8,7 @@ from notifications_utils import DAILY_MESSAGE_LIMIT
class Config(object):
SIMULATED_SMS_NUMBERS = ("+14254147755", "+14254147167")
NOTIFY_APP_NAME = "admin"
NOTIFY_ENVIRONMENT = getenv("NOTIFY_ENVIRONMENT", "development")
API_HOST_NAME = getenv("API_HOST_NAME", "localhost")
@@ -87,6 +88,8 @@ class Config(object):
],
}
FEATURE_ABOUT_PAGE_ENABLED = getenv("FEATURE_ABOUT_PAGE_ENABLED", "false") == "true"
def _s3_credentials_from_env(bucket_prefix):
return {

View File

@@ -14,7 +14,7 @@ Learn how to [personalize messages](/using-notify/guidance) to increase response
Learn about message _parts_ and [how limits are calculated](/using-notify/pricing).
5. ## Start sending messages
To remove the restrictions of Trial Mode and begin sending messages to clients complete the [Live Campaign Form](https://airtable.com/appe4n7jYOALPLcyU/shrIPWnLTw9U1fclL).
To remove the restrictions of Trial Mode and begin sending messages to clients complete the <a class="usa-link usa-link--external" href="https://docs.google.com/forms/d/1fnaBtxuGf3q-OdGVyt2LqBKvp9_P21kmKJa0yIK8rWM/edit">Go-Live Form</a>.
Well respond within one business day.
### Questions?

View File

@@ -41,14 +41,8 @@ class ValidGovEmail:
if field.data == "":
return
from flask import url_for
message = "Enter a public sector email address."
message = """
Enter a public sector email address or
<a class="usa-link" href="{}">find out who can use Notify</a>
""".format(
url_for("main.features")
)
if not is_gov_user(field.data.lower()):
raise ValidationError(message)

View File

@@ -16,6 +16,7 @@ from app import (
)
from app.formatters import format_date_numeric, format_datetime_numeric, get_time_left
from app.main import main
from app.main.views.user_profile import set_timezone
from app.statistics_utils import get_formatted_percentage
from app.utils import (
DELIVERED_STATUSES,
@@ -39,6 +40,7 @@ def old_service_dashboard(service_id):
@main.route("/services/<uuid:service_id>")
@user_has_permissions()
def service_dashboard(service_id):
if session.get("invited_user_id"):
session.pop("invited_user_id", None)
session["service_id"] = service_id
@@ -323,13 +325,19 @@ def aggregate_template_usage(template_statistics, sort_key="count"):
key=lambda x: x["template_id"],
):
template_stats = list(v)
first_stat = template_stats[0] if template_stats else None
templates.append(
{
"template_id": k,
"template_name": template_stats[0]["template_name"],
"template_type": template_stats[0]["template_type"],
"template_name": first_stat.get("template_name"),
"template_type": first_stat.get("template_type"),
"count": sum(s["count"] for s in template_stats),
"created_by": first_stat.get("created_by"),
"created_by_id": first_stat.get("created_by_id"),
"last_used": first_stat.get("last_used"),
"status": first_stat.get("status"),
"template_folder": first_stat.get("template_folder"),
"template_folder_id": first_stat.get("template_folder_id"),
}
)
@@ -402,11 +410,13 @@ def get_dashboard_partials(service_id):
def get_dashboard_totals(statistics):
for msg_type in statistics.values():
msg_type["failed_percentage"] = get_formatted_percentage(
msg_type["failed"], msg_type["requested"]
)
msg_type["show_warning"] = float(msg_type["failed_percentage"]) > 3
return statistics
@@ -465,6 +475,8 @@ def get_months_for_financial_year(year, time_format="%B"):
def get_current_month_for_financial_year(year):
# Setting the timezone here because we need to set it somewhere.
set_timezone()
current_month = datetime.now().month
return current_month

View File

@@ -1,36 +1,50 @@
import os
from flask import abort, current_app, redirect, render_template, request, url_for
from flask import (
abort,
current_app,
jsonify,
redirect,
render_template,
request,
url_for,
)
from flask_login import current_user
from app import status_api_client
from app.formatters import apply_html_class, convert_markdown_template
from app.main import main
from app.main.views.pricing import CURRENT_SMS_RATE
from app.main.views.sub_navigation_dictionaries import features_nav, using_notify_nav
from app.main.views.sub_navigation_dictionaries import (
about_notify_nav,
using_notify_nav,
)
from app.utils.user import user_is_logged_in
from notifications_utils.url_safe_token import generate_token
# Hook to check for feature flags
@main.before_request
def check_feature_flags():
if request.path.startswith("/about") and not current_app.config.get(
"FEATURE_ABOUT_PAGE_ENABLED", False
):
abort(404)
@main.route("/test/feature-flags")
def test_feature_flags():
return jsonify(
{"FEATURE_ABOUT_PAGE_ENABLED": current_app.config["FEATURE_ABOUT_PAGE_ENABLED"]}
)
@main.route("/")
def index():
if current_user and current_user.is_authenticated:
return redirect(url_for("main.choose_account"))
token = generate_token(
str(request.remote_addr),
current_app.config["SECRET_KEY"],
current_app.config["DANGEROUS_SALT"],
)
url = os.getenv("LOGIN_DOT_GOV_INITIAL_SIGNIN_URL")
# handle unit tests
if url is not None:
url = url.replace("NONCE", token)
url = url.replace("STATE", token)
return render_template(
"views/signedout.html",
sms_rate=CURRENT_SMS_RATE,
counts=status_api_client.get_count_of_live_services_and_organizations(),
initial_signin_url=url,
)
@@ -86,44 +100,6 @@ def callbacks():
return redirect(url_for("main.documentation"), 301)
# --- Features page set --- #
@main.route("/features")
@user_is_logged_in
def features():
return render_template("views/features.html", navigation_links=features_nav())
@main.route("/features/roadmap", endpoint="roadmap")
@user_is_logged_in
def roadmap():
return render_template("views/roadmap.html", navigation_links=features_nav())
@main.route("/features/sms")
@user_is_logged_in
def features_sms():
return render_template(
"views/features/text-messages.html", navigation_links=features_nav()
)
@main.route("/features/security", endpoint="security")
@user_is_logged_in
def security():
return render_template("views/security.html", navigation_links=features_nav())
@main.route("/features/using_notify")
@user_is_logged_in
def using_notify():
return (
render_template("views/using-notify.html", navigation_links=features_nav()),
410,
)
@main.route("/using-notify/delivery-status")
@user_is_logged_in
def message_status():
@@ -178,6 +154,69 @@ def trial_mode_new():
)
@main.route("/using-notify/best-practices")
@user_is_logged_in
def best_practices():
return render_template(
"views/guides/best-practices.html",
navigation_links=using_notify_nav(),
)
@main.route("/using-notify/best-practices/clear-goals")
@user_is_logged_in
def clear_goals():
return render_template(
"views/guides/clear-goals.html",
navigation_links=using_notify_nav(),
)
@main.route("/using-notify/best-practices/rules-and-regulations")
@user_is_logged_in
def rules_and_regulations():
return render_template(
"views/guides/rules-and-regulations.html",
navigation_links=using_notify_nav(),
)
@main.route("/using-notify/best-practices/establish-trust")
@user_is_logged_in
def establish_trust():
return render_template(
"views/guides/establish-trust.html",
navigation_links=using_notify_nav(),
)
@main.route("/using-notify/best-practices/write-for-action")
@user_is_logged_in
def write_for_action():
return render_template(
"views/guides/write-for-action.html",
navigation_links=using_notify_nav(),
)
@main.route("/using-notify/best-practices/multiple-languages")
@user_is_logged_in
def multiple_languages():
return render_template(
"views/guides/multiple-languages.html",
navigation_links=using_notify_nav(),
)
@main.route("/using-notify/best-practices/benchmark-performance")
@user_is_logged_in
def benchmark_performance():
return render_template(
"views/guides/benchmark-performance.html",
navigation_links=using_notify_nav(),
)
@main.route("/using-notify/guidance")
@user_is_logged_in
def guidance_index():
@@ -187,6 +226,46 @@ def guidance_index():
)
@main.route("/contact")
def contact():
return render_template(
"views/contact.html",
navigation_links=about_notify_nav(),
)
@main.route("/about")
def about_notify():
return render_template(
"views/about/about.html",
navigation_links=about_notify_nav(),
)
@main.route("/about/security")
def about_security():
return render_template(
"views/about/security.html",
navigation_links=about_notify_nav(),
)
@main.route("/about/why-text-messaging")
def why_text_messaging():
return render_template(
"views/about/why-text-messaging.html",
navigation_links=about_notify_nav(),
)
@main.route("/join-notify")
def join_notify():
return render_template(
"views/join-notify.html",
navigation_links=about_notify_nav(),
)
@main.route("/using-notify/guidance/create-and-send-messages")
@user_is_logged_in
def create_and_send_messages():
@@ -214,17 +293,29 @@ def send_files_by_email():
)
@main.route("/studio")
def studio():
return render_template(
"views/studio.html",
)
@main.route("/acceptable-use-policy")
def acceptable_use_policy():
return render_template(
"views/acceptable-use-policy.html",
)
# --- Redirects --- #
@main.route("/roadmap", endpoint="old_roadmap")
@main.route("/information-security", endpoint="information_security")
@main.route("/using_notify", endpoint="old_using_notify")
@main.route("/information-risk-management", endpoint="information_risk_management")
@main.route("/integration_testing", endpoint="old_integration_testing")
def old_page_redirects():
redirects = {
"main.old_roadmap": "main.roadmap",
"main.information_security": "main.using_notify",
"main.old_using_notify": "main.using_notify",
"main.information_risk_management": "main.security",

View File

@@ -17,14 +17,12 @@ def accept_invite(token):
and current_user.email_address.lower() != invited_user.email_address.lower()
):
message = Markup(
"""
Youre signed in as {}.
f"""
Youre signed in as {current_user.email_address}.
This invite is for another email address.
<a href={} class="usa-link">Sign out</a>
<a href={url_for("main.sign_out")} class="usa-link">Sign out</a>
and click the link again to accept this invite.
""".format(
current_user.email_address, url_for("main.sign_out")
)
"""
)
flash(message=message)

View File

@@ -77,6 +77,11 @@ def invite_user(service_id, user_id=None):
form.login_authentication.data = "sms_auth"
if form.validate_on_submit():
if not form.permissions or len(form.permissions) == 0:
return render_template(
"views/user-has-no-permissions.html",
user_to_invite=user_to_invite,
)
email_address = form.email_address.data
invited_user = InvitedUser.create(
current_user.id,

View File

@@ -5,7 +5,16 @@ from collections import OrderedDict
from datetime import datetime
from io import StringIO
from flask import Response, abort, flash, render_template, request, url_for
from flask import (
Response,
abort,
current_app,
flash,
render_template,
request,
session,
url_for,
)
from notifications_python_client.errors import HTTPError
from app import (
@@ -25,6 +34,7 @@ from app.main.forms import (
DateFilterForm,
RequiredDateFilterForm,
)
from app.main.views.send import _send_notification
from app.statistics_utils import (
get_formatted_percentage,
get_formatted_percentage_two_dp,
@@ -771,3 +781,80 @@ def _get_user_row(r):
row.append(r["password_changed_at"])
row.append(r["state"])
return row
@main.route(
"/platform-admin/load-test",
methods=["POST", "GET"],
)
@user_is_platform_admin
def load_test():
"""
The load test assumes that a service called 'Test service' exists. It will make
the platform admin a member of this service if the platform is not already. All
messagese will be sent in this service.
"""
service = _find_load_test_service()
_prepare_load_test_service(service)
example_template = _find_example_template(service)
# Simulated success
for _ in range(0, 250):
session["recipient"] = current_app.config["SIMULATED_SMS_NUMBERS"][0]
session["placeholders"] = {
"day of week": "Monday",
"color": "blue",
"phone number": current_app.config["SIMULATED_SMS_NUMBERS"][0],
}
_send_notification(service["id"], example_template["id"])
# Simulated failure
for _ in range(0, 250):
session["recipient"] = current_app.config["SIMULATED_SMS_NUMBERS"][1]
session["placeholders"] = {
"day of week": "Wednesday",
"color": "orange",
"phone number": current_app.config["SIMULATED_SMS_NUMBERS"][1],
}
_send_notification(service["id"], example_template["id"])
# For now, just redirect to the splash page so we know it's done
return render_template(
"views/platform-admin/splash-page.html",
)
def _find_example_template(service):
templates = service_api_client.get_service_templates(service["id"])
templates = templates["data"]
for template in templates:
# template = json.loads(template)
if template["name"] == "Example text message template":
return template
raise Exception("Could not find example template for load test")
def _find_load_test_service():
services = service_api_client.find_services_by_name("Test service")
services = services["data"]
for service in services:
if service["name"] == "Test service":
return service
raise Exception("Could not find 'Test service' for load test")
def _prepare_load_test_service(service):
users = user_api_client.get_all_users()
for user in users:
if user["platform_admin"] == "t":
try:
user_api_client.add_user_to_service(
service["id"], user["id"], ["send messages"]
)
except Exception:
current_app.logger.exception(
"Couldnt add user, may already be part of service"
)
pass

View File

@@ -1,7 +1,7 @@
import base64
import json
import uuid
from datetime import datetime, timedelta
from urllib.parse import unquote
from flask import (
abort,
@@ -161,17 +161,29 @@ def set_up_your_profile():
debug_msg(f"Enter set_up_your_profile with request.args {request.args}")
code = request.args.get("code")
state = request.args.get("state")
state_key = f"login-state-{unquote(state)}"
stored_state = unquote(redis_client.get(state_key).decode("utf8"))
if state != stored_state:
current_app.logger.error(f"State Error: {state} != {stored_state}")
abort(403)
login_gov_error = request.args.get("error")
if redis_client.get(f"invitedata-{state}") is None:
access_token = sign_in._get_access_token(code, state)
user_email = redis_client.get(f"user_email-{state}")
user_uuid = redis_client.get(f"user_uuid-{state}")
new_user = user_email is None or user_uuid is None
if new_user: # invite path
access_token = sign_in._get_access_token(code)
debug_msg("Got the access token for login.gov")
user_email, user_uuid = sign_in._get_user_email_and_uuid(access_token)
debug_msg(
f"Got the user_email {user_email} and user_uuid {user_uuid} from login.gov"
)
invite_data = state.encode("utf8")
invite_data = base64.b64decode(invite_data)
invite_data = redis_client.get(f"invitedata-{state}")
invite_data = json.loads(invite_data)
debug_msg(f"final state {invite_data}")
invited_user_id = invite_data["invited_user_id"]
@@ -193,10 +205,7 @@ def set_up_your_profile():
form = SetupUserProfileForm()
if (
form.validate_on_submit()
and redis_client.get(f"invitedata-{state}") is not None
):
if form.validate_on_submit() and not new_user:
invite_data, user_email, user_uuid, invited_user_email_address = (
get_invite_data_from_redis(state)
)
@@ -221,6 +230,7 @@ def set_up_your_profile():
activate_user(user["id"])
debug_msg("activated user")
usr = User.from_id(user["id"])
usr.add_to_service(
invite_data["service_id"],
invite_data["permissions"],

View File

@@ -1,4 +1,4 @@
from flask import redirect
from flask import send_from_directory
from app.main import main
@@ -6,6 +6,4 @@ from app.main import main
@main.route("/.well-known/security.txt", methods=["GET"])
@main.route("/security.txt", methods=["GET"])
def security_policy():
# See GDS Way security policy which this implements
# https://gds-way.cloudapps.digital/standards/vulnerability-disclosure.html#vulnerability-disclosure-and-security-txt
return redirect("https://vdp.cabinetoffice.gov.uk/.well-known/security.txt")
return send_from_directory(".well-known", "security.txt")

View File

@@ -1,3 +1,4 @@
import os
import time
import uuid
from string import ascii_uppercase
@@ -33,6 +34,7 @@ from app.main.forms import (
SetSenderForm,
get_placeholder_form_instance,
)
from app.main.views.user_profile import set_timezone
from app.models.user import Users
from app.s3_client.s3_csv_client import (
get_csv_metadata,
@@ -481,6 +483,7 @@ def send_one_off_step(service_id, template_id, step_index):
link_to_upload=(
request.endpoint == "main.send_one_off_step" and step_index == 0
),
errors=form.errors if form.errors else None,
)
@@ -737,7 +740,7 @@ def all_placeholders_in_session(placeholders):
def get_send_test_page_title(template_type, entering_recipient, name=None):
if entering_recipient:
return "Send {}".format(name)
return "Select recipients"
return "Personalize this message"
@@ -800,9 +803,15 @@ def get_skip_link(step_index, template):
)
@user_has_permissions("send_messages", restrict_admin_usage=True)
def send_one_off_to_myself(service_id, template_id):
db_template = current_service.get_template_with_user_permission_or_403(
template_id, current_user
)
current_app.logger.info("Send one off to myself")
try:
db_template = current_service.get_template_with_user_permission_or_403(
template_id, current_user
)
except Exception:
current_app.logger.exception("Couldnt get template for one off")
# Use 406 just because we're limited to certain codes here and it will point us back to a problem here
abort(406)
if db_template["template_type"] not in ("sms", "email"):
abort(404)
@@ -941,8 +950,8 @@ def preview_notification(service_id, template_id):
)
@user_has_permissions("send_messages", restrict_admin_usage=True)
def send_notification(service_id, template_id):
scheduled_for = session.pop("scheduled_for", "")
recipient = get_recipient()
if not recipient:
return redirect(
url_for(
@@ -951,53 +960,10 @@ def send_notification(service_id, template_id):
template_id=template_id,
)
)
upload_id = _send_notification(service_id, template_id)
keys = []
values = []
for k, v in session["placeholders"].items():
keys.append(k)
values.append(v)
data = ",".join(keys)
vals = ",".join(values)
data = f"{data}\r\n{vals}"
filename = (
f"one-off-{uuid.uuid4()}.csv" # {current_user.name} removed from filename
)
my_data = {"filename": filename, "template_id": template_id, "data": data}
upload_id = s3upload(service_id, my_data)
# To debug messages that the user reports have not been sent, we log
# the csv filename and the job id. The user will give us the file name,
# so we can search on that to obtain the job id, which we can use elsewhere
# on the API side to find out what happens to the message.
current_app.logger.info(
hilite(
f"One-off file: {filename} job_id: {upload_id} s3 location: service-{service_id}-notify/{upload_id}.csv"
)
)
form = CsvUploadForm()
form.file.data = my_data
form.file.name = filename
check_message_output = check_messages(service_id, template_id, upload_id, 2)
if "You cannot send to" in check_message_output:
return check_messages(service_id, template_id, upload_id, 2)
job_api_client.create_job(
upload_id,
service_id,
scheduled_for=scheduled_for,
template_id=template_id,
original_file_name=filename,
notification_count=1,
valid="True",
)
session.pop("recipient")
session.pop("placeholders")
session.pop("recipient", "")
session.pop("placeholders", "")
# We have to wait for the job to run and create the notification in the database
time.sleep(0.1)
@@ -1045,6 +1011,63 @@ def send_notification(service_id, template_id):
)
def _send_notification(service_id, template_id):
scheduled_for = session.pop("scheduled_for", "")
keys = []
values = []
# Guarantee that the real phone number comes last, because some
# users will have placeholders like "add your second phone number"
# or something like as custom placeholders.
for k, v in session["placeholders"].items():
if k != "phone number":
keys.append(k)
values.append(v)
if "phone number" in session["placeholders"].keys():
keys.append("phone number")
values.append(session["placeholders"]["phone number"])
data = ",".join(keys)
vals = ",".join(values)
data = f"{data}\r\n{vals}"
filename = (
f"one-off-{uuid.uuid4()}.csv" # {current_user.name} removed from filename
)
my_data = {"filename": filename, "template_id": template_id, "data": data}
upload_id = s3upload(service_id, my_data)
# To debug messages that the user reports have not been sent, we log
# the csv filename and the job id. The user will give us the file name,
# so we can search on that to obtain the job id, which we can use elsewhere
# on the API side to find out what happens to the message.
current_app.logger.info(
hilite(
f"One-off file: {filename} job_id: {upload_id} s3 location: {service_id}-service-notify/{upload_id}.csv"
)
)
# For load testing we want to skip these checks. They are doing some fine-grained
# comparison about what is in the preview, but the load test just blast messages
# and doesn't care about the preview.
if os.getenv("NOTIFY_ENVIRONMENT") not in ("development", "staging", "demo"):
form = CsvUploadForm()
form.file.data = my_data
form.file.name = filename
check_message_output = check_messages(service_id, template_id, upload_id, 2)
if "You cannot send to" in check_message_output:
return check_messages(service_id, template_id, upload_id, 2)
job_api_client.create_job(
upload_id,
service_id,
scheduled_for=scheduled_for,
template_id=template_id,
original_file_name=filename,
notification_count=1,
valid="True",
)
return upload_id
def get_email_reply_to_address_from_session():
if session.get("sender_id"):
return current_service.get_email_reply_to_address(session["sender_id"])[
@@ -1075,6 +1098,7 @@ def get_spreadsheet_column_headings_from_template(template):
def get_recipient():
set_timezone()
if {"recipient", "placeholders"} - set(session.keys()):
return None

View File

@@ -1,6 +1,8 @@
import os
import secrets
import time
import uuid
from urllib.parse import unquote
import jwt
import requests
@@ -16,19 +18,20 @@ from flask import (
)
from flask_login import current_user
from app import login_manager, user_api_client
from app import login_manager, redis_client, user_api_client
from app.main import main
from app.main.views.index import error
from app.main.views.verify import activate_user
from app.models.user import User
from app.utils import hide_from_search_engines
from app.utils.login import is_safe_redirect_url
from app.utils.time import is_less_than_days_ago
from app.utils.login import get_id_token, is_safe_redirect_url
# from app.utils.time import is_less_than_days_ago
from app.utils.user import is_gov_user
from notifications_utils.url_safe_token import generate_token
def _reformat_keystring(orig):
def _reformat_keystring(orig): # pragma: no cover
arr = orig.split("-----")
begin = arr[1]
end = arr[3]
@@ -37,7 +40,7 @@ def _reformat_keystring(orig):
return new_keystring
def _get_access_token(code, state):
def _get_access_token(code): # pragma: no cover
client_id = os.getenv("LOGIN_DOT_GOV_CLIENT_ID")
access_token_url = os.getenv("LOGIN_DOT_GOV_ACCESS_TOKEN_URL")
keystring = os.getenv("LOGIN_PEM")
@@ -60,17 +63,28 @@ def _get_access_token(code, state):
url = f"{base_url}{cli_assert}&{cli_assert_type}&{code_param}&grant_type=authorization_code"
headers = {"Authorization": "Bearer %s" % token}
response = requests.post(url, headers=headers)
if response.json().get("access_token") is None:
# Capture the response json here so it hopefully shows up in error reports
current_app.logger.error(
response_json = response.json()
id_token = get_id_token(response_json)
nonce = id_token["nonce"]
nonce_key = f"login-nonce-{unquote(nonce)}"
stored_nonce = redis_client.get(nonce_key).decode("utf8")
if nonce != stored_nonce:
current_app.logger.error(f"Nonce Error: {nonce} != {stored_nonce}")
abort(403)
try:
access_token = response_json["access_token"]
except KeyError as e:
current_app.logger.exception(
f"Error when getting access token {response.json()} #notify-admin-1505"
)
raise KeyError(f"'access_token' {response.json()}")
access_token = response.json()["access_token"]
raise KeyError(f"'access_token' {response.json()}") from e
return access_token
def _get_user_email_and_uuid(access_token):
def _get_user_email_and_uuid(access_token): # pragma: no cover
headers = {"Authorization": "Bearer %s" % access_token}
user_info_url = os.getenv("LOGIN_DOT_GOV_USER_INFO_URL")
user_attributes = requests.get(
@@ -82,10 +96,11 @@ def _get_user_email_and_uuid(access_token):
return user_email, user_uuid
def _do_login_dot_gov():
def _do_login_dot_gov(): # $ pragma: no cover
# start login.gov
code = request.args.get("code")
state = request.args.get("state")
login_gov_error = request.args.get("error")
if login_gov_error:
@@ -94,10 +109,19 @@ def _do_login_dot_gov():
)
raise Exception(f"Could not login with login.gov {login_gov_error}")
elif code and state:
verify_key = f"login-verify_email-{unquote(state)}"
verify_path = bool(redis_client.get(verify_key))
if not verify_path:
state_key = f"login-state-{unquote(state)}"
stored_state = unquote(redis_client.get(state_key).decode("utf8"))
if state != stored_state:
current_app.logger.error(f"State Error: {state} != {stored_state}")
abort(403)
# activate the user
try:
access_token = _get_access_token(code, state)
access_token = _get_access_token(code)
user_email, user_uuid = _get_user_email_and_uuid(access_token)
if not is_gov_user(user_email):
current_app.logger.error(
@@ -111,12 +135,17 @@ def _do_login_dot_gov():
f"Retrieved user {user['id']} from db #notify-admin-1505"
)
# Check if the email needs to be revalidated
is_fresh_email = is_less_than_days_ago(
user["email_access_validated_at"], 90
)
if not is_fresh_email:
return verify_email(user, redirect_url)
# Temporary disabling of this until we figure out what is happening.
# # Check if the email needs to be revalidated
# is_fresh_email = is_less_than_days_ago(
# user["email_access_validated_at"], 90
# )
# if not is_fresh_email:
# # send email verify
# ttl = 24 * 60 * 60
# verify_key = f"login-verify_email-{unquote(state)}"
# redis_client.set(verify_key, state, ex=ttl)
# return verify_email(user, redirect_url)
usr = User.from_email_address(user["email_address"])
current_app.logger.info(f"activating user {usr.id} #notify-admin-1505")
@@ -124,12 +153,13 @@ def _do_login_dot_gov():
except BaseException as be: # noqa B036
current_app.logger.error(f"Error signing in: {be} #notify-admin-1505 ")
error(401)
return redirect(url_for("main.show_accounts_or_dashboard", next=redirect_url))
# end login.gov
def verify_email(user, redirect_url):
def verify_email(user, redirect_url): # pragma: no cover
user_api_client.send_verify_code(user["id"], "email", None, redirect_url)
title = "Email resent" if request.args.get("email_resent") else "Check your email"
redirect_url = request.args.get("next")
@@ -138,19 +168,41 @@ def verify_email(user, redirect_url):
)
def _handle_e2e_tests(redirect_url):
current_app.logger.warning("E2E TESTS ARE ENABLED.")
current_app.logger.warning(
"If you are getting a 404 on signin, comment out E2E vars in .env file!"
)
user = user_api_client.get_user_by_email(os.getenv("NOTIFY_E2E_TEST_EMAIL"))
activate_user(user["id"])
return redirect(url_for("main.show_accounts_or_dashboard", next=redirect_url))
def _handle_e2e_tests(redirect_url): # pragma: no cover
try:
current_app.logger.warning("E2E TESTS ARE ENABLED.")
current_app.logger.warning(
"If you are getting a 404 on signin, comment out E2E vars in .env file!"
)
user = user_api_client.get_user_by_email(os.getenv("NOTIFY_E2E_TEST_EMAIL"))
activate_user(user["id"])
# Check if the redirect URL is present and safe before proceeding further
if redirect_url and is_safe_redirect_url(redirect_url):
return redirect(redirect_url)
return redirect(
url_for(
"main.show_accounts_or_dashboard",
next="EMAIL_IS_OK",
)
)
except Exception as e:
stre = str(e)
stre = stre.replace(" ", "_")
# Trying to get a message back to playwright somehow since we can't raise an error
return redirect(url_for(f"https://{stre}"))
@main.route("/sign-in", methods=(["GET", "POST"]))
@hide_from_search_engines
def sign_in():
def sign_in(): # pragma: no cover
redirect_url = request.args.get("next")
if os.getenv("NOTIFY_E2E_TEST_EMAIL"):
return _handle_e2e_tests(redirect_url)
# If we have to revalidated the email, send the message
# via email and redirect to the "verify your email page"
# and don't proceed further with login
@@ -162,26 +214,31 @@ def sign_in():
):
return email_verify_template
redirect_url = request.args.get("next")
if os.getenv("NOTIFY_E2E_TEST_EMAIL"):
return _handle_e2e_tests(redirect_url)
if current_user and current_user.is_authenticated:
if redirect_url and is_safe_redirect_url(redirect_url):
return redirect(redirect_url)
return redirect(url_for("main.show_accounts_or_dashboard"))
token = generate_token(
ttl = 24 * 60 * 60
state = generate_token(
str(request.remote_addr),
current_app.config["SECRET_KEY"],
current_app.config["DANGEROUS_SALT"],
)
state_key = f"login-state-{unquote(state)}"
redis_client.set(state_key, state, ex=ttl)
nonce = secrets.token_urlsafe()
nonce_key = f"login-nonce-{unquote(nonce)}"
redis_client.set(nonce_key, nonce, ex=ttl)
url = os.getenv("LOGIN_DOT_GOV_INITIAL_SIGNIN_URL")
# handle unit tests
if url is not None:
url = url.replace("NONCE", token)
url = url.replace("STATE", token)
url = url.replace("NONCE", nonce)
url = url.replace("STATE", state)
return render_template(
"views/signin.html",
again=bool(redirect_url),
@@ -190,5 +247,5 @@ def sign_in():
@login_manager.unauthorized_handler
def sign_in_again():
def sign_in_again(): # pragma: no cover
return redirect(url_for("main.sign_in", next=request.path))

View File

@@ -1,60 +1,67 @@
def features_nav():
def using_notify_nav():
nav_items = [
{"name": "Get started", "link": "main.get_started"},
{
"name": "Best Practices",
"link": "main.best_practices",
"sub_navigation_items": [
{
"name": "Clear goals",
"link": "main.clear_goals",
},
{
"name": "Rules and regulations",
"link": "main.rules_and_regulations",
},
{
"name": "Establish trust",
"link": "main.establish_trust",
},
{
"name": "Write for action",
"link": "main.write_for_action",
},
{
"name": "Multiple languages",
"link": "main.multiple_languages",
},
{
"name": "Benchmark performance",
"link": "main.benchmark_performance",
},
],
},
{"name": "Trial mode", "link": "main.trial_mode_new"},
{"name": "Tracking usage", "link": "main.pricing"},
{"name": "Delivery Status", "link": "main.message_status"},
{"name": "Guidance", "link": "main.guidance_index"},
]
return nav_items
def about_notify_nav():
return [
{
"name": "Features",
"link": "main.features",
"name": "About Notify",
"link": "main.about_notify",
"sub_navigation_items": [
# {
# "name": "Text messages",
# "link": "main.features_sms",
# },
{
"name": "Why text messaging",
"link": "main.why_text_messaging",
},
{
"name": "Security",
"link": "main.about_security",
},
],
},
{
"name": "Roadmap",
"link": "main.roadmap",
"name": "Join Notify",
"link": "main.join_notify",
},
{
"name": "Security",
"link": "main.security",
},
]
def using_notify_nav():
return [
{
"name": "Get started",
"link": "main.get_started",
},
{
"name": "Trial mode",
"link": "main.trial_mode_new",
},
{
"name": "Tracking usage",
"link": "main.pricing",
},
{
"name": "Delivery status",
"link": "main.message_status",
},
{
"name": "Guidance",
"link": "main.guidance_index",
# "sub_navigation_items": [
# {
# "name": "Formatting",
# "link": "main.edit_and_format_messages",
# },
# {
# "name": "Send files by email",
# "link": "main.send_files_by_email",
# },
# ]
# {
# "name": "API documentation",
# "link": "main.documentation",
# },
"name": "Contact us",
"link": "main.contact",
},
]

View File

@@ -29,6 +29,7 @@ from app.main.forms import (
TwoFactorForm,
)
from app.models.user import User
from app.utils import hilite
from app.utils.user import user_is_gov_user, user_is_logged_in
from notifications_utils.url_safe_token import check_token
@@ -189,32 +190,19 @@ def user_profile_mobile_number_delete():
@main.route("/user-profile/mobile-number/authenticate", methods=["GET", "POST"])
@user_is_logged_in
def user_profile_mobile_number_authenticate():
# Validate password for form
def _check_password(pwd):
return user_api_client.verify_password(current_user.id, pwd)
form = ConfirmPasswordForm(_check_password)
if NEW_MOBILE not in session:
return redirect(url_for(".user_profile_mobile_number"))
if form.validate_on_submit():
session[NEW_MOBILE_PASSWORD_CONFIRMED] = True
current_user.send_verify_code(to=session[NEW_MOBILE])
create_mobile_number_change_event(
user_id=current_user.id,
updated_by_id=current_user.id,
original_mobile_number=current_user.mobile_number,
new_mobile_number=session[NEW_MOBILE],
)
return redirect(url_for(".user_profile_mobile_number_confirm"))
return render_template(
"views/user-profile/authenticate.html",
thing="mobile number",
form=form,
back_link=url_for(".user_profile_mobile_number_confirm"),
session[NEW_MOBILE_PASSWORD_CONFIRMED] = True
current_user.send_verify_code(to=session[NEW_MOBILE])
create_mobile_number_change_event(
user_id=current_user.id,
updated_by_id=current_user.id,
original_mobile_number=current_user.mobile_number,
new_mobile_number=session[NEW_MOBILE],
)
return redirect(url_for(".user_profile_mobile_number_confirm"))
@main.route("/user-profile/mobile-number/confirm", methods=["GET", "POST"])
@@ -288,3 +276,15 @@ def user_profile_disable_platform_admin_view():
return render_template(
"views/user-profile/disable-platform-admin-view.html", form=form
)
def set_timezone():
# Cookie is set in dashboard.html on page load
try:
timezone = request.cookies.get("timezone", "US/Eastern")
current_app.logger.debug(hilite(f"User's timezone is {timezone}"))
serialized_user = current_user.serialize()
if serialized_user["preferred_timezone"] is not timezone:
current_user.update(preferred_timezone=timezone)
except Exception:
current_app.logger.exception(hilite("Can't get timezone"))

View File

@@ -1,3 +1,4 @@
import os
from datetime import datetime
from flask import abort, current_app, request, session
@@ -58,6 +59,7 @@ class User(JSONModel, UserMixin):
super().__init__(_dict)
self.permissions = _dict.get("permissions", {})
self._platform_admin = _dict["platform_admin"]
self.preferred_timezone = _dict.get("preferred_timezone", "America/New_York")
@classmethod
def from_id(cls, user_id):
@@ -199,7 +201,7 @@ class User(JSONModel, UserMixin):
@property
def is_gov_user(self):
is_gov = is_gov_user(self.email_address)
current_app.logger.info(f"User {self.id} is_gov_user: {is_gov}")
# current_app.logger.info(f"User {self.id} is_gov_user: {is_gov}")
return is_gov
@property
@@ -208,9 +210,9 @@ class User(JSONModel, UserMixin):
@property
def platform_admin(self):
current_app.logger.warn(
f"Checking User {self.id} for platform admin: {self._platform_admin}"
)
# current_app.logger.warning(
# f"Checking User {self.id} for platform admin: {self._platform_admin}"
# )
return self._platform_admin and not session.get(
"disable_platform_admin_view", False
)
@@ -218,6 +220,14 @@ class User(JSONModel, UserMixin):
def has_permissions(
self, *permissions, restrict_admin_usage=False, allow_org_user=False
):
# TODO need this for load test, but breaks unit tests
if self.platform_admin and os.getenv("NOTIFY_ENVIRONMENT") in (
"development",
"staging",
"demo",
):
return True
unknown_permissions = set(permissions) - all_ui_permissions
if unknown_permissions:
raise TypeError(
@@ -232,26 +242,31 @@ class User(JSONModel, UserMixin):
# we shouldn't have any pages that require permissions, but don't specify a service or organization.
# use @user_is_platform_admin for platform admin only pages
# raise NotImplementedError
current_app.logger.warn(f"VIEW ARGS ARE {request.view_args}")
# current_app.logger.warning(f"VIEW ARGS ARE {request.view_args}")
pass
log_msg = f"has_permissions user: {self.id} service: {service_id}"
# platform admins should be able to do most things (except eg send messages, or create api keys)
if self.platform_admin and not restrict_admin_usage:
current_app.logger.warn(f"{log_msg} true because user is platform_admin")
current_app.logger.debug(
"has_permissions is true because user is platform_admin"
)
return True
if org_id:
value = self.belongs_to_organization(org_id)
current_app.logger.warn(f"{log_msg} org: {org_id} returning {value}")
current_app.logger.debug(
f"has_permissions returns org: {org_id} returning {value}"
)
return value
if not permissions and self.belongs_to_service(service_id):
current_app.logger.warn(f"{log_msg} True because belongs_to_service")
current_app.logger.debug("has_permissions True because belongs_to_service")
return True
if any(self.permissions_for_service(service_id) & set(permissions)):
current_app.logger.warn(f"{log_msg} permissions valid")
current_app.logger.debug(
"has_permissions returns True because permissions valid"
)
return True
from app.models.service import Service
@@ -259,7 +274,7 @@ class User(JSONModel, UserMixin):
org_value = allow_org_user and self.belongs_to_organization(
Service.from_id(service_id).organization_id
)
current_app.logger.warn(f"{log_msg} returning {org_value}")
current_app.logger.debug(f"has_permissions returning {org_value}")
return org_value
def permissions_for_service(self, service_id):
@@ -267,7 +282,7 @@ class User(JSONModel, UserMixin):
def has_permission_for_service(self, service_id, permission):
has_permission = permission in self.permissions_for_service(service_id)
current_app.logger.warn(
current_app.logger.debug(
f"has_permission_for_service user: {self.id} service: {service_id} "
f"permission: {permission} retuning {has_permission}"
)
@@ -548,17 +563,17 @@ class InvitedUser(JSONModel):
return cls.by_id(invited_user_id) if invited_user_id else None
def has_permissions(self, *permissions):
current_app.logger.warn(
f"Checking invited user {self.id} for permissions: {permissions}"
)
# current_app.logger.warning(
# f"Checking invited user {self.id} for permissions: {permissions}"
# )
if self.status == "cancelled":
return False
return set(self.permissions) > set(permissions)
def has_permission_for_service(self, service_id, permission):
current_app.logger.warn(
f"Checking invited user {self.id} for permission: {permission} on service {service_id}"
)
# current_app.logger.warn(
# f"Checking invited user {self.id} for permission: {permission} on service {service_id}"
# )
if self.status == "cancelled":
return False
return self.service == service_id and permission in self.permissions

View File

@@ -40,15 +40,17 @@ class HeaderNavigation(Navigation):
"support": {
"support",
},
"features": {
"features",
"features_sms",
"roadmap",
"security",
"best_practices": {
"best_practices",
"clear_goals",
"rules_and_regulations",
"establish_trust",
"write_for_action",
"multiple_languages",
"benchmark_performance",
},
"using_notify": {
"get_started",
"using_notify",
"pricing",
"trial_mode_new",
"message_status",

View File

@@ -1,3 +1,6 @@
import json
from app.extensions import redis_client
from app.notify_client import NotifyAdminAPIClient
@@ -15,10 +18,19 @@ class BillingAPIClient(NotifyAdminAPIClient):
)
def get_free_sms_fragment_limit_for_year(self, service_id, year=None):
frag_limit = redis_client.get(f"free-sms-fragment-limit-{service_id}-{year}")
if frag_limit is not None:
return json.loads(frag_limit.decode("utf-8"))
result = self.get(
"/service/{0}/billing/free-sms-fragment-limit".format(service_id),
params=dict(financial_year_start=year),
)
redis_client.set(
f"free-sms-fragment-limit-{service_id}-{year}",
json.dumps(result["free_sms_fragment_limit"]),
ex=30,
)
return result["free_sms_fragment_limit"]
def create_or_update_free_sms_fragment_limit(

View File

@@ -1,8 +1,16 @@
import json
import secrets
from urllib.parse import unquote
from flask import current_app, request
from app import redis_client
from app.notify_client import NotifyAdminAPIClient, _attach_current_user, cache
from app.utils.user_permissions import (
all_ui_permissions,
translate_permissions_from_ui_to_db,
)
from notifications_utils.url_safe_token import generate_token
class InviteApiClient(NotifyAdminAPIClient):
@@ -32,8 +40,35 @@ class InviteApiClient(NotifyAdminAPIClient):
"folder_permissions": folder_permissions,
}
data = _attach_current_user(data)
ttl = 24 * 60 * 60
# make and store the state
state = generate_token(
str(request.remote_addr),
current_app.config["SECRET_KEY"],
current_app.config["DANGEROUS_SALT"],
)
state_key = f"login-state-{unquote(state)}"
redis_client.set(state_key, state, ex=ttl)
# make and store the nonce
nonce = secrets.token_urlsafe()
nonce_key = f"login-nonce-{unquote(nonce)}"
redis_client.set(nonce_key, nonce, ex=ttl) # save the nonce to redis.
data["nonce"] = nonce # This is passed to api for the invite url.
data["state"] = state # This is passed to api for the invite url.
resp = self.post(url=f"/service/{service_id}/invite", data=data)
return resp["data"]
resp_data = resp["data"]
invite_data_key = f"invitedata-{unquote(state)}"
redis_invite_data = resp["invite"]
redis_invite_data = json.dumps(redis_invite_data)
redis_client.set(invite_data_key, redis_invite_data, ex=ttl)
return resp_data
def get_invites_for_service(self, service_id):
return self.get(f"/service/{service_id}/invite")["data"]
@@ -64,7 +99,34 @@ class InviteApiClient(NotifyAdminAPIClient):
self.post(url=f"/service/{service_id}/invite/{invited_user_id}", data=data)
def resend_invite(self, service_id, invited_user_id):
self.post(url=f"/service/{service_id}/invite/{invited_user_id}/resend", data={})
ttl = 24 * 60 * 60
# make and store the state
state = generate_token(
str(request.remote_addr),
current_app.config["SECRET_KEY"],
current_app.config["DANGEROUS_SALT"],
)
state_key = f"login-state-{unquote(state)}"
redis_client.set(state_key, state, ex=ttl)
# make and store the nonce
nonce = secrets.token_urlsafe()
nonce_key = f"login-nonce-{unquote(nonce)}"
redis_client.set(nonce_key, nonce, ex=ttl)
data = {
"nonce": nonce,
"state": state,
}
resp = self.post(
url=f"/service/{service_id}/invite/{invited_user_id}/resend", data=data
)
invite_data_key = f"invitedata-{unquote(state)}"
redis_invite_data = resp["invite"]
redis_invite_data = json.dumps(redis_invite_data)
redis_client.set(invite_data_key, redis_invite_data, ex=ttl)
@cache.delete("service-{service_id}")
@cache.delete("user-{invited_user_id}")

View File

@@ -1,3 +1,4 @@
import json
from datetime import datetime, timezone
from app.extensions import redis_client
@@ -517,7 +518,18 @@ class ServiceAPIClient(NotifyAdminAPIClient):
return int(count)
def get_global_notification_count(self, service_id):
return self.get("/service/{}/notification-count".format(service_id))
notification_count = redis_client.get(f"notification-count-{service_id}")
if notification_count is not None:
return json.loads(notification_count.decode("utf-8"))
notification_count = self.get(
"/service/{}/notification-count".format(service_id)
)
redis_client.set(
f"notification-count-{service_id}", json.dumps(notification_count), ex=30
)
return notification_count
def get_service_invite_data(self, redis_key):
"""

View File

@@ -2,6 +2,7 @@ from flask import current_app
from notifications_python_client.errors import HTTPError
from app.notify_client import NotifyAdminAPIClient, cache
from app.utils import hilite
from app.utils.user_permissions import translate_permissions_from_ui_to_db
ALLOWED_ATTRIBUTES = {
@@ -109,13 +110,14 @@ class UserApiClient(NotifyAdminAPIClient):
raise
def send_verify_code(self, user_id, code_type, to, next_string=None):
data = {"to": to}
if next_string:
data["next"] = next_string
if code_type == "email":
data["email_auth_link_host"] = self.admin_url
endpoint = "/user/{0}/{1}-code".format(user_id, code_type)
current_app.logger.warn(f"Sending verify_code {code_type} to {user_id}")
endpoint = f"/user/{user_id}/{code_type}-code"
current_app.logger.warn(hilite(f"Sending verify_code {code_type} to {user_id}"))
self.post(endpoint, data=data)
def send_verify_email(self, user_id, to):
@@ -166,7 +168,7 @@ class UserApiClient(NotifyAdminAPIClient):
@cache.delete("user-{user_id}")
def add_user_to_service(self, service_id, user_id, permissions, folder_permissions):
# permissions passed in are the combined UI permissions, not DB permissions
endpoint = "/service/{}/users/{}".format(service_id, user_id)
endpoint = f"/service/{service_id}/users/{user_id}"
data = {
"permissions": [
{"permission": x}

View File

@@ -29,7 +29,10 @@ def get_s3_object(
aws_secret_access_key=secret_key,
region_name=region,
)
s3 = session.resource("s3", config=AWS_CLIENT_CONFIG)
s3 = session.resource(
"s3",
config=AWS_CLIENT_CONFIG,
)
obj = s3.Object(bucket_name, filename)
# This 'proves' that use of moto in the relevant tests in test_send.py
# mocks everything related to S3. What you will see in the logs is:

View File

@@ -1,3 +1,4 @@
import os
import uuid
from flask import current_app
@@ -10,13 +11,13 @@ from app.s3_client import (
)
from notifications_utils.s3 import s3upload as utils_s3upload
FILE_LOCATION_STRUCTURE = "service-{}-notify/{}.csv"
NEW_FILE_LOCATION_STRUCTURE = "{}-service-notify/{}.csv"
def get_csv_location(service_id, upload_id):
return (
current_app.config["CSV_UPLOAD_BUCKET"]["bucket"],
FILE_LOCATION_STRUCTURE.format(service_id, upload_id),
NEW_FILE_LOCATION_STRUCTURE.format(service_id, upload_id),
current_app.config["CSV_UPLOAD_BUCKET"]["access_key_id"],
current_app.config["CSV_UPLOAD_BUCKET"]["secret_access_key"],
current_app.config["CSV_UPLOAD_BUCKET"]["region"],
@@ -33,6 +34,14 @@ def s3upload(service_id, filedata):
bucket_name, file_location, access_key, secret_key, region = get_csv_location(
service_id, upload_id
)
if bucket_name == "":
exp_bucket = current_app.config["CSV_UPLOAD_BUCKET"]["bucket"]
exp_region = current_app.config["CSV_UPLOAD_BUCKET"]["region"]
tier = os.getenv("NOTIFY_ENVIRONMENT")
raise Exception(
f"NO BUCKET NAME SHOULD BE: {exp_bucket} WITH REGION {exp_region} TIER {tier}"
)
utils_s3upload(
filedata=filedata["data"],
region=region,

View File

@@ -6,11 +6,9 @@
<html lang="{{ htmlLang | default('en') }}" class="{{ htmlClasses }}">
<head>
<title>
{% block pageTitle %}
{% block per_page_title %}{% endblock %} Notify.gov
{% endblock %}
{% block pageTitle %}{% block per_page_title %}{% endblock %} Notify.gov{% endblock %}
</title>
{% include "new/components/head.html" %}
{% include "components/head.html" %}
</head>
<body class="usa-template__body {{ bodyClasses }}">
<script nonce="{{ csp_nonce() }}">document.body.className = ((document.body.className) ? document.body.className + ' js-enabled' : 'js-enabled');</script>
@@ -32,8 +30,8 @@
{% block header %}
{% include 'new/components/usa_banner.html' %}
{% include 'new/components/header.html' %}
{% include 'components/usa_banner.html' %}
{% include 'components/header.html' %}
{% endblock %}
{% block main %}
@@ -47,15 +45,42 @@
{% endblock %}
{% block content %}
{% block flash_messages %}
{% include 'new/components/flash_messages.html' %}
{% include 'components/flash_messages.html' %}
{% endblock %}
{% block maincolumn_content %}
<div class="grid-row">
{% if navigation_links %}
<div class="tablet:grid-col-2 margin-bottom-4">
{{ sub_navigation(navigation_links) }}
<nav class="nav">
<ul class="usa-sidenav">
{% for item in navigation_links %}
<li class="usa-sidenav__item">
<a href="{{ url_for(item.link) }}"
class="parent-link {% if request.endpoint.startswith(item['link']) or item.sub_navigation_items | selectattr('link', 'equalto', request.endpoint) | list | length > 0 %} usa-current {% endif %}"
aria-haspopup="true"
aria-expanded="{{ 'true' if request.endpoint.startswith(item['link']) else 'false' }}">
{{ item.name }}
</a>
{% if item.sub_navigation_items %}
<ul class="usa-sidenav__sublist" role="menu">
{% for sub_item in item.sub_navigation_items %}
<li role="menuitem">
<a href="{{ url_for(sub_item.link.split('#')[0]) }}#{{ sub_item.link.split('#')[1] }}"
class="{% if request.endpoint == sub_item['link'] %}usa-current bold{% endif %}">
{{ sub_item.name }}
</a>
</li>
{% endfor %}
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
</nav>
</div>
<div class="tablet:grid-col-10 padding-left-4 usa-prose site-prose">
<div class="tablet:grid-col-10 tablet:padding-left-4 usa-prose site-prose">
{% else %}
<div class="tablet:grid-col-10">
{% endif %}
@@ -78,11 +103,11 @@
{% set meta_suffix = "Built by the " + long_link + commit_hash %}
{% endif %}
{% include "new/components/footer.html" %}
{% include "components/footer.html" %}
{% if current_user.is_authenticated %}
{% block sessionUserWarning %}
<dialog class="usa-modal" id="sessionTimer" aria-labelledby="sessionTimerHeading" aria-describedby="timerWarning">
<dialog class="usa-modal" id="sessionTimer" aria-labelledby="sessionTimerHeading" aria-describedby="timeLeft">
<div class="usa-modal__content">
<div class="usa-modal__main">
<h2 class="usa-modal__heading" id="sessionTimerHeading">

View File

@@ -1,2 +1,4 @@
<a href="{%- if params.href %}{{ params.href }}{% else %}#{% endif -%}" class="usa-link usa-back-link display-inline-flex margin-bottom-3 {%- if params.classes %} {{ params.classes }}{% endif -%}"
{%- for attribute, value in params.attributes %} {{attribute}}="{{value}}"{% endfor %}>{{ (params.html | safe if params.html else (params.text if params.text else 'Back')) }}</a>
<nav class="usa-breadcrumb" aria-label="Breadcrumb">
<a href="{{ params.href.url or params.href or '#' }}" class="usa-link usa-back-link display-inline-flex {{ params.classes or '' }}"
{%- for attribute, value in params.attributes %} {{ attribute }}="{{ value }}" {% endfor %}>{{ params.html | safe or params.href.text or 'Back' }}</a>
</nav>

View File

@@ -1,15 +0,0 @@
# Footer
## Installation
See the [main README quick start guide](https://github.com/alphagov/govuk-frontend#quick-start) for how to install this component.
## Guidance and Examples
Find out when to use the footer component in your service in the [GOV.UK Design System](https://design-system.service.gov.uk/components/footer).
## Component options
Use options to customize the appearance, content and behavior of a component when using a macro, for example, changing the text.
See [options table](https://design-system.service.gov.uk/components/footer/#options-example-default) for details.

View File

@@ -1,115 +0,0 @@
[
{
"name": "meta",
"type": "object",
"required": false,
"description": "Object containing options for the meta navigation.",
"params": [
{
"name": "visuallyHiddenTitle",
"type": "string",
"description": "Title for a meta item section, which defaults to Support links"
},
{
"name": "html",
"type": "string",
"description": "HTML to add to the meta section of the footer, which will appear below any links specified using meta.items."
},
{
"name": "text",
"type": "string",
"description": "Text to add to the meta section of the footer, which will appear below any links specified using meta.items. If meta.html is specified, this option is ignored."
},
{
"name": "items",
"type": "array",
"required": false,
"description": "Array of items for use in the meta section of the footer.",
"params": [
{
"name": "text",
"type": "string",
"required": false,
"description": "List item text in the meta section of the footer."
},
{
"name": "href",
"type": "string",
"required": false,
"description": "List item href attribute in the meta section of the footer."
},
{
"name": "attributes",
"type": "object",
"required": false,
"description": "HTML attributes (for example data attributes) to add to the anchor in the footer meta section."
}
]
}
]
},
{
"name": "navigation",
"type": "array",
"required": false,
"description": "Array of items for use in the navigation section of the footer.",
"params": [
{
"name": "title",
"type": "string",
"required": false,
"description": "Title for a section"
},
{
"name": "columns",
"type": "integer",
"required": false,
"description": "Amount of columns to display items in navigation section of the footer."
},
{
"name": "items",
"type": "array",
"required": false,
"description": "Array of items to display in the list in navigation section of the footer.",
"params": [
{
"name": "text",
"type": "string",
"required": false,
"description": "List item text in the navigation section of the footer."
},
{
"name": "href",
"type": "string",
"required": false,
"description": "List item href attribute in the navigation section of the footer. Both `text` and `href` attributes need to be present to create a link."
},
{
"name": "attributes",
"type": "object",
"required": false,
"description": "HTML attributes (for example data attributes) to add to the anchor in the footer navigation section."
}
]
}
]
},
{
"name": "containerClasses",
"type": "string",
"required": false,
"description": "Classes that can be added to the inner container, useful if you want to make the footer full width."
},
{
"name": "classes",
"type": "string",
"required": false,
"description": "Classes to add to the footer component container."
},
{
"name": "attributes",
"type": "object",
"required": false,
"description": "HTML attributes (for example data attributes) to add to the footer component container."
}
]

View File

@@ -1,3 +0,0 @@
{% macro usaFooter(params) %}
{%- include "./template.njk" -%}
{% endmacro %}

View File

@@ -1,85 +0,0 @@
<footer class="usa-footer usa-footer--big">
{# <div class="grid-container usa-footer__return-to-top">
<a href="#">Return to top</a>
</div> #}
<div class="usa-footer__primary-section">
<div class="grid-container">
<div class="padding-y-1">
{% if params.meta %}
<h2 class="usa-sr-only">{{ params.meta.visuallyHiddenTitle | default("Support links") }}</h2>
{% if params.meta.items %}
{% for item in params.meta.items %}
<a class="usa-footer__link" href="{{ item.href }}" {% for attribute, value in item.attributes %}
{{attribute}}="{{value}}" {% endfor %}>
{{ item.text }}
</a>
{% endfor %}
{% endif %}
{% if params.meta.text or params.meta.html %}
<div>
{{ params.meta.html | safe if params.meta.html else params.meta.text }}
</div>
{% endif %}
{% endif %}
</div>
</div>
</div>
</div>
</footer>
<div class="usa-identifier site-identifier">
<section class="usa-identifier__section usa-identifier__section--masthead" aria-label="Agency identifier,,,,,,">
<div class="usa-identifier__container">
<div class="usa-identifier__logos"><a href="javascript:void(0);" class="usa-identifier__logo">
<img class="usa-identifier__logo-img" src="{{ params.assetsPath | default('/static/images') }}/gsa-logo.svg" alt="GSA Logo" role="img" width="48"
height="48">
</a></div>
<section class="usa-identifier__identity" aria-label="Agency description">
<p class="usa-identifier__identity-domain">beta.notify.gov</p>
<p class="usa-identifier__identity-disclaimer">An official website of the <a href="https://gsa.gov">General
Services Administration</a></p>
</section>
</div>
</section>
<nav class="usa-identifier__section usa-identifier__section--required-links" aria-label="Important links">
<div class="usa-identifier__container">
<ul class="usa-identifier__required-links-list">
<li class="usa-identifier__required-links-item">
<a href="https://www.gsa.gov/about-us" class="usa-identifier__required-link">About GSA</a>
</li>
<li class="usa-identifier__required-links-item">
<a href="https://www.gsa.gov/website-information/accessibility-aids"
class="usa-identifier__required-link">Accessibility support</a>
</li>
<li class="usa-identifier__required-links-item">
<a href="https://www.gsa.gov/reference/freedom-of-information-act-foia"
class="usa-identifier__required-link">FOIA requests</a>
</li>
<li class="usa-identifier__required-links-item">
<a href="https://www.gsa.gov/reference/civil-rights-programs/notification-and-federal-employee-antidiscrimination-and-retaliation-act-of-2002"
class="usa-identifier__required-link">No FEAR Act data</a>
</li>
<li class="usa-identifier__required-links-item">
<a href="https://www.gsaig.gov/" class="usa-identifier__required-link">Office of the Inspector General</a>
</li>
<li class="usa-identifier__required-links-item">
<a href="https://www.gsa.gov/reference/reports/budget-performance"
class="usa-identifier__required-link">Performance reports</a>
</li>
<li class="usa-identifier__required-links-item">
<a href="https://www.gsa.gov/website-information/website-policies"
class="usa-identifier__required-link">Privacy policy</a>
</li>
</ul>
</div>
</nav>
<section class="usa-identifier__section usa-identifier__section--usagov"
aria-label="Government information and services">
<div class="usa-identifier__container">
<div class="usa-identifier__usagov-description">
Looking for U.S. government information and services?
</div>
<a href="https://www.usa.gov/" class="usa-link">Visit USA.gov</a>
</div>
</section>
</div>

View File

@@ -1,15 +0,0 @@
# Header
## Installation
See the [main README quick start guide](https://github.com/alphagov/govuk-frontend#quick-start) for how to install this component.
## Guidance and Examples
Find out when to use the header component in your service in the [GOV.UK Design System](https://design-system.service.gov.uk/components/header).
## Component options
Use options to customize the appearance, content and behavior of a component when using a macro, for example, changing the text.
See [options table](https://design-system.service.gov.uk/components/header/#options-example-default) for details.

View File

@@ -1,88 +0,0 @@
[
{
"name": "homepageUrl",
"type": "string",
"required": false,
"description": "The url of the homepage. Defaults to /"
},
{
"name": "assetsPath",
"type": "string",
"required": false,
"description": "The public path for the assets folder. If not provided it defaults to /assets/images"
},
{
"name": "productName",
"type": "string",
"required": false,
"description": "Header title that is placed next to GOV.UK. Used for product names (i.e. Pay, Verify)"
},
{
"name": "serviceName",
"type": "string",
"required": false,
"description": "Header title that is placed next to GOV.UK. Used for product names (i.e. Pay, Verify)"
},
{
"name": "serviceUrl",
"type": "string",
"required": false,
"description": "Url for the service name anchor."
},
{
"name": "navigation",
"type": "array",
"required": false,
"description": "An array of navigation item objects.",
"params": [
{
"name": "text",
"type": "string",
"required": false,
"description": "Text of the navigation item."
},
{
"name": "href",
"type": "string",
"required": false,
"description": "Url of the navigation item anchor. Both `href` and `text` attributes for navigation items need to be provided to create an item."
},
{
"name": "active",
"type": "boolean",
"required": false,
"description": "Flag to mark the navigation item as active or not."
},
{
"name": "attributes",
"type": "object",
"required": false,
"description": "HTML attributes (for example data attributes) to add to the navigation item anchor."
}
]
},
{
"name": "navigationClasses",
"type": "string",
"required": false,
"description": "Classes for the navigation section of the header."
},
{
"name": "containerClasses",
"type": "string",
"required": false,
"description": "Classes for the container, useful if you want to make the header fixed width."
},
{
"name": "classes",
"type": "string",
"required": false,
"description": "Classes to add to the header container."
},
{
"name": "attributes",
"type": "object",
"required": false,
"description": "HTML attributes (for example data attributes) to add to the header container."
}
]

View File

@@ -1,3 +0,0 @@
{% macro usaHeader(params) %}
{%- include "./template.njk" -%}
{% endmacro %}

View File

@@ -1,105 +0,0 @@
<!-- usa banner -->
<section class="usa-banner site-banner" aria-label="Official website of the United States government,,,,,,">
<div class="usa-accordion">
<header class="usa-banner__header">
<div class="usa-banner__inner">
<div class="grid-col-auto">
<img aria-hidden="true" class="usa-banner__header-flag" src="/static/img/us_flag_small.png" alt="" />
</div>
<div class="grid-col-fill tablet:grid-col-auto" aria-hidden="true">
<p class="usa-banner__header-text">An official website of the United States government</p>
<p class="usa-banner__header-action">Heres how you know</p>
</div>
<button type="button" class="usa-accordion__button usa-banner__button" aria-expanded="false" aria-controls="gov-banner">
<span class="usa-banner__button-text">Heres how you know</span>
</button>
</div>
</header>
<div class="usa-banner__content usa-accordion__content" id="gov-banner" hidden="">
<div class="grid-row grid-gap-lg">
<div class="usa-banner__guidance tablet:grid-col-6">
<img class="usa-banner__icon usa-media-block__img" src="/static/img/icon-dot-gov.svg" role="img" alt="" aria-hidden="true">
<div class="usa-media-block__body">
<p>
<strong>Official websites use .gov</strong>
<br>
A <strong>.gov</strong> website belongs to an official government organization in the United States.
</p>
</div>
</div>
<div class="usa-banner__guidance tablet:grid-col-6">
<img class="usa-banner__icon usa-media-block__img" src="/static/img/icon-https.svg" role="img" alt="" aria-hidden="true">
<div class="usa-media-block__body">
<p>
<strong>Secure .gov websites use HTTPS</strong>
<br>
A <strong>lock</strong> ( <span class="icon-lock"><svg xmlns="http://www.w3.org/2000/svg" width="52" height="64" viewBox="0 0 52 64" class="usa-banner__lock-image" role="img" aria-labelledby="banner-lock-description" focusable="false"><title id="banner-lock-title">Lock</title><desc id="banner-lock-description">Locked padlock</desc><path fill="#000000" fill-rule="evenodd" d="M26 0c10.493 0 19 8.507 19 19v9h3a4 4 0 0 1 4 4v28a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4V32a4 4 0 0 1 4-4h3v-9C7 8.507 15.507 0 26 0zm0 8c-5.979 0-10.843 4.77-10.996 10.712L15 19v9h22v-9c0-6.075-4.925-11-11-11z"></path></svg></span> ) or <strong>https://</strong> means youve safely connected to the .gov website. Share sensitive information only on official, secure websites.
</p>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- usa header -->
<header class="usa-header usa-header--extended">
<div class="usa-nav-container">
<div class="usa-navbar">
<div class="usa-logo display-flex flex-align-center flex-justify" id="-logo">
<div class="logo-img display-flex">
<a href="/">
<span class="usa-sr-only">Notify.gov logo</span>
<image src="{{ params.assetsPath | default('/static/images') }}/notify-logo.png" alt="Notify.gov logo" xlink:href=""
class="usa-flag-logo margin-right-1"></image>
</a>
</div>
{% if params.navigation %}
<button type="button" class="usa-menu-btn">Menu</button>
{% endif %}
</div>
</div>
<nav aria-label="Primary navigation" class="usa-nav">
<div class="usa-nav__inner">
<button type="button" class="usa-nav__close">
<img src="/static/images/usa-icons/close.svg" role="img" alt="Close" />
</button>
<ul class="usa-nav__primary usa-accordion margin-right-1">
{% for item in params.navigation %}
{% if item.href and item.text %}
<li class="usa-nav__primary-item{{ ' is-current' if item.active }}">
<a class="usa-nav__link {{ ' usa-current' if item.active }}" href="{{ item.href }}" {% for attribute, value in
item.attributes %} {{attribute}}="{{value}}" {% endfor %}>
<span>{{ item.text }}</span>
</a>
</li>
{% endif %}
{% endfor %}
</ul>
<div class="usa-nav__secondary margin-bottom-6">
<ul class="usa-nav__secondary-links">
{% for item in params.secondaryNavigation %}
{% if item.href and item.text %}
<li class="usa-nav__secondary-item{{ ' is-current' if item.active }}">
<a class="usa-nav__link {{ ' usa-current' if item.active }}" href="{{ item.href }}" {% for attribute, value in
item.attributes %} {{attribute}}="{{value}}" {% endfor %}>
<span>{{ item.text }}</span>
</a>
</li>
{% endif %}
{% endfor %}
</ul>
<!-- <section aria-label="Search component">
<form class="usa-search usa-search--small margin-bottom-2" role="search">
<label class="usa-sr-only" for="search-field">Search</label>
<input class="usa-input" id="search-field" type="search" name="search" />
<button class="usa-button" type="submit">
<img src="/static/images/usa-icons-bg/search--white.svg" class="usa-search__submit-icon" alt="Search" />
</button>
</form>
</section> -->
</div>
</div>
</nav>
</div>
</header>

View File

@@ -1,7 +1,3 @@
<a href="{{ params.href | default('#content') }}" class="usa-skipnav{%- if params.classes %} {{ params.classes }}{% endif -%}"{%- for attribute, value in params.attributes %} {{ attribute }}="{{ value }}"{% endfor %}>
{{- params.html | safe if params.html else params.text -}}
</a>
<a class="usa-skipnav " href="#main-content">
Skip to main content
</a>

View File

@@ -4,9 +4,9 @@
template_type,
current_user,
link_current_item=False,
root_element='h1'
root_element='nav'
) %}
<{{ root_element }} class="font-body-lg folder-heading margin-bottom-0"{% if root_element == 'h1' %} id="page-header"{% endif %}>
<{{ root_element }} id="breadcrumb-template-folders" class="navigation-service usa-breadcrumb padding-top-0 padding-bottom-05" aria-label="Template folder path">
{% for folder in folders %}
{% if loop.last and not link_current_item %}
{% if folder.template_type or not folder.id %}
@@ -22,7 +22,10 @@
<span class="folder-heading-folder">{{ folder.name }}</span>
{% endif %}
{% else %}
<a href="{{ url_for('.choose_template', service_id=service_id, template_type=template_type) }}" title="Templates" class="usa-link {% if loop.length > 2 %}folder-heading-folder-root-truncated{% endif %}">Templates</a>
<a href="{{ url_for('.choose_template', service_id=service_id, template_type=template_type) }}" class="usa-link {% if loop.length > 2 %}folder-heading-folder-root-truncated{% endif %}">
<span class="usa-sr-only">Return to all</span>
Templates
</a>
{% endif %}
{% if not loop.last %}{{ folder_path_separator() }}{% endif %}
{% endif %}

View File

@@ -32,6 +32,9 @@
<li class="usa-identifier__required-links-item">
<a href="https://www.gsa.gov/about-us" class="usa-identifier__required-link">About GSA</a>
</li>
<li class="usa-identifier__required-links-item">
<a href="/studio" class="usa-identifier__required-link">About the Public Benefits Studio</a>
</li>
<li class="usa-identifier__required-links-item">
<a href="https://www.gsa.gov/website-information/accessibility-aids"
class="usa-identifier__required-link">Accessibility support</a>
@@ -51,6 +54,9 @@
<a href="https://www.gsa.gov/reference/reports/budget-performance"
class="usa-identifier__required-link">Performance reports</a>
</li>
<li class="usa-identifier__required-links-item">
<a href="/acceptable-use-policy" class="usa-identifier__required-link">Acceptable use policy</a>
</li>
<li class="usa-identifier__required-links-item">
<a href="https://www.gsa.gov/website-information/website-policies"
class="usa-identifier__required-link">Privacy policy</a>
@@ -58,16 +64,20 @@
</ul>
</div>
</nav>
<section class="usa-identifier__section usa-identifier__section--usagov"
<section class="usa-identifier__section"
aria-label="Github Repos">
<div class="usa-identifier__container">
<div class="usa-identifier__required-links-item">
Find us on Github:
</div>
<ul>
<li><a href="https://github.com/gsa/notifications-admin" class="usa-identifier__required-link">Notify.gov Admin repo</a></li>
<li><a href="https://github.com/gsa/notifications-api" class="usa-identifier__required-link">Notify.gov API repo</a></li>
</ul>
<ul class="usa-identifier__required-links-list">
<li class="usa-identifier__required-links-item">
<a href="https://github.com/gsa/notifications-admin" class="usa-identifier__required-link">Notify.gov Admin repo</a>
</li>
<li class="usa-identifier__required-links-item">
<a href="https://github.com/gsa/notifications-api" class="usa-identifier__required-link">Notify.gov API repo</a>
</li>
</ul>
</div>
</section>

View File

@@ -0,0 +1,44 @@
<ul class="usa-card-group grid-row flex-row">
{% for item in card_contents %}
<li class="usa-card grid-col mobile-lg:grid-col-12 tablet:grid-col-6 desktop:grid-col-4 {% if item.link %}linked-card linked-content{% endif %}">
{% if item.link %}
<a href="{{ item.link }}">
{% endif %}
<div class="usa-card__container">
{% if item.card_heading %}
<div class="usa-card__header">
<h3
class="usa-card__heading {% if text_align != 'left' or text_align is not defined %}text-center{% else %}text-left{% endif %} {% if item.link %}linked-card{% endif %}">
{{ item.card_heading }}
</h3>
{% if item.link %}
{% endif %}
</div>
{% endif %}
{% if item.svg_src or item.image_src%}
<div class="usa-card__media usa-card__media--inset">
{% if item.svg_src %}
<svg aria-hidden="true" focusable="false" role="img" class="best-practices_card_img">
<use xlink:href="{{asset_url('images/best-practices-card-sprite.svg')}}#{{item.svg_src}}"></use>
</svg>
{% endif %}
{% if item.image_src %}
<img class="best-practices_card_img" src="{{item.image_src}}" alt="{{ item.alt_text }}" />
{% endif %}
</div>
{% endif %}
{% if item.p_text %}
<div class="usa-card__body">
<p
class="{% if text_align != 'left' or text_align is not defined %}text-center{% else %}text-left{% endif %} {% if item.link %}linked-card{% endif %}">
{{item.p_text|safe}}
</p>
</div>
{% endif %}
</div>
{% if item.link %}
</a>
{% endif %}
</li>
{% endfor %}
</ul>

View File

@@ -0,0 +1,9 @@
{% macro circle_number(number) %}
<svg xmlns="http://www.w3.org/2000/svg" class="svg-circle-icon" width="24" height="24" viewBox="0 0 100 100">
<circle cx="50" cy="50" r="37" stroke="#005ea2" stroke-width="7" fill="none" />
<text x="50%" y="50%" text-anchor="middle" font-size="40" font-weight="bolder" fill="#005ea2" font-family="Arial"
dy=".35em">
{{ number }}
</text>
</svg>
{% endmacro %}

View File

@@ -16,7 +16,7 @@
<link rel="icon" type="image/png" sizes="16x16" href="{{ assetPath | default('/static') }}/images/favicon-16x16.png" />
<link rel="mask-icon" href="{{ assetPath | default('/static') }}/images/safari-pinned-tab.svg" color="#5bbad5">
<link rel="apple-touch-icon" sizes="180x180" href="{{ assetPath | default('/static') }}/images/apple-touch-icon.png">
<link rel="manifest" href="/site.webmanifest">
<link rel="manifest" href="{{ asset_url('images/site.webmanifest') }}">
<meta name="msapplication-TileColor" content="#da532c">
<link href="{{ assetPath | default('/static') }}/images/notify-dark-favicon.png" rel="icon" media="(prefers-color-scheme: dark)">
<meta name="theme-color" content="#ffffff">
@@ -30,7 +30,7 @@
<meta property="og:image" content="/static/images/notify-og-image.png">
{# google #}
<script type="text/javascript" src="{{ asset_url('js/gtm_head.js') }}"></script>
<meta name="google-site-verification" content="niWnSqImOWz6mVQTYqNb5tFK8HaKSB4b3ED4Z9gtUQ0" />
<meta name="google-site-verification" content="niWnSqImOWz6mVQTYqNb5tFK8HaKSB4b3ED4Z9gtUQ0" /> {# pragma: allowlist secret #}
{% if g.hide_from_search_engines %}
<meta name="robots" content="noindex" />
{% endif %}

View File

@@ -0,0 +1,112 @@
{% set is_about_page = request.path.startswith('/about') %}
{% set is_join_notify_page = request.path.startswith('/join-notify') %}
{% set is_contact_page = request.path.startswith('/contact') %}
{% set is_information_section = is_about_page or is_join_notify_page or is_contact_page %}
{% if current_user.is_authenticated %}
{% set navigation = [
{"href": url_for("main.show_accounts_or_dashboard"), "text": "Current service", "active": request.path.startswith('/accounts')},
{"href": url_for('main.get_started'), "text": "Using Notify", "active": request.path.startswith('/using-notify')},
{"href": url_for('main.support'), "text": "Contact us", "active": header_navigation.is_selected('support')}
] %}
{% if current_user.platform_admin %}
{% set navigation = navigation + [{"href": url_for('main.platform_admin_splash_page'), "text": "Platform admin", "active": header_navigation.is_selected('platform-admin')}] %}
{% else %}
{% set navigation = navigation + [{"href": url_for('main.user_profile'), "text": "User profile", "active": header_navigation.is_selected('user-profile')}] %}
{% endif %}
{% if current_service %}
{% if current_user.has_permissions('manage_service') %}
{% set secondaryNavigation = [
{"href": url_for('main.service_settings', service_id=current_service.id), "text": "Settings", "active": secondary_navigation.is_selected('settings')},
{"href": url_for('main.sign_out'), "text": "Sign out"}
] %}
{% else %}
{% set secondaryNavigation = [
{"href": url_for('main.sign_out'), "text": "Sign out"}
] %}
{% endif %}
{% else %}
{% set secondaryNavigation = [{"href": url_for('main.sign_out'), "text": "Sign out"}] %}
{% endif %}
{% else %}
{% set navigation = [
{"href": url_for('main.about_notify'), "text": "About Notify", "active": is_about_page},
{"href": url_for('main.join_notify'), "text": "Join Notify", "active": is_join_notify_page},
{"href": url_for('main.contact'), "text": "Contact us", "active": is_contact_page}
] %}
{% endif %}
<header class="usa-header usa-header--extended">
<div class="usa-nav-container">
<div class="usa-navbar">
<div class="display-flex flex-align-center flex-justify width-full">
<div class="usa-logo display-flex flex-align-center flex-justify" id="-logo">
<div class="logo-img display-flex">
<a href="/">
<span class="usa-sr-only">Notify.gov logo</span>
<img src="{{ (asset_path | default('/static')) + 'images/notify-logo.svg' }}" alt="Notify.gov logo"
class="usa-flag-logo margin-right-1">
</a>
</div>
{% if navigation %}
<button type="button" class="usa-menu-btn">Menu</button>
{% endif %}
</div>
{% if not current_user.is_authenticated and is_information_section%}
<div class="usa-nav__login">
<a class="usa-button usa-button login-button login-button--primary margin-right-2"
href="{{ initial_signin_url }}">Sign
in with <img src="{{ asset_url('images/logo-login.svg') }}" alt="Login.gov logo">
</a>
</div>
{% endif %}
</div>
</div>
<nav aria-label="Primary navigation" class="usa-nav">
<div class="usa-nav__inner">
<button type="button" class="usa-nav__close">
<img src="{{ asset_url('img/usa-icons/close.svg') }}" role="img" alt="Close" />
</button>
<ul class="usa-nav__primary usa-accordion margin-right-1">
{% for item in navigation %}
{% if item.href and item.text %}
<li class="usa-nav__primary-item{{ ' is-current' if item.active }}">
<a class="usa-nav__link {{ ' usa-current' if item.active }}" href="{{ item.href }}" {% for attribute, value
in item.attributes %} {{attribute}}="{{value}}" {% endfor %}>
<span>{{ item.text }}</span>
</a>
</li>
{% endif %}
{% endfor %}
</ul>
<div class="usa-nav__secondary margin-bottom-6">
<ul class="usa-nav__secondary-links">
{% if secondaryNavigation %}
{% for item in secondaryNavigation %}
{% if item.href and item.text %}
<li class="usa-nav__secondary-item{{ ' is-current' if item.active }}">
<a class="usa-nav__link {{ ' usa-current' if item.active }}" href="{{ item.href }}" {% for attribute,
value in item.attributes %} {{attribute}}="{{value}}" {% endfor %}>
<span>{{ item.text }}</span>
</a>
</li>
{% endif %}
{% endfor %}
{% endif %}
</ul>
</div>
</div>
</nav>
</div>
</header>

View File

@@ -17,7 +17,7 @@
{% endif %}
{% if show %}
<div class="live-search js-header" data-module="live-search" data-targets="{{ target_selector }}">
<div class="live-search js-header margin-top-0" data-module="live-search" data-targets="{{ target_selector }}">
{{ form.search(param_extensions=param_extensions) }}
<div aria-live="polite" class="live-search__status usa-sr-only"></div>
</div>

View File

@@ -1,7 +1,7 @@
{% if help %}
{% include 'partials/tour.html' %}
{% else %}
<nav class="nav margin-bottom-4">
<nav id="nav-main-nav" aria-label="Main navigation" class="nav margin-bottom-4">
<a class="usa-button margin-top-1 margin-bottom-5 width-full"
href="{{ url_for('.choose_template', service_id=current_service.id) }}">Send messages</a>
<ul class="usa-sidenav">
@@ -13,15 +13,6 @@
{% if not current_user.has_permissions('view_activity') %}
<li class="usa-sidenav__item"><a class="{{ casework_navigation.is_selected('sent-messages') }}" href="{{ url_for('.view_notifications', service_id=current_service.id, status='sending,delivered,failed') }}">Sent messages</a></li>
{% endif %}
{% if current_user.has_permissions('manage_service', allow_org_user=True) %}
{# <li class="usa-sidenav__item"><a class="{{ main_navigation.is_selected('usage') }}" href="{{ url_for('.usage', service_id=current_service.id) }}">Usage</a></li> #}
{% endif %}
<!-- {% if current_user.has_permissions('manage_api_keys', 'manage_service') %}
<li class="usa-sidenav__item"><a class="{{ main_navigation.is_selected('settings') }}" href="{{ url_for('.service_settings', service_id=current_service.id) }}">Settings</a></li>
{% endif %} -->
{% if current_user.has_permissions('manage_api_keys') %}
<!-- <li><a class="usa-link{{ main_navigation.is_selected('api-integration') }}" href="{{ url_for('.api_integration', service_id=current_service.id) }}">API integration</a></li> -->
{% endif %}
{% elif current_user.has_permissions(allow_org_user=True) %}
<li class="usa-sidenav__item"><a class="usa-link{{ main_navigation.is_selected('usage') }}" href="{{ url_for('.usage', service_id=current_service.id) }}">Usage</a></li>
<li class="usa-sidenav__item"><a class="usa-link{{ main_navigation.is_selected('team-members') }}" href="{{ url_for('.manage_users', service_id=current_service.id) }}">Team members</a></li>

View File

@@ -0,0 +1,18 @@
{% macro breadcrumb(title, parent_menu_title, url) %}
<nav class="navigation-service usa-breadcrumb padding-top-0">
<ol class="usa-breadcrumb__list">
<li class="usa-breadcrumb__list-item">
<span class="usa-breadcrumb__label">
<a href="{{ url_for(url) }}" class="usa-link navigation-organization-link">
{{ parent_menu_title }}
</a>
</span>
</li>
{% if title %}
<li class="usa-breadcrumb__list-item">
<span class="usa-breadcrumb__label">{{ title }}</span>
</li>
{% endif %}
</ol>
</nav>
{% endmacro %}

View File

@@ -1,4 +1,4 @@
<nav class="nav margin-bottom-4">
<nav id="nav-org-nav" aria-label="Organization navigation" class="nav margin-bottom-4">
<ul class="usa-sidenav">
<li class="usa-sidenav__item"><a class="usa-link{{ org_navigation.is_selected('dashboard') }}" href="{{ url_for('.organization_dashboard', org_id=current_org.id) }}">Usage</a></li>
<li class="usa-sidenav__item"><a class="usa-link{{ org_navigation.is_selected('team-members') }}" href="{{ url_for('.manage_org_users', org_id=current_org.id) }}">Team members</a></li>

View File

@@ -1,3 +1,4 @@
<nav id="nav-service-nav" aria-label="Service navigation">
<div class="navigation-service margin-top-5 display-flex flex-align-end flex-justify border-bottom padding-bottom-1">
{% if current_service.organization_id %}
{% if current_user.platform_admin or
@@ -5,11 +6,12 @@
<a href="{{ url_for('.organization_dashboard', org_id=current_service.organization_id) }}" class="usa-link navigation-organization-link">{{ current_service.organization_name }}</a>
{% endif %}
{% endif %}
<div class="font-body-2xl text-bold">
<span>
{{ current_service.name }}
{% if not current_service.active %}
<span class="navigation-service-name navigation-service-type--suspended">Suspended</span>
{% endif %}
</div>
</span>
<a href="{{ url_for('main.choose_account') }}" class="usa-link">Switch service</a>
</div>
</nav>

View File

@@ -1,5 +1,3 @@
{# usa banner #}
<section class="usa-banner site-banner" aria-label="Official website of the United States government,,,,,,">
<div class="usa-accordion">
<header class="usa-banner__header">

View File

@@ -1,86 +0,0 @@
{# setting navigation and secondarynavigation #}
{% if current_user.is_authenticated %}
{% set navigation = [
{"href": url_for("main.show_accounts_or_dashboard"), "text": "Current service", "active": header_navigation.is_selected('accounts-or-dashboard')},
{"href": url_for('main.get_started'), "text": "Using Notify", "active": header_navigation.is_selected('using_notify')},
{"href": url_for('main.features'), "text": "Features", "active": header_navigation.is_selected('features')},
{"href": url_for('main.support'), "text": "Contact us", "active": header_navigation.is_selected('support')}
] %}
{% if current_user.platform_admin %}
{% set navigation = navigation + [{"href": url_for('main.platform_admin_splash_page'), "text": "Platform admin", "active": header_navigation.is_selected('platform-admin')}] %}
{% else %}
{% set navigation = navigation + [{"href": url_for('main.user_profile'), "text": "User profile", "active": header_navigation.is_selected('user-profile')}] %}
{% endif %}
{% if current_service %}
{% if current_user.has_permissions('manage_service') %}
{% set secondaryNavigation = [
{"href": url_for('main.service_settings', service_id=current_service.id), "text": "Settings", "active": secondary_navigation.is_selected('settings')},
{"href": url_for('main.sign_out'), "text": "Sign out"}
] %}
{% else %}
{% set secondaryNavigation = [
{"href": url_for('main.sign_out'), "text": "Sign out"}
] %}
{% endif %}
{% else %}
{% set secondaryNavigation = [{"href": url_for('main.sign_out'), "text": "Sign out"}] %}
{% endif %}
{% endif %}
{# usa header #}
<header class="usa-header usa-header--extended">
<div class="usa-nav-container">
<div class="usa-navbar">
<div class="usa-logo display-flex flex-align-center flex-justify" id="-logo">
<div class="logo-img display-flex">
<a href="/">
<span class="usa-sr-only">Notify.gov logo</span>
<img src="{{ (asset_path | default('/static')) + 'images/notify-logo.svg' }}" alt="Notify.gov logo" class="usa-flag-logo margin-right-1">
</a>
</div>
{% if navigation %}
<button type="button" class="usa-menu-btn">Menu</button>
{% endif %}
</div>
</div>
<nav aria-label="Primary navigation" class="usa-nav">
<div class="usa-nav__inner">
<button type="button" class="usa-nav__close">
<img src="/static/images/usa-icons/close.svg" role="img" alt="Close" />
</button>
<ul class="usa-nav__primary usa-accordion margin-right-1">
{% for item in navigation %}
{% if item.href and item.text %}
<li class="usa-nav__primary-item{{ ' is-current' if item.active }}">
<a class="usa-nav__link {{ ' usa-current' if item.active }}" href="{{ item.href }}" {% for attribute, value in
item.attributes %} {{attribute}}="{{value}}" {% endfor %}>
<span>{{ item.text }}</span>
</a>
</li>
{% endif %}
{% endfor %}
</ul>
<div class="usa-nav__secondary margin-bottom-6">
<ul class="usa-nav__secondary-links">
{% if secondaryNavigation %}
{% for item in secondaryNavigation %}
{% if item.href and item.text %}
<li class="usa-nav__secondary-item{{ ' is-current' if item.active }}">
<a class="usa-nav__link {{ ' usa-current' if item.active }}" href="{{ item.href }}" {% for attribute, value in
item.attributes %} {{attribute}}="{{value}}" {% endfor %}>
<span>{{ item.text }}</span>
</a>
</li>
{% endif %}
{% endfor %}
{% endif %}
</ul>
</div>
</div>
</nav>
</div>
</header>

View File

@@ -1,302 +0,0 @@
{% extends "main_template.html" %}
{% from "components/banner.html" import banner %}
{% block headIcons %}
<link rel="shortcut icon" sizes="16x16 32x32 48x48" href="{{ asset_url('images/favicon.ico') }}" type="image/x-icon" />
<link rel="mask-icon" href="{{ asset_url('images/usa-mask-icon.svg') }}" color="{{ themeColor | default('#F0F0F0') }}">
<link rel="apple-touch-icon" sizes="180x180" href="{{ asset_url('images/apple-touch-icon.png') }}">
<link rel="apple-touch-icon" href="{{ asset_url('images/apple-touch-icon.png') }}">
{% endblock %}
{% block head %}
<link rel="stylesheet" media="screen" href="{{ asset_url('css/styles.css') }}" />
{% block extra_stylesheets %}
{% endblock %}
{% if g.hide_from_search_engines %}
<meta name="robots" content="noindex" />
{% endif %}
<meta name="google-site-verification" content="niWnSqImOWz6mVQTYqNb5tFK8HaKSB4b3ED4Z9gtUQ0" />
{% block meta_format_detection %}
<meta name="format-detection" content="telephone=no">
{% endblock %}
{% block meta %}
<meta property="og:site_name" content="Notify.gov">
<meta property="og:image" content="{{ asset_url('images/notify-og-image.png') }}">
{% endblock %}
<script type="text/javascript" src="{{ asset_url('js/gtm_head.js') }}"></script>
{% endblock %}
{% block pageTitle %}
{% block per_page_title %}{% endblock %} Notify.gov
{% endblock %}
{% block bodyStart %}
{% block extra_javascripts_before_body %}
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-WX5NGWF"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
{% endblock %}
{% endblock %}
{% block header %}
{% if current_user.is_authenticated %}
{% if current_user.platform_admin %}
{% set navigation = [
{
"href": url_for("main.show_accounts_or_dashboard"),
"text": "Current service",
"active": header_navigation.is_selected('accounts-or-dashboard')
},
{
"href": url_for('main.get_started'),
"text": "Using Notify",
"active": header_navigation.is_selected('using_notify')
},
{
"href": url_for('main.features'),
"text": "Features",
"active": header_navigation.is_selected('features')
},
{
"href": url_for('main.platform_admin_splash_page'),
"text": "Platform admin",
"active": header_navigation.is_selected('platform-admin')
},
{
"href": url_for('main.support'),
"text": "Contact us",
"active": header_navigation.is_selected('support')
}
] %}
{% if current_service %}
{% set secondaryNavigation = [
{
"href": url_for('main.service_settings', service_id=current_service.id),
"text": "Settings",
"active": secondary_navigation.is_selected('settings')
},
{
"href": url_for('main.sign_out'),
"text": "Sign out"
}
] %}
{% else %}
{% set secondaryNavigation = [
{
"href": url_for('main.sign_out'),
"text": "Sign out"
}
] %}
{% endif %}
{% else %}
{% set navigation = [
{
"href": url_for("main.show_accounts_or_dashboard"),
"text": "Current service",
"active": header_navigation.is_selected('accounts-or-dashboard')
},
{
"href": url_for('main.get_started'),
"text": "Using Notify",
"active": header_navigation.is_selected('using_notify')
},
{
"href": url_for('main.features'),
"text": "Features",
"active": header_navigation.is_selected('features')
},
{
"href": url_for('main.support'),
"text": "Contact us",
"active": header_navigation.is_selected('support')
},
{
"href": url_for('main.user_profile'),
"text": "User profile",
"active": header_navigation.is_selected('user-profile')
}
] %}
{% if current_service %}
{% set secondaryNavigation = [
{
"href": url_for('main.service_settings', service_id=current_service.id),
"text": "Settings",
"active": secondary_navigation.is_selected('settings')
},
{
"href": url_for('main.sign_out'),
"text": "Sign out"
}
] %}
{% else %}
{% set secondaryNavigation = [
{
"href": url_for('main.sign_out'),
"text": "Sign out"
}
] %}
{% endif %}
{% endif %}
{% else %}
<!-- Add navigation back after pilot -->
{# {% set navigation = [
{
"href": url_for('main.get_started'),
"text": "Using Notify",
"active": header_navigation.is_selected('using_notify')
},
{
"href": url_for('main.features'),
"text": "Features",
"active": header_navigation.is_selected('features')
},
{
"href": url_for('main.support'),
"text": "Contact us",
"active": header_navigation.is_selected('support')
},
{
"href": url_for('main.sign_in'),
"text": "Sign in",
"active": header_navigation.is_selected('sign-in')
}
] %} #}
{% endif %}
{{ usaHeader({
"homepageUrl": url_for('main.show_accounts_or_dashboard'),
"productName": "Notify",
"navigation": navigation,
"navigationClasses": "govuk-header__navigation--end",
"secondaryNavigation": secondaryNavigation,
"assetsPath": asset_path + "images"
}) }}
{% endblock %}
{% block footer %}
<!-- lines 179 - 251 can all be deleted and replaced with {% include "new/components/footer.html" %} -->
{% if current_service and current_service.research_mode %}
{% set meta_suffix = 'Built by the <a href="https://www.gsa.gov/about-us/organization/federal-acquisition-service/technology-transformation-services/tts-solutions" class="usa-link">Technology Transformation Services</a><span id="research-mode" class="research-mode">research mode</span>' %}
{% else %}
{% set commit_hash = ", Latest version: " + config['COMMIT_HASH'] %}
{% set long_link = '<a href="https://www.gsa.gov/about-us/organization/federal-acquisition-service/technology-transformation-services/tts-solutions" class="usa-link">Technology Transformation Services</a>' %}
{% set meta_suffix = "Built by the " + long_link + commit_hash %}
{% endif %}
{{ usaFooter({
"classes": "js-footer",
"navigation": [
{
"title": "About Notify",
"columns": 1,
"items": [
{
"href": url_for("main.features"),
"text": "Features"
},
{
"href": url_for("main.roadmap"),
"text": "Roadmap"
},
{
"href": url_for("main.security"),
"text": "Security"
},
]
},
{
"title": "Using Notify",
"columns": 1,
"items": [
{
"href": url_for("main.get_started"),
"text": "Get started"
},
{
"href": url_for("main.pricing"),
"text": "Pricing"
},
{
"href": url_for("main.trial_mode_new"),
"text": "Trial mode"
},
{
"href": url_for("main.message_status"),
"text": "Delivery status"
},
{
"href": url_for("main.guidance_index"),
"text": "Guidance"
},
{
"href": url_for("main.documentation"),
"text": "API documentation"
}
]
},
{
"title": "Support",
"columns": 1,
"items": [
{
"href": url_for('main.support'),
"text": "Contact us"
}
]
},
],
"meta": {
"items": meta_items,
"html": meta_suffix
}
}) }}
{% if current_user.is_authenticated %}
{% block sessionUserWarning %}
<dialog class="usa-modal" id="sessionTimer" aria-labelledby="sessionTimerHeading" aria-describedby="timerWarning">
<div class="usa-modal__content">
<div class="usa-modal__main">
<h2 class="usa-modal__heading" id="sessionTimerHeading">
Your session will end soon.
<span class="usa-sr-only">Please choose to extend your session or sign out. Your session will expire in 5 minutes or less.</span>
</h2>
<div class="usa-prose">
<p>You have been inactive for too long.
Your session will expire in <span id="timeLeft" role="timer"></span>.
</p>
</div>
<div class="usa-modal__footer">
<ul class="usa-button-group">
<li class="usa-button-group__item">
<button type="button" class="usa-button" id="extendSessionTimer" data-close-modal>
Extend Session
</button>
</li>
<li class="usa-button-group__item">
<button type="button" class="usa-button usa-button--unstyled padding-105 text-center" id="logOutTimer"
data-close-modal>
Sign out
</button>
</li>
</ul>
</div>
</div>
</div>
</dialog>
{% endblock %}
{% endif %}
{% endblock %}
{% block bodyEnd %}
{% block extra_javascripts %}
{% endblock %}
<!--[if gt IE 8]><!-->
<script type="text/javascript" src="{{ asset_url('javascripts/all.js') }}"></script>
<script type="text/javascript" src="{{ asset_url('js/uswds.min.js') }}"></script>
<!--<![endif]-->
{% endblock %}

View File

@@ -1,28 +0,0 @@
{% extends "base.html" %}
{% from "components/sub-navigation.html" import sub_navigation %}
{% from "components/page-header.html" import page_header %}
{% block per_page_title %}
{{ content_page_title }}
{% endblock %}
{% block maincolumn_content %}
<div class="grid-row">
{% if navigation_links %}
<div class="tablet:grid-col-2 margin-bottom-4">
{{ sub_navigation(navigation_links) }}
</div>
<div class="tablet:grid-col-10 tablet:padding-left-4 usa-prose site-prose">
{% else %}
<div class="tablet:grid-col-10">
{% endif %}
{% block content_column_content %}
{% endblock %}
</div>
</div>
{% endblock %}

View File

@@ -1,32 +0,0 @@
{# This template is an old version #}
{% if help %}
{% include 'partials/tour.html' %}
{% else %}
<nav class="nav margin-bottom-4">
<a class="usa-button margin-top-1 margin-bottom-5 width-full"
href="{{ url_for('.choose_template', service_id=current_service.id) }}">Send messages</a>
<ul class="usa-sidenav">
{% if current_user.has_permissions() %}
{% if current_user.has_permissions('view_activity') %}
<li class="usa-sidenav__item"><a class="{{ main_navigation.is_selected('dashboard') }}" href="{{ url_for('.service_dashboard', service_id=current_service.id) }}">Dashboard</a></li>
{% endif %}
{# <li class="usa-sidenav__item"><a class="{{ main_navigation.is_selected('templates') }}" href="{{ url_for('.choose_template', service_id=current_service.id) }}">Send messages</a></li> #}
{% if not current_user.has_permissions('view_activity') %}
<li class="usa-sidenav__item"><a class="{{ casework_navigation.is_selected('sent-messages') }}" href="{{ url_for('.view_notifications', service_id=current_service.id, status='sending,delivered,failed') }}">Sent messages</a></li>
{% endif %}
{% if current_user.has_permissions('manage_service', allow_org_user=True) %}
{# <li class="usa-sidenav__item"><a class="{{ main_navigation.is_selected('usage') }}" href="{{ url_for('.usage', service_id=current_service.id) }}">Usage</a></li> #}
{% endif %}
<!-- {% if current_user.has_permissions('manage_api_keys', 'manage_service') %}
<li class="usa-sidenav__item"><a class="{{ main_navigation.is_selected('settings') }}" href="{{ url_for('.service_settings', service_id=current_service.id) }}">Settings</a></li>
{% endif %} -->
{% if current_user.has_permissions('manage_api_keys') %}
<!-- <li><a class="usa-link{{ main_navigation.is_selected('api-integration') }}" href="{{ url_for('.api_integration', service_id=current_service.id) }}">API integration</a></li> -->
{% endif %}
{% elif current_user.has_permissions(allow_org_user=True) %}
<li class="usa-sidenav__item"><a class="usa-link{{ main_navigation.is_selected('usage') }}" href="{{ url_for('.usage', service_id=current_service.id) }}">Usage</a></li>
<li class="usa-sidenav__item"><a class="usa-link{{ main_navigation.is_selected('team-members') }}" href="{{ url_for('.manage_users', service_id=current_service.id) }}">Team members</a></li>
{% endif %}
</ul>
</nav>
{% endif %}

View File

@@ -1,70 +0,0 @@
{% from "./components/components/skip-link/macro.njk" import usaSkipLink -%}
{% from "./components/components/header/macro.njk" import usaHeader -%}
{% from "./components/components/footer/macro.njk" import usaFooter -%}
{# specify absolute url for the static assets folder e.g. http://wwww.domain.com/assets #}
{%- set assetUrl = assetUrl | default(assetPath) -%}
<!DOCTYPE html>
<html lang="{{ htmlLang | default('en') }}" class="{{ htmlClasses }}">
<head>
<meta charset="utf-8" />
<title>{% block pageTitle %}Notify.gov{% endblock %}</title>
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<meta name="theme-color" media="(prefers-color-scheme: light)" content="f0f0f0" />
<meta name="theme-color" media="(prefers-color-scheme: dark)" content="1b1b1b" />
{% if config['NR_MONITOR_ON'] %}
{% include "partials/newrelic.html" -%}
{% endif %}
{# Ensure that older IE versions always render with the correct rendering engine #}
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
{% block headIcons %}
<link rel="shortcut icon" href="{{ assetPath | default('/static') }}/images/favicon.ico" />
<link rel="icon" type="image/png" sizes="32x32"href="{{ assetPath | default('/static') }}/images/favicon-32x32.png"/>
<link rel="icon" type="image/png" sizes="16x16" href="{{ assetPath | default('/static') }}/images/favicon-16x16.png" />
<link rel="mask-icon" href="{{ assetPath | default('/static') }}/images/safari-pinned-tab.svg" color="#5bbad5">
<link rel="apple-touch-icon" sizes="180x180" href="{{ assetPath | default('/static') }}/images/apple-touch-icon.png">
<link rel="manifest" href="/site.webmanifest">
<meta name="msapplication-TileColor" content="#da532c">
<link href="{{ assetPath | default('/static') }}/images/notify-dark-favicon.png" rel="icon" media="(prefers-color-scheme: dark)">
<meta name="theme-color" content="#ffffff">
{% endblock %}
{% block head %}{% endblock %}
{# The default og:image is added below head so that scrapers see any custom metatags first, and this is just a fallback #}
{% block meta %}
<meta property="og:site_name" content="Notify.gov">
<meta property="og:image" content="{{ asset_url('images/notify-og-image.png') }}">
{% endblock %}
</head>
<body class="usa-template__body {{ bodyClasses }}">
<script nonce="{{ csp_nonce() }}">document.body.className = ((document.body.className) ? document.body.className + ' js-enabled' : 'js-enabled');</script>
{% block bodyStart %}{% endblock %}
{% block skipLink %}
{{ usaSkipLink({
"href": '#main-content',
"text": 'Skip to main content'
}) }}
{% endblock %}
{% block header %}
{{ usaHeader({}) }}
{% endblock %}
{% block main %}
<div class="grid-container">
{% block beforeContent %}{% endblock %}
<main class="{{ mainClasses }}" id="main-content" role="main">
{% block content %}{% endblock %}
</main>
</div>
{% endblock %}
{% block footer %}
{{ usaFooter({}) }}
{% endblock %}
{% block bodyEnd %}{% endblock %}
</body>
</html>

View File

@@ -1,12 +0,0 @@
{# This template is an old version #}
<nav class="navigation">
<ul>
<li><a class="usa-link{{ org_navigation.is_selected('dashboard') }}" href="{{ url_for('.organization_dashboard', org_id=current_org.id) }}">Usage</a></li>
<li><a class="usa-link{{ org_navigation.is_selected('team-members') }}" href="{{ url_for('.manage_org_users', org_id=current_org.id) }}">Team members</a></li>
{% if current_user.platform_admin %}
<li><a class="usa-link{{ org_navigation.is_selected('settings') }}" href="{{ url_for('.organization_settings', org_id=current_org.id) }}">Settings</a></li>
<li><a class="usa-link{{ org_navigation.is_selected('trial-services') }}" href="{{ url_for('.organization_trial_mode_services', org_id=current_org.id) }}">Trial mode services</a></li>
<li><a class="usa-link{{ org_navigation.is_selected('billing') }}" href="{{ url_for('.organization_billing', org_id=current_org.id) }}">Billing</a></li>
{% endif %}
</ul>
</nav>

View File

@@ -1,35 +0,0 @@
{% extends "base.html" %}
{% block per_page_title %}
{% block org_page_title %}{% endblock %} {{ current_org.name }}
{% endblock %}
{% block main %}
<div class="grid-container">
<div class="navigation-service usa-breadcrumb">
{% if current_user.platform_admin %}
<a href="{{ url_for('.organizations') }}" class="usa-link navigation-organization-link">Organizations</a>
{% endif %}
<div class="navigation-service">
{{ current_org.name }}
</div>
<a href="{{ url_for('main.choose_account') }}" class="usa-link navigation-service">Switch service</a>
</div>
<div class="grid-row">
<div class="grid-col-3">
{% include "org_nav.html" %}
</div>
<div class="grid-col-9">
{% block beforeContent %}
{% block backLink %}{% endblock %}
{% endblock %}
<main class="main" id="main-content" role="main" >
{% block content %}
{% include 'flash_messages.html' %}
{% block maincolumn_content %}{% endblock %}
{% endblock %}
</main>
</div>
</div>
</div>
{% endblock %}

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