Restore Title from original filename via column header dropdown

Summary

  • Add a Title-only "Restore from original filename" action to the column header chevron dropdown (HeaderMenuPopover in src/table.jsx).
  • Inline-expandable panel mirrors the existing "Set default value" split-button — four scopes (Apply to blank titles / Apply to selected / Overwrite selected / Overwrite all) so the UX vocabulary stays consistent.
  • Restored value is filename.replace(/\.[^.]+$/, '') per row (bare; buildFutureFilename reattaches the extension at publish). Per-row writes flow through the existing onUpdate plumbing so drafts persist to the user-store and the title-uniqueness check fires automatically. Published rows are skipped.

Phabricator

  • T426428 — Title column dropdown: restore from original filename

Test plan

  • Open the preview, drop a few files, confirm titles auto-prefill from filenames.
  • Edit one Title cell to a custom string, then open Title column chevron menu → "Restore from original filename" → "Apply to blank titles". Title should NOT be touched (it's not blank).
  • Empty a Title cell, then "Apply to blank titles" — empty row should restore to its original filename.
  • Select two rows, "Overwrite selected" — both selected rows revert to their original filenames; unselected rows untouched.
  • "Overwrite all" → confirm dialog → every row reverts.
  • Reload the page (without publishing) — restored titles persist via the user-store draft system.
  • Verify the menu item is absent on non-Title columns (open chevron on Description / Categories / etc.).
  • npm run build passes (check-undefined-refs.mjs clean).

🤖 Generated with Claude Code

Merge request reports

Loading