mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-07-30 06:26:34 +02:00
cleanup and lint
This commit is contained in:
parent
088140a37d
commit
f9fa8772e5
5 changed files with 27 additions and 106 deletions
|
@ -29,8 +29,6 @@
|
|||
* - tooltip dynamic content updated to include nested element (for better sizing control)
|
||||
* - modal exposed to window to be accessible in other js files
|
||||
* - fixed bug in createHeaderButton which added newlines to header button tooltips
|
||||
* - modified combobox to allow for blank values in list
|
||||
* - modified aria label for X button in combobox to reflect modified behavior of button
|
||||
* - modified combobox to handle error class
|
||||
*/
|
||||
|
||||
|
@ -1169,13 +1167,13 @@ const enhanceComboBox = _comboBoxEl => {
|
|||
});
|
||||
}
|
||||
if (defaultValue) {
|
||||
for (let i = 0, len = selectEl.options.length; i < len; i += 1) {
|
||||
const optionEl = selectEl.options[i];
|
||||
if (optionEl.value === defaultValue) {
|
||||
selectedOption = optionEl;
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (let i = 0, len = selectEl.options.length; i < len; i += 1) {
|
||||
const optionEl = selectEl.options[i];
|
||||
if (optionEl.value === defaultValue) {
|
||||
selectedOption = optionEl;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1501,16 +1499,16 @@ const resetSelection = el => {
|
|||
const selectValue = selectEl.value;
|
||||
const inputValue = (inputEl.value || "").toLowerCase();
|
||||
if (selectValue) {
|
||||
for (let i = 0, len = selectEl.options.length; i < len; i += 1) {
|
||||
const optionEl = selectEl.options[i];
|
||||
if (optionEl.value === selectValue) {
|
||||
if (inputValue !== optionEl.text) {
|
||||
changeElementValue(inputEl, optionEl.text);
|
||||
}
|
||||
comboBoxEl.classList.add(COMBO_BOX_PRISTINE_CLASS);
|
||||
return;
|
||||
}
|
||||
}
|
||||
for (let i = 0, len = selectEl.options.length; i < len; i += 1) {
|
||||
const optionEl = selectEl.options[i];
|
||||
if (optionEl.value === selectValue) {
|
||||
if (inputValue !== optionEl.text) {
|
||||
changeElementValue(inputEl, optionEl.text);
|
||||
}
|
||||
comboBoxEl.classList.add(COMBO_BOX_PRISTINE_CLASS);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (inputValue) {
|
||||
changeElementValue(inputEl);
|
||||
|
|
|
@ -1,77 +0,0 @@
|
|||
import { hideElement, showElement } from './helpers.js';
|
||||
|
||||
export function loadInitialValuesForComboBoxes() {
|
||||
var overrideDefaultClearButton = true;
|
||||
var isTyping = false;
|
||||
|
||||
document.addEventListener('DOMContentLoaded', (event) => {
|
||||
handleAllComboBoxElements();
|
||||
});
|
||||
|
||||
function handleAllComboBoxElements() {
|
||||
const comboBoxElements = document.querySelectorAll(".usa-combo-box");
|
||||
comboBoxElements.forEach(comboBox => {
|
||||
const input = comboBox.querySelector("input");
|
||||
const select = comboBox.querySelector("select");
|
||||
if (!input || !select) {
|
||||
console.warn("No combobox element found");
|
||||
return;
|
||||
}
|
||||
// Set the initial value of the combobox
|
||||
let initialValue = select.getAttribute("data-default-value");
|
||||
let clearInputButton = comboBox.querySelector(".usa-combo-box__clear-input");
|
||||
if (!clearInputButton) {
|
||||
console.warn("No clear element found");
|
||||
return;
|
||||
}
|
||||
|
||||
// Override the default clear button behavior such that it no longer clears the input,
|
||||
// it just resets to the data-initial-value.
|
||||
// Due to the nature of how uswds works, this is slightly hacky.
|
||||
|
||||
// Input event listener to detect typing
|
||||
input.addEventListener("input", () => {
|
||||
isTyping = true;
|
||||
});
|
||||
|
||||
// Blur event listener to reset typing state
|
||||
input.addEventListener("blur", () => {
|
||||
isTyping = false;
|
||||
});
|
||||
|
||||
// Hide the reset button when there is nothing to reset.
|
||||
// Do this once on init, then everytime a change occurs.
|
||||
updateClearButtonVisibility(select, initialValue, clearInputButton)
|
||||
select.addEventListener("change", () => {
|
||||
updateClearButtonVisibility(select, initialValue, clearInputButton)
|
||||
});
|
||||
|
||||
// Change the default input behaviour - have it reset to the data default instead
|
||||
clearInputButton.addEventListener("click", (e) => {
|
||||
if (overrideDefaultClearButton) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
input.click();
|
||||
// Find the dropdown option with the desired value
|
||||
const dropdownOptions = document.querySelectorAll(".usa-combo-box__list-option");
|
||||
if (dropdownOptions) {
|
||||
dropdownOptions.forEach(option => {
|
||||
if (option.getAttribute("data-value") === initialValue) {
|
||||
// Simulate a click event on the dropdown option
|
||||
option.click();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function updateClearButtonVisibility(select, initialValue, clearInputButton) {
|
||||
if (select.value === initialValue) {
|
||||
hideElement(clearInputButton);
|
||||
}else {
|
||||
showElement(clearInputButton)
|
||||
}
|
||||
}
|
||||
}
|
|
@ -3,7 +3,6 @@ import { initDomainValidators } from './domain-validators.js';
|
|||
import { initFormsetsForms, triggerModalOnDsDataForm, nameserversFormListener } from './formset-forms.js';
|
||||
import { initializeUrbanizationToggle } from './urbanization.js';
|
||||
import { userProfileListener, finishUserSetupListener } from './user-profile.js';
|
||||
import { loadInitialValuesForComboBoxes } from './combobox.js';
|
||||
import { handleRequestingEntityFieldset } from './requesting-entity.js';
|
||||
import { initDomainsTable } from './table-domains.js';
|
||||
import { initDomainRequestsTable } from './table-domain-requests.js';
|
||||
|
@ -31,8 +30,6 @@ initializeUrbanizationToggle();
|
|||
userProfileListener();
|
||||
finishUserSetupListener();
|
||||
|
||||
//loadInitialValuesForComboBoxes();
|
||||
|
||||
handleRequestingEntityFieldset();
|
||||
|
||||
initDomainsTable();
|
||||
|
|
|
@ -73,12 +73,14 @@ class RequestingEntityForm(RegistrarForm):
|
|||
self.fields["sub_organization"].queryset = queryset
|
||||
|
||||
# Modify the choices to include "other" so that form can display options properly
|
||||
self.fields["sub_organization"].choices = [("", "--Select--")] + [
|
||||
(obj.id, str(obj)) for obj in queryset
|
||||
] + [("other", "Other (enter your suborganization manually)")]
|
||||
self.fields["sub_organization"].choices = (
|
||||
[("", "--Select--")]
|
||||
+ [(obj.id, str(obj)) for obj in queryset]
|
||||
+ [("other", "Other (enter your suborganization manually)")]
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def from_database(cls, obj: DomainRequest | None):
|
||||
def from_database(cls, obj: DomainRequest | Contact | None):
|
||||
"""Returns a dict of form field values gotten from `obj`.
|
||||
Overrides RegistrarForm method in order to set sub_organization to 'other'
|
||||
on GETs of the RequestingEntityForm."""
|
||||
|
@ -86,9 +88,11 @@ class RequestingEntityForm(RegistrarForm):
|
|||
return {}
|
||||
# get the domain request as a dict, per usual method
|
||||
domain_request_dict = {name: getattr(obj, name) for name in cls.declared_fields.keys()} # type: ignore
|
||||
|
||||
# set sub_organization to 'other' if is_requesting_new_suborganization is True
|
||||
if obj.is_requesting_new_suborganization():
|
||||
if isinstance(obj, DomainRequest) and obj.is_requesting_new_suborganization():
|
||||
domain_request_dict["sub_organization"] = "other"
|
||||
|
||||
return domain_request_dict
|
||||
|
||||
def clean_sub_organization(self):
|
||||
|
@ -116,7 +120,6 @@ class RequestingEntityForm(RegistrarForm):
|
|||
)
|
||||
return name
|
||||
|
||||
|
||||
def full_clean(self):
|
||||
"""Validation logic to temporarily remove the custom suborganization value before clean is triggered.
|
||||
Without this override, the form will throw an 'invalid option' error."""
|
||||
|
|
|
@ -560,7 +560,7 @@ class PortfolioDomainRequestWizard(DomainRequestWizard):
|
|||
class RequestingEntity(DomainRequestWizard):
|
||||
template_name = "domain_request_requesting_entity.html"
|
||||
forms = [forms.RequestingEntityYesNoForm, forms.RequestingEntityForm]
|
||||
|
||||
|
||||
def save(self, forms: list):
|
||||
"""Override of save to clear or associate certain suborganization data
|
||||
depending on what the user wishes to do. For instance, we want to add a suborganization
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue