← back to Designerwallcoverings
theme (source): fix showroom TAG matcher — exact tag, not whitespace token (TK-11307)
117e18576c35de376031031a239b028a41c1f123 · 2026-09-10 07:30:46 -0700 · Steve Abrams
The Boost/AJAX backstop in hide-browse-hidden.liquid matched with
data-tags.toLowerCase().split(/[,\s]+/).indexOf('showroom')
so the pre-existing 'Showroom Line' tag tokenized to ['showroom','line'] and
MATCHED. That tag is on 18,518+ ACTIVE SELLABLE products (Kravet 1969, China
Seas 1775, sellable Phillipe Romano 1753, Scalamandre 913, Koroseal 815,
Osborne & Little 616, Designers Guild 559, ...), none of them MDC — the gated
theme push would have armed a catalog-wide hide of sellable product.
Now splits on COMMAS ONLY, trims, and compares whole tags — identical semantics
to the canonical hasShowroomTag() in fix-live-board/config/showroom-vendor.cjs.
Verified 10/10 against real live tag strings; the old predicate was wrong on
3/10 (every 'Showroom Line' case) while both agree on all true MDC cases.
Latent-not-armed today: the live theme emits no data-tags attribute (0 on
/collections/all vs 355 card elements), so this hook currently selects nothing
— which also means the memo's claimed Boost/AJAX coverage is NOT delivered.
Documented in-file. Source edit only; theme PUSH remains Steve-gated.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SeQv8nupwH5FgpRvkEsDZv
Files touched
M scripts/tk11186-showroom-hide/theme-deploy/hide-browse-hidden.liquid
Diff
commit 117e18576c35de376031031a239b028a41c1f123
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Thu Sep 10 07:30:46 2026 -0700
theme (source): fix showroom TAG matcher — exact tag, not whitespace token (TK-11307)
The Boost/AJAX backstop in hide-browse-hidden.liquid matched with
data-tags.toLowerCase().split(/[,\s]+/).indexOf('showroom')
so the pre-existing 'Showroom Line' tag tokenized to ['showroom','line'] and
MATCHED. That tag is on 18,518+ ACTIVE SELLABLE products (Kravet 1969, China
Seas 1775, sellable Phillipe Romano 1753, Scalamandre 913, Koroseal 815,
Osborne & Little 616, Designers Guild 559, ...), none of them MDC — the gated
theme push would have armed a catalog-wide hide of sellable product.
Now splits on COMMAS ONLY, trims, and compares whole tags — identical semantics
to the canonical hasShowroomTag() in fix-live-board/config/showroom-vendor.cjs.
Verified 10/10 against real live tag strings; the old predicate was wrong on
3/10 (every 'Showroom Line' case) while both agree on all true MDC cases.
Latent-not-armed today: the live theme emits no data-tags attribute (0 on
/collections/all vs 355 card elements), so this hook currently selects nothing
— which also means the memo's claimed Boost/AJAX coverage is NOT delivered.
Documented in-file. Source edit only; theme PUSH remains Steve-gated.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SeQv8nupwH5FgpRvkEsDZv
---
.../theme-deploy/hide-browse-hidden.liquid | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/scripts/tk11186-showroom-hide/theme-deploy/hide-browse-hidden.liquid b/scripts/tk11186-showroom-hide/theme-deploy/hide-browse-hidden.liquid
index 193f8fe..f3bd81a 100644
--- a/scripts/tk11186-showroom-hide/theme-deploy/hide-browse-hidden.liquid
+++ b/scripts/tk11186-showroom-hide/theme-deploy/hide-browse-hidden.liquid
@@ -54,10 +54,17 @@
document.querySelectorAll('[data-vendor]').forEach(function(el){
if (HIDDEN.indexOf(String(el.getAttribute('data-vendor')||'').trim().toLowerCase()) > -1){ el.style.display = 'none'; }
});
- // TK-11307: hide any card whose product tags include 'Showroom' (shared-vendor path).
- // Covers Boost/AJAX grids where the card exposes tags via a data-tags attribute.
+ // TK-11307: hide any card whose product tags include the EXACT 'Showroom' tag.
+ // Split on COMMAS ONLY, then trim + compare whole tags — mirrors the canonical
+ // hasShowroomTag() in fix-live-board/config/showroom-vendor.cjs. A whitespace split
+ // here was a live landmine: the pre-existing 'Showroom Line' tag sits on 18,500+
+ // ACTIVE SELLABLE products (Kravet, China Seas, Scalamandre, Osborne & Little,
+ // sellable Phillipe Romano, ...) and tokenizes to ['showroom','line'], so a token
+ // match would have hidden the entire catalog's showroom-LINE products. Exact only.
+ // NOTE: no card currently emits data-tags, so this backstop selects nothing today;
+ // Boost/AJAX coverage is NOT delivered by this hook (see the gated deploy note).
document.querySelectorAll('[data-tags]').forEach(function(el){
- if (String(el.getAttribute('data-tags')||'').toLowerCase().split(/[,\s]+/).indexOf('showroom') > -1){
+ if (String(el.getAttribute('data-tags')||'').split(',').map(function(t){ return t.trim().toLowerCase(); }).indexOf('showroom') > -1){
var c = el.closest(CARD_SEL) || el; if (c && c.style.display !== 'none') c.style.display = 'none';
}
});
← ac0a3a5 auto-data-snapshot: 2026-09-10T07:00:36 (1 data files) — scr
·
back to Designerwallcoverings
·
auto-data-snapshot: 2026-09-10T07:33:05 (1 data files) — scr f561cd9 →