|
|
de29f5445e
|
feat(postcard): split create into sent/received, add pending status and mark-sent flow
|
2026-07-15 19:04:54 +08:00 |
|
|
|
a071b3dde4
|
feat(postcard): profile country, country_from, per-user card number uniqueness, public page overhaul - Profile: add country field for default origin country - Postcard: add country_from field, auto-fill from profile.country on create - card_number uniqueness: change from global to per-user (profile_id + card_number) - Public pages: remove card_number display, only show cards with image_front - Public pages: show country as from→to format - Index page: no time display, add register button, fix lightbox with prev/next - Infinite scroll: add /api/public/cards endpoints and IntersectionObserver - Internal pages: update postcards list/detail for country_from display - i18n: add profiles.country_ph, pc_form.country_from, pc_detail.route
|
2026-07-07 12:32:24 +08:00 |
|
|
|
bd664d23be
|
feat(ui): add landing page with random public postcards for unauthenticated visitors
|
2026-07-07 12:05:44 +08:00 |
|
|
|
8a4500f723
|
chore: remove scripts and export_i18n.py from git, add to .gitignore
|
2026-07-07 11:35:00 +08:00 |
|
|
|
137304090a
|
chore: stage changes before history rewrite
|
2026-07-07 11:28:18 +08:00 |
|
|
|
591ad3e178
|
refactor(i18n): move translations to JSON files under app/locales, dynamic language switch
|
2026-07-07 09:46:50 +08:00 |
|