ZDDC/tables/js
ZDDC 34208a5bd7 feat(tables): gate +Add row on path verbs.c + cap-toast on 403
Two server-aligned signals on save paths:

  - +Add row button: fetches /.profile/access?path=<current dir> via
    zddc.cap.at() once on load; if path_verbs doesn't include 'c'
    the button disables with a tooltip ("You don't have create
    access in this folder."). Async race-window is the same as any
    other path-scoped fetch — server still gates the POST so a
    stale client gets a 403 toast on click rather than a silent
    accept.

  - 403 on save/create: previously fell into the generic
    "http-error" bucket with a console warn; now branches into
    zddc.cap.handleForbidden which renders an error toast naming the
    missing verb. When the path-scoped view reports an elevation
    grant covering that verb, the toast appends an Elevate button.

Per-row writability stays computed server-side for now — tables
walks rows via FS-API-style handles that don't surface the listing
verbs string. A follow-on pass can switch the row walk to raw
listing entries and gate row.editable on each entry's verbs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-21 08:48:02 -05:00
..
add-row.js feat(tables): row editor — inline Add Row, Delete, multi-row paste, min row height 2026-05-15 16:07:28 -05:00
app.js feat(tables): editable cells phase 5 — undo + multi-cell ops 2026-05-09 10:39:26 -05:00
clipboard.js feat(tables): row editor — inline Add Row, Delete, multi-row paste, min row height 2026-05-15 16:07:28 -05:00
context.js feat: per-party RSK + project-level SSR/MDL/RSK rollup tables 2026-05-18 21:47:56 -05:00
editor.js refactor: nest lifecycle slots per-party + add virtual top-level aggregators 2026-05-21 07:57:45 -05:00
export.js feat(tables): Export CSV button in the table toolbar 2026-05-19 07:00:23 -05:00
filters.js refactor(tables): in-dir convention + unified table+form HTML bundle 2026-05-09 09:15:26 -05:00
main.js feat(tables): gate +Add row on path verbs.c + cap-toast on 403 2026-05-21 08:48:02 -05:00
mode.js refactor(tables): in-dir convention + unified table+form HTML bundle 2026-05-09 09:15:26 -05:00
render.js feat(tables): editable cells phase 1 — selection + keyboard nav 2026-05-09 09:16:39 -05:00
row-ops.js feat(tables): row context-menu opens the form, not raw YAML 2026-05-19 08:43:45 -05:00
save.js feat(tables): gate +Add row on path verbs.c + cap-toast on 403 2026-05-21 08:48:02 -05:00
sort.js feat(tables): new sortable/filterable grid tool for directories of YAML files 2026-05-05 20:32:01 -05:00
undo.js feat(tables): editable cells phase 5 — undo + multi-cell ops 2026-05-09 10:39:26 -05:00
util.js feat(tables): new sortable/filterable grid tool for directories of YAML files 2026-05-05 20:32:01 -05:00