← back to Sublease Agentabrams

public/claims.html

42 lines

<!doctype html>
<html lang="en"><head>
<meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1">
<title>Profile claims · Admin</title>
<style>
  :root{--ink:#14181d;--mut:#6b7480;--line:#e7e9ee;--bg:#fbfbfc;--accent:#1a5f3c}
  body{margin:0;font:14px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,sans-serif;color:var(--ink);background:var(--bg)}
  .wrap{max-width:960px;margin:0 auto;padding:24px 22px}a{color:var(--accent)}
  h1{font-size:20px;margin:0 0 4px}.sub{color:var(--mut);margin:0 0 20px}
  .claim{border:1px solid var(--line);border-radius:12px;background:#fff;padding:16px;margin-bottom:12px}
  .claim .h{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:baseline}
  .claim .nm{font-weight:700}.claim .when{color:var(--mut);font-size:12px}
  .pend{font-size:11px;padding:2px 8px;border-radius:20px;background:#fff4e5;color:#b6791f;text-transform:uppercase;letter-spacing:.05em}
  .grid{display:grid;grid-template-columns:120px 1fr;gap:4px 12px;margin-top:10px;font-size:13.5px}
  .grid .k{color:var(--mut)}.self{color:#1a7a44;font-weight:600}
  .empty{color:var(--mut);border:1px dashed var(--line);border-radius:12px;padding:30px;text-align:center}
</style></head><body><div class="wrap">
<h1>Profile claims</h1>
<p class="sub"><a href="/">← marketplace</a> · brokers who claimed their profile. Pending review — approving a claim (merging into the profile) is a manual admin step; nothing here has changed a public profile.</p>
<div id="list"></div>
</div>
<script>
const fmt=t=>t?new Date(t).toLocaleString(undefined,{year:'numeric',month:'short',day:'numeric',hour:'numeric',minute:'2-digit'}):'—';
(async()=>{
  const d=await fetch('/api/claims').then(r=>r.json()).catch(()=>({claims:[]}));
  const L=document.getElementById('list');
  if(!d.claims||!d.claims.length){L.innerHTML='<div class="empty">No profile claims submitted yet.</div>';return;}
  const row=(k,v)=>v?`<div class="k">${k}</div><div>${v}</div>`:'';
  L.innerHTML=d.claims.map(c=>`<div class="claim">
    <div class="h"><div><span class="nm">${c.name}</span> ${c.is_self?'<span class="self">✓ self-confirmed</span>':''}
      — claims broker <a href="/brokers/${c.broker_id}" target="_blank">#${c.broker_id}</a></div>
      <div><span class="pend">${c.status||'pending'}</span> <span class="when">🕓 ${fmt(c.ts)}</span></div></div>
    <div class="grid">
      ${row('Email',c.email?`<a href="mailto:${c.email}">${c.email}</a>`:'')}
      ${row('Phone',c.phone)}${row('Title',c.title)}${row('Firm',c.firm)}
      ${row('Website',c.website?`<a href="${c.website}" target="_blank" rel="noopener">${c.website}</a>`:'')}
      ${row('LinkedIn',c.linkedin?`<a href="${c.linkedin}" target="_blank" rel="noopener">${c.linkedin}</a>`:'')}
      ${row('Bio',c.bio)}${row('Corrections',c.corrections)}
    </div></div>`).join('');
})();
</script></body></html>