mirror of
https://gh.wpcy.net/https://github.com/discourse/discourse.git
synced 2026-05-01 15:59:24 +08:00
Modernize the house ads admin interface to align with Discourse admin UI patterns: - Extract HouseAdForm component using FormKit, replacing the controller-heavy approach with observers and buffered state - Redesign index page with DPageSubheader, tabbed nav (Ads/Settings), d-admin-table, and empty state component - Simplify show page to BackButton + HouseAdForm - Harden backend controller: use Discourse::NotFound, derive id from URL params instead of body, remove id from permitted params to prevent injection, remove update-creates-if-missing behavior - Add guard in route for missing house ads - Fix group mapping to handle both object and scalar values - Rewrite system spec as full lifecycle test with page object - Use fab! over let in request specs, add coverage for 404 and id injection edge cases --------- Co-authored-by: Martin Brennan <martin@discourse.org> |
||
|---|---|---|
| .. | ||
| controllers | ||
| models | ||
| serializers/ad_plugin | ||