From 63d65c0305cda20bae7c4e598db93ca42d0b600e Mon Sep 17 00:00:00 2001 From: Beverly Nguyen Date: Wed, 12 Nov 2025 10:57:32 -0800 Subject: [PATCH 1/3] add js delete function --- .../javascripts/organizationDashboard.js | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/app/assets/javascripts/organizationDashboard.js b/app/assets/javascripts/organizationDashboard.js index 07cd7e255..4c4e69647 100644 --- a/app/assets/javascripts/organizationDashboard.js +++ b/app/assets/javascripts/organizationDashboard.js @@ -57,9 +57,41 @@ } } + function initDeleteServiceConfirmation() { + var deleteButtons = document.querySelectorAll('[data-open-modal="confirmDeleteModal"]'); + var confirmDeleteButton = document.getElementById('delete-service-confirm-btn'); + var deleteServiceNameDisplay = document.getElementById('delete-service-name-display'); + var deleteForm = document.getElementById('delete-service-form'); + + if (deleteButtons.length > 0 && confirmDeleteButton && deleteForm) { + var currentServiceId = null; + + deleteButtons.forEach(function(button) { + button.addEventListener('click', function() { + currentServiceId = button.getAttribute('data-service-id'); + var serviceName = button.getAttribute('data-service-name'); + + if (deleteServiceNameDisplay && serviceName) { + deleteServiceNameDisplay.textContent = serviceName; + } + }); + }); + + confirmDeleteButton.addEventListener('click', function() { + if (currentServiceId) { + var orgId = window.location.pathname.split('/')[2]; + deleteForm.action = '/organizations/' + orgId + '?action=delete-service&service_id=' + currentServiceId; + + deleteForm.submit(); + } + }); + } + } + document.addEventListener('DOMContentLoaded', function() { initForms(); initEditServiceConfirmation(); + initDeleteServiceConfirmation(); }); window.OrganizationDashboard = { From 77d9bfb870d5c95b990af47d3d0a1198cbbf4227 Mon Sep 17 00:00:00 2001 From: Beverly Nguyen Date: Wed, 12 Nov 2025 11:03:51 -0800 Subject: [PATCH 2/3] added encoded for defense --- app/assets/javascripts/organizationDashboard.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/javascripts/organizationDashboard.js b/app/assets/javascripts/organizationDashboard.js index 4c4e69647..f340a7bfb 100644 --- a/app/assets/javascripts/organizationDashboard.js +++ b/app/assets/javascripts/organizationDashboard.js @@ -80,7 +80,7 @@ confirmDeleteButton.addEventListener('click', function() { if (currentServiceId) { var orgId = window.location.pathname.split('/')[2]; - deleteForm.action = '/organizations/' + orgId + '?action=delete-service&service_id=' + currentServiceId; + deleteForm.action = '/organizations/' + encodeURIComponent(orgId) + '?action=delete-service&service_id=' + encodeURIComponent(currentServiceId); deleteForm.submit(); } From 0f995ce3929f3929d95475353d236a24e526bf1b Mon Sep 17 00:00:00 2001 From: Beverly Nguyen Date: Wed, 12 Nov 2025 13:36:52 -0800 Subject: [PATCH 3/3] adding back css that was removed --- app/assets/sass/uswds/components/_forms.scss | 5 +++++ app/assets/sass/uswds/components/_tables.scss | 19 +++++++++++++++++++ .../organizations/organization/index.html | 2 +- 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/app/assets/sass/uswds/components/_forms.scss b/app/assets/sass/uswds/components/_forms.scss index bcc04e3b0..f6d8ee532 100644 --- a/app/assets/sass/uswds/components/_forms.scss +++ b/app/assets/sass/uswds/components/_forms.scss @@ -43,3 +43,8 @@ display: inline-flex; justify-content: center; } + +.button-not-clickable { + cursor: default; + pointer-events: none; +} diff --git a/app/assets/sass/uswds/components/_tables.scss b/app/assets/sass/uswds/components/_tables.scss index ecb75300e..8c5cb555c 100644 --- a/app/assets/sass/uswds/components/_tables.scss +++ b/app/assets/sass/uswds/components/_tables.scss @@ -47,3 +47,22 @@ td.table-empty-message { box-shadow: none; } } + +.is-highlighted { + td { + background-color: color('blue-cool-5v'); + animation: fadeHighlight 3s ease-out forwards; + } +} + +@keyframes fadeHighlight { + 0% { + background-color: color('blue-cool-10v'); + } + 50% { + background-color: color('blue-cool-5v'); + } + 100% { + background-color: transparent; + } +} diff --git a/app/templates/views/organizations/organization/index.html b/app/templates/views/organizations/organization/index.html index 5ae9c5aee..879e9c994 100644 --- a/app/templates/views/organizations/organization/index.html +++ b/app/templates/views/organizations/organization/index.html @@ -70,7 +70,7 @@ {% if create_service_form %} -
+

Create a new service