Fix schedule bulk edit and a game-date corruption bug; make game edits durable across imports.
Fixes
- Bulk schedule edit now saves — the AJAX handler was missing entirely, so bulk ticket-link/venue/promo updates silently did nothing
- Fixed a timezone bug that shifted a game's date back one day on every save (and compounded with each save) on US-timezone sites, while also falsely highlighting the Date cell on no-op edits
- Overrides on fields not touched by an edit can no longer be silently lost (mods are patched, not rebuilt)
- Scores on manual games can now be cleared
Improvements
- New single write path (
Puck_Press_Game_Mods_Repository) for all game edits: per-field diff against source data, so only real changes are stored and highlighted - Edit modal only sends fields you actually changed; a true no-op save doesn't hit the server
- Bulk edit shows an error when a save fails instead of pretending it worked
- Nonce checks added to all game edit endpoints
- Teams-tab roster bulk edit now diffs headshot URLs against source; clearing a value reverts it
New
- "🧹 Audit & Clean Game Edits" (Teams tab → Advanced): removes stale overrides identical to source data and lists games whose edited date differs from the source date, so day-shifted dates from the old bug can be reverted with the ✕ on the Date cell — recommended to run once after updating
Removed
- Dead roster-tab edit code (player edit/add/bulk modals and JS) that had no backend and no rendered UI