From 76ebec01ce0e0220904b2d4705c5341e4b33c5fe Mon Sep 17 00:00:00 2001 From: David Kennedy Date: Tue, 24 Dec 2024 12:46:02 -0500 Subject: [PATCH] refactored domain request form modal to remove hidden input --- .../src/js/getgov/domain-request-form.js | 12 ++++++++++ src/registrar/assets/src/js/getgov/helpers.js | 14 +++++++++++ src/registrar/assets/src/js/getgov/main.js | 3 +++ .../templates/domain_request_form.html | 14 ++++++++++- src/registrar/templates/includes/modal.html | 24 ++++++++++++++++--- src/registrar/views/domain_request.py | 13 ---------- 6 files changed, 63 insertions(+), 17 deletions(-) create mode 100644 src/registrar/assets/src/js/getgov/domain-request-form.js diff --git a/src/registrar/assets/src/js/getgov/domain-request-form.js b/src/registrar/assets/src/js/getgov/domain-request-form.js new file mode 100644 index 000000000..d9b660a50 --- /dev/null +++ b/src/registrar/assets/src/js/getgov/domain-request-form.js @@ -0,0 +1,12 @@ +import { submitForm } from './helpers.js'; + +export function initDomainRequestForm() { + document.addEventListener('DOMContentLoaded', function() { + const button = document.getElementById("domain-request-form-submit-button"); + if (button) { + button.addEventListener("click", function () { + submitForm("submit-domain-request-form"); + }); + } + }); +} \ No newline at end of file diff --git a/src/registrar/assets/src/js/getgov/helpers.js b/src/registrar/assets/src/js/getgov/helpers.js index 1afd84520..4b893ae7c 100644 --- a/src/registrar/assets/src/js/getgov/helpers.js +++ b/src/registrar/assets/src/js/getgov/helpers.js @@ -75,3 +75,17 @@ export function debounce(handler, cooldown=600) { export function getCsrfToken() { return document.querySelector('input[name="csrfmiddlewaretoken"]').value; } + +/** + * Helper function to submit a form + * @param {} form_id - the id of the form to be submitted + */ +export function submitForm(form_id) { + let form = document.getElementById(form_id); + if (form) { + console.log("submitting form"); + form.submit(); + } else { + console.error("Form '" + form_id + "' not found."); + } +} diff --git a/src/registrar/assets/src/js/getgov/main.js b/src/registrar/assets/src/js/getgov/main.js index f5ebc83a3..cee28e7a0 100644 --- a/src/registrar/assets/src/js/getgov/main.js +++ b/src/registrar/assets/src/js/getgov/main.js @@ -11,6 +11,7 @@ import { initMembersTable } from './table-members.js'; import { initMemberDomainsTable } from './table-member-domains.js'; import { initEditMemberDomainsTable } from './table-edit-member-domains.js'; import { initPortfolioNewMemberPageToggle, initAddNewMemberPageListeners, initPortfolioMemberPageRadio } from './portfolio-member-page.js'; +import { initDomainRequestForm } from './domain-request-form.js'; initDomainValidators(); @@ -36,6 +37,8 @@ initMembersTable(); initMemberDomainsTable(); initEditMemberDomainsTable(); +initDomainRequestForm(); + // Init the portfolio new member page initPortfolioMemberPageRadio(); initPortfolioNewMemberPageToggle(); diff --git a/src/registrar/templates/domain_request_form.html b/src/registrar/templates/domain_request_form.html index a076220cb..aeae9fb34 100644 --- a/src/registrar/templates/domain_request_form.html +++ b/src/registrar/templates/domain_request_form.html @@ -130,9 +130,21 @@ aria-describedby="Are you sure you want to submit a domain request?" data-force-action > - {% include 'includes/modal.html' with is_domain_request_form=True review_form_is_complete=review_form_is_complete modal_heading=modal_heading|safe modal_description=modal_description|safe modal_button=modal_button|safe %} + {% if review_form_is_complete %} + {% with modal_heading="You are about to submit a domain request for " domain_name_modal=requested_domain__name modal_description="Once you submit this request, you won’t be able to edit it until we review it. You’ll only be able to withdraw your request." modal_button_id="domain-request-form-submit-button" modal_button_text="Submit request" %} + {% include 'includes/modal.html' %} + {% endwith %} + {% else %} + {% with modal_heading="Your request form is incomplete" modal_description='This request cannot be submitted yet. Return to the request and visit the steps that are marked as "incomplete."' modal_button_text="Return to request" cancel_button_only=True %} + {% include 'includes/modal.html' %} + {% endwith %} + {% endif %} +
+ {% csrf_token %} +
+ {% block after_form_content %}{% endblock %} diff --git a/src/registrar/templates/includes/modal.html b/src/registrar/templates/includes/modal.html index 625044585..72a989484 100644 --- a/src/registrar/templates/includes/modal.html +++ b/src/registrar/templates/includes/modal.html @@ -24,8 +24,26 @@