diff --git a/.ds.baseline b/.ds.baseline
index 0619ba06a..076016c38 100644
--- a/.ds.baseline
+++ b/.ds.baseline
@@ -553,7 +553,7 @@
"filename": "tests/app/main/views/test_sign_in.py",
"hashed_secret": "8b8b69116ee882b5e987e330f55db81aba0636f9",
"is_verified": false,
- "line_number": 97,
+ "line_number": 95,
"is_secret": false
}
],
diff --git a/app/assets/images/messaging-devices.svg b/app/assets/images/messaging-devices.svg
new file mode 100644
index 000000000..00bd3f99f
--- /dev/null
+++ b/app/assets/images/messaging-devices.svg
@@ -0,0 +1,17 @@
+
diff --git a/app/assets/javascripts/liveSearch.js b/app/assets/javascripts/liveSearch.js
index 301ba7b0c..fd3c62002 100644
--- a/app/assets/javascripts/liveSearch.js
+++ b/app/assets/javascripts/liveSearch.js
@@ -20,7 +20,6 @@
$targets.each(function() {
let content = $('.live-search-relevant', this).text() || $(this).text();
- let isMatch = normalize(content).indexOf(normalize(query)) > -1;
if ($(this).has(':checked').length) {
$(this).show();
@@ -29,21 +28,25 @@
}
if (query == '') {
- $(this).css('display', '');
+ $(this).removeClass('js-hidden');
results++;
return;
}
- $(this).toggle(isMatch);
-
- if (isMatch) { results++; }
+ let isMatch = normalize(content).includes(normalize(query));
+ if (isMatch) {
+ $(this).removeClass('js-hidden');
+ results++;
+ } else {
+ $(this).addClass('js-hidden');
+ }
});
if (query !== '' && results === 0) {
- $noResultsMessage.show();
+ $noResultsMessage.removeClass('js-hidden');
} else {
- $noResultsMessage.hide();
+ $noResultsMessage.addClass('js-hidden');
}
if (state === 'loaded') {
diff --git a/app/assets/javascripts/templateFolderForm.js b/app/assets/javascripts/templateFolderForm.js
index 9dedb50d5..b024ced5a 100644
--- a/app/assets/javascripts/templateFolderForm.js
+++ b/app/assets/javascripts/templateFolderForm.js
@@ -197,6 +197,11 @@
if (event.currentTarget.value === 'add-new-template' && this.$singleNotificationChannel) {
window.location = "/services/" + this.$singleChannelService + "/templates/add-" + this.$singleNotificationChannel;
} else {
+ if (this.currentState === 'add-new-template') {
+ this.$form.find('input[type=checkbox]').prop('checked', false);
+ this.selectionStatus.update({ total: 0, templates: 0, folders: 0 });
+ }
+
if (this.stateChanged()) {
this.render();
}
@@ -286,7 +291,29 @@
mode = 'dialog';
}
- if (currentStateObj && ('setFocus' in currentStateObj)) {
+ if (this.currentState === 'add-new-template') {
+ this.$form.find('.template-list-item').addClass('js-hidden');
+ $('.live-search').addClass('js-hidden');
+ $('#breadcrumb-template-folders').addClass('js-hidden');
+ $('#template-list').addClass('js-hidden');
+ this.$form.find('input[type=checkbox]').prop('checked', false);
+ this.selectionStatus.update({ total: 0, templates: 0, folders: 0 });
+
+ $('#page-title').text('New Template');
+ $('#page-description').text('Every message starts with a template. Choose to start with a blank template or copy an existing template.');
+ document.title = 'New Templates';
+ } else {
+ this.$form.find('.template-list-item').removeClass('js-hidden');
+ $('.live-search').removeClass('js-hidden');
+ $('#breadcrumb-template-folders').removeClass('js-hidden');
+ $('#template-list').removeClass('js-hidden');
+
+ $('#page-title').text('Select or create a template');
+ $('#page-description').text('Every message starts with a template. To send, choose or create a template.');
+ document.title = 'Select or create a template';
+ }
+
+ if (currentStateObj && 'setFocus' in currentStateObj) {
scrollTop = $(window).scrollTop();
currentStateObj.setFocus();
$(window).scrollTop(scrollTop);
diff --git a/app/assets/sass/uswds/_uswds-theme-custom-styles.scss b/app/assets/sass/uswds/_uswds-theme-custom-styles.scss
index 737d45172..4d8efcb49 100644
--- a/app/assets/sass/uswds/_uswds-theme-custom-styles.scss
+++ b/app/assets/sass/uswds/_uswds-theme-custom-styles.scss
@@ -229,6 +229,10 @@ td.table-empty-message {
display: none;
}
+.js-hidden {
+ display: none !important;
+}
+
.folder-heading a.folder-heading-folder,
.template-list-folder {
background: url(../img/material-icons/folder.svg) no-repeat;
@@ -871,6 +875,10 @@ $do-dont-top-bar-width: 1;
border-radius: 2px;
}
+.bg-gray-cool {
+ background-color: #dfe1e2;
+}
+
.svg-circle-icon {
display: inline-block;
margin: 0;
diff --git a/app/templates/base.html b/app/templates/base.html
index b647a21a8..8f349ffa7 100644
--- a/app/templates/base.html
+++ b/app/templates/base.html
@@ -35,32 +35,6 @@
{% block header %}
{% include 'components/usa_banner.html' %}
- {% if not is_api_down %}
- {% if current_user.is_authenticated or current_service or current_user.platform_admin %}
- Notify.gov Service Ending
- GSA will no longer offer the Notify.gov service after June 8th, 2025. Visit
- Notify.gov Service Ending for more information.
- Notify.gov Service Ending
- Notify.gov is no longer accepting new partners.
-
+ This beta product is no longer in service as of June 9, 2025. +
+- Notify.gov is a text messaging service that helps federal, state, - local, tribal and territorial governments more effectively - communicate with the people they serve. +
+ Though the Notify.gov service is no longer available, government programs can continue to explore text messaging services.
- +Commercial messaging providers may support government use cases. For agencies with the resources to set up and support it, the notifications service codebase that runs Notify.gov is open source and can be reused.
- Notify.gov is a text messaging platform built for government agencies. - With minimal set-up and secure, personalized messaging, you can make - one-way texting a part of your outreach program. -
-Nothing to download or install
-No technical expertise required
-See which messages were received
-Notify.gov has support for more than 30 character sets
-
- Limited data retention, encryption, and multi-factor
- authentication protect user data and manage risk with
our security efforts
-
- Send hundreds or thousands of individually customized messages - with just a few clicks -
-