ZDDC/classifier/js
ZDDC 2b32aced6d feat(classifier): By Tracking Number is now a flat editable grid (one row per file)
Replace the merged-cell positional table (one column per tracking-number segment,
hierarchy via shared ancestors, built by creating folders) with a plain editable
spreadsheet: one row per file, with the tracking number, the rev (status), and
the title as three separate editable columns. Columns are hideable + resizable.

The storage model is unchanged — a file's tracking identity is still its
placement in the tracking-folder tree. The grid is a flat presentation + inline-
edit layer over it; editing a cell re-materializes the placement via the existing
path (addTrackingPath → place(…,'tracking') → setTitleOverride), generalized to
per-field.

- classify.js: `trackingWorkset` (serialized) so a dropped file is a row before
  it has a number; `addToTrackingGrid`/`removeFromTrackingGrid`/`trackingGridKeys`
  (union with files that have a tracking placement — incl. ones named via "From a
  list"); `setFileIdentity(key, {tracking, rev, title})` re-files + prunes the old
  leaf; blank tracking = an unfilled row, blank rev = a PENDING_REV leaf.
- target-tree.js: `renderTrackingGrid` (Status badge · Original name preview ·
  Tracking number · Rev (status) · Title · ✕); drag onto the grid adds rows and
  auto-fills any file whose own name already parses as ZDDC; a "Columns ▾" chooser
  + drag-resize (resize.js, now parameterized) persisted to localStorage. The
  status badge validates the NAME only (the transmittal is a different tab).
  Removed the merged-cell machinery + per-node CRUD (+ Root folder, ✎/🗑, brace
  expansion) and the now-dead drop-on-node path.
- template/css: tracking toolbar → Columns chooser + hint; flat-grid + chooser CSS.

Tests: replaced the merged-cell/+Root-folder/drop-on-leaf/filename-edit tests with
grid tests (render, drop+auto-fill, per-cell re-file, filter, hide/persist,
preview link). Suite 342 green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 16:51:39 -05:00
..
app.js refactor(classifier): drop "MDL from archive" — it lives in the tables tool now 2026-06-11 15:50:16 -05:00
classify.js feat(classifier): By Tracking Number is now a flat editable grid (one row per file) 2026-06-15 16:51:39 -05:00
copy.js fix(browse,classifier): backdrop dismiss no longer fires on a drag out of an input 2026-06-15 10:36:07 -05:00
dir-picker.js fix(browse,classifier): backdrop dismiss no longer fires on a drag out of an input 2026-06-15 10:36:07 -05:00
dnd.js ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00
excel.js ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00
filter.js ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00
persist.js ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00
preview.js ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00
resize.js feat(classifier): By Tracking Number is now a flat editable grid (one row per file) 2026-06-15 16:51:39 -05:00
scanner.js ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00
selection.js ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00
sort.js ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00
spreadsheet.js ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00
store.js ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00
target-tree.js feat(classifier): By Tracking Number is now a flat editable grid (one row per file) 2026-06-15 16:51:39 -05:00
tree.js ux(classifier): stack the folder count below the folder name 2026-06-15 10:09:46 -05:00
utils.js ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00
validator.js ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00
workspace.js ZDDC: document-control tools + zddc-server 2026-06-11 13:32:31 -05:00