fix email settings: missing providers, a11y, no-JS support

show all 10 providers in three groups (popular, transactional,
advanced) with category headings. fix phx-change clobbering text
fields, async test email sending state, integer parse crash on
bad port. add keyboard focus on card radios, fieldset legend,
WCAG-compliant badge contrast, responsive grid. extract shared
save_config into Mailer, add no-JS controller fallback with
configured_adapter hidden field for adapter change detection.
remove CardRadioScroll JS hook (no longer needed).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
jamey
2026-03-04 21:26:59 +00:00
parent dd659e4c61
commit dd20ea824f
9 changed files with 637 additions and 235 deletions

View File

@@ -138,6 +138,10 @@ defmodule BerrypodWeb.Router do
get "/analytics/export", AnalyticsExportController, :export
get "/newsletter/export", NewsletterExportController, :export
# No-JS fallbacks for email settings
post "/settings/email", EmailSettingsController, :update
post "/settings/email/test", EmailSettingsController, :test
live_session :admin,
layout: {BerrypodWeb.Layouts, :admin},
on_mount: [