diff --git a/panel/public/assets/js/admin.js b/panel/public/assets/js/admin.js
index 26a84a2..8e8e145 100644
--- a/panel/public/assets/js/admin.js
+++ b/panel/public/assets/js/admin.js
@@ -4644,31 +4644,28 @@ ${results.map(z=>`
// ══ ADMIN SUBDOMAINS PAGE ═════════════════════════════════════════════════
window.adminSubdomains = async function() {
- Nova.loadPage('subdomains', window._novaPages); document.getElementById('page-title').textContent='All Subdomains'; document.getElementById('page-content').innerHTML=`, 'All Subdomains', `
+ document.querySelectorAll('.sidebar-link').forEach(l=>l.classList.remove('active'));
+ document.querySelector('[data-page="subdomains"]')?.classList.add('active');
+ document.getElementById('page-title').textContent = 'All Subdomains';
+ document.getElementById('page-content').innerHTML = `
All subdomains across all hosting accounts.
- `);
- `;
+ `;
const el = document.getElementById('admin-sub-list');
const res = await Nova.api('accounts','list',{params:{per_page:200}});
if (!res?.success || !res.data?.length) { el.innerHTML='No accounts
'; return; }
- const accts = res.data;
let rows = [];
- for (const acct of accts) {
+ for (const acct of res.data) {
const dr = await Nova.api('domains','list',{params:{account_id:acct.id}});
if (!dr?.success) continue;
- dr.data.filter(d=>d.type==='subdomain').forEach(d => rows.push({...d, account_username: acct.username, account_domain: acct.domain}));
+ dr.data.filter(d=>d.type==='subdomain').forEach(d=>rows.push({...d,acct_username:acct.username}));
}
if (!rows.length) { el.innerHTML='No subdomains found.
'; return; }
- el.innerHTML = `| Account | Subdomain | SSL | Created | |
- ${rows.map(d=>`
- | ${d.account_username} |
- ${d.domain} |
- ${d.ssl_enabled ? 'SSL' : '—'} |
- ${(d.created_at||'').split('T')[0]} |
- |
-
`).join('')}
+ el.innerHTML = `| Account | Subdomain | SSL | Created |
+ ${rows.map(d=>`| ${d.acct_username} | ${d.domain} |
+ ${d.ssl_enabled?Nova.badge('SSL','green'):'—'} |
+ ${(d.created_at||'').split('T')[0]} |
`).join('')}
`;
};
@@ -4681,8 +4678,7 @@ window.adminParked = async function() {
All parked/alias domains across all accounts.
- `);
- `;
+ `;
const el = document.getElementById('admin-park-list');
const res = await Nova.api('accounts','list',{params:{per_page:200}});
if (!res?.success || !res.data?.length) { el.innerHTML='No accounts
'; return; }
@@ -4691,15 +4687,13 @@ window.adminParked = async function() {
const dr = await Nova.api('domains','list',{params:{account_id:acct.id}});
if (!dr?.success) continue;
const main = dr.data.find(d=>d.type==='main');
- dr.data.filter(d=>d.type==='parked'||d.type==='alias').forEach(d => rows.push({...d, account_username: acct.username, main_domain: main?.domain||acct.domain}));
+ dr.data.filter(d=>d.type==='parked'||d.type==='alias').forEach(d=>rows.push({...d,acct_username:acct.username,main_domain:main?.domain||acct.domain}));
}
if (!rows.length) { el.innerHTML='No parked domains found.
'; return; }
el.innerHTML = `| Account | Parked Domain | Points To | Created |
- ${rows.map(d=>`
- | ${d.account_username} |
- ${d.domain} |
+ ${rows.map(d=>`
| ${d.acct_username} | ${d.domain} |
${d.main_domain} |
- ${(d.created_at||'').split('T')[0]} |
-
`).join('')}
+ ${(d.created_at||'').split('T')[0]} | `).join('')}
`;
};
+