Court thumbnails ready to download
Every visitor can now save a court's generated preview image directly from its detail page.
Changes in this update
- Adds a Download thumbnail button to every public court detail page without requiring an account.
- Downloads the current 1200×630 JPEG preview with a descriptive date, time, and event-or-hall filename, reusing the first event photo, first video frame, or generated information card.
Time displays that fit each member
Leave deadlines now use an unambiguous 24-hour editor, while signed-in members can choose how times are displayed throughout the site.
Changes in this update
- Splits the leave deadline editor into date and 24-hour HH:MM fields, preventing browser locale settings from changing the clock to AM/PM.
- Adds a persistent 12-hour (AM/PM) or 24-hour display preference to the profile page; 24-hour remains the default for existing and new accounts.
- Applies the signed-in member’s preference to court schedules, leave-deadline notices, login times, participation history, and administrator timestamps.
Clearer leave rules and cleaner event forms
Organizers can set an optional leave deadline, while a more compact event form keeps advanced tools easy to reach.
Changes in this update
- Lets an event owner enable an exact local leave deadline; the option remains disabled by default for existing and new events.
- Shows the deadline before players join or leave and prevents self-service departures after it passes, including direct submission attempts.
- Collapses the court-information file importer by default on the new-event form and automatically reopens it when an import error needs attention.
- Refreshes checkbox options as accessible themed switch cards with clear hover, selected, keyboard-focus, and mobile states.
- Adds a Delete action beside every reserved-player nickname on new- and edit-event forms; removing a row updates the reserved count and renumbers the remaining nicknames.
A clearer view of privacy
A new public policy explains the application’s built-in data handling in plain English and Traditional Chinese.
Changes in this update
- Explains account, event, registration, security, push-notification, cookie, and browser-storage data.
- Distinguishes public information from organizer and administrator access, including the privacy boundaries of exported files.
- Documents optional external services, retention and deletion behavior, security measures, and visitor choices.
- Shows the configured deployment operator, primary data region, and validated privacy-contact link while reminding self-hosting operators to disclose deployment-specific logs, backups, and services.
- Adds a dedicated administrator-contact page for account, technical, security, and privacy help, grouping Email, Messaging, and Other methods while Discord, LINE, and Telegram identifiers automatically become official links.
- Lets visitors leave messages stored in SQLite, gives administrators a protected read/unread inbox, and optionally sends new-message alerts through a validated Discord webhook and/or Telegram bot chat.
Portable court files and complete CSV exports
Organizers can move one reusable court configuration between events, while administrators can download a complete event inventory.
Changes in this update
- Exports a managed event and its reserved-player nicknames as a readable Markdown file named yyyy-MM-dd_HHmm_HHmm_<event-or-hall>.md.
- Imports court_info.md on the new-event form to prefill details for review before anything is created.
- Excludes registrations, PINs, history, media files, ownership, and public links while validating the versioned file format and size.
- Lets administrators export every existing court—including archived and expired events, statuses, counts, reserved nicknames, media counts, and public URLs—as an injection-conscious UTF-8 CSV file.
Manage players without leaving the court page
Administrators can now correct participant details and keep the confirmed and waiting lists organized in place.
Changes in this update
- Rename confirmed or waiting players and reset their private six-digit court PINs.
- Remove a player while automatically promoting the earliest waiting player when a confirmed place opens.
- Send member-change notifications for visible rename and removal actions while keeping private PIN resets out of notifications.
Rich previews for every shared court
Court links now present a useful visual preview when shared to Facebook and other Open Graph clients.
Changes in this update
- Uses the first event photo, or extracts a frame when the first gallery item is a video.
- Creates a branded 1200×630 event-information card when the court has no media.
- Bundles Noto Sans Traditional Chinese so generated event-information cards render bilingual text consistently in every deployment.
- Organizes third-party asset licenses publicly, including the bundled Noto font’s SIL Open Font License.
- Refreshes the versioned preview URL when event, member, status, or media information changes.
Safer access and court notifications
Sign-in, public leave protection, and opt-in court updates now use safer modern controls.
Changes in this update
- Replaced hCaptcha with action-bound Cloudflare Turnstile verification for signup and sign-in.
- Added per-court system Web Push subscriptions for event-information and member-list changes.
- Limits repeated incorrect nickname/PIN attempts when leaving a court to reduce credential guessing.
- Kept notification endpoints, credentials, and member nicknames out of public output and lock-screen messages.
A friendlier first visit
New visitors can understand the service quickly and tailor the interface to their preferences.
Changes in this update
- Added a bilingual introduction page and a remembered first-visit invitation.
- Added Taiwan-aware language detection with a persistent English or Traditional Chinese override.
- Expanded appearance controls with four palettes and light, dark, or system modes.
More expressive events and smoother organizing
Organizers gained richer event pages and faster tools for publishing and reusing court information.
Changes in this update
- Added event and badminton-group names, photos, videos, gallery covers, prices, shuttlecock information, and remarks.
- Added shared event creation, saved hall locations, duplication, archive/restore, and owner-managed events.
- Added public and administrator filters for date, level, gender range, creator, capacity, and event status.
The complete court-control foundation
The original court workflow grew into a complete platform for players, organizers, and administrators.
Changes in this update
- Added permanent GUID court links, nickname and PIN registration, capacity limits, waiting lists, and automatic promotion.
- Added reserved members, roll call and clearing, read-only event mode, and join/leave history.
- Added member accounts, role-based administration, password and avatar management, login lockouts, and privacy-focused auditing.