Simplify JS

This commit is contained in:
Rachid Mrad 2025-02-18 16:50:17 -05:00
parent 51ec885c0c
commit f61138208b
No known key found for this signature in database

View file

@ -23,13 +23,13 @@ export class EditMemberDomainsTable extends BaseTable {
this.readonlyModeContainer = document.getElementById('domain-assignments-readonly-view'); this.readonlyModeContainer = document.getElementById('domain-assignments-readonly-view');
this.reviewButton = document.getElementById('review-domain-assignments'); this.reviewButton = document.getElementById('review-domain-assignments');
this.backButton = document.getElementById('back-to-edit-domain-assignments'); this.backButton = document.getElementById('back-to-edit-domain-assignments');
this.saveButton = document.getElementById('save-domain-assignments'); this.saveButton = document.getElementById('save-domain-assignments');
}
this.domainAssignmentsLoaded = false; // Flag to track if API request has completed async init() {
await this.initializeDomainAssignments();
this.initializeDomainAssignments();
this.initCancelEditDomainAssignmentButton(); this.initCancelEditDomainAssignmentButton();
this.initEventListeners(); this.initEventListeners();
return this;
} }
getBaseUrl() { getBaseUrl() {
return document.getElementById("get_member_domains_json_url"); return document.getElementById("get_member_domains_json_url");
@ -138,8 +138,6 @@ export class EditMemberDomainsTable extends BaseTable {
* It is called once per page load, but not called with subsequent table changes. * It is called once per page load, but not called with subsequent table changes.
*/ */
async initializeDomainAssignments() { async initializeDomainAssignments() {
if (this.domainAssignmentsLoaded) return; // Prevent multiple calls
const baseUrlValue = this.getBaseUrl()?.innerHTML ?? null; const baseUrlValue = this.getBaseUrl()?.innerHTML ?? null;
if (!baseUrlValue) { if (!baseUrlValue) {
console.error("Base URL not found"); console.error("Base URL not found");
@ -166,8 +164,6 @@ export class EditMemberDomainsTable extends BaseTable {
} catch (error) { } catch (error) {
console.error("Error fetching domain assignments:", error); console.error("Error fetching domain assignments:", error);
} }
this.domainAssignmentsLoaded = true; // Flag as complete whether data was found or not
} }
/** /**
* Initializes listeners on checkboxes in the table. Checkbox listeners are used * Initializes listeners on checkboxes in the table. Checkbox listeners are used
@ -245,8 +241,6 @@ export class EditMemberDomainsTable extends BaseTable {
} }
updateReadonlyDisplay() { updateReadonlyDisplay() {
let totalAssignedDomains = this.getCheckedDomains().length;
// Create unassigned domains list // Create unassigned domains list
const unassignedDomainsList = document.createElement('ul'); const unassignedDomainsList = document.createElement('ul');
unassignedDomainsList.classList.add('usa-list', 'usa-list--unstyled'); unassignedDomainsList.classList.add('usa-list', 'usa-list--unstyled');
@ -363,24 +357,14 @@ export class EditMemberDomainsTable extends BaseTable {
} }
export function initEditMemberDomainsTable() { export function initEditMemberDomainsTable() {
document.addEventListener('DOMContentLoaded', function() { document.addEventListener('DOMContentLoaded', async function() {
const isEditMemberDomainsPage = document.getElementById("edit-member-domains"); const isEditMemberDomainsPage = document.getElementById("edit-member-domains");
if (!isEditMemberDomainsPage) return; // Exit if not on the right page if (!isEditMemberDomainsPage) return; // Exit if not on the right page
const editMemberDomainsTable = new EditMemberDomainsTable(); const editMemberDomainsTable = await new EditMemberDomainsTable().init();
function attemptInitTable() { if (editMemberDomainsTable.tableWrapper) {
if (!editMemberDomainsTable.domainAssignmentsLoaded) { editMemberDomainsTable.loadTable(1); // Initial load
console.warn("initEditMemberDomainsTable called before domain assignments loaded. Retrying later...");
setTimeout(attemptInitTable, 50); // Retry with a slight delay
return;
}
if (editMemberDomainsTable.tableWrapper) {
editMemberDomainsTable.loadTable(1); // Initial load
}
} }
attemptInitTable(); // Call the function immediately
}); });
} }