fix: add org website/domain field for invite validation; dropdown hides on blur
This commit is contained in:
parent
8b0a09bb7e
commit
0bb8033ed7
|
|
@ -167,12 +167,15 @@
|
|||
<div id="orgNameDropdown" class="hidden absolute left-0 right-0 top-full mt-1 bg-[#0d1f3c] border border-white/[0.12] rounded-lg z-10 max-h-48 overflow-y-auto shadow-xl"></div>
|
||||
<input type="hidden" id="addOrgId" value="">
|
||||
</div>
|
||||
<!-- Website / Domain -->
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-[#94a3b8] mb-2">Website <span class="text-[#475569] font-normal">(used for invite domain validation)</span></label>
|
||||
<input type="text" id="addOrgWebsite" placeholder="e.g. blackstone.com"
|
||||
class="w-full px-4 py-2.5 bg-[#0a1628] border border-white/[0.08] rounded-lg text-white placeholder-[#475569] focus:outline-none focus:border-[#c9a84c] text-sm">
|
||||
</div>
|
||||
<!-- Members -->
|
||||
<div>
|
||||
<div class="flex items-center justify-between mb-2">
|
||||
<label class="text-sm font-medium text-[#94a3b8]">Team Members</label>
|
||||
<button onclick="addMemberRow()" class="text-xs text-[#c9a84c] hover:underline">+ Add member</button>
|
||||
</div>
|
||||
<label class="block text-sm font-medium text-[#94a3b8] mb-2">Team Members</label>
|
||||
<div id="memberRows" class="space-y-2"></div>
|
||||
</div>
|
||||
<!-- Permissions -->
|
||||
|
|
@ -869,6 +872,7 @@
|
|||
document.getElementById('addOrgError').classList.add('hidden');
|
||||
document.getElementById('addOrgName').value = '';
|
||||
document.getElementById('addOrgId').value = '';
|
||||
document.getElementById('addOrgWebsite').value = '';
|
||||
pendingMembers = [];
|
||||
renderMemberBubbles();
|
||||
setOrgType('buyer', document.querySelector('[data-type="buyer"]'));
|
||||
|
|
@ -1057,11 +1061,13 @@
|
|||
try {
|
||||
let orgId = existingOrgId;
|
||||
if (!orgId) {
|
||||
// Auto-derive domains from member emails
|
||||
// Use manually entered website/domain first, fall back to member email domains
|
||||
const websiteInput = (document.getElementById('addOrgWebsite').value || '').trim().replace(/^https?:\/\//, '').replace(/\/.*$/, '').toLowerCase();
|
||||
const emailDomains = [...new Set(
|
||||
members.map(m => m.email ? m.email.split('@')[1] : null).filter(Boolean)
|
||||
)];
|
||||
const createRes = await fetchAPI('/api/orgs', { method: 'POST', body: JSON.stringify({ name, domains: emailDomains, role, website: '' }) });
|
||||
const domains = websiteInput ? [websiteInput, ...emailDomains.filter(d => d !== websiteInput)] : emailDomains;
|
||||
const createRes = await fetchAPI('/api/orgs', { method: 'POST', body: JSON.stringify({ name, domains, role, website: websiteInput ? 'https://' + websiteInput : '' }) });
|
||||
if (!createRes.ok) { const e = await createRes.json(); throw new Error(e.error || 'Failed to create org'); }
|
||||
const created = await createRes.json();
|
||||
orgId = created.entry_id || created.org_id;
|
||||
|
|
|
|||
Loading…
Reference in New Issue