diff --git a/panel/public/assets/js/user.js b/panel/public/assets/js/user.js index 21ba508..a507ba4 100644 --- a/panel/public/assets/js/user.js +++ b/panel/public/assets/js/user.js @@ -327,9 +327,21 @@ async function loadEmailList() { } window.loadEmailList = loadEmailList; -window.addEmailAccount = () => { +window.addEmailAccount = async () => { + const dr = await Nova.api('domains', 'list'); + const domains = (dr?.data || []).map(d => d.domain).filter(Boolean); + const domainOpts = domains.length + ? domains.map(d => ``).join('') + : ''; Nova.modal('Add Email Account', ` -
+
+ +
+ + @ + +
+
`, `` @@ -337,8 +349,12 @@ window.addEmailAccount = () => { }; window.submitAddEmail = async () => { + const local = (document.getElementById('em-local')?.value || '').trim(); + const domain = document.getElementById('em-domain')?.value || ''; + if (!local) { Nova.toast('Enter a username', 'error'); return; } + if (!domain) { Nova.toast('Select a domain', 'error'); return; } const res = await Nova.api('email', 'create', { method: 'POST', body: { - email: document.getElementById('em-addr')?.value, + email: `${local}@${domain}`, password: document.getElementById('em-pass')?.value, quota_mb: parseInt(document.getElementById('em-quota')?.value || '0'), }});