← back to Commercialrealestate
detail-modal drill enrichment: condos modal address→Google Maps + View-listing→source link; broker-grid modal DRE# (8-digit)→full CA DRE record (all-data-href rule)
0d5ac4f7bece424e4acd85ab8c562c9a817c648c · 2026-08-03 10:29:57 -0700 · Steve Abrams
Files touched
M public/broker-grid.htmlM public/condos.html
Diff
commit 0d5ac4f7bece424e4acd85ab8c562c9a817c648c
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Mon Aug 3 10:29:57 2026 -0700
detail-modal drill enrichment: condos modal address→Google Maps + View-listing→source link; broker-grid modal DRE# (8-digit)→full CA DRE record (all-data-href rule)
---
public/broker-grid.html | 2 +-
public/condos.html | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/public/broker-grid.html b/public/broker-grid.html
index f11daf0..400df61 100644
--- a/public/broker-grid.html
+++ b/public/broker-grid.html
@@ -331,7 +331,7 @@ async function openContact(name,id){
track('broker_modal',{kind:'broker',id:d.broker&&d.broker.id,name:d.broker&&d.broker.name,active:(d.current||[]).length,closed:(d.closed||[]).length,withdrawn:(d.expired||[]).length});
const b=d.broker, w=b.website?(/^https?:/.test(b.website)?b.website:'https://'+b.website):null;
const li=b.linkedin?(/^https?:/.test(b.linkedin)?b.linkedin:'https://'+b.linkedin):null;
- mb.innerHTML='<h3>'+esc(b.name)+atb(b.agent_type)+'</h3><div class="mfirm">'+esc(b.firm||'—')+(b.title?' · '+esc(b.title):'')+(b.license?' · DRE/MLS '+esc(b.license):'')+'</div>'
+ mb.innerHTML='<h3>'+esc(b.name)+atb(b.agent_type)+'</h3><div class="mfirm">'+esc(b.firm||'—')+(b.title?' · '+esc(b.title):'')+(b.license?(function(){const L=String(b.license).trim();return /^\d{8}$/.test(L)?' · DRE# <a href="https://www2.dre.ca.gov/PublicASP/pplinfo.asp?License_id='+encodeURIComponent(L)+'" target="_blank" rel="noopener noreferrer" title="Full CA DRE license record ↗">'+esc(L)+' ↗</a>':' · DRE/MLS '+esc(L);})():'')+'</div>'
+'<div class="ci">'
+(b.phone?'<a href="tel:'+esc(b.phone)+'">☎ '+esc(b.phone)+'</a>':'<span class="mut">☎ —</span>')
+(b.email?'<a href="mailto:'+esc(b.email)+'">✉ '+esc(b.email)+'</a>':'<span class="mut">✉ —</span>')
diff --git a/public/condos.html b/public/condos.html
index f73be44..c36634c 100644
--- a/public/condos.html
+++ b/public/condos.html
@@ -484,7 +484,7 @@ function openDetail(id){
const line=(l,v)=>v==null||v===''?'':`<div class="litem"><span class="m">${esc(l)}</span><span>${v}</span></div>`;
const ppsf=c.sqft?Math.round(c.price/c.sqft):null;
mb.innerHTML='<h3>'+esc(c.project_name||c.address||'Condo')+'</h3>'
- +'<div class="maddr">'+esc(c.address||'')+(c.city?', '+esc(c.city):'')+' '+esc(c.zip||'')+'</div>'
+ +'<div class="maddr">'+(function(){const q=[c.address,c.city,c.zip].filter(Boolean).join(', ');const txt=esc(c.address||'')+(c.city?', '+esc(c.city):'')+' '+esc(c.zip||'');return q?`<a class="dl" href="https://www.google.com/maps/search/?api=1&query=${encodeURIComponent(q)}" target="_blank" rel="noopener noreferrer" title="Open in Google Maps">${txt} 🗺️</a>`:txt;})()+'</div>'
+statusBadge(c.warrantable_status||c.warrant_signal||'—')
+'<div style="margin-top:12px">'
+line('Price',money(c.price))
@@ -498,6 +498,7 @@ function openDetail(id){
+line('Broker',c.broker_name?`<a class="dl" href="/crcp.html?brokerName=${encodeURIComponent(c.broker_name)}">${esc(c.broker_name)}</a>`:c.broker_name)
+line('Firm',c.firm_name?`<a class="dl" href="/crcp.html?firm=${encodeURIComponent(c.firm_name)}">${esc(c.firm_name)}</a>`:c.firm_name)
+line('Added',dateTimeSpan(c.created_at))
+ +(c.source&&/^https?:/.test(c.source)?line('Listing',`<a class="dl" href="${esc(c.source)}" target="_blank" rel="noopener noreferrer">🔗 View listing ↗</a>`):'')
+'</div>'
+(c.warrant_source?'<div class="src">'+esc(c.warrant_source)+'</div>':'');
}
← c5e6497 rent-rolls density: hide slider in Table view (Cody — dead c
·
back to Commercialrealestate
·
modal drill (Cody fixes): gate broker DRE link on verified d 5d14bae →