Commit graph

275 commits

Author SHA1 Message Date
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