|
|
fed060ea84
|
fix(ui): hide scroll loading indicator when no more content to load
|
2026-07-07 13:45:25 +08:00 |
|
|
|
ad6f2b2ff2
|
refactor(model): rename Postcard.country -> country_to for clear semantics - country_from: origin country (where postcard was sent from) - country_to: destination country (where postcard was sent to) - Profile.country remains as user's home country - Updated all routes, schemas, templates, and API endpoints
|
2026-07-07 13:43:39 +08:00 |
|
|
|
806c9ba8a0
|
fix(ui): show country code alongside flag emoji in from→to display
|
2026-07-07 13:34:06 +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 |
|