Daniel Friesel
a29568711f
fix uninitialized value warning when handling odd trains (trains without type)
2020-02-01 10:59:46 +01:00
Daniel Friesel
aa7a7db2bc
map: show polylines by default
2020-01-31 18:16:00 +01:00
Daniel Friesel
993f6be6c9
map: set bounds on stations; move polyline feature to staging
2020-01-29 18:48:58 +01:00
Daniel Friesel
fca6a5df6c
journey_sanity_check: handle duration == 0
2020-01-28 20:01:00 +01:00
Daniel Friesel
b47a29d484
Store journey polylines in DB
...
Squashed commit of the following:
commit d60c7d3c98d88a8f5b0e3ced6c11b56053e1e44b
Author: Daniel Friesel <derf@finalrewind.org>
Date: Mon Jan 27 20:22:46 2020 +0100
fix bugs related to users without past journeys
commit 707fcc937ac7f6bc3dc29024273f5e74963f7f15
Author: Daniel Friesel <derf@finalrewind.org>
Date: Mon Jan 27 20:19:14 2020 +0100
work around Cache::file turning floats into strings
commit 55831121eb30bc30ed20134bbb48e4bee9772feb
Author: Daniel Friesel <derf@finalrewind.org>
Date: Mon Jan 27 19:43:29 2020 +0100
store journey polylines for later use
commit 1971d511037ff2b8fbc9699cb98e4f8fd51261e5
Author: Daniel Friesel <derf@finalrewind.org>
Date: Sat Jan 25 16:49:48 2020 +0100
set preliminary database schema for polyline storage.
deduplication will follow at a later stage
2020-01-27 20:32:15 +01:00
Daniel Friesel
47171500b7
fix bugs related to users without past journeys
2020-01-27 20:25:02 +01:00
Daniel Friesel
21234707fc
add_journey: allow up to 99 journeys per 24 hours
2020-01-26 15:31:01 +01:00
Daniel Friesel
ba62df34ea
validate_journey: handle 0 timestamps
2020-01-26 10:48:14 +01:00
Daniel Friesel
ce6237b9fb
status API: nextStops -> intermediateStops; documentation
2020-01-26 09:59:45 +01:00
Daniel Friesel
3e9807b393
map, journey view: handle renamed stations
2020-01-25 15:46:42 +01:00
Daniel Friesel
8157f38854
JSON Status API: Add experimental and undocumented nextStops key
2020-01-23 18:18:50 +01:00
Daniel Friesel
cda8e53b34
has_wagonorder: Fix promise result mixup
2020-01-22 20:18:37 +01:00
Daniel Friesel
243302b9bb
Fix IOLoop crashes caused by using log->warning instead of log->warn
...
The issue manifested itself by the ioloop using 100%cpu without making any
progress.
2020-01-15 22:13:20 +01:00
Daniel Friesel
263fe6da63
do not store wagonorder error results in database
2020-01-15 21:48:50 +01:00
Daniel Friesel
e8b610f3e6
fetch trip ID when checked in
2020-01-08 18:42:17 +01:00
Daniel Friesel
172c8a3d00
move old station names to external JSON as well
2020-01-06 18:24:28 +01:00
Daniel Friesel
8a73a65656
Switch back to JSON::XS for decoding
2020-01-06 18:03:50 +01:00
Daniel Friesel
f99e069928
Move ICE names to a separate JSON file
2020-01-06 17:59:40 +01:00
Markus Heinrich
d1c005606c
remove unnecessary whitespace
2020-01-06 11:22:03 +01:00
Daniel Friesel
62b68b5010
map ICE train numbers to names where possible
2020-01-04 18:48:46 +01:00
Daniel Friesel
5435f34aa1
Set travelynx UserAgent for webhook requests
2019-12-29 23:06:51 +01:00
Daniel Friesel
6fde013585
Strip newline from version string
2019-12-29 23:06:39 +01:00
Daniel Friesel
f8436b9b4b
perltidy
2019-12-28 15:01:21 +01:00
Knuspel
d8b46dff89
Added links for old/new station names.
2019-12-28 14:35:07 +01:00
Daniel Friesel
fe6340abeb
Handle undefined user data in conncetion suggestion with no previous journey
...
Closes #30
2019-12-26 21:39:24 +01:00
Daniel Friesel
f9f1eec499
Use EVA IDs instead of travelynx-internal station IDs. Not 100% tested yet.
2019-12-23 22:57:45 +01:00
Daniel Friesel
e7f278574f
more travel API documentation
2019-12-20 18:33:59 +01:00
Daniel Friesel
e0a2b9aa26
save all the wagon orders we can get
2019-12-19 20:16:10 +01:00
Daniel Friesel
f895d34f31
undo: pass UID to invalidate_stats_cache
2019-12-19 18:18:26 +01:00
Daniel Friesel
934a9ac21a
api/import: More helpful errors, fix "lax" support
2019-12-17 20:09:02 +01:00
Daniel Friesel
ae21896982
API: Add lax option
2019-12-17 20:01:39 +01:00
Daniel Friesel
9adec3ee8d
remove debug output
2019-12-16 22:17:40 +01:00
Daniel Friesel
bb22915fc3
Fix has_wagonorder_p logic. request success ≠ result success!
2019-12-16 22:15:37 +01:00
Daniel Friesel
cabf159f46
Handle Berlin Ringbahn and other transfer-at-destination trains
...
Requires Travel::Status::DE::IRIS v1.38 (not released yet)
2019-12-15 13:42:11 +01:00
Daniel Friesel
7ae60f2ea4
Travel API: comment support
2019-12-14 23:46:36 +01:00
Daniel Friesel
46fc64de48
Add travel (checkin/checkout/undo) API
2019-12-14 21:53:23 +01:00
Daniel Friesel
5fe4174feb
Add API entry point for journey import
2019-12-14 20:46:02 +01:00
Daniel Friesel
ba97fd2a3c
do not insert duplicate wagongroups
2019-12-13 20:37:51 +01:00
Daniel Friesel
f6bff01f76
save wagongroups if available
2019-12-13 17:28:52 +01:00
Daniel Friesel
b211e0842a
permanently store wagon numbers and types when available
2019-12-12 19:21:39 +01:00
Daniel Friesel
e6160d75de
show wagon order for regional trains too, if available
2019-12-11 21:36:41 +01:00
Daniel Friesel
315a94affe
allow a journey's cancellation status to be edited
...
Closes #27
2019-12-08 19:46:45 +01:00
Daniel Friesel
07ee4d216a
add hash tables for is_public and journey edited bitmasks
2019-12-08 10:29:25 +01:00
Daniel Friesel
094c536eb4
Allow comments to be entered while still in transit
2019-12-06 21:40:51 +01:00
Daniel Friesel
0e2e8cd78e
history map: Add checkbox to display manually added journeys
2019-11-27 18:26:15 +01:00
Daniel Friesel
4f0fee7783
show cancelled trains in connections list
2019-11-25 21:18:57 +01:00
Daniel Friesel
b3b0a055b9
improve get_user_travels performance, most notably when rendering map
...
only create DateTime objects when needed
2019-11-24 20:29:52 +01:00
Daniel Friesel
8aced49bc3
Log unknown route entries on checkout
2019-11-22 17:59:50 +01:00
Daniel Friesel
57f47d2a3c
allow routes to be edited after recording a journey
2019-11-20 17:41:21 +01:00
Daniel Friesel
b80613b8a8
allow route input when adding journeys manually ( #26 )
2019-11-19 19:46:39 +01:00
Daniel Friesel
77e4998708
move station -> location map to generic helper
2019-11-16 15:24:16 +01:00
Daniel Friesel
0bfb71d78d
add map view of past journeys. unfinished and unreferenced.
2019-11-16 00:01:50 +01:00
Daniel Friesel
ead18f1212
Fix implicit checkout when checking in from a related station
...
Previously, realtime data was missing in this case
2019-11-12 19:13:38 +01:00
Daniel Friesel
663b4dc6d8
live update of next station via javascript
2019-10-29 21:18:46 +01:00
Daniel Friesel
f13b4755c7
route diff: remove debug output
2019-10-25 17:05:39 +02:00
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
aac8e2a0e1
Save scheduled arrival time for cancelled trains
2019-09-18 18:08:06 +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
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
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
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
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
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
e68043b8fb
Show arrival/departure platform in journey card
2019-05-18 17:10:53 +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
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
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
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
be1e5dda23
Public API documentation
2019-05-02 11:29:43 +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
048767149e
use a separate table for registration tokens
2019-04-30 18:05:07 +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
25d0530e86
Add password reset functionality
...
Closes #5
2019-04-29 20:12:59 +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
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
aa0f9fdeea
show recent delay/qos messages in checked_in view
2019-04-24 14:58:08 +02:00
Daniel Friesel
438319e63a
Bump API to v1
2019-04-24 07:34:41 +02:00
Daniel Friesel
4c63efe4a1
Remove legacy action_type attributes
2019-04-23 23:04:04 +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
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
Daniel Friesel
fb3fda9736
More Mojo::Pg migrations
2019-04-22 09:58:39 +02:00
Daniel Friesel
78b2d995ef
Ignore stations without coordinates in distance calculation
...
Reported by @marudor
2019-04-21 15:46:19 +02:00
Daniel Friesel
24d0943cdc
refactor set_status_query and get_token_query
2019-04-19 15:56:54 -04:00
Daniel Friesel
8ad05720a2
Refactor user_actions insert/update/delete statements with Mojo::Pg
2019-04-17 13:35:38 -04:00
Daniel Friesel
c23334896d
Initiate transition to Mojo::Pg
2019-04-17 07:10:49 -04:00
Daniel Friesel
e1e07d5811
Set version via config
2019-04-14 17:34:30 -04:00
Daniel Friesel
13dbcf8761
add explicit config toggle to disable sendmail
2019-04-13 18:56:06 +02:00
Daniel Friesel
ee53b8f37e
Pass config to sendmail helper
2019-04-13 17:09:10 +02:00
Daniel Friesel
80a6317ac5
Use travelynx.conf for configuration and secrets
...
This avoids having to specify secrets in the environment, where they can leak
easily.
2019-04-13 12:18:26 +02:00
Daniel Friesel
1ee185d26b
work-in-progress manual journey entry. incomplete and not enabled yet.
2019-04-13 10:43:05 +02:00
Daniel Friesel
4ce9326495
Let us never talk of this again
2019-04-10 07:21:18 +02:00
Daniel Friesel
bba6721754
Allow journey editing, keep track of edited journey attributes
...
Provides a workaround for #2
2019-04-09 18:37:21 +02:00
Daniel Friesel
3ae6bda093
time travel is prohibited
2019-04-09 18:11:55 +02:00
Daniel Friesel
c0c7b1a589
Work-in-progress journey editor. Not ready for deployment.
2019-04-08 21:20:04 +02:00
Daniel Friesel
beb17acb84
Prepare forms for manual journey entry and editing
2019-04-07 20:20:37 +02:00
Daniel Friesel
ffee7177ac
Refactor history template, add yearly stats
2019-04-07 18:44:33 +02:00
Daniel Friesel
fa621418bc
drop cached statistics on checkout and journey deletion
2019-04-07 17:16:06 +02:00
Daniel Friesel
d0b6b7e052
Cache journey stats
2019-04-07 16:55:35 +02:00
Daniel Friesel
1405eb6ea3
Add password change form
2019-04-06 11:20:10 +02:00
Daniel Friesel
6630cdcd9e
checkout: Do not cardcode action type
2019-04-05 21:45:40 +02:00
Daniel Friesel
7f84288db5
checkin: Fix checkout path if currently checked into cancelled train
2019-04-05 21:45:05 +02:00
Daniel Friesel
e2598df25b
Allow journey deletion
...
See issue #3
2019-04-04 18:26:53 +02:00