From 02bdf851c141dbbfc3430f0da5be6dbc5872694b Mon Sep 17 00:00:00 2001 From: ZDDC Date: Mon, 11 May 2026 13:11:00 -0500 Subject: [PATCH] fix(shared/nav): stage strip uses no-slash targets so each stage opens its tool MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The shared header strip pointed Working/Staging/Reviewing at the slash form (working/, etc.), which now serves browse per the slash/no-slash convention established earlier. The user expected those links to open the stage's tool (mdedit for working, transmittal for staging, etc.) — which is what the no-slash form serves. Also drops the .html suffix from the archive target: /archive (no slash) → archive tool, same as the other stages. The currentStage recognizer still accepts /archive.html as a fallback for any direct URLs that survive in bookmarks. Co-Authored-By: Claude Opus 4.7 (1M context) --- shared/nav.js | 30 +++++++++++++++-------------- zddc/internal/handler/tables.html | 32 ++++++++++++++++--------------- 2 files changed, 33 insertions(+), 29 deletions(-) diff --git a/shared/nav.js b/shared/nav.js index c46ca2d..f72f3dc 100644 --- a/shared/nav.js +++ b/shared/nav.js @@ -10,17 +10,19 @@ // on DOMContentLoaded — no template changes required. Each tool just // needs ../shared/nav.{js,css} in its build.sh. // -// Stage URLs follow the canonical workflow folders documented at -// zddc.varasys.io/reference.html#transmittal-workflow: -// archive → /archive.html (archive tool, project-root mode) -// working → /working/ (directory listing → mdedit auto-serves) -// staging → /staging/ (directory listing → transmittal auto-serves) -// reviewing → /reviewing/ (directory listing) +// Stage URLs follow the slash/no-slash convention: no slash opens the +// stage's default tool; slash opens browse. The stage strip points +// users at the working tool for each stage: +// archive → /archive (archive tool) +// working → /working (mdedit rooted at working/) +// staging → /staging (transmittal tool) +// reviewing → /reviewing (mdedit at the virtual aggregator) // -// If a deployment doesn't have one of these folders the link will 404 — -// the strip is convention-driven, not probed. Operators on non-standard -// layouts can override by setting window.zddc.nav.disabled = true before -// DOMContentLoaded. +// If a deployment doesn't have one of these folders the server's +// canonical-folder fallback still lands the user on a usable empty +// view — the strip is convention-driven, not probed. Operators on +// non-standard layouts can override by setting +// window.zddc.nav.disabled = true before DOMContentLoaded. (function () { 'use strict'; @@ -28,10 +30,10 @@ if (window.zddc.nav) return; // already loaded var STAGES = [ - { key: 'archive', label: 'Archive', target: 'archive.html' }, - { key: 'working', label: 'Working', target: 'working/' }, - { key: 'staging', label: 'Staging', target: 'staging/' }, - { key: 'reviewing', label: 'Reviewing', target: 'reviewing/' }, + { key: 'archive', label: 'Archive', target: 'archive' }, + { key: 'working', label: 'Working', target: 'working' }, + { key: 'staging', label: 'Staging', target: 'staging' }, + { key: 'reviewing', label: 'Reviewing', target: 'reviewing' }, ]; function projectSegment(pathname) { diff --git a/zddc/internal/handler/tables.html b/zddc/internal/handler/tables.html index 57c9dc1..6fdf179 100644 --- a/zddc/internal/handler/tables.html +++ b/zddc/internal/handler/tables.html @@ -1300,7 +1300,7 @@ body.help-open .app-header {
ZDDC Table - v0.0.17-alpha · 2026-05-11 18:02:37 · ee67b9e-dirty + v0.0.17-alpha · 2026-05-11 18:10:39 · e85d5fc-dirty
@@ -2404,17 +2404,19 @@ body.help-open .app-header { // on DOMContentLoaded — no template changes required. Each tool just // needs ../shared/nav.{js,css} in its build.sh. // -// Stage URLs follow the canonical workflow folders documented at -// zddc.varasys.io/reference.html#transmittal-workflow: -// archive → /archive.html (archive tool, project-root mode) -// working → /working/ (directory listing → mdedit auto-serves) -// staging → /staging/ (directory listing → transmittal auto-serves) -// reviewing → /reviewing/ (directory listing) +// Stage URLs follow the slash/no-slash convention: no slash opens the +// stage's default tool; slash opens browse. The stage strip points +// users at the working tool for each stage: +// archive → /archive (archive tool) +// working → /working (mdedit rooted at working/) +// staging → /staging (transmittal tool) +// reviewing → /reviewing (mdedit at the virtual aggregator) // -// If a deployment doesn't have one of these folders the link will 404 — -// the strip is convention-driven, not probed. Operators on non-standard -// layouts can override by setting window.zddc.nav.disabled = true before -// DOMContentLoaded. +// If a deployment doesn't have one of these folders the server's +// canonical-folder fallback still lands the user on a usable empty +// view — the strip is convention-driven, not probed. Operators on +// non-standard layouts can override by setting +// window.zddc.nav.disabled = true before DOMContentLoaded. (function () { 'use strict'; @@ -2422,10 +2424,10 @@ body.help-open .app-header { if (window.zddc.nav) return; // already loaded var STAGES = [ - { key: 'archive', label: 'Archive', target: 'archive.html' }, - { key: 'working', label: 'Working', target: 'working/' }, - { key: 'staging', label: 'Staging', target: 'staging/' }, - { key: 'reviewing', label: 'Reviewing', target: 'reviewing/' }, + { key: 'archive', label: 'Archive', target: 'archive' }, + { key: 'working', label: 'Working', target: 'working' }, + { key: 'staging', label: 'Staging', target: 'staging' }, + { key: 'reviewing', label: 'Reviewing', target: 'reviewing' }, ]; function projectSegment(pathname) {