diff --git a/src/registrar/assets/js/get-gov.js b/src/registrar/assets/js/get-gov.js index c9f6d77af..4c9f8f25f 100644 --- a/src/registrar/assets/js/get-gov.js +++ b/src/registrar/assets/js/get-gov.js @@ -230,4 +230,31 @@ function handleValidationClick(e) { })(); +(function prepareForms() { + let serverForm = document.querySelectorAll(".server-form") + let container = document.querySelector("#form-container") + let addButton = document.querySelector("#add-form") + let totalForms = document.querySelector("#id_form-TOTAL_FORMS") + + let formNum = serverForm.length-1 + addButton.addEventListener('click', addForm) + + function addForm(e){ + e.preventDefault() + + let newForm = serverForm[0].cloneNode(true) + let formNumberRegex = RegExp(`form-(\\d){1}-`,'g') + let formLabelRegex = RegExp(`Name server (\\d){1}`, 'g') + let formExampleRegex = RegExp(`ns(\\d){1}`, 'g') + + formNum++ + newForm.innerHTML = newForm.innerHTML.replace(formNumberRegex, `form-${formNum}-`) + newForm.innerHTML = newForm.innerHTML.replace(formLabelRegex, `Name server ${formNum+1}`) + newForm.innerHTML = newForm.innerHTML.replace(formExampleRegex, `ns${formNum+1}`) + container.insertBefore(newForm, addButton) + newForm.querySelector("input").value = "" + + totalForms.setAttribute('value', `${formNum+1}`) + } +})(); diff --git a/src/registrar/forms/__init__.py b/src/registrar/forms/__init__.py index 778457b7e..c6bd4110d 100644 --- a/src/registrar/forms/__init__.py +++ b/src/registrar/forms/__init__.py @@ -1,2 +1,2 @@ from .application_wizard import * -from .domain import DomainAddUserForm, DomainNameserverForm +from .domain import DomainAddUserForm, DomainNameserverForm, NameserverFormset diff --git a/src/registrar/forms/domain.py b/src/registrar/forms/domain.py index 327a1f3d0..3bc2aed55 100644 --- a/src/registrar/forms/domain.py +++ b/src/registrar/forms/domain.py @@ -1,7 +1,7 @@ """Forms for domain management.""" from django import forms - +from django.forms import formset_factory class DomainAddUserForm(forms.Form): @@ -15,3 +15,8 @@ class DomainNameserverForm(forms.Form): """Form for changing nameservers.""" server = forms.CharField(label="Name server") + +NameserverFormset = formset_factory( + DomainNameserverForm, + extra=1, +) diff --git a/src/registrar/models/domain.py b/src/registrar/models/domain.py index cddf41d63..1302be808 100644 --- a/src/registrar/models/domain.py +++ b/src/registrar/models/domain.py @@ -234,7 +234,7 @@ class Domain(TimeStampedModel): """Set the nameservers for this domain.""" # TODO: call EPP to set these values in the registry instead of doing # nothing. - pass + logger.warn("TODO: Fake setting nameservers to %s", new_nameservers) @property def roid(self): diff --git a/src/registrar/templates/domain_nameservers.html b/src/registrar/templates/domain_nameservers.html index f1dd3cff8..141e9225f 100644 --- a/src/registrar/templates/domain_nameservers.html +++ b/src/registrar/templates/domain_nameservers.html @@ -13,11 +13,12 @@ {% include "includes/required_fields.html" %} -