mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-07-25 20:18:38 +02:00
Bug fix after merge and cleanup
This commit is contained in:
parent
5532aa1516
commit
cea47d1d3d
4 changed files with 28 additions and 18 deletions
|
@ -1826,6 +1826,9 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function setupListener(){
|
function setupListener(){
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
document.querySelectorAll('[id$="__edit-button"]').forEach(function(button) {
|
document.querySelectorAll('[id$="__edit-button"]').forEach(function(button) {
|
||||||
// Get the "{field_name}" and "edit-button"
|
// Get the "{field_name}" and "edit-button"
|
||||||
let fieldIdParts = button.id.split("__")
|
let fieldIdParts = button.id.split("__")
|
||||||
|
@ -1849,11 +1852,26 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||||
let firstName = document.querySelector("#id_first_name");
|
let firstName = document.querySelector("#id_first_name");
|
||||||
let middleName = document.querySelector("#id_middle_name");
|
let middleName = document.querySelector("#id_middle_name");
|
||||||
let lastName = document.querySelector("#id_last_name");
|
let lastName = document.querySelector("#id_last_name");
|
||||||
if (firstName && lastName) {
|
if (firstName && lastName && firstName.value && lastName.value) {
|
||||||
let values = [firstName.value, middleName.value, lastName.value]
|
let values = [firstName.value, middleName.value, lastName.value]
|
||||||
readonlyField.innerHTML = values.join(" ");
|
readonlyField.innerHTML = values.join(" ");
|
||||||
}else {
|
}else {
|
||||||
readonlyField.innerHTML = "Unknown";
|
let fullNameField = document.querySelector('#full_name__edit-button-readonly');
|
||||||
|
let svg = fullNameField.querySelector("svg use")
|
||||||
|
if (svg) {
|
||||||
|
const currentHref = svg.getAttribute('xlink:href');
|
||||||
|
if (currentHref) {
|
||||||
|
const parts = currentHref.split('#');
|
||||||
|
if (parts.length === 2) {
|
||||||
|
// Keep the path before '#' and replace the part after '#' with 'invalid'
|
||||||
|
const newHref = parts[0] + '#error';
|
||||||
|
svg.setAttribute('xlink:href', newHref);
|
||||||
|
fullNameField.classList.add("input-with-edit-button__error")
|
||||||
|
label = fullNameField.querySelector(".input-with-edit-button__readonly-field")
|
||||||
|
label.innerHTML = "Unknown";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Technically, the full_name field is optional, but we want to display it as required.
|
// Technically, the full_name field is optional, but we want to display it as required.
|
||||||
|
@ -1873,6 +1891,7 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||||
|
|
||||||
function showInputOnErrorFields(){
|
function showInputOnErrorFields(){
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
|
|
||||||
// Get all input elements within the form
|
// Get all input elements within the form
|
||||||
let form = document.querySelector("#finish-profile-setup-form");
|
let form = document.querySelector("#finish-profile-setup-form");
|
||||||
let inputs = form ? form.querySelectorAll("input") : null;
|
let inputs = form ? form.querySelectorAll("input") : null;
|
||||||
|
@ -1911,9 +1930,9 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
// Hookup all edit buttons to the `handleEditButtonClick` function
|
|
||||||
setupListener();
|
setupListener();
|
||||||
|
|
||||||
// Show the input fields if an error exists
|
// Show the input fields if an error exists
|
||||||
showInputOnErrorFields();
|
showInputOnErrorFields();
|
||||||
|
|
||||||
})();
|
})();
|
||||||
|
|
|
@ -93,10 +93,7 @@ class FinishSetupProfileForm(UserProfileForm):
|
||||||
self.fields["title"].label = "Title or role in your organization"
|
self.fields["title"].label = "Title or role in your organization"
|
||||||
|
|
||||||
# Define the "full_name" value
|
# Define the "full_name" value
|
||||||
full_name = ""
|
full_name = None
|
||||||
if self.instance.first_name and self.instance.last_name:
|
if self.instance.first_name and self.instance.last_name:
|
||||||
full_name = self.instance.get_formatted_name(return_unknown_when_none=False)
|
full_name = self.instance.get_formatted_name()
|
||||||
self.fields["full_name"].initial = full_name
|
self.fields["full_name"].initial = full_name
|
||||||
|
|
||||||
# Set full_name as required for styling purposes
|
|
||||||
self.fields["full_name"].widget.attrs["required"] = "required"
|
|
||||||
|
|
|
@ -87,13 +87,10 @@ class Contact(TimeStampedModel):
|
||||||
return getattr(self, relation).count() > threshold
|
return getattr(self, relation).count() > threshold
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def get_formatted_name(self, return_unknown_when_none=True):
|
def get_formatted_name(self):
|
||||||
"""Returns the contact's name in Western order."""
|
"""Returns the contact's name in Western order."""
|
||||||
names = [n for n in [self.first_name, self.middle_name, self.last_name] if n]
|
names = [n for n in [self.first_name, self.middle_name, self.last_name] if n]
|
||||||
if names:
|
return " ".join(names) if names else "Unknown"
|
||||||
return " ".join(names)
|
|
||||||
else:
|
|
||||||
return "Unknown" if return_unknown_when_none else None
|
|
||||||
|
|
||||||
def has_contact_info(self):
|
def has_contact_info(self):
|
||||||
return bool(self.title or self.email or self.phone)
|
return bool(self.title or self.email or self.phone)
|
||||||
|
|
|
@ -161,13 +161,10 @@ class User(AbstractUser):
|
||||||
"""Return count of ineligible requests"""
|
"""Return count of ineligible requests"""
|
||||||
return self.domain_requests_created.filter(status=DomainRequest.DomainRequestStatus.INELIGIBLE).count()
|
return self.domain_requests_created.filter(status=DomainRequest.DomainRequestStatus.INELIGIBLE).count()
|
||||||
|
|
||||||
def get_formatted_name(self, return_unknown_when_none=True):
|
def get_formatted_name(self):
|
||||||
"""Returns the contact's name in Western order."""
|
"""Returns the contact's name in Western order."""
|
||||||
names = [n for n in [self.first_name, self.middle_name, self.last_name] if n]
|
names = [n for n in [self.first_name, self.middle_name, self.last_name] if n]
|
||||||
if names:
|
return " ".join(names) if names else "Unknown"
|
||||||
return " ".join(names)
|
|
||||||
else:
|
|
||||||
return "Unknown" if return_unknown_when_none else None
|
|
||||||
|
|
||||||
def has_contact_info(self):
|
def has_contact_info(self):
|
||||||
return bool(self.title or self.email or self.phone)
|
return bool(self.title or self.email or self.phone)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue