This website requires JavaScript.
Explore
Help
Sign In
earthjasonlin
/
mailova
Watch
1
Star
0
Fork
0
Code
Issues
Pull Requests
Actions
Packages
Projects
Releases
Wiki
Activity
137
Commits
1
Branch
0
Tags
b80a1859a02426cab3b93cf702299f469f053ddf
Commit Graph
134 Commits
Include renames
fix(templates): fix unhashable dict in Jinja2 cache by converting available_languages global to function
earthjasonlin
2026-07-18 08:57:42 +08:00
b80a1859a0
fix(storage): reduce presigned URL expiry from 7 days to 1 day
earthjasonlin
2026-07-18 08:25:13 +08:00
f27c263dd4
fix(storage): use presigned URLs for private S3 buckets (7-day expiry)
earthjasonlin
2026-07-18 08:24:40 +08:00
d30fd59ade
feat(cache): add 30-day browser cache for uploaded images (middleware + S3 CacheControl)
earthjasonlin
2026-07-18 08:23:13 +08:00
2dc68ff408
fix(storage): allow S3 without public_url, auto-construct path-style URL from endpoint
earthjasonlin
2026-07-18 08:17:35 +08:00
54d778971d
refactor(config): consolidate into single config.json, storage backend selectable
earthjasonlin
2026-07-18 08:05:39 +08:00
4787fdbf22
feat(storage): add S3 image storage support with file-based config and migration script
earthjasonlin
2026-07-18 08:03:18 +08:00
3a931fe752
fix(dashboard): exclude pending postcards from sent stat count
earthjasonlin
2026-07-15 19:40:42 +08:00
ddeec36a01
fix(dashboard): hide time for pending postcards in recent activity
earthjasonlin
2026-07-15 19:38:52 +08:00
6636af9990
fix(dashboard+list): pending status sort first, stats count, badge/recipient/time display
earthjasonlin
2026-07-15 19:36:31 +08:00
ad85b85e1e
fix(i18n): repair broken pc_form.country_from key in postcard form template
earthjasonlin
2026-07-15 19:29:27 +08:00
abec829117
fix(i18n): rename country labels to '寄出国/到达国' to avoid ambiguity
earthjasonlin
2026-07-15 19:27:26 +08:00
0a8f8c4904
fix(postcard): reorder country fields to from→to on both create forms
earthjasonlin
2026-07-15 19:24:02 +08:00
2fe3ea5249
fix(postcard): remove auto option from status dropdown, auto-select silently by date
earthjasonlin
2026-07-15 19:16:41 +08:00
05168fb1ca
feat(postcard): allow manual status override in new-sent form (auto/pending/sent/delivered)
earthjasonlin
2026-07-15 19:10:12 +08:00
5ec21f0e3f
feat(postcard): split create into sent/received, add pending status and mark-sent flow
earthjasonlin
2026-07-15 19:04:54 +08:00
de29f5445e
fix(web): correct country_to form parameter name mismatch in create and edit routes
earthjasonlin
2026-07-10 23:07:56 +08:00
d79aaea4ae
fix(dashboard): put time in its own column on the right side
earthjasonlin
2026-07-07 14:00:07 +08:00
3323523e8e
fix(dashboard): country on first line, person + time on second line
earthjasonlin
2026-07-07 13:58:56 +08:00
afee0b2d92
fix(dashboard): wrap recent-meta in container so country and person display on separate lines
earthjasonlin
2026-07-07 13:58:06 +08:00
722895a0c8
fix(dashboard): show country and person on separate lines in recent activity
earthjasonlin
2026-07-07 13:56:07 +08:00
985010d63c
fix(ui): fix field name corruption (country_to_from -> country_from) and ensure all flag displays show country code
earthjasonlin
2026-07-07 13:54:00 +08:00
599a95ee12
fix(ui): hide scroll loading indicator when no more content to load
earthjasonlin
2026-07-07 13:45:25 +08:00
fed060ea84
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
earthjasonlin
2026-07-07 13:43:39 +08:00
ad6f2b2ff2
fix(ui): show country code alongside flag emoji in from→to display
earthjasonlin
2026-07-07 13:34:06 +08:00
806c9ba8a0
fix(profiles): allow existing profiles to edit country field in rename form
earthjasonlin
2026-07-07 13:28:24 +08:00
1292c6591b
feat(showcase): display send_time/receive_time on personal showcase cards
earthjasonlin
2026-07-07 13:24:58 +08:00
5de27f1937
fix(dashboard): sort recent activity by updated_at so delivered/received cards also appear
earthjasonlin
2026-07-07 13:23:39 +08:00
b5716ff340
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
earthjasonlin
2026-07-07 12:32:24 +08:00
a071b3dde4
feat(ui): add landing page with random public postcards for unauthenticated visitors
earthjasonlin
2026-07-07 12:05:44 +08:00
bd664d23be
feat(admin): merge invites + copyright into system admin page with SystemConfig table
earthjasonlin
2026-07-07 11:35:57 +08:00
ba56fc6e6b
chore: remove scripts and export_i18n.py from git, add to .gitignore
earthjasonlin
2026-07-07 11:35:00 +08:00
8a4500f723
chore: stage changes before history rewrite
earthjasonlin
2026-07-07 11:28:18 +08:00
137304090a
feat(showcase): add temporary language switcher for visitors with cookie persistence
earthjasonlin
2026-07-07 09:57:20 +08:00
a619b919be
feat(ui): replace language dropdown with globe icon and expandable menu
earthjasonlin
2026-07-07 09:54:57 +08:00
02269417a9
refactor(i18n): move translations to JSON files under app/locales, dynamic language switch
earthjasonlin
2026-07-07 09:46:50 +08:00
591ad3e178
fix(api-docs): replace all hardcoded Chinese with i18n translation keys for English support
earthjasonlin
2026-07-07 09:33:01 +08:00
fb98974382
fix(api-docs): remove inline-block override on settings link button for proper text centering
earthjasonlin
2026-07-07 09:28:58 +08:00
5dc705bf37
feat(api): add public RESTful API with API key auth and documentation page
earthjasonlin
2026-07-07 09:22:11 +08:00
6a49fedfbb
fix(postcards): remove card number format restriction and forced uppercase
earthjasonlin
2026-07-06 23:14:12 +08:00
14c226d082
feat(i18n): add English localization with per-user language preference
earthjasonlin
2026-07-06 22:41:09 +08:00
87785494d6
fix(dashboard): extract labels/data from tuple list for Chart.js
earthjasonlin
2026-07-06 22:13:46 +08:00
643f1dc35a
feat(i18n): add English localization with per-user language preference and navbar toggle
earthjasonlin
2026-07-06 22:07:05 +08:00
f448a900f5
fix(detail): prevent dt labels from wrapping, allow dd values to wrap
earthjasonlin
2026-07-06 21:13:37 +08:00
172e33e121
fix(postcards): move notes to right side before action buttons in list, use dl grid format in detail page
earthjasonlin
2026-07-06 21:13:01 +08:00
e7b109ab6d
style: set CJK+English fonts, reduce base font size to 14px, lighten text colors
earthjasonlin
2026-07-06 21:10:59 +08:00
e75c4df4e8
feat(postcards): add notes field to postcards with edit, detail, and truncated list display
earthjasonlin
2026-07-06 21:07:28 +08:00
68c88a7910
feat(dashboard): split country stats into sent/received bar charts side by side
earthjasonlin
2026-07-06 20:41:39 +08:00
f6db3a4f55
revert(dashboard): restore Chart.js bar chart for country distribution
earthjasonlin
2026-07-06 20:35:43 +08:00
cf06ab236d
feat(dashboard): replace Chart.js with pure HTML/CSS bar chart, flags render correctly
earthjasonlin
2026-07-06 20:34:52 +08:00
3320dc95ca
First
Previous
1
2
3
Next
Last