[object Object]

← back to Philipperomano

fix: /p/:handle uses ENRICHED (junk-filtered) not raw DATA; /health reports post-filter count; add noreferrer to all target=_blank links

5895c844c124555cbd2dff754729ba8b7be75db5 · 2026-05-30 21:24:24 -0700 · Steve Abrams

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

Files touched

Diff

commit 5895c844c124555cbd2dff754729ba8b7be75db5
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Sat May 30 21:24:24 2026 -0700

    fix: /p/:handle uses ENRICHED (junk-filtered) not raw DATA; /health reports post-filter count; add noreferrer to all target=_blank links
    
    Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
---
 server.js | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/server.js b/server.js
index 53959f4..84ad35e 100644
--- a/server.js
+++ b/server.js
@@ -640,7 +640,7 @@ app.get('/', (req, res) => {
       </div>
       <div class="actions">
         <a href="/p/${esc(p.handle||'')}">View</a>
-        <a class="cta" href="${esc(memoSampleUrl(p.handle))}" target="_blank" rel="noopener">Order Memo</a>
+        <a class="cta" href="${esc(memoSampleUrl(p.handle))}" target="_blank" rel="noopener noreferrer">Order Memo</a>
       </div>
     </article>
   `).join('');
@@ -719,7 +719,7 @@ app.get('/', (req, res) => {
 });
 
 app.get('/p/:handle', (req, res) => {
-  const p = DATA.find(x => x.handle === req.params.handle);
+  const p = ENRICHED.find(x => x.handle === req.params.handle);
   if (!p) return res.status(404).set('Content-Type','text/html').send(layout('Not found', '<main><div class="empty">Product not found.</div></main>'));
 
   const body = `
@@ -734,8 +734,8 @@ app.get('/p/:handle', (req, res) => {
         <div class="row"><div class="k">Type</div><div>${esc(p.product_type)}</div></div>
         ${p.retail_price ? `<div class="row"><div class="k">Retail</div><div>$${parseFloat(p.retail_price).toFixed(2)} /yd</div></div>` : ''}
         <div class="actions">
-          <a class="btn-primary" href="${esc(memoSampleUrl(p.handle))}" target="_blank" rel="noopener">Order Memo Sample (free)</a>
-          <a class="btn-secondary" href="${esc(shopifyUrl(p.handle))}" target="_blank" rel="noopener">Shop on DW</a>
+          <a class="btn-primary" href="${esc(memoSampleUrl(p.handle))}" target="_blank" rel="noopener noreferrer">Order Memo Sample (free)</a>
+          <a class="btn-secondary" href="${esc(shopifyUrl(p.handle))}" target="_blank" rel="noopener noreferrer">Shop on DW</a>
         </div>
       </div>
     </div>
@@ -743,7 +743,7 @@ app.get('/p/:handle', (req, res) => {
   res.set('Content-Type','text/html').send(layout(p.title, body));
 });
 
-app.get('/health', (_req, res) => res.json({ ok: true, products: DATA.length, types: TYPES }));
+app.get('/health', (_req, res) => res.json({ ok: true, products: ENRICHED.length, types: TYPES }));
 
 // Loopback-only on the local Mac. Set BIND=0.0.0.0 in prod env when needed.
 const BIND = process.env.BIND || '127.0.0.1';

← 84c4840 feat(theme): add ?theme=N toggle to layout() — mirrors dw-do  ·  back to Philipperomano  ·  gitignore: add full backup-file pattern set (*.bak-*, *.pre- 6f1ad72 →