ZDDC/classifier/js
ZDDC 9ca24eb3f1 feat(classifier): By-transmittal is a per-file grid with a single folder-path input
Standardize the two classify tabs: By-transmittal drops the party→slot→bin
tree (and its multi-field "+ Transmittal" form) for a flat per-file grid that
mirrors By-tracking. Each file gets ONE editable text input — its full
transmittal folder path "<party>/<received|issued>/<YYYY-MM-DD_TN (STATUS) -
Title>". Committing it find-or-creates the party/slot/bin; structure stays
derived, never stored.

Drag-and-drop (from the source tree onto the grid):
- plain drop on a routed row → the dropped files JOIN that row's folder;
- ⌘/Ctrl-drop on a routed row → a prompt prefilled with that folder's path
  lets you edit it into a NEW transmittal the files go to (the original is
  untouched; an unedited path dedups via find-or-create);
- drop on empty space / an unrouted row → files are added as blank rows to fill.

Model (classify.js): adds a `transmittalWorkset` (parallel to trackingWorkset)
plus addToTransmittalGrid / removeFromTransmittalGrid / transmittalGridKeys and
setTransmittalPath(keys, path) — the single parser for "<party>/<slot>/<folder>"
that also prunes any bin a re-route empties. app.js importPaths now reuses
setTransmittalPath for its route axis (one parser, less duplication).

Removes the now-dead tree rendering/CRUD (party/bin nodes, binForm, the bin
filename editor, the bin drop zone). Tests updated to the grid model: tab
render shows the folder-path input; drop join/branch/empty; edit re-routes and
prunes the emptied folder; ✕ removes. 71/71 classify specs pass.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 09:03:42 -05:00
..
app.js feat(classifier): By-transmittal is a per-file grid with a single folder-path input 2026-06-18 09:03:42 -05:00
classify.js feat(classifier): By-transmittal is a per-file grid with a single folder-path input 2026-06-18 09:03:42 -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
rename.js feat(classifier): one classify surface — By-tracking grid with Rename, transmittal with Copy 2026-06-16 09:53:04 -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-transmittal is a per-file grid with a single folder-path input 2026-06-18 09:03:42 -05:00
tree.js feat(classifier): CSV path round-trip — export filtered paths, import old→new mapping 2026-06-17 16:38:15 -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