customer-riverside/web/modules/custom/riverside_pt
Philip Peterson 2dd6c7da22 Add email field to booking form + dev mail mocking
- Add required email input (with autocomplete="email") to the booking
  details form in the homepage Preact widget (rpt-booking.js).
  Update EMPTY_FORM, submit payload, confirmedAppointment, and success
  summary to include it. The form now collects: first/last name, email,
  phone, comments.

- Update ScheduleController::storeSlot to extract/pass email in the
  booking_request mail params (and require it for the full-contact path).
  Log failures with details; return a structured error with a user-friendly
  message instead of bare "mail_failed".

- riverside_pt_mail hook now includes the user's email in the notification
  body (when provided).

- Dev improvements for mail:
  - In DEBUG mode (default on localhost), force php_mail interface in
    settings.php so the mailer uses the sendmail_path override.
  - Dockerfile + entrypoint.sh now provide/install a fake-sendmail.sh
    that prints the full email (To, Subject, headers, body from the
    hook) to stderr (visible in `docker compose logs`) and always
    succeeds (exit 0). This prevents "sh: 1: /usr/sbin/sendmail: not
    found" and guarantees booking submissions never return the
    "unable to send confirmation email" error in dev.
  - In non-DEBUG, still uses symfony_mailer + Postmark as before.
  - The fake is also baked into the image for consistency.

- JS error handling now prefers the server-provided 'message' from
  the JSON error response (better UX for real mail failures).

- Update CLAUDE.md with the new email field + dev mail mocking behavior.

- New file: docker/php/fake-sendmail.sh (the mock).

This addresses the recent "mail_failed" issues while keeping production
email via Postmark.
2026-06-03 23:05:06 -07:00
..
config wip booking flow 2026-05-13 14:55:52 -07:00
css Fixes to calendar lifecycle 2026-06-03 22:47:31 -07:00
images Fixes 2026-05-28 00:07:02 -07:00
js Add email field to booking form + dev mail mocking 2026-06-03 23:05:06 -07:00
src Add email field to booking form + dev mail mocking 2026-06-03 23:05:06 -07:00
templates Smooth scroll, booking refactor, success summary 2026-06-03 22:14:39 -07:00
.DS_Store wip 2026-05-25 00:32:23 -07:00
riverside_pt.info.yml Add declarative site module 2026-05-01 05:24:10 -07:00
riverside_pt.install Calendar polish: selection persistence, no-slots overlay, various fixes 2026-06-03 20:51:43 -07:00
riverside_pt.libraries.yml Smooth scroll, booking refactor, success summary 2026-06-03 22:14:39 -07:00
riverside_pt.module Smooth scroll, booking refactor, success summary 2026-06-03 22:14:39 -07:00
riverside_pt.routing.yml Calendar polish: selection persistence, no-slots overlay, various fixes 2026-06-03 20:51:43 -07:00