Daniel Friesel
2810eb490c
do not mange journey edit link on small devices
2019-05-03 21:39:50 +02:00
Daniel Friesel
1694026c86
add a description
2019-05-03 21:13:22 +02:00
Daniel Friesel
cdbb3ee45b
use versioning for service worker and web app manifest
2019-05-03 21:02:24 +02:00
Daniel Friesel
5178e58c0c
add apple mobile web app foo
2019-05-03 20:59:14 +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
03a6780405
checked_in menu: purple, not green
2019-05-03 18:34:18 +02:00
Daniel Friesel
545796c4a1
changelog: Do not include imprint
2019-05-03 12:31:57 +02:00
Daniel Friesel
973cccd494
checkin: lighter background color, more prominent destination selection
2019-05-03 10:49:14 +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
3068652d35
oops
2019-05-02 10:24:05 +02:00
Daniel Friesel
3de5de7db2
Finish public-facing exposed user status (opt-in)
2019-05-02 10:05:15 +02:00
Daniel Friesel
1bf128936d
account: move edit links to the left
2019-05-02 09:13:21 +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
ddea9abc6e
show imprint/privacy/version on all public-facing pages
2019-04-30 18:24:30 +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
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
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
cc1a620041
checked_in: make sync-failed marker less obtrusive
2019-04-27 10:48:47 +02:00
Daniel Friesel
d6e6c9992e
History: Only show months and years with logged journeys
2019-04-27 09:11:42 +02:00
Daniel Friesel
8c1888263b
show marker when unable to sync
2019-04-26 22:27:07 +02:00
Daniel Friesel
e07063c52c
Add manual journey entry
...
Closes #3
2019-04-26 19:53:01 +02:00
Daniel Friesel
1e2e33399f
checked_in: distinguish between unknown and not-yet-known arrival
2019-04-25 07:52:51 +02:00
Daniel Friesel
35b3fc44e9
history: Use buttons for links
2019-04-24 15:15:53 +02:00
Daniel Friesel
aa0f9fdeea
show recent delay/qos messages in checked_in view
2019-04-24 14:58:08 +02:00
Daniel Friesel
501038ce11
_checked_in: Do not skip last two minutes of departure countdown
2019-04-24 12:15:26 +02:00
Daniel Friesel
b992a6dc75
$render(status => ...) is a special variable. derp.
2019-04-24 09:00:30 +02:00
Daniel Friesel
14d2dd52eb
_checked_out: Link to destination station
2019-04-24 07:58:22 +02:00
Daniel Friesel
49f81c0c52
oops
2019-04-24 07:52:37 +02:00
Daniel Friesel
def2fedf98
_checked_in: Clarify checkout/interchange UI
2019-04-24 07:50:31 +02:00
Daniel Friesel
e726d076c3
_checked_in: Fix misleading output on arrival_countdown == 0
2019-04-24 07:38:45 +02:00
Daniel Friesel
438319e63a
Bump API to v1
2019-04-24 07:34:41 +02:00
Daniel Friesel
79dcd4677e
_checked_in: Fix uninitialized value warning
2019-04-23 23:03:02 +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
5af134ef1e
landingpage: Fix plural for "0 minutes"
2019-04-23 20:00:03 +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
07c6e8878b
journey detail: gps_off -> location_off
2019-04-21 17:25:22 +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
c6812f6083
Print db and host in development mode
2019-04-13 18:59:46 +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
9df9f7c845
edit journey: use link to cancel
...
This bypasses form element validation, which doesn't make sense for
"cancel edit"
2019-04-13 10:45:57 +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
863a33b111
landingpage: Fix typo in required form element tag
2019-04-11 20:42:38 +02:00
Daniel Friesel
40d926e62d
decrease minimum history width by hiding train number if line is available
2019-04-11 18:09:02 +02:00
Daniel Friesel
e91c540c8e
history: Show time next to station
2019-04-10 17:51:51 +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
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
d4269a8fe4
journey: Fix typo in HTML tag
2019-04-07 19:19:50 +02:00
Daniel Friesel
ffee7177ac
Refactor history template, add yearly stats
2019-04-07 18:44:33 +02:00
Daniel Friesel
216dd7c7ad
history: Fix missing months for users registered on the 29th/30th/31st
2019-04-06 23:57:54 +02:00
Daniel Friesel
a1109bfce0
landingpage: Features++
2019-04-06 21:32:18 +02:00
Daniel Friesel
4e33f1e706
hide unimplemented API endpoints in account view
2019-04-06 21:23:21 +02:00
Daniel Friesel
4e7f7a1d0e
detect development mode for travelynx_dev* databases
2019-04-06 21:21:35 +02:00
Daniel Friesel
1405eb6ea3
Add password change form
2019-04-06 11:20:10 +02:00
Daniel Friesel
e2598df25b
Allow journey deletion
...
See issue #3
2019-04-04 18:26:53 +02:00
Daniel Friesel
8883b02fe4
register: Explicitly state that the account was not created
2019-04-02 20:10:55 +02:00
Daniel Friesel
68718860e2
login, register; Do not doule-nest row/col classes
2019-04-02 19:40:04 +02:00
Daniel Friesel
d90734e2ec
about: Add contact link
2019-04-01 20:59:03 +02:00
Daniel Friesel
335ab8209f
statistics: Add interchange wait time and journey count
2019-04-01 20:28:06 +02:00
Daniel Friesel
3ce1cfc55f
Select journeys by ID
2019-03-31 19:32:41 +02:00
Daniel Friesel
a8a3aa17ce
Perform undo by deleting the erroneous database entry
2019-03-31 08:45:51 +02:00
Daniel Friesel
df34c58cc5
history: move time column next to date
2019-03-28 19:21:52 +01:00
Daniel Friesel
eb929811b2
add per-month links to history
2019-03-27 21:46:52 +01:00
Daniel Friesel
343e9ef20c
history: more smartphone-friendly
2019-03-27 21:26:37 +01:00
Daniel Friesel
1aa5e786ed
add history per month
2019-03-27 21:20:59 +01:00
Daniel Friesel
a30970eb8b
distinguish prod/dev in nav bar
2019-03-25 21:34:49 +01:00
Daniel Friesel
0a9d2e4c88
journey: show average speed
2019-03-20 18:33:51 +01:00
Daniel Friesel
2366b193fe
journey: show distance
2019-03-20 18:20:23 +01:00
Daniel Friesel
2e1cf30231
Show negative delay as "-X", not "+-X"
2019-03-20 17:50:14 +01:00
Daniel Friesel
0226713c1d
use camelCase instead of snake_case in public API
2019-03-20 17:45:41 +01:00
Daniel Friesel
531f3b0a68
show cancelled trains in history
2019-03-19 21:23:06 +01:00
Daniel Friesel
01df965d66
support logging of cancelled journeys
2019-03-19 18:20:05 +01:00
Daniel Friesel
25f75928e7
add marker for cancelled departures
2019-03-19 17:17:53 +01:00
Daniel Friesel
9c32677365
API: Status: group properties, add station UIC/lon/lat
2019-03-19 17:02:30 +01:00
Daniel Friesel
56342f21d2
demand a valid password for account deletion
2019-03-18 18:55:39 +01:00
Daniel Friesel
07b3ea19a6
never call get_user_data directly
2019-03-18 18:49:00 +01:00
Daniel Friesel
b15d3456ac
journey view: Move line break inside of message loop
2019-03-17 18:36:29 +01:00
Daniel Friesel
11d77d4bb9
add journey detail view
2019-03-17 18:34:33 +01:00
Daniel Friesel
629ca9e9f6
Show backend errors on station selection page
2019-03-16 21:49:47 +01:00
Daniel Friesel
42bb5cc493
add autocomplete for station form
2019-03-16 21:37:57 +01:00
Daniel Friesel
c8f9fc901b
allow manual input of station name
...
Closes #1
2019-03-16 21:33:19 +01:00
Daniel Friesel
26da2b598c
landing page: I can haz API!
2019-03-16 14:36:35 +01:00
Daniel Friesel
2bc167da9e
Account: Wording
2019-03-16 14:17:02 +01:00
Daniel Friesel
d6264b5ca8
Add JSON API
2019-03-16 13:56:56 +01:00
Daniel Friesel
532fadabb4
fix failraptor.png for guests. derp.
2019-03-12 22:09:16 +01:00
Daniel Friesel
6ac88f4018
implement account deletion
2019-03-12 21:49:26 +01:00
Daniel Friesel
2604abad4e
Allow two regstration attempts per mail
2019-03-11 17:17:15 +01:00
Daniel Friesel
558585895f
oops
2019-03-10 19:34:10 +01:00
Daniel Friesel
5970a5a350
redirect users after login to protected page
2019-03-10 19:32:45 +01:00
Daniel Friesel
3ae14d47f9
add JSON export for history
2019-03-09 14:35:23 +01:00
Daniel Friesel
6f1b488d26
Slightly more helpful texts for checkin/checkout pages
2019-03-09 12:17:59 +01:00
Daniel Friesel
0f51f40661
show separate errors for 'invalid credentials' and 'not confirmed yet'
2019-03-09 08:40:46 +01:00
Daniel Friesel
844a95f77f
registration form: note that user name must be alphanumeric
2019-03-09 08:30:18 +01:00
Daniel Friesel
98fc5a3aba
add password manager hints to login/registration forms
2019-03-08 21:07:54 +01:00
Daniel Friesel
13d81d72ee
show hint in case of geolocation error
2019-03-08 19:40:57 +01:00
Daniel Friesel
a0040bceb6
checkout UX
2019-03-08 19:12:45 +01:00
Daniel Friesel
c2be5fe97b
account: Note that deletion is not implemented yet
2019-03-08 19:12:32 +01:00
Daniel Friesel
42385e4d55
add link to github issues
2019-03-08 19:12:23 +01:00
Daniel Friesel
ff6a7512d5
do not allow multiple pending registrations for one mail
2019-03-08 18:52:12 +01:00
Daniel Friesel
6e961420aa
departures: Add hint (tap == checkin)
2019-03-08 18:02:18 +01:00
Daniel Friesel
da4f532fb3
add logout link to account page
2019-03-08 17:59:48 +01:00
Daniel Friesel
6f4a5cef71
add intro blurb and login/register links for landing page
2019-03-08 17:16:19 +01:00
Daniel Friesel
bf4ccb0eab
Logout: Use a POST form as it's a stateful action
2019-03-08 16:54:54 +01:00
Daniel Friesel
fd60839116
switch from HTTP Auth to Cookie Auth
2019-03-07 18:36:11 +01:00
Daniel Friesel
ba6b517e5b
working registration and verification
2019-03-06 20:48:21 +01:00
Daniel Friesel
8057c16cc4
enable form validation for login page
2019-03-05 22:18:11 +01:00
Daniel Friesel
4dc0a90ef8
register: Add simple client-side validation
2019-03-05 18:29:25 +01:00
Daniel Friesel
8d353fcf9d
registration: more error handling
2019-03-05 18:19:14 +01:00
Daniel Friesel
a47d76958c
Use proper Mojolicious input fields (-> no need to re-type everything on errors)
2019-03-04 19:28:57 +01:00
Daniel Friesel
5b523ff2f0
prepare registration support
2019-03-04 19:22:40 +01:00
Daniel Friesel
8adca327fd
prepare DB schema for public registration
2019-03-04 18:17:03 +01:00
Daniel Friesel
3096091f11
do not show username in navbar (won't fit on small screens otherwise)
2019-03-04 17:14:03 +01:00
Daniel Friesel
40fe8db0c4
Add account info and data export
2019-03-03 22:35:20 +01:00
Daniel Friesel
41076aafd5
history: Fix typo in HTML element name
2019-03-03 22:19:57 +01:00
Daniel Friesel
833c8878d1
add logout link
2019-03-03 21:46:06 +01:00
Daniel Friesel
c6532906df
add imprint
2019-03-02 18:12:10 +01:00
Daniel Friesel
856a66c0be
implement user/password/csrf checks for login form
2019-03-02 18:08:48 +01:00
Daniel Friesel
d32c2ad1b9
prepare account support
2019-02-22 21:56:19 +01:00
Daniel Friesel
b41a64bd7f
add undo for checkouts
2018-11-02 22:29:12 +01:00
Daniel Friesel
f87306dc34
allow undo for checkins
2018-11-02 21:35:53 +01:00
Daniel Friesel
95cbc500ae
Minify JS
2018-10-21 16:27:32 +02:00
Daniel Friesel
f791a1ee6c
handle force checkout in history view
2018-10-21 16:05:18 +02:00
Daniel Friesel
2113533713
history: always show train numbers
2018-10-20 15:48:24 +02:00
Daniel Friesel
046ab99013
history: show departure and arrival times
2018-10-18 16:26:02 +02:00
Daniel Friesel
b070e55eae
add history page
2018-10-13 14:40:19 +02:00
Daniel Friesel
147e6ae849
Only show latest travels on landing page
2018-10-07 13:47:32 +02:00
Daniel Friesel
74fd97b4b8
add simple about page
2018-10-07 11:57:59 +02:00
Daniel Friesel
17fbba75cd
use purple navbar
2018-10-07 11:46:08 +02:00
Daniel Friesel
6fd985ae7e
show close stations via geolocation
2018-10-07 11:35:47 +02:00
Daniel Friesel
d95cb9d06a
only show travel distance if duration is not available
2018-10-07 09:12:45 +02:00
Daniel Friesel
7694e626a5
show journey distances as well
2018-10-05 20:41:28 +02:00
Daniel Friesel
2cdd176b94
disable navbar entries for now
2018-10-05 16:43:13 +02:00
Daniel Friesel
d75351b30c
Use POST requests to modify data
2018-10-05 16:33:59 +02:00
Daniel Friesel
b12b201c4d
use table layout for checkout station list
2018-09-14 20:14:28 +02:00
Daniel Friesel
21643b053d
Initial commit
2018-09-02 21:41:33 +02:00