Commit graph

163 commits

Author SHA1 Message Date
Daniel Friesel
e83cfc5303
connections: show expected arrival at destination 2022-09-24 16:11:51 +02:00
Daniel Friesel
906a8a4f55
departure board: add footer 2022-09-23 19:25:17 +02:00
Daniel Friesel
6bae226d5c
always show 'run' icon when an interchange is short 2022-09-23 17:32:27 +02:00
Daniel Friesel
8c511f955c
Controller/Traveling: perltidy 2022-09-07 18:08:27 +02:00
Daniel Friesel
ffeeb11e5a
get_connecting_trains_p: remove trains with identical routes to current one 2022-09-05 21:06:05 +02:00
Daniel Friesel
0a7188d2e2
get_connecting_trains_p: use has_str_in_list helper more often 2022-09-05 21:00:20 +02:00
Daniel Friesel
3b9db4bfd4
get_connecting_trains_p: handle uninitialized arr_countdown 2022-09-03 17:58:12 +02:00
Daniel Friesel
dd151dc686
get_connecting_trains_p: we're doing boolean arithmetic here
(fixes 'useless use of numeric lt in void context' warning)
2022-09-03 16:58:54 +02:00
Daniel Friesel
2f2624a80a
get_connecting_trains: set lookahead to (expected arrival // now) + 40 minutes 2022-09-03 16:46:48 +02:00
Daniel Friesel
6aca1692e4 get_connecting_trains_p: increase lookahead to 60 2022-08-26 18:56:50 +02:00
Daniel Friesel
ff317c5c2a show connections up to 40 minutes before arrival (rather than just 20) 2022-08-26 18:38:54 +02:00
Daniel Friesel
1a2ff8262d
... 'status' is a reserved renderer key. oops. 2022-08-04 14:07:25 +02:00
Daniel Friesel
d0c061569d
Traveling: Rename log_action to travel_action 2022-08-02 22:22:10 +02:00
Daniel Friesel
d3c8daf84c
fetch connecting trains asynchronously 2022-08-01 10:07:24 +02:00
Daniel Friesel
c06d653195
Traveling: sort helpers <-> controllers 2022-07-30 10:47:18 +02:00
Daniel Friesel
83954508f0
move get_connecting_trains helper to Traveling controller 2022-07-30 10:27:57 +02:00
Daniel Friesel
2da48e05be
move get_connecting_trains call from _checkeed_in to controller 2022-07-27 13:54:20 +02:00
Daniel Friesel
52ff756577
only show cancellation alternatives at original station 2022-07-26 15:36:45 +02:00
Daniel Friesel
1594ba9327
_checked_out: move get_connecting_trains call to controller 2022-07-26 15:36:22 +02:00
Daniel Friesel
960de27f0e
move get_connecting_trains out of _cancelled_departure template 2022-07-26 14:51:57 +02:00
Daniel Friesel
35338125bc
departure board: move get_connecting_trains call to controller
this is in preparation for turning it into a promise
2022-07-26 13:19:29 +02:00
Daniel Friesel
bb6acc0c6b
Use async IRIS API for /s/ 2022-07-26 10:41:44 +02:00
Daniel Friesel
5ff9e5c7a1
history map: allow filtering by train type 2022-04-02 18:14:21 +02:00
Daniel Friesel
5dfbdd8644
history map: add filter by date 2022-04-02 15:24:39 +02:00
Daniel Friesel
01aec7e977
fix ajax refresh of public status card (trim .html suffix) 2022-02-20 21:45:51 +01:00
Daniel Friesel
a4ff5e8ad8 Switch to AGPL3+ 2021-01-29 18:32:13 +01:00
Daniel Friesel
77ecd6d034 move statistics cache to a separate model class 2020-11-28 21:03:51 +01:00
Daniel Friesel
b70ecc7c7c Add a bunch of licensing data 2020-11-27 22:12:56 +01:00
Daniel Friesel
b1348c7d4a move in_transit queries to an InTransit model class 2020-10-11 19:38:01 +02:00
Daniel Friesel
89e709d8d5 Allow linking a Träwelling account, auto-sync Träwelling→travelynx
travelynx→Träwelling is still work-in-progress

Squashed commit of the following:

commit 97faa6e2e6c8d20fba30f2d0f6e78187ceeb72e6
Author: Daniel Friesel <derf@finalrewind.org>
Date:   Wed Sep 30 18:50:05 2020 +0200

    improve traewelling log and tx handling

commit 487d7dd728b9d45b731bdc7098cf3358ea2e206e
Author: Daniel Friesel <derf@finalrewind.org>
Date:   Wed Sep 30 18:02:41 2020 +0200

    add missing traewelling template

commit 0148da2f48d9a52dcddc0ab81f83d8f8ac3062ab
Author: Daniel Friesel <derf@finalrewind.org>
Date:   Wed Sep 30 18:02:35 2020 +0200

    improve traewelling pull sync

commit 4861a9750f9f2d7621043361d0af6b0a8869a0df
Author: Daniel Friesel <derf@finalrewind.org>
Date:   Tue Sep 29 22:14:24 2020 +0200

    wip checkin from traewelling

commit f6aeb6f06998a2a7a80f63a7b1b688b1a26b66bd
Author: Daniel Friesel <derf@finalrewind.org>
Date:   Tue Sep 29 18:37:53 2020 +0200

    refactor traewelling integration. login and logout are less of a hack now.

    checkin and checkout are not supported at the moment.
2020-09-30 19:12:29 +02:00
Daniel Friesel
952740969c add opengraph metadata output 2020-09-21 20:31:08 +02:00
Daniel Friesel
362db912fa add twitter card to public journey view 2020-09-21 20:15:01 +02:00
Daniel Friesel
7eb5f967f2 profile: limit history to four weeks by default 2020-09-04 18:38:35 +02:00
Daniel Friesel
482fa975b5 add public profile page and public journey details 2020-09-03 22:27:50 +02:00
Daniel Friesel
47b957361e Move most journey code to newly introduced Journey model 2020-08-16 21:20:23 +02:00
Daniel Friesel
717cc18a40 Move get_departures to a separate IRIS helper 2020-08-06 16:04:12 +02:00
Daniel Friesel
f08bdaca5c Move user model to a separate module 2020-07-27 18:53:22 +02:00
Daniel Friesel
f5fd6d42e1 Add CSV Export 2020-04-19 18:26:20 +02:00
Daniel Friesel
346f1474bb commute stats: attempt to weed out non-work stations for auto-fill 2020-04-19 17:49:14 +02:00
Daniel Friesel
5ce4bc6995 improve commute station heuristic
Select top station on work days (Mo .. Fr) with arrival < 13:00 or
departure >= 13:00.
2020-04-19 17:40:39 +02:00
Daniel Friesel
94ea5a089f Commute stats: count days, not journeys 2020-04-19 17:03:02 +02:00
Daniel Friesel
94932c4102 add commute stats. not linked from nav yet. 2020-04-19 16:49:31 +02:00
Daniel Friesel
d7f251e51f public user status: show polyline if available 2020-02-26 18:43:34 +01:00
Daniel Friesel
5c05ed609f journey details: show route on map if available 2020-02-23 19:04:05 +01:00
Daniel Friesel
82f043e734 Move map data generation to a global helper function 2020-02-23 18:35:56 +01:00
Daniel Friesel
a15dc1791c calculate journey distance using polyline, if available 2020-02-21 23:31:50 +01:00
Daniel Friesel
0011e4a18d user_status: Improve TS lookup performance 2020-02-20 20:58:58 +01:00
Daniel Friesel
57f686b688 allow showing past journeys on shared status page 2020-02-19 20:58:38 +01:00
Daniel Friesel
cc7439dd5e handle departure cancellation after checkin 2020-02-17 21:13:07 +01:00
Daniel Friesel
3ddd1a1cf4 Improve map performance by passing actual polylines for train routes 2020-02-07 23:19:01 +01:00
Daniel Friesel
eb3f4aed05 allow checkin and checkout station to be edited 2020-02-01 16:15:20 +01:00
Daniel Friesel
aa7a7db2bc map: show polylines by default 2020-01-31 18:16:00 +01:00
Daniel Friesel
dadb0f6637 map: improve polyline duplicate detection 2020-01-29 19:54:32 +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
3e9807b393 map, journey view: handle renamed stations 2020-01-25 15:46:42 +01:00
Daniel Friesel
1028e47a35 map: list skipped journeys 2020-01-25 14:55:51 +01:00
Daniel Friesel
ee1285e8fa map: support multiple polyline groups with different colors 2020-01-25 14:41:33 +01:00
Daniel Friesel
9232cdaa5f Return HTTP 404 for unknown journeys 2020-01-19 19:21:14 +01:00
Daniel Friesel
2764826da0 /journey/🆔 verify that id is numeric
As a side effect, this turns the response of GET /journey/edit (which should
never happen in the first place) from an exception into a 404 error (#36)
2020-01-19 19:15:53 +01:00
Daniel Friesel
d9126b927f fix connections display 2019-12-26 22:48:50 +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
561ff4574b Allow status visibility to be limited to travelynx users 2019-12-08 11:06:17 +01:00
Daniel Friesel
fb126c6928 optionally show journey comment in public user status
Closes #19
2019-12-06 21:44:31 +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
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
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
13e59b3aa1 add journey: make realtime data optional (default to schedule data)
Closes #25
2019-11-18 21:02:57 +01:00
Daniel Friesel
783a540cb0 history map: show time range; handle users with no journeys 2019-11-16 23:47:18 +01:00
Daniel Friesel
e0187c5308 history map: Do not show route for manually added journeys 2019-11-16 23:46:45 +01:00
Daniel Friesel
cea4b71ca3 history map: skip duplicates earlier 2019-11-16 21:24:35 +01:00
Daniel Friesel
4f2eac9cef map_history: uniq_by_route did not consider the actual passenger route, scrap it 2019-11-16 16:03:03 +01:00
Daniel Friesel
733fe2d853 map: add legend, link to history map from history page 2019-11-16 15:57:09 +01:00
Daniel Friesel
77e4998708 move station -> location map to generic helper 2019-11-16 15:24:16 +01:00
Daniel Friesel
45f747961e map: add station names to points 2019-11-16 14:50:07 +01:00
Daniel Friesel
0bfb71d78d add map view of past journeys. unfinished and unreferenced. 2019-11-16 00:01:50 +01:00
Daniel Friesel
4ba82b51d3 Fix invalid geolocation list when less than 5 unique station names are nearby
This issue was introduced in 7c7b5e9f95 and
caused the client-side javascript code to crash
2019-10-19 16:47:33 +02:00
Daniel Friesel
780cdafcf5 show related stations in departure list 2019-10-19 10:15:18 +02:00
Daniel Friesel
a40aa1936b Allow comments to be edited 2019-08-23 12:02:22 +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
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
d9d3aac792 allow checkin from connections view 2019-05-19 10:32:57 +02:00
Daniel Friesel
59c677ba12 history: validate year and month 2019-05-11 01:35:57 +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
99aa3a4a0d Implement deletion of inactive accounts 2019-04-30 12:48:23 +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
b992a6dc75 $render(status => ...) is a special variable. derp. 2019-04-24 09:00:30 +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
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
2aece36803 Use Mojo::Pg for all remaining Controller and Helper logic 2019-04-22 12:11:22 +02:00
Daniel Friesel
8ad05720a2 Refactor user_actions insert/update/delete statements with Mojo::Pg 2019-04-17 13:35:38 -04:00
Daniel Friesel
1ee185d26b work-in-progress manual journey entry. incomplete and not enabled yet. 2019-04-13 10:43:05 +02:00