What's Changed
This release redesigns the statistics page. The pie charts and mismatched cards are replaced by one report with your totals, followed by ranked lists and bar charts grouped by when, where, airlines and aircraft, on board, punctuality and countries. Any row opens the matching flights, and clicking a year sets the date filter. A flight and its return now count as one route, and you can choose whether upcoming flights are included.
You can now subscribe to your flights from any calendar app. Turn on Calendar feed under Settings → Export and add the URL to your calendar. Anyone with that URL can see your flight details, including notes and seats, so treat it like a password. You can regenerate or disable it from the same page.
The flight list now shows country flags on desktop and tablet-sized screens, and explains early and late times in the time tooltip, falling back to takeoff and landing times when no gate times are recorded. Uploading a track can fill in those takeoff and landing times for you. Admins can turn on aircraft photos from Planespotters.net under Settings → Integrations, there's a quick toggle between track and route in flight and route details, and flights can be imported from LogMyTrip.
For OAuth, new users can now be registered from a verified email when the provider sends no username, as with Google. Add email to the OAuth scope for this. Accounts without a password can now set one, and can't unlink OAuth until they have.
This release also fixes flight tracks crossing the antimeridian on the flat map, map overlays drifting on tall high-resolution screens, shared flight lists being cut off at 20 flights, connectors being signed out by a concurrent token refresh, and imported flights being assigned to an airline that has since reused a defunct airline's ICAO code. The container now stops if a migration fails instead of starting against the old schema.
🚀 Features
- feat: subscribe to your flights with a calendar feed by @barreeeiroo in #776
🌟 Enhancements
- feat: add option to include upcoming flights in statistics by @martinfrancois in #767
- feat: show aircraft photos from Planespotters by @barreeeiroo in #777
- fix: make small airport circles smaller by @johanohly in #788
- feat: add LogMyTrip importer by @haluzator1 in #770
- feat: add a flights per year chart to the statistics page by @martinfrancois in #766
- feat: toggle between track and route from flight and route details by @barreeeiroo in #775
- feat: show country flags in the flight list by @barreeeiroo in #778
- feat: fill takeoff and landing times from uploaded tracks by @JackyHe398 in #774
- feat: add fallback flight timing status by @JackyHe398 in #773
- feat: redesign the statistics page by @johanohly in #794
🐛 Bug fixes
- fix: use shared select styling for basemap provider dropdowns by @b-a-b-i-s in #744
- fix: return list results from MCP tools as objects by @scarabone in #762
- fix: let the pointer pass through map hover popups by @jt888168 in #780
- fix: paginate the flight list on shared pages by @johanohly in #781
- fix: count Cyprus as part of Europe by @johanohly in #782
- fix: stop the container from starting when migrations fail by @johanohly in #784
- fix: keep OAuth connectors signed in after a concurrent token refresh by @johanohly in #785
- fix: stop matching imported airlines by a reused ICAO code by @johanohly in #783
- fix: keep map overlay aligned on tall high-resolution screens by @johanohly in #787
- fix: draw flight tracks that cross the antimeridian in full on mercator by @jt888168 in #779
- fix: show tooltips on the statistics month and weekday charts by @johanohly in #790
- fix: keep airline import mappings separate when codes are reused by @martinfrancois in #789
- fix: auto-register OAuth users without a provided username by @johanohly in #792
- fix: let OAuth accounts set a password and block unlinking without one by @johanohly in #793
New Contributors
- @haluzator1 made their first contribution in #768
- @pygmalion-y made their first contribution in #764
- @b-a-b-i-s made their first contribution in #744
- @scarabone made their first contribution in #762
- @jt888168 made their first contribution in #780
- @martinfrancois made their first contribution in #767
- @barreeeiroo made their first contribution in #777
- @JackyHe398 made their first contribution in #774
Full Changelog: v3.13.1...v3.14.0