Commit graph

212 commits

Author SHA1 Message Date
Daniel Friesel
780cdafcf5 show related stations in departure list 2019-10-19 10:15:18 +02:00
Daniel Friesel
aaaeec5c30 Travelynx.pm: Document the real cause of sched_arr-isa-DateTime bug 2019-10-06 16:32:58 +02:00
Daniel Friesel
a2d08bca26 derp 2019-10-06 11:02:29 +02:00
Daniel Friesel
e97c943154 Work around crash when a train has the same stop more than once 2019-10-06 10:55:09 +02:00
Daniel Friesel
6d45533c14 mark cancelled stops in checkin view 2019-10-04 23:27:45 +02:00
Daniel Friesel
1cb26e2053 handle substitute connections in passenger rights form 2019-09-18 20:21:16 +02:00
Daniel Friesel
8e6ee729e0 passengerrights: improve support for cancelled trains
To do: also do so in form generation
2019-09-18 18:19:54 +02:00
Daniel Friesel
aac8e2a0e1 Save scheduled arrival time for cancelled trains 2019-09-18 18:08:06 +02:00
Daniel Friesel
a9850d073e improve connection detection heuristic 2019-09-14 12:27:36 +02:00
Daniel Friesel
35cc18dfae add passenger rights heuristic for missed connections 2019-09-13 23:39:28 +02:00
Daniel Friesel
c891da97fb Explicitly set passenger rights form filename 2019-09-12 18:23:23 +02:00
Daniel Friesel
0822cfc993 add auto-generated passenger rights forms 2019-09-12 18:07:21 +02:00
Daniel Friesel
8c160f6854 Fix wagon order and direction display
This was broken by a database migration introduced in
commit f6d56d3134
2019-08-31 09:18:49 +02:00
Daniel Friesel
a40aa1936b Allow comments to be edited 2019-08-23 12:02:22 +02:00
Daniel Friesel
f6d56d3134 Add proper journey comment support 2019-08-23 10:34:02 +02:00
Daniel Friesel
e259a5e5dd Fix beeline distance calculation when start/stop has no geo-coordinates 2019-08-13 21:30:59 +02:00
Daniel Friesel
c9592e3f76 show boarding countdown in departure overview 2019-08-06 20:21:57 +02:00
Daniel Friesel
a48352ada4 also show train direction on departure 2019-08-03 12:35:47 +02:00
Daniel Friesel
ff75b16bfc move exit direction calculation to a helper function 2019-08-03 11:14:29 +02:00
Daniel Friesel
90dd96e08f Handle race condition when several workers are updating the same history entry 2019-07-20 20:58:28 +02:00
Daniel Friesel
7c7b5e9f95
Do not show station duplicates in geolocation list 2019-07-20 15:42:49 +02:00
Daniel Friesel
b12b5a821b Show departures of all linked stations
Not well-tested yet, deployment will have to wait a bit. Issue #15
2019-07-14 21:29:52 +02:00
Daniel Friesel
b08b0fb921 handle ambiguous train numbers when requesting train details 2019-07-14 17:17:44 +02:00
Daniel Friesel
04cc32b7a0 Fix wrong directions on long-distance arrivals 2019-06-25 20:19:21 +02:00
Daniel Friesel
36121ccffc show wagon order before departure 2019-06-24 18:02:45 +02:00
Daniel Friesel
590b27f2ca also show exit direction for regional trains at select stations 2019-06-23 18:46:25 +02:00
Daniel Friesel
16c441e433 also show exit direction based on wagon order 2019-06-23 17:08:47 +02:00
Daniel Friesel
b3b0823829 show exit direction on kopfgleis platforms 2019-06-22 17:02:04 +02:00
Daniel Friesel
75aa4a961a disable wagonorder for now (not used yet anyway) 2019-06-19 21:08:35 +02:00
Daniel Friesel
0bbdd768f4 prepare for wagon order support 2019-06-17 20:59:57 +02:00
Daniel Friesel
b54c977e08 increase checkout delay to work around IRIS information lag 2019-06-10 18:09:54 +02:00
Daniel Friesel
962aac63af connections: order by realtime, not scheduled departure 2019-06-07 20:34:28 +02:00
Daniel Friesel
7be3a4219e checked in: Show QoS messages before departure and HIM messages at all times 2019-06-04 21:12:36 +02:00
Daniel Friesel
d90c44ccff Work around Safari violating the spec for SameSite=Lax cookies
This fixes users being logged out whenever following an external link to
travelynx in Safari (iOS/macOS)
2019-06-01 18:04:50 +02:00
Daniel Friesel
f355a8d95e disappearing trains are no longer critical with the latest change 2019-06-01 12:38:26 +02:00
Daniel Friesel
5f80c151c1 run update hook after setting arrival time 2019-06-01 12:06:22 +02:00
Daniel Friesel
d701442306 Set arrival time via HAFAS if not available from IRIS 2019-06-01 11:52:42 +02:00
Daniel Friesel
b1591eed54 show current/next stop while checked in 2019-05-31 20:18:22 +02:00
Daniel Friesel
155f9f39cc use journey-specific status links -> one twitter card per journey 2019-05-29 20:01:52 +02:00
Daniel Friesel
146b3a2682 add twitter preview tags to public user status page 2019-05-29 18:11:25 +02:00
Daniel Friesel
7fe95532c1 Use JSON for messages and route storage, prepare for extended route data 2019-05-26 17:28:21 +02:00
Daniel Friesel
45c32ff5c7 Fix missing update event when arrival time at destination is unknown 2019-05-24 17:17:04 +02:00
Daniel Friesel
f4a6f8a400 Increase suggestion time range to 4 months 2019-05-24 17:09:11 +02:00
Daniel Friesel
1dc04eb45a show journey suggestions on departure board as well 2019-05-20 19:15:21 +02:00
Daniel Friesel
531cb95c17 Handle accidental double-checkins 2019-05-20 18:59:28 +02:00
Daniel Friesel
d9d3aac792 allow checkin from connections view 2019-05-19 10:32:57 +02:00
Daniel Friesel
7960114f71 Work in progress: show connections when arriving soon
At the moment, the heuristic used to determine connection targets is quite
simple: $station is a target iff there were at least two trips in the past
6 weeks with checkin at the current destination station and checkout at
$station.

Todo / enhanhement options:

* Consider current origin station as well, i.e.: $station is a target
  iff there were at least two trips in the past 6 weeks which are preceded by
  a trip from the current origin station and (same as above)
* Make connection links clickable once the current journey has ended.
  Connections need to be added to _checked_out as well for this to work.
2019-05-19 08:55:23 +02:00
Daniel Friesel
7486920a6a Proactively recompute yearly stats to avoid long user wait times 2019-05-18 17:11:28 +02:00
Daniel Friesel
e68043b8fb Show arrival/departure platform in journey card 2019-05-18 17:10:53 +02:00
Daniel Friesel
283f5aad04 remove debug output 2019-05-18 08:29:39 +02:00
Daniel Friesel
fa98aba3d3 Pre-select theme css in backend 2019-05-18 08:23:59 +02:00
Daniel Friesel
b85db3a10d Show web-hook test result immediately after saving it
Closes #12
2019-05-14 20:05:45 +02:00
Daniel Friesel
0f28fdfb85 get_journey_stats: Support uid override, fix uninitialized value warning 2019-05-11 15:23:29 +02:00
Daniel Friesel
59c677ba12 history: validate year and month 2019-05-11 01:35:57 +02:00
Daniel Friesel
269b8536f4 Add webhook to account page 2019-05-10 19:03:18 +02:00
Daniel Friesel
66a35a35eb set a custom user agent 2019-05-09 17:58:23 +02:00
Daniel Friesel
022465d2a7 Fix division by zero when calculating journey completion 2019-05-08 07:12:54 +02:00
Daniel Friesel
2ddab75644 basic webhook support, onwards to betatesting 2019-05-06 16:59:48 +02:00
Daniel Friesel
b36ba45aef WiP webhook support 2019-05-05 18:09:11 +02:00
Daniel Friesel
954638e7c7 data export: use station names, not IDs 2019-05-03 21:14:49 +02:00
Daniel Friesel
709919a962 Experimental PWA support (#13) 2019-05-03 20:43:46 +02:00
Daniel Friesel
9f3b80a859 use /account/... links for mail/password change 2019-05-03 18:57:24 +02:00
Daniel Friesel
b4bb68b7c3 Add worker command for Docker setups (#9) 2019-05-03 18:26:05 +02:00
Daniel Friesel
bc6a59d43e Do not show origin station in destination list 2019-05-03 10:52:30 +02:00
Daniel Friesel
bf2dae7c45 Add changelog 2019-05-03 10:32:58 +02:00
Daniel Friesel
af5c26bf8a Do not error out when receiving UIDs > INT_MAX 2019-05-02 11:34:52 +02:00
Daniel Friesel
be1e5dda23 Public API documentation 2019-05-02 11:29:43 +02:00
Daniel Friesel
fb2a06c59c work: Not finding a train at the destination is usually not an error 2019-05-02 10:05:49 +02:00
Daniel Friesel
3de5de7db2 Finish public-facing exposed user status (opt-in) 2019-05-02 10:05:15 +02:00
Daniel Friesel
f0d61a4083 Prepare settings and templates for opt-in public travel status 2019-04-30 23:23:49 +02:00
Daniel Friesel
2d7c75f877 show imprint and version on landing page 2019-04-30 18:18:09 +02:00
Daniel Friesel
048767149e use a separate table for registration tokens 2019-04-30 18:05:07 +02:00
Daniel Friesel
a57a24c2d6 add "active user count" munin command 2019-04-30 12:56:11 +02:00
Daniel Friesel
99aa3a4a0d Implement deletion of inactive accounts 2019-04-30 12:48:23 +02:00
Daniel Friesel
867a5d4afb allow users to change their mail address
Closes #6
2019-04-30 12:08:51 +02:00
Daniel Friesel
4ad1a1d20e Move invalid input errors into common sub-template 2019-04-30 10:46:46 +02:00
Daniel Friesel
0226eba60a maintenance: Also delete pending_passwords entries 2019-04-29 20:32:04 +02:00
Daniel Friesel
25d0530e86 Add password reset functionality
Closes #5
2019-04-29 20:12:59 +02:00
Daniel Friesel
6ff397c9b3 add database table/column comments 2019-04-29 10:25:17 +02:00
Daniel Friesel
fd6d12d355 Handle inconsistent data when calculating monthly/yearly stats
Closes #11
2019-04-28 22:33:09 +02:00
Daniel Friesel
d6e6c9992e History: Only show months and years with logged journeys 2019-04-27 09:11:42 +02:00
Daniel Friesel
e500c2e537 work: Update route and messages 2019-04-26 22:12:34 +02:00
Daniel Friesel
a760274c7c Invalidate stats cache after adding a new journey 2019-04-26 20:39:44 +02:00
Daniel Friesel
d77566bba4 add_journey: Fix incorrect return in case of unmatched station 2019-04-26 19:56:03 +02:00
Daniel Friesel
e07063c52c Add manual journey entry
Closes #3
2019-04-26 19:53:01 +02:00
Daniel Friesel
2cae5a51d2 undo: Redirect to departure station when undoing a checkin 2019-04-25 09:22:54 +02:00
Daniel Friesel
aa0f9fdeea show recent delay/qos messages in checked_in view 2019-04-24 14:58:08 +02:00
Daniel Friesel
b992a6dc75 $render(status => ...) is a special variable. derp. 2019-04-24 09:00:30 +02:00
Daniel Friesel
fd314e327d maintenance, munin: Use journeys, not user_actions 2019-04-24 08:45:56 +02:00
Daniel Friesel
438319e63a Bump API to v1 2019-04-24 07:34:41 +02:00
Daniel Friesel
906ec60ea2 export: Add in_transit field 2019-04-24 07:13:38 +02:00
Daniel Friesel
4c63efe4a1 Remove legacy action_type attributes 2019-04-23 23:04:04 +02:00
Daniel Friesel
3389ca2bcf Fix checkin/checkout of cancelled journeys 2019-04-23 23:02:57 +02:00
Daniel Friesel
6c1cae86f4 Primitive auto-refresh of current journey status
Todo: Redirect user to destination station upon arrival
2019-04-23 22:27:13 +02:00
Daniel Friesel
ffaa0c44a7 Automatic checkout \o/ 2019-04-23 21:30:31 +02:00
Daniel Friesel
e168d9cd39 Use one row per journey instead of split checkin/checkout entries
Whether a user is in transit or not is now determined by an entry in the
in_transit table instead of a dangling checkin.

All completed journeys are stored in the "journeys" table.

This does most of the work needed for automatic checkout. However, note that
the corresponding worker process is not implemented yet.
2019-04-23 18:08:07 +02:00
Daniel Friesel
812be4f0cb Finish transition from DBI to Mojo::Pg 2019-04-22 13:42:41 +02:00
Daniel Friesel
c65232904f Use Mojo::Pg for migrations 2019-04-22 12:30:05 +02:00
Daniel Friesel
2aece36803 Use Mojo::Pg for all remaining Controller and Helper logic 2019-04-22 12:11:22 +02:00
Daniel Friesel
4ed24c5565 Also use Mojo::Pg for user_status and user_travels queries 2019-04-22 11:11:14 +02:00