Commit Graph

  • 05168fb1ca fix(postcard): remove auto option from status dropdown, auto-select silently by date main Zichao Lin 2026-07-15 19:16:41 +08:00
  • 5ec21f0e3f feat(postcard): allow manual status override in new-sent form (auto/pending/sent/delivered) Zichao Lin 2026-07-15 19:10:12 +08:00
  • de29f5445e feat(postcard): split create into sent/received, add pending status and mark-sent flow Zichao Lin 2026-07-15 19:04:54 +08:00
  • d79aaea4ae fix(web): correct country_to form parameter name mismatch in create and edit routes Zichao Lin 2026-07-10 23:07:56 +08:00
  • 3323523e8e fix(dashboard): put time in its own column on the right side Zichao Lin 2026-07-07 14:00:07 +08:00
  • afee0b2d92 fix(dashboard): country on first line, person + time on second line Zichao Lin 2026-07-07 13:58:56 +08:00
  • 722895a0c8 fix(dashboard): wrap recent-meta in container so country and person display on separate lines Zichao Lin 2026-07-07 13:58:06 +08:00
  • 985010d63c fix(dashboard): show country and person on separate lines in recent activity Zichao Lin 2026-07-07 13:56:07 +08:00
  • 599a95ee12 fix(ui): fix field name corruption (country_to_from -> country_from) and ensure all flag displays show country code Zichao Lin 2026-07-07 13:54:00 +08:00
  • fed060ea84 fix(ui): hide scroll loading indicator when no more content to load Zichao Lin 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 Zichao Lin 2026-07-07 13:43:39 +08:00
  • 806c9ba8a0 fix(ui): show country code alongside flag emoji in from→to display Zichao Lin 2026-07-07 13:34:06 +08:00
  • 1292c6591b fix(profiles): allow existing profiles to edit country field in rename form Zichao Lin 2026-07-07 13:28:24 +08:00
  • 5de27f1937 feat(showcase): display send_time/receive_time on personal showcase cards Zichao Lin 2026-07-07 13:24:58 +08:00
  • b5716ff340 fix(dashboard): sort recent activity by updated_at so delivered/received cards also appear Zichao Lin 2026-07-07 13:23:39 +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 Zichao Lin 2026-07-07 12:32:24 +08:00
  • bd664d23be feat(ui): add landing page with random public postcards for unauthenticated visitors Zichao Lin 2026-07-07 12:05:44 +08:00
  • ba56fc6e6b feat(admin): merge invites + copyright into system admin page with SystemConfig table Zichao Lin 2026-07-07 11:35:57 +08:00
  • 8a4500f723 chore: remove scripts and export_i18n.py from git, add to .gitignore Zichao Lin 2026-07-07 11:35:00 +08:00
  • ce377157a0 chore: add server.log to .gitignore Zichao Lin 2026-07-07 11:31:47 +08:00
  • 137304090a chore: stage changes before history rewrite Zichao Lin 2026-07-07 11:28:18 +08:00
  • a619b919be feat(showcase): add temporary language switcher for visitors with cookie persistence Zichao Lin 2026-07-07 09:57:20 +08:00
  • 02269417a9 feat(ui): replace language dropdown with globe icon and expandable menu Zichao Lin 2026-07-07 09:54:57 +08:00
  • 591ad3e178 refactor(i18n): move translations to JSON files under app/locales, dynamic language switch Zichao Lin 2026-07-07 09:46:50 +08:00
  • fb98974382 fix(api-docs): replace all hardcoded Chinese with i18n translation keys for English support Zichao Lin 2026-07-07 09:33:01 +08:00
  • 5dc705bf37 fix(api-docs): remove inline-block override on settings link button for proper text centering Zichao Lin 2026-07-07 09:28:58 +08:00
  • 6a49fedfbb feat(api): add public RESTful API with API key auth and documentation page Zichao Lin 2026-07-07 09:22:11 +08:00
  • 14c226d082 fix(postcards): remove card number format restriction and forced uppercase Zichao Lin 2026-07-06 23:14:12 +08:00
  • 87785494d6 feat(i18n): add English localization with per-user language preference Zichao Lin 2026-07-06 22:41:09 +08:00
  • 643f1dc35a fix(dashboard): extract labels/data from tuple list for Chart.js Zichao Lin 2026-07-06 22:13:46 +08:00
  • f448a900f5 feat(i18n): add English localization with per-user language preference and navbar toggle Zichao Lin 2026-07-06 22:07:05 +08:00
  • 172e33e121 fix(detail): prevent dt labels from wrapping, allow dd values to wrap Zichao Lin 2026-07-06 21:13:37 +08:00
  • e7b109ab6d fix(postcards): move notes to right side before action buttons in list, use dl grid format in detail page Zichao Lin 2026-07-06 21:13:01 +08:00
  • e75c4df4e8 style: set CJK+English fonts, reduce base font size to 14px, lighten text colors Zichao Lin 2026-07-06 21:10:59 +08:00
  • 68c88a7910 feat(postcards): add notes field to postcards with edit, detail, and truncated list display Zichao Lin 2026-07-06 21:07:28 +08:00
  • f6db3a4f55 feat(dashboard): split country stats into sent/received bar charts side by side Zichao Lin 2026-07-06 20:41:39 +08:00
  • cf06ab236d revert(dashboard): restore Chart.js bar chart for country distribution Zichao Lin 2026-07-06 20:35:43 +08:00
  • 3320dc95ca feat(dashboard): replace Chart.js with pure HTML/CSS bar chart, flags render correctly Zichao Lin 2026-07-06 20:34:52 +08:00
  • 31eb6dcfc9 feat(dashboard): add country distribution bar chart using Chart.js Zichao Lin 2026-07-06 20:20:46 +08:00
  • 200602c1e6 feat: auto-trim whitespace from text inputs on form submit globally Zichao Lin 2026-07-06 20:10:54 +08:00
  • a0e7f46cc5 fix(postcards): auto-fill today date on page load for new postcards Zichao Lin 2026-07-06 20:09:28 +08:00
  • 91b4ff8ed4 feat(postcards): auto-fill today date on status change, card_number always uppercase Zichao Lin 2026-07-06 20:06:42 +08:00
  • 6157e40db9 fix(profiles): remove duplicate border, center-align textarea/button; notes read-only on postcards page Zichao Lin 2026-07-06 19:41:21 +08:00
  • 9db6b849d4 feat(profiles): notes shown on postcards page, save stays on current page Zichao Lin 2026-07-06 19:39:54 +08:00
  • b6d43b3db4 feat(profiles): add private notes field per profile, visible only to owner Zichao Lin 2026-07-06 19:36:29 +08:00
  • 233da50554 chore: startup scripts one-click launch uvicorn server Zichao Lin 2026-07-06 19:31:55 +08:00
  • 367235fb99 fix(admin-invites): badge default bg color, registered users as plain text list Zichao Lin 2026-07-06 08:43:07 +08:00
  • 53c9c4bb86 chore: remove test_error.py Zichao Lin 2026-07-06 08:39:38 +08:00
  • 501e27400b fix(models): resolve ambiguous foreign keys between User and InviteCode Zichao Lin 2026-07-06 08:39:33 +08:00
  • 755409f386 feat(admin-invites): show registered usernames per invite code, track invited_by_code_id on User Zichao Lin 2026-07-06 08:37:49 +08:00
  • 293a021500 fix(admin-invites): left-align create card conditional fields, convert local datetime to UTC on save Zichao Lin 2026-07-06 08:35:55 +08:00
  • 09270bb4af fix(admin-invites): align create card conditional fields styling with edit card Zichao Lin 2026-07-06 08:33:56 +08:00
  • b9d9de2fc3 fix(admin-invites): create form conditional fields inline with nowrap labels, match input styling Zichao Lin 2026-07-06 08:32:36 +08:00
  • b285c4b588 fix(admin-invites): create form label margin-top:0, edit form inline conditional fields Zichao Lin 2026-07-06 08:27:34 +08:00
  • 9aab88ae8f fix(invites): register strftime Jinja2 filter, fix 500 error on admin invites page Zichao Lin 2026-07-06 08:24:20 +08:00
  • f0a4e704ea fix(admin-invites): create card uses form-card style, align save/delete with select via align-self flex-end Zichao Lin 2026-07-06 08:21:54 +08:00
  • b10be81505 fix(admin-invites): display times in Asia/Shanghai (CST) instead of UTC Zichao Lin 2026-07-06 08:20:14 +08:00
  • 1354032914 fix(admin-invites): add margin-top to create button, align save/delete buttons bottom with select via invisible label Zichao Lin 2026-07-06 08:18:51 +08:00
  • fd7e700e7d fix(admin-invites): increase create form gap, align edit buttons bottom with select Zichao Lin 2026-07-06 08:17:00 +08:00
  • 6af99f36f2 fix(admin-invites): unify button height/size, fit-content width for create button Zichao Lin 2026-07-06 08:15:08 +08:00
  • d4aed47c0a fix(admin-invites): left-align all fields on mobile Zichao Lin 2026-07-06 08:13:42 +08:00
  • 386cc614e7 fix(admin-invites): left-align create button Zichao Lin 2026-07-06 08:12:57 +08:00
  • b4bec6e5e6 fix(admin-invites): stack create form fields vertically, unify row height and spacing Zichao Lin 2026-07-06 08:12:25 +08:00
  • b66527b6d8 fix(admin-invites): unify form field styles, fix mobile layout for create and edit forms Zichao Lin 2026-07-06 08:10:36 +08:00
  • b58956937e feat(invite): add invite code registration system Zichao Lin 2026-07-06 01:13:07 +08:00
  • a7c5082ff6 chore: rename app to 星笺 (Mailova) Zichao Lin 2026-07-06 00:40:08 +08:00
  • 741b51ad6c feat(showcase): sort postcards by time descending Zichao Lin 2026-07-06 00:27:39 +08:00
  • 66ba163ef6 feat(showcase): lightbox, checkbox per-card toggle, lazyload, fix toggle Y-align, remove navbar on public page Zichao Lin 2026-07-06 00:24:03 +08:00
  • 2c0229b12f fix(settings): use Query alias for tab param, fix showcase tab persistence Zichao Lin 2026-07-06 00:10:30 +08:00
  • e0ef607a05 fix(showcase): tab stay, Y-center toggle, group postcards by sent/received, hide navbar on public page, remove profiles/xx/showcase Zichao Lin 2026-07-06 00:05:15 +08:00
  • c550289527 refactor(ui): merge showcase settings into settings page tab, fix profile showcase GET route, fix layout Zichao Lin 2026-07-05 23:56:28 +08:00
  • 148cfdf2a4 feat(showcase): add public showcase page with per-profile/per-postcard visibility controls Zichao Lin 2026-07-05 23:45:23 +08:00
  • b412f5001e feat(models): add showcase fields to User, Profile, Postcard Zichao Lin 2026-07-05 23:35:45 +08:00
  • 46670c72fa fix(auth): set session expires_at to non-nullable with 1 year max Zichao Lin 2026-07-05 23:21:54 +08:00
  • d7780ea6ad feat(ui): move detail page badge next to card number title Zichao Lin 2026-07-05 23:16:11 +08:00
  • 23c61363a6 fix(ui): shorten mark-delivered button text to 已送达 Zichao Lin 2026-07-05 23:15:38 +08:00
  • a502c14c99 fix(ui): improve detail page mobile layout - smaller title, compact back button, action buttons in one row Zichao Lin 2026-07-05 23:15:10 +08:00
  • a4cd204237 fix(ui): remove duplicate back link from detail page, keep top-left back button Zichao Lin 2026-07-05 23:12:59 +08:00
  • 71a029057a feat(ui): add back button left of card number on detail page Zichao Lin 2026-07-05 23:11:05 +08:00
  • 41aa2058bc fix(ui): vertically center all badges Zichao Lin 2026-07-05 23:09:47 +08:00
  • 6ae80c5591 feat(ui): stack country and recipient/sender vertically in postcard list Zichao Lin 2026-07-05 23:07:41 +08:00
  • 80928d5ae6 feat(ui): show arrival date below send date for delivered postcards Zichao Lin 2026-07-05 23:06:56 +08:00
  • 90c02faa8f feat(ui): show send/receive date in postcard list Zichao Lin 2026-07-05 23:06:18 +08:00
  • 61190328a4 feat(dashboard): mobile 2-col stats, add relative time to recent activity Zichao Lin 2026-07-05 23:03:35 +08:00
  • fc55507019 i18n: change all page titles and nav text to Chinese Zichao Lin 2026-07-05 22:40:49 +08:00
  • 23897560ad fix(ui): improve dashboard and global mobile responsiveness Zichao Lin 2026-07-05 22:34:25 +08:00
  • a4714db073 feat(ui): redesign dashboard as global overview with stats, progress bar, recent activity Zichao Lin 2026-07-05 22:32:16 +08:00
  • a57cba22d5 fix(ui): add missing id to profile nickname for rename toggle Zichao Lin 2026-07-05 22:28:49 +08:00
  • a212021997 feat(ui): redesign profiles page with card layout showing postcard stats Zichao Lin 2026-07-05 22:27:13 +08:00
  • 5b6b2ccef8 fix: clear arrival_time and disable field when status is sent Zichao Lin 2026-07-05 22:15:40 +08:00
  • 84e4e457db feat(ui): redesign postcards list with tabs, row layout, country dropdown filter Zichao Lin 2026-07-05 22:12:33 +08:00
  • 2aeaa560d6 fix(ui): align settings cards with heading, full width in container Zichao Lin 2026-07-05 22:07:36 +08:00
  • 557d0a86d0 fix(ui): wider settings cards with more padding Zichao Lin 2026-07-05 22:06:46 +08:00
  • f85207f1d5 fix(ui): center settings cards to fix uneven left-right spacing Zichao Lin 2026-07-05 22:05:14 +08:00
  • 005e6a09b5 fix(ui): username change no longer requires password confirmation Zichao Lin 2026-07-05 22:03:59 +08:00
  • ae2ed2d961 feat: add user settings page (change username/password) and remove public registration Zichao Lin 2026-07-05 22:01:24 +08:00
  • 5607485c6a feat(ui): add mark-delivered button on sent postcards with auto today date Zichao Lin 2026-07-05 21:45:32 +08:00
  • 7a62ff0818 feat(ui): show country flag emoji next to country codes Zichao Lin 2026-07-05 21:40:46 +08:00
  • 9692ff8ade feat(auth): add remember me option with persistent DB sessions Zichao Lin 2026-07-05 21:28:58 +08:00
  • 2bd914532e feat: always display country code in uppercase (model validates + oninput) Zichao Lin 2026-07-05 21:22:57 +08:00