Daniel Friesel
fa98aba3d3
Pre-select theme css in backend
2019-05-18 08:23:59 +02:00
Daniel Friesel
3668c69d1f
correctly show departure station in cancelled view
2019-05-16 20:51:31 +02:00
Daniel Friesel
681ecabdf6
Provide light theme by default, avoid re-styling unless dark theme is active
...
This eliminates a large portion of main-thread work on page load
2019-05-16 20:39:54 +02:00
Daniel Friesel
6457ef2f9d
fix typo in color scheme preference query
2019-05-16 20:32:58 +02:00
marudor
84b32b28e9
Further color improvements
2019-05-16 16:10:53 +02:00
marudor
87e74ca90d
Add color switcher to toolbar
2019-05-16 15:22:47 +02:00
marudor
5c2388d3a2
Add dark mode (only available with prefers-color-scheme currently)
2019-05-16 15:04:08 +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
5c3a0a562a
oops 2 (asset release)
2019-05-12 11:48:17 +02:00
Daniel Friesel
e171616c6f
oops
2019-05-12 11:46:55 +02:00
Daniel Friesel
82297687ed
social sharing for current journey
2019-05-12 11:44:28 +02:00
Daniel Friesel
42eafec28d
update landingpage
2019-05-11 15:45:16 +02:00
Daniel Friesel
48fede41aa
checked in: clarify checkout / update actions
2019-05-11 15:42:10 +02:00
marudor
94febe86cd
Release version 19, fix asset-release for macos
2019-05-11 12:51:41 +02:00
marudor
d2f01f963a
Do not nag directly for geolocation
2019-05-11 12:43:13 +02:00
Daniel Friesel
098d02972a
switch to a less generic icon
2019-05-11 11:52:47 +02:00
Daniel Friesel
93c6e85f60
footer: Link to "about" page for travelynx
2019-05-11 10:10:07 +02:00
Daniel Friesel
736e36d45c
account: fix uninitialized value warning
2019-05-11 01:42:14 +02:00
Daniel Friesel
b0397e50b4
add custom not_found and exception templates
2019-05-11 01:29:21 +02:00
Daniel Friesel
fc4cfade14
version bump
2019-05-10 19:07:37 +02:00
Daniel Friesel
269b8536f4
Add webhook to account page
2019-05-10 19:03:18 +02:00
Daniel Friesel
25c460a34a
public status: Do not overwrite line name
2019-05-10 18:16:45 +02:00
Daniel Friesel
f6800c8668
javascript-based refresh of journey progress and countdown
2019-05-10 17:58:13 +02:00
Daniel Friesel
374da87182
hide status countdown when offline
2019-05-09 18:14:16 +02:00
Daniel Friesel
76bd6763df
only show loading animation on links without custom animation
2019-05-07 17:56:40 +02:00
Daniel Friesel
bd676674e9
always show navbar, even when scrolling
2019-05-06 18:14:30 +02:00
Daniel Friesel
18df44cc71
add loading indicator to nav
2019-05-06 18:07:53 +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
55581d1f25
update asset version
2019-05-05 12:41:06 +02:00
Daniel Friesel
4696f8d68e
update material icons
2019-05-04 08:55:21 +02:00
Daniel Friesel
507ed344c3
checked in view: update sync_problem marker color
2019-05-04 08:30:18 +02:00
Daniel Friesel
a7b899dcc0
migrate to jQuery 3
2019-05-04 08:30:05 +02:00
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