[object Object]

← back to 4square Admin

add noreferrer to all target=_blank links

f9ab3a8ae2877c6fda36c4643436e6745f213d3d · 2026-05-19 18:39:46 -0700 · Steve Abrams

Files touched

Diff

commit f9ab3a8ae2877c6fda36c4643436e6745f213d3d
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Tue May 19 18:39:46 2026 -0700

    add noreferrer to all target=_blank links
---
 index.html | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/index.html b/index.html
index b7b34a7..c92e6eb 100644
--- a/index.html
+++ b/index.html
@@ -552,14 +552,14 @@ const SHOPIFY_STORE_SLUG = 'designer-laboratory-sandbox';
 function deepLinks(r, kind) {
   if (kind === 'shopify') {
     const links = [];
-    if (r.shopify_id) links.push(`<a target="_blank" rel="noopener" href="https://admin.shopify.com/store/${SHOPIFY_STORE_SLUG}/products/${r.shopify_id}" title="Open in Shopify Admin">S</a>`);
-    if (r.handle) links.push(`<a target="_blank" rel="noopener" href="https://designerwallcoverings.com/products/${r.handle}" title="Open on DW storefront">↗</a>`);
+    if (r.shopify_id) links.push(`<a target="_blank" rel="noopener noreferrer" href="https://admin.shopify.com/store/${SHOPIFY_STORE_SLUG}/products/${r.shopify_id}" title="Open in Shopify Admin">S</a>`);
+    if (r.handle) links.push(`<a target="_blank" rel="noopener noreferrer" href="https://designerwallcoverings.com/products/${r.handle}" title="Open on DW storefront">↗</a>`);
     return links.join('');
   }
   if (kind === 'patternbank' || kind === 'vintage') {
-    return r.source_url ? `<a target="_blank" rel="noopener" href="${esc(r.source_url)}" title="Open source page">↗</a>` : '';
+    return r.source_url ? `<a target="_blank" rel="noopener noreferrer" href="${esc(r.source_url)}" title="Open source page">↗</a>` : '';
   }
-  return `<a target="_blank" rel="noopener" href="https://wallco.ai/design/${r.id}" title="Open on wallco.ai">↗</a>`;
+  return `<a target="_blank" rel="noopener noreferrer" href="https://wallco.ai/design/${r.id}" title="Open on wallco.ai">↗</a>`;
 }
 
 function cardHtml(r, opts={}) {
@@ -657,7 +657,7 @@ function modalWallco(r) {
     ${r.negative_prompt ? `<div class="row"><span class="k">Negative</span><span class="v"><pre>${esc(r.negative_prompt)}</pre></span></div>` : ''}
     ${r.notes ? `<div class="row"><span class="k">Notes</span><span class="v">${esc(r.notes)}</span></div>` : ''}
     <div class="acts">
-      <a target="_blank" rel="noopener" href="https://wallco.ai/design/${r.id}">↗ Open on wallco.ai</a>
+      <a target="_blank" rel="noopener noreferrer" href="https://wallco.ai/design/${r.id}">↗ Open on wallco.ai</a>
       <button onclick="modalAction(${r.id}, '${r.is_published?'unpublish':'publish'}')">${r.is_published ? '↻ Unpublish' : '✓ Publish'}</button>
       <button class="del" onclick="modalAction(${r.id}, 'delete')" style="color:#e08070; border-color:#4a2a26">🗑 Remove</button>
     </div>`;
@@ -682,8 +682,8 @@ function modalShopify(r) {
     <div class="row"><span class="k">Created (SP)</span><span class="v">${esc(r.created_at_shopify||'')}</span></div>
     <div class="row"><span class="k">Synced</span><span class="v">${esc(r.synced_at||'')}</span></div>
     <div class="acts">
-      <a target="_blank" rel="noopener" href="https://admin.shopify.com/store/${SHOPIFY_STORE_SLUG}/products/${esc(r.shopify_id||'')}">S Open in Shopify Admin</a>
-      <a target="_blank" rel="noopener" href="${url}">↗ Open on DW storefront</a>
+      <a target="_blank" rel="noopener noreferrer" href="https://admin.shopify.com/store/${SHOPIFY_STORE_SLUG}/products/${esc(r.shopify_id||'')}">S Open in Shopify Admin</a>
+      <a target="_blank" rel="noopener noreferrer" href="${url}">↗ Open on DW storefront</a>
     </div>`;
 }
 

← efd0670 guard against .bak/.pre-/.orig/.swp/~ url junk  ·  back to 4square Admin  ·  4square admin: fall back to a populated source when the save 6ffa88e →