From cf60dd7078919c8abe6ac9a2f43e1a43a7dc1e6c Mon Sep 17 00:00:00 2001 From: Beverly Nguyen Date: Wed, 30 Oct 2024 21:04:03 -0700 Subject: [PATCH 01/34] e2e best practice --- .../test_best_practices_content_pages.py | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 tests/end_to_end/test_best_practices_content_pages.py diff --git a/tests/end_to_end/test_best_practices_content_pages.py b/tests/end_to_end/test_best_practices_content_pages.py new file mode 100644 index 000000000..25893a649 --- /dev/null +++ b/tests/end_to_end/test_best_practices_content_pages.py @@ -0,0 +1,63 @@ +import datetime +import os +import re + +from playwright.sync_api import expect + +from tests.end_to_end.conftest import check_axe_report + +E2E_TEST_URI = os.getenv("NOTIFY_E2E_TEST_URI") + + +def test_best_practices_side_menu(authenticated_page): + page = authenticated_page + + page.goto(f"{E2E_TEST_URI}/best-practices") + + page.wait_for_load_state("domcontentloaded") + check_axe_report(page) + + page.get_by_role("link", name="Best Practices").click() + expect(page).to_have_title(re.compile("Best Practice")) + + page.get_by_role("link", name="Clear goals", exact=True).click() + expect(page).to_have_title(re.compile("Establish clear goals")) + + page.get_by_role("link", name="Rules and regulations").click() + expect(page).to_have_title(re.compile("Rules and regulations")) + + page.get_by_role("link", name="Establish trust").click() + expect(page).to_have_title(re.compile("Establish trust")) + + page.get_by_role("link", name="Write for action").click() + expect(page).to_have_title(re.compile("Write texts that provoke")) + + page.get_by_role("link", name="Multiple languages").click() + expect(page).to_have_title(re.compile("Text in multiple languages")) + + page.get_by_role("link", name="Benchmark performance").click() + expect(page).to_have_title(re.compile("Measuring performance with")) + + parent_link = page.get_by_role("link", name="Establish trust") + parent_link.hover() + + submenu_item = page.get_by_role("link", name=re.compile("Get the word out")) + submenu_item.click() + + expect(page).to_have_url(re.compile(r"#get-the-word-out")) + + anchor_target = page.locator("#get-the-word-out") + expect(anchor_target).to_be_visible() + anchor_target.click() + +def test_breadcrumbs_best_practices(authenticated_page): + + page = authenticated_page + + page.goto(f"{E2E_TEST_URI}/best-practices") + + page.wait_for_load_state("domcontentloaded") + check_axe_report(page) + + page.get_by_role("link", name="Clear goals", exact=True).click() + page.locator("ol").get_by_role("link", name="Best Practices").click() From 0bb0d3c24d39c903b9f187ea884860ec6b190fd3 Mon Sep 17 00:00:00 2001 From: Beverly Nguyen Date: Wed, 30 Oct 2024 21:08:45 -0700 Subject: [PATCH 02/34] e2e best practice --- tests/end_to_end/test_best_practices_content_pages.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/end_to_end/test_best_practices_content_pages.py b/tests/end_to_end/test_best_practices_content_pages.py index 25893a649..fbf5cd280 100644 --- a/tests/end_to_end/test_best_practices_content_pages.py +++ b/tests/end_to_end/test_best_practices_content_pages.py @@ -1,4 +1,3 @@ -import datetime import os import re @@ -50,8 +49,8 @@ def test_best_practices_side_menu(authenticated_page): expect(anchor_target).to_be_visible() anchor_target.click() -def test_breadcrumbs_best_practices(authenticated_page): +def test_breadcrumbs_best_practices(authenticated_page): page = authenticated_page page.goto(f"{E2E_TEST_URI}/best-practices") From 109f3d99929ef84c86a1838b0d8a64f08501a038 Mon Sep 17 00:00:00 2001 From: Beverly Nguyen Date: Thu, 31 Oct 2024 12:04:26 -0700 Subject: [PATCH 03/34] feature flag for testing --- app/main/views/index.py | 17 +++++- .../test_best_practices_content_pages.py | 58 +++++++++++-------- 2 files changed, 50 insertions(+), 25 deletions(-) diff --git a/app/main/views/index.py b/app/main/views/index.py index 8b965991c..238f2d524 100644 --- a/app/main/views/index.py +++ b/app/main/views/index.py @@ -2,7 +2,15 @@ import secrets from urllib.parse import unquote -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 redis_client, status_api_client @@ -30,6 +38,13 @@ def check_guidance_feature(): abort(404) +@main.route("/test/feature-flags") +def test_feature_flags(): + return jsonify({ + "FEATURE_BEST_PRACTICES_ENABLED": current_app.config["FEATURE_BEST_PRACTICES_ENABLED"] + }) + + @main.route("/") def index(): if current_user and current_user.is_authenticated: diff --git a/tests/end_to_end/test_best_practices_content_pages.py b/tests/end_to_end/test_best_practices_content_pages.py index fbf5cd280..962100de3 100644 --- a/tests/end_to_end/test_best_practices_content_pages.py +++ b/tests/end_to_end/test_best_practices_content_pages.py @@ -16,38 +16,43 @@ def test_best_practices_side_menu(authenticated_page): page.wait_for_load_state("domcontentloaded") check_axe_report(page) - page.get_by_role("link", name="Best Practices").click() - expect(page).to_have_title(re.compile("Best Practice")) + response = page.request.get(f"{E2E_TEST_URI}/test/feature-flags") + feature_flags = response.json() + feature_best_practices_enabled = feature_flags.get("FEATURE_BEST_PRACTICES_ENABLED") - page.get_by_role("link", name="Clear goals", exact=True).click() - expect(page).to_have_title(re.compile("Establish clear goals")) + if feature_best_practices_enabled: + page.get_by_role("link", name="Best Practices").click() + expect(page).to_have_title(re.compile("Best Practice")) - page.get_by_role("link", name="Rules and regulations").click() - expect(page).to_have_title(re.compile("Rules and regulations")) + page.get_by_role("link", name="Clear goals", exact=True).click() + expect(page).to_have_title(re.compile("Establish clear goals")) - page.get_by_role("link", name="Establish trust").click() - expect(page).to_have_title(re.compile("Establish trust")) + page.get_by_role("link", name="Rules and regulations").click() + expect(page).to_have_title(re.compile("Rules and regulations")) - page.get_by_role("link", name="Write for action").click() - expect(page).to_have_title(re.compile("Write texts that provoke")) + page.get_by_role("link", name="Establish trust").click() + expect(page).to_have_title(re.compile("Establish trust")) - page.get_by_role("link", name="Multiple languages").click() - expect(page).to_have_title(re.compile("Text in multiple languages")) + page.get_by_role("link", name="Write for action").click() + expect(page).to_have_title(re.compile("Write texts that provoke")) - page.get_by_role("link", name="Benchmark performance").click() - expect(page).to_have_title(re.compile("Measuring performance with")) + page.get_by_role("link", name="Multiple languages").click() + expect(page).to_have_title(re.compile("Text in multiple languages")) - parent_link = page.get_by_role("link", name="Establish trust") - parent_link.hover() + page.get_by_role("link", name="Benchmark performance").click() + expect(page).to_have_title(re.compile("Measuring performance with")) - submenu_item = page.get_by_role("link", name=re.compile("Get the word out")) - submenu_item.click() + parent_link = page.get_by_role("link", name="Establish trust") + parent_link.hover() - expect(page).to_have_url(re.compile(r"#get-the-word-out")) + submenu_item = page.get_by_role("link", name=re.compile("Get the word out")) + submenu_item.click() - anchor_target = page.locator("#get-the-word-out") - expect(anchor_target).to_be_visible() - anchor_target.click() + expect(page).to_have_url(re.compile(r"#get-the-word-out")) + + anchor_target = page.locator("#get-the-word-out") + expect(anchor_target).to_be_visible() + anchor_target.click() def test_breadcrumbs_best_practices(authenticated_page): @@ -58,5 +63,10 @@ def test_breadcrumbs_best_practices(authenticated_page): page.wait_for_load_state("domcontentloaded") check_axe_report(page) - page.get_by_role("link", name="Clear goals", exact=True).click() - page.locator("ol").get_by_role("link", name="Best Practices").click() + response = page.request.get(f"{E2E_TEST_URI}/test/feature-flags") + feature_flags = response.json() + feature_best_practices_enabled = feature_flags.get("FEATURE_BEST_PRACTICES_ENABLED") + + if feature_best_practices_enabled: + page.get_by_role("link", name="Clear goals", exact=True).click() + page.locator("ol").get_by_role("link", name="Best Practices").click() From 714be40851521e945199f78472d0debd0e3535e3 Mon Sep 17 00:00:00 2001 From: Beverly Nguyen Date: Thu, 31 Oct 2024 12:26:20 -0700 Subject: [PATCH 04/34] fix testing --- app/main/views/index.py | 10 +++++++--- tests/app/test_navigation.py | 1 + 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/main/views/index.py b/app/main/views/index.py index 238f2d524..baa42d05a 100644 --- a/app/main/views/index.py +++ b/app/main/views/index.py @@ -40,9 +40,13 @@ def check_guidance_feature(): @main.route("/test/feature-flags") def test_feature_flags(): - return jsonify({ - "FEATURE_BEST_PRACTICES_ENABLED": current_app.config["FEATURE_BEST_PRACTICES_ENABLED"] - }) + return jsonify( + { + "FEATURE_BEST_PRACTICES_ENABLED": current_app.config[ + "FEATURE_BEST_PRACTICES_ENABLED" + ] + } + ) @main.route("/") diff --git a/tests/app/test_navigation.py b/tests/app/test_navigation.py index 8bf52d803..99e74f9ed 100644 --- a/tests/app/test_navigation.py +++ b/tests/app/test_navigation.py @@ -217,6 +217,7 @@ "suspend_service", "template_history", "template_usage", + "test_feature_flags", "tour_step", "trial_mode", "trial_mode_new", From 12c28682df7ab02ee6a84205811f75d7fb6a4356 Mon Sep 17 00:00:00 2001 From: alexjanousekGSA Date: Mon, 4 Nov 2024 11:44:45 -0500 Subject: [PATCH 05/34] Added link to new guidance page that enables navigating --- app/__init__.py | 7 ++ app/main/views/index.py | 20 ++-- app/main/views/sub_navigation_dictionaries.py | 4 + app/navigation.py | 3 + app/templates/components/header.html | 103 ++++++++++-------- urls.js | 26 +++-- 6 files changed, 99 insertions(+), 64 deletions(-) diff --git a/app/__init__.py b/app/__init__.py index 483d89ea0..1e0f9c569 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -162,6 +162,13 @@ def _csp(config): def create_app(application): + + @application.context_processor + def inject_feature_flags(): + feature_best_practices_enabled = os.getenv("FEATURE_BEST_PRACTICES_ENABLED", "false").lower() == "true" + return dict(FEATURE_BEST_PRACTICES_ENABLED=feature_best_practices_enabled) + + notify_environment = os.environ["NOTIFY_ENVIRONMENT"] application.config.from_object(configs[notify_environment]) diff --git a/app/main/views/index.py b/app/main/views/index.py index 8b965991c..a5af4d506 100644 --- a/app/main/views/index.py +++ b/app/main/views/index.py @@ -21,10 +21,8 @@ # Hook to check for guidance routes @main.before_request def check_guidance_feature(): - current_app.logger.warning("best practices 1234") - current_app.logger.warning(current_app.config["FEATURE_BEST_PRACTICES_ENABLED"]) if ( - request.path.startswith("/best-practices") + request.path.startswith("/guides/best-practices") and not current_app.config["FEATURE_BEST_PRACTICES_ENABLED"] ): abort(404) @@ -205,7 +203,7 @@ def trial_mode_new(): ) -@main.route("/best-practices") +@main.route("/guides/best-practices") @user_is_logged_in def best_practices(): return render_template( @@ -214,7 +212,7 @@ def best_practices(): ) -@main.route("/best-practices/clear-goals") +@main.route("/guides/best-practices/clear-goals") @user_is_logged_in def clear_goals(): return render_template( @@ -223,7 +221,7 @@ def clear_goals(): ) -@main.route("/best-practices/rules-and-regulations") +@main.route("/guides/best-practices/rules-and-regulations") @user_is_logged_in def rules_and_regulations(): return render_template( @@ -232,7 +230,7 @@ def rules_and_regulations(): ) -@main.route("/best-practices/establish-trust") +@main.route("/guides/best-practices/establish-trust") @user_is_logged_in def establish_trust(): return render_template( @@ -241,7 +239,7 @@ def establish_trust(): ) -@main.route("/best-practices/write-for-action") +@main.route("/guides/best-practices/write-for-action") @user_is_logged_in def write_for_action(): return render_template( @@ -250,7 +248,7 @@ def write_for_action(): ) -@main.route("/best-practices/multiple-languages") +@main.route("/guides/best-practices/multiple-languages") @user_is_logged_in def multiple_languages(): return render_template( @@ -259,7 +257,7 @@ def multiple_languages(): ) -@main.route("/best-practices/benchmark-performance") +@main.route("/guides/best-practices/benchmark-performance") @user_is_logged_in def benchmark_performance(): return render_template( @@ -268,7 +266,7 @@ def benchmark_performance(): ) -@main.route("/using-notify/guidance") +@main.route("/guides/using-notify/guidance") @user_is_logged_in def guidance_index(): return render_template( diff --git a/app/main/views/sub_navigation_dictionaries.py b/app/main/views/sub_navigation_dictionaries.py index 0689c198d..1f41c4b40 100644 --- a/app/main/views/sub_navigation_dictionaries.py +++ b/app/main/views/sub_navigation_dictionaries.py @@ -26,6 +26,10 @@ def using_notify_nav(): { "name": "Get started", "link": "main.get_started", + }, + { + "name": "Best Practices", + "link": "main.best_practices", }, { "name": "Trial mode", diff --git a/app/navigation.py b/app/navigation.py index 6ef0907a6..73d86a319 100644 --- a/app/navigation.py +++ b/app/navigation.py @@ -46,6 +46,9 @@ class HeaderNavigation(Navigation): "roadmap", "security", }, + "best_practices": { + "best_practices", + }, "using_notify": { "get_started", "using_notify", diff --git a/app/templates/components/header.html b/app/templates/components/header.html index 5ae37fc71..82ce61852 100644 --- a/app/templates/components/header.html +++ b/app/templates/components/header.html @@ -1,32 +1,43 @@ {% 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')} - ] %} +{% 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')} +] %} - {% 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 FEATURE_BEST_PRACTICES_ENABLED %} +{% set navigation = navigation + [{"href": url_for('main.best_practices'), "text": "Best Practices", "active": +header_navigation.is_selected('best_practices')}] %} +{% endif %} + +{% set navigation = navigation + [ +{"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_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"} - ] %} +{% 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 %} - {% endif %} - {% else %} - {% set secondaryNavigation = [{"href": url_for('main.sign_out'), "text": "Sign out"}] %} - {% 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 %}
@@ -36,12 +47,12 @@ {% if navigation %} - + {% endif %} @@ -52,29 +63,29 @@
diff --git a/urls.js b/urls.js index 8ff543470..0440430ec 100644 --- a/urls.js +++ b/urls.js @@ -13,13 +13,25 @@ const sublinks = [ { label: 'Roadmap', path: '/features/roadmap' }, { label: 'Security', path: '/features/security' }, { label: 'Support', path: '/support' }, - { label: 'Best Practices', path: '/best-practices' }, - { label: 'Clear Goals', path: '/best-practices/clear-goals' }, - { label: 'Rules And Regulations', path: '/best-practices/rules-and-regulations' }, - { label: 'Establish Trust', path: '/best-practices/establish-trust' }, - { label: 'Write For Action', path: '/best-practices/write-for-action' }, - { label: 'Multiple Languages', path: '/best-practices/multiple-languages' }, - { label: 'Benchmark Performance', path: '/best-practices/benchmark-performance' }, + { label: 'Best Practices', path: '/guides/best-practices' }, + { label: 'Clear Goals', path: '/guides/best-practices/clear-goals' }, + { + label: 'Rules And Regulations', + path: '/guides/best-practices/rules-and-regulations', + }, + { label: 'Establish Trust', path: '/guides/best-practices/establish-trust' }, + { + label: 'Write For Action', + path: '/guides/best-practices/write-for-action', + }, + { + label: 'Multiple Languages', + path: '/guides/best-practices/multiple-languages', + }, + { + label: 'Benchmark Performance', + path: '/guides/best-practices/benchmark-performance', + }, // Add more links here as needed ]; From e7c82b1fc3fc8d582765c0168c84d528ba0e8606 Mon Sep 17 00:00:00 2001 From: alexjanousekGSA Date: Mon, 4 Nov 2024 11:50:29 -0500 Subject: [PATCH 06/34] Fixed indent --- app/main/views/sub_navigation_dictionaries.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/main/views/sub_navigation_dictionaries.py b/app/main/views/sub_navigation_dictionaries.py index 1f41c4b40..b4226e98f 100644 --- a/app/main/views/sub_navigation_dictionaries.py +++ b/app/main/views/sub_navigation_dictionaries.py @@ -27,7 +27,7 @@ def using_notify_nav(): "name": "Get started", "link": "main.get_started", }, - { + { "name": "Best Practices", "link": "main.best_practices", }, From 5fa91729015653b4433dab4db506b04d922f4542 Mon Sep 17 00:00:00 2001 From: alexjanousekGSA Date: Mon, 4 Nov 2024 11:57:13 -0500 Subject: [PATCH 07/34] Fixing linting errors --- app/__init__.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/__init__.py b/app/__init__.py index 1e0f9c569..5978b6068 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -162,13 +162,11 @@ def _csp(config): def create_app(application): - @application.context_processor def inject_feature_flags(): feature_best_practices_enabled = os.getenv("FEATURE_BEST_PRACTICES_ENABLED", "false").lower() == "true" return dict(FEATURE_BEST_PRACTICES_ENABLED=feature_best_practices_enabled) - notify_environment = os.environ["NOTIFY_ENVIRONMENT"] application.config.from_object(configs[notify_environment]) From 5cbb1f3befe861ceaed49283a6238a5ed66529e9 Mon Sep 17 00:00:00 2001 From: alexjanousekGSA Date: Mon, 4 Nov 2024 15:04:34 -0500 Subject: [PATCH 08/34] Updated route --- .../views/best-practices/best-practices.html | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/templates/views/best-practices/best-practices.html b/app/templates/views/best-practices/best-practices.html index a00a48660..7711dea9b 100644 --- a/app/templates/views/best-practices/best-practices.html +++ b/app/templates/views/best-practices/best-practices.html @@ -23,37 +23,37 @@

"svg_src": "goal", "card_heading": "Establish clear goals", "p_text": "Start with a singular purpose. Make explicit what you want to achieve.", - "link": "/best-practices/clear-goals" + "link": "/guides/best-practices/clear-goals" }, { "svg_src": "compliant", "card_heading": "Follow rules & regulations", "p_text": "Understand what is required when texting the public.", - "link": "/best-practices/rules-and-regulations" + "link": "/guides/best-practices/rules-and-regulations" }, { "svg_src": "trust", "card_heading": "Establish trust", "p_text": "Help your audience anticipate and welcome your texts.", - "link": "/best-practices/establish-trust" + "link": "/guides/best-practices/establish-trust" }, { "svg_src": "runner", "card_heading": "Write texts that provoke action", "p_text": "Help your audience know what to do with the information you send.", - "link": "/best-practices/write-for-action" + "link": "/guides/best-practices/write-for-action" }, { "svg_src": "language", "card_heading": "Send texts in multiple languages", "p_text": "What to know as you plan translated texts.", - "link": "/best-practices/multiple-languages" + "link": "/guides/best-practices/multiple-languages" }, { "svg_src": "chart", "card_heading": "Measure performance with benchmarking", "p_text": "Learn how effective your texting program can be.", - "link": "/best-practices/benchmark-performance" + "link": "/guides/best-practices/benchmark-performance" } ] %} From 7a63fcfc082e5484a38df794e41721518ed10ffa Mon Sep 17 00:00:00 2001 From: Beverly Nguyen Date: Tue, 5 Nov 2024 14:35:22 -0800 Subject: [PATCH 09/34] fix a11y errors --- app/assets/javascripts/enhancedTextbox.js | 14 ++++++++++---- .../sass/uswds/_uswds-theme-custom-styles.scss | 5 ----- app/templates/components/folder-path.html | 2 +- app/templates/partials/jobs/notifications.html | 2 +- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/app/assets/javascripts/enhancedTextbox.js b/app/assets/javascripts/enhancedTextbox.js index a4965857a..bd1a04882 100644 --- a/app/assets/javascripts/enhancedTextbox.js +++ b/app/assets/javascripts/enhancedTextbox.js @@ -73,10 +73,16 @@ ); this.update = () => { - - this.$background.html( - this.highlightPlaceholders ? this.contentReplaced() : this.contentEscaped() - ); + const isEmpty = this.$textbox.val().trim() === ""; + + if (isEmpty) { + this.$background.html( + this.highlightPlaceholders ? this.contentReplaced() : this.contentEscaped() + ); + this.$background.show(); + } else { + this.$background.hide(); + } this.resize(); diff --git a/app/assets/sass/uswds/_uswds-theme-custom-styles.scss b/app/assets/sass/uswds/_uswds-theme-custom-styles.scss index fe98aed09..570c1082e 100644 --- a/app/assets/sass/uswds/_uswds-theme-custom-styles.scss +++ b/app/assets/sass/uswds/_uswds-theme-custom-styles.scss @@ -604,17 +604,12 @@ details form { } &-background { - position: absolute; - top: 0; - left: 0; pointer-events: none; - color: transparent; white-space: pre-wrap; overflow-wrap: break-word; word-wrap: break-word; border: 2px solid transparent; padding-bottom: units(3); - z-index: 10; // transparent borders become visible in high contrast modes so set to match background @media (-ms-high-contrast: active), (forced-colors: active) { diff --git a/app/templates/components/folder-path.html b/app/templates/components/folder-path.html index c686702ba..b6615a2da 100644 --- a/app/templates/components/folder-path.html +++ b/app/templates/components/folder-path.html @@ -22,7 +22,7 @@ {{ folder.name }} {% endif %} {% else %} - Templates + Templates {% endif %} {% if not loop.last %}{{ folder_path_separator() }}{% endif %} {% endif %} diff --git a/app/templates/partials/jobs/notifications.html b/app/templates/partials/jobs/notifications.html index 379a8efef..6df3085ee 100644 --- a/app/templates/partials/jobs/notifications.html +++ b/app/templates/partials/jobs/notifications.html @@ -2,7 +2,7 @@ {% from "components/page-footer.html" import page_footer %} {% from "components/form.html" import form_wrapper %} -
+
{% if job.scheduled %}

From ca96495e3dd410d19f1bab879c04d7bb550bb0c2 Mon Sep 17 00:00:00 2001 From: Beverly Nguyen Date: Tue, 5 Nov 2024 15:47:49 -0800 Subject: [PATCH 10/34] revert changes to color:transparent --- app/assets/javascripts/enhancedTextbox.js | 18 ++++++------------ .../sass/uswds/_uswds-theme-custom-styles.scss | 7 +++++++ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/app/assets/javascripts/enhancedTextbox.js b/app/assets/javascripts/enhancedTextbox.js index bd1a04882..f0eabd940 100644 --- a/app/assets/javascripts/enhancedTextbox.js +++ b/app/assets/javascripts/enhancedTextbox.js @@ -23,7 +23,7 @@

`) .after(this.$background = $(` -