← back to Commercialrealestate
global search (Cody gate): deep-link ?q= readers in broker-grid + mls so result clicks actually filter (was dead-end); add .topnav to mount selector so index docks in-nav (was floating pill collision)
02f971577fa2dc5ff7007a496f07a79cbc123af0 · 2026-08-03 12:19:59 -0700 · Steve Abrams
Files touched
M public/broker-grid.htmlM public/global-search.jsM public/mls.html
Diff
commit 02f971577fa2dc5ff7007a496f07a79cbc123af0
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Mon Aug 3 12:19:59 2026 -0700
global search (Cody gate): deep-link ?q= readers in broker-grid + mls so result clicks actually filter (was dead-end); add .topnav to mount selector so index docks in-nav (was floating pill collision)
---
public/broker-grid.html | 2 ++
public/global-search.js | 2 +-
public/mls.html | 2 ++
3 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/public/broker-grid.html b/public/broker-grid.html
index 10cfcf8..4726faf 100644
--- a/public/broker-grid.html
+++ b/public/broker-grid.html
@@ -389,6 +389,8 @@ $('#thead').addEventListener('drop',e=>{ if(!dragKey) return; const th=e.target.
dragKey=null; });
$('#thead').addEventListener('dragend',()=>{ document.querySelectorAll('#thead th.dragging,#thead th.dropL,#thead th.dropR').forEach(x=>x.classList.remove('dragging','dropL','dropR')); dragKey=null; });
$('#q').addEventListener('input',()=>{q=$('#q').value.trim();render();});
+// deep-link ?q= (from the global nav search) — pre-fill + filter on load
+(function(){ const _q=new URLSearchParams(location.search).get('q'); if(_q){ const b=$('#q'); if(b){ b.value=_q; q=_q.trim(); } } })();
function exportCSV(){ const rows=filtered(); const cols=visCols(); const cv=(r,c)=>{let v=r[c.k]; v=(v==null?'':String(v)); return '"'+v.replace(/"/g,'""')+'"';};
const csv=cols.map(c=>'"'+c.l+'"').join(',')+'\n'+rows.map(r=>cols.map(c=>cv(r,c)).join(',')).join('\n');
const a=document.createElement('a'); a.href=URL.createObjectURL(new Blob([csv],{type:'text/csv'})); a.download='cre-brokers-'+rows.length+'.csv'; a.click(); URL.revokeObjectURL(a.href); }
diff --git a/public/global-search.js b/public/global-search.js
index 853db6c..d1f854c 100644
--- a/public/global-search.js
+++ b/public/global-search.js
@@ -27,7 +27,7 @@
var wrap = document.createElement('div'); wrap.className = 'gsearch';
wrap.innerHTML = '<input type="search" placeholder="🔍 Search everything — address, broker, firm, DRE#…" aria-label="Global search">'
+ '<div class="gres" role="listbox"></div>';
- var host = document.querySelector('.nav') || document.querySelector('header nav') || document.querySelector('nav') || document.body;
+ var host = document.querySelector('.nav') || document.querySelector('.topnav') || document.querySelector('header nav') || document.querySelector('nav') || document.body;
if (host === document.body) { wrap.style.cssText = 'position:fixed;top:8px;right:12px;z-index:9999'; document.body.appendChild(wrap); }
else host.appendChild(wrap);
diff --git a/public/mls.html b/public/mls.html
index a4d60a6..41327b1 100644
--- a/public/mls.html
+++ b/public/mls.html
@@ -459,6 +459,8 @@ document.addEventListener('click',e=>{ const cp=e.target.closest('[data-copy]');
const row=e.target.closest('.prow'); if(row && e.target.tagName!=='A'){ propHistory(row.dataset.addr,row.dataset.city); }
if(e.target.id==='ov'||e.target.classList.contains('ph-x')) $('#ov').classList.remove('on'); });
$('#q').addEventListener('input',()=>{ q=$('#q').value.trim(); render(); });
+// deep-link ?q= (from the global nav search) — pre-fill + filter on load
+(function(){ const _q=new URLSearchParams(location.search).get('q'); if(_q){ const b=$('#q'); if(b){ b.value=_q; q=_q.trim(); } } })();
function exportCSV(){ const rows=filtered(); const cols=visCols(); const cv=(r,c)=>{let v=cval(r,c); v=(v==null?'':String(v)); return '"'+v.replace(/"/g,'""')+'"';};
const csv=cols.map(c=>'"'+c.l+'"').join(',')+'\n'+rows.map(r=>cols.map(c=>cv(r,c)).join(',')).join('\n');
const a=document.createElement('a'); a.href=URL.createObjectURL(new Blob([csv],{type:'text/csv'})); a.download='cre-mls-'+rows.length+'.csv'; a.click(); URL.revokeObjectURL(a.href); }
← 7f384b2 global search at top: /api/search across brokers+condos+SFRs
·
back to Commercialrealestate
·
auto-save: 2026-08-03T12:23:59 (3 files) — data/condos-redfi 4e78f99 →