fix: permissions button broken for new orgs — store orgs in JS map, pass only ID in onclick (same apostrophe/JSON escaping bug)

This commit is contained in:
James 2026-03-15 00:07:32 -04:00
parent 110d44e238
commit 9be3c41493
1 changed files with 10 additions and 1 deletions

View File

@ -967,10 +967,13 @@
// ---- Organizations ----
let allGlobalOrgs = [];
let _dealOrgsMap = {};
async function loadOrgs() {
try {
const res = await fetchAPI('/api/projects/' + projectID + '/orgs');
const orgs = await res.json();
_dealOrgsMap = {};
if (Array.isArray(orgs)) orgs.forEach(o => { _dealOrgsMap[o.deal_org_id] = o; });
const list = document.getElementById('orgList');
if (!orgs || orgs.length === 0) {
list.innerHTML = '<div class="text-[#94a3b8] text-sm">No organizations added yet. Use "+ Add Org" to add parties to this deal.</div>';
@ -997,7 +1000,7 @@
<span>${perms.folder_access === 'all' ? '📂 All folders' : '📂 Assigned only'}</span>
</div>
</div>
<button onclick="openPermModal('${o.deal_org_id}','${o.org_id}','${o.role}',${o.version || 1},${JSON.stringify(JSON.stringify(o.permissions||{}))})"
<button onclick="openPermModalById('${o.deal_org_id}')"
class="px-3 py-1.5 bg-white/[0.05] hover:bg-white/[0.08] text-[#94a3b8] hover:text-white rounded-lg text-xs transition shrink-0">⚙ Permissions</button>
</div>
${members.length > 0 ? `<div class="border-t border-white/[0.06] px-5 py-3">
@ -1268,6 +1271,12 @@
}
// ---- Permissions Modal ----
function openPermModalById(dealOrgId) {
const o = _dealOrgsMap[dealOrgId];
if (!o) return;
openPermModal(o.deal_org_id, o.org_id, o.role, o.version || 1, JSON.stringify(o.permissions || {}));
}
function openPermModal(dealOrgId, orgId, role, version, permsJson) {
let perms = {};
try { perms = JSON.parse(permsJson) || {}; } catch(e) {}