Commit graph

1090 commits

Author SHA1 Message Date
Eugene Burmakin
c67532bb10 Reimplement hexagons with H3 2025-09-17 01:55:42 +02:00
Eugene Burmakin
eb16959b9a Extract logic to service classes 2025-09-16 20:41:53 +02:00
Eugene Burmakin
8c45404420 Fix hexagons render 2025-09-15 20:10:53 +02:00
Eugene Burmakin
6314442770 Calculate only centers of hexagons 2025-09-14 12:41:16 +02:00
Eugene Burmakin
dc13bc1fd2 Update public_month page 2025-09-13 23:23:48 +02:00
Eugene Burmakin
a2aa1be271 Precalculate hexagons for stats 2025-09-13 23:11:42 +02:00
Eugene Burmakin
e6f74fc6ab Update query to use lonlat column for bounds calculation 2025-09-13 18:54:02 +02:00
Eugene Burmakin
f80b2a1aff Fix last failing specs 2025-09-13 18:30:26 +02:00
Eugene Burmakin
0ed71c3cc6 Fix failing specs 2025-09-13 17:46:45 +02:00
Eugene Burmakin
1394d6202c Fix potential sql injection 2025-09-13 17:04:48 +02:00
Eugene Burmakin
dcd1c7ab2b Add some refactorings 2025-09-13 16:41:28 +02:00
Eugene Burmakin
ea2fbfb325 Fix caching job specs 2025-09-13 15:58:36 +02:00
Eugene Burmakin
774860220e Add missing email templates for post-trial reminders 2025-09-13 15:37:09 +02:00
Eugene Burmakin
bfeeeee234 Merge branch 'dev', remote-tracking branch 'origin' into feature/follow-up-emails 2025-09-13 14:03:04 +02:00
Eugene Burmakin
5fe7a47ee2 Fix last failing test 2025-09-13 12:44:47 +02:00
Eugene Burmakin
d33a083f98 Replace bell in navbar with lucide icon 2025-09-13 12:12:40 +02:00
Eugene Burmakin
ef01d028ba Load leaflet protomaps only if not selfhosted on public month page 2025-09-13 12:07:29 +02:00
Eugene Burmakin
cc1fecfd22 Show QR code by default and use map tiles based on self-hosted setting 2025-09-13 11:58:50 +02:00
Eugene Burmakin
e583a8fb52 Remove unused js code 2025-09-12 23:08:11 +02:00
Eugene Burmakin
52a69ecf3d Fix hexagons 2025-09-12 22:23:17 +02:00
Eugene Burmakin
09174de6e9 Add refresh-ccw icon and use it in stats page for refresh link 2025-09-12 22:11:36 +02:00
Eugene Burmakin
9afbf3458d Remove unused icons 2025-09-12 22:04:16 +02:00
Eugene Burmakin
88e9c85766 Extract hexagon query to separate class 2025-09-12 21:38:25 +02:00
Eugene Burmakin
57ecda2b1b Extract stats sharing logic to its own controller 2025-09-12 21:08:45 +02:00
Eugene Burmakin
34e71b5d17 Add specs for hexagon API and public sharing; remove debug logs 2025-09-12 20:44:53 +02:00
Eugene Burmakin
5ff35136f2 Add images for stats page backgrounds 2025-09-12 20:11:14 +02:00
Eugene Burmakin
612c30026c Add hexagons to public stats page 2025-09-12 08:33:51 +02:00
Eugene Burmakin
5cd05f8d3a Update public month page 2025-09-11 22:25:31 +02:00
Eugene Burmakin
1426fa53df Add header gradient based on month 2025-09-11 22:22:08 +02:00
Eugene Burmakin
d3bbd08890 Make year page more colorful and add month page 2025-09-11 22:12:44 +02:00
Eugene Burmakin
e8c5b3dfdc Update stats page 2025-09-11 21:41:52 +02:00
Eugene Burmakin
fc068ec79d Add Lucide icons and stats sharing 2025-09-11 20:41:43 +02:00
Eugene Burmakin
acd3b20ef5 Add stats month page 2025-09-11 00:19:34 +02:00
Eugene Burmakin
8604effbe1 Refactor some bits 2025-09-10 21:46:03 +02:00
Eugene Burmakin
99b227adfd Refactor specs 2025-09-08 21:15:41 +02:00
Eugene Burmakin
17b09c91da Refactor daily track generation to avoid cleaning existing tracks 2025-09-08 21:09:28 +02:00
Eugene Burmakin
410cd86c4e Implement a new daily track generation job to replace the old cleanup job. 2025-09-08 20:46:30 +02:00
Eugene Burmakin
68a0a8f23c Add follow up emails 2025-09-05 19:39:50 +02:00
Eugene Burmakin
e3b2fcd415 Sanitize input 2025-09-04 00:12:33 +02:00
Eugene Burmakin
5c6b76dd63 Hide search if reverse geocoding is disabled 2025-09-03 23:57:38 +02:00
Eugene Burmakin
9967434edc Escape search query 2025-09-03 23:27:59 +02:00
Eugene Burmakin
2b1f6d66bc Fix missing var 2025-09-03 20:05:03 +02:00
Eugene Burmakin
689b8cb0f1 Remove caching from geocoder 2025-09-03 19:56:38 +02:00
Eugene Burmakin
690f80766e Update location search to instantiate GeocodingService with query 2025-09-03 19:48:41 +02:00
Eugene Burmakin
b276828af3 Remove provider detection 2025-09-03 19:28:26 +02:00
Eugene Burmakin
7ca488802e Remove text queries to location search endpoint 2025-09-03 19:01:50 +02:00
Eugene Burmakin
e965c8c67c Remove system spec 2025-09-03 18:51:00 +02:00
Eugene Burmakin
83fc3106a0 Fix failing specs 2025-09-02 23:25:21 +02:00
Eugene Burmakin
71bb224524 Fix some tests 2025-09-02 21:55:47 +02:00
Eugene Burmakin
4f402a0c2a Make search look nicer 2025-09-02 21:21:22 +02:00
Eugene Burmakin
5eb3eb0024 Move search bar to left 2025-09-01 23:11:33 +02:00
Eugene Burmakin
daa3b4eed1 Move search bar to center 2025-09-01 22:58:33 +02:00
Eugene Burmakin
99dace21e4 Put search to a sidebar 2025-09-01 22:04:55 +02:00
Eugene Burmakin
2d240c2094 Implement search by user's points 2025-08-31 12:08:33 +02:00
Eugene Burmakin
1709aa612d Add search bar 2025-08-30 23:18:16 +02:00
Eugene Burmakin
ed5e4d1664 Update qr code 2025-08-30 21:32:25 +02:00
Eugene Burmakin
006456966d Fix last failing spec 2025-08-29 14:32:04 +02:00
Eugene Burmakin
30fb51940c Remove logs and unused code 2025-08-29 13:59:46 +02:00
Eugene Burmakin
289ce5dabb Enable tracks toggle when debug flag present 2025-08-29 12:21:26 +02:00
Eugene Burmakin
cf987894fe Fix failing specs 2025-08-29 11:52:56 +02:00
Eugene Burmakin
504bb92cdb Update points relation 2025-08-29 11:05:25 +02:00
Eugene Burmakin
5ab382936d Merge branch 'dev', remote-tracking branch 'origin' into feature/tracks-on-ruby 2025-08-29 10:57:08 +02:00
Eugene Burmakin
3e1ba6d183 Update changelog 2025-08-29 10:43:49 +02:00
Eugene Burmakin
9856ab56c6 Add default value for points_count attribute 2025-08-29 10:07:00 +02:00
Eugene Burmakin
22daed7291 Move welcome emails placement 2025-08-26 16:37:21 +02:00
Eugene Burmakin
b9c1a5ccdb Show api key to trial users 2025-08-26 16:09:58 +02:00
Eugene Burmakin
b8d69a6797 Reset counters for points counter cache 2025-08-26 15:26:05 +02:00
Evgenii Burmakin
02e6fb8a85
Merge branch 'dev' into feature/points-counter-cache 2025-08-26 15:09:48 +02:00
Eugene Burmakin
ce5ae8dc70 Fix logout bug 2025-08-25 23:35:11 +02:00
Eugene Burmakin
625b8e614f Fix failing spec 2025-08-23 21:57:25 +02:00
Eugene Burmakin
d400d3c9fd Fix minor issues 2025-08-23 19:09:18 +02:00
Eugene Burmakin
a6f4a931af Make sure no errors raised if source is nil or unknown 2025-08-23 18:46:00 +02:00
Eugene Burmakin
4a704ed608 Update gpx serializer 2025-08-23 18:37:51 +02:00
Eugene Burmakin
5a85a56897 Update imports table 2025-08-23 16:37:53 +02:00
Eugene Burmakin
432e1d2669 Return self-hosted validation 2025-08-23 16:28:25 +02:00
Eugene Burmakin
b049c11542 Fix import detection 2025-08-23 16:07:15 +02:00
Eugene Burmakin
001d294885 Source to_s 2025-08-22 22:14:03 +02:00
Eugene Burmakin
76a7c12133 Fix range issue 2025-08-22 21:27:50 +02:00
Eugene Burmakin
7b122f2780 Merge branch 'dev', remote-tracking branch 'origin' into feature/points-counter-cache 2025-08-22 21:01:51 +02:00
Eugene Burmakin
b5758db1c1 Add sources info to new import page 2025-08-22 21:01:16 +02:00
Eugene Burmakin
7eb3103645 Rename a method 2025-08-22 20:40:06 +02:00
Eugene Burmakin
96c9f1030c Move json loading to a module 2025-08-22 20:13:10 +02:00
Eugene Burmakin
ed3bb4fb67 Unify imports form 2025-08-22 19:10:40 +02:00
Eugene Burmakin
6e4934a93d Introduce points counter cache to optimize performance 2025-08-21 22:32:29 +02:00
Eugene Burmakin
a4605f9b3e Add swagger spec for visits api 2025-08-21 20:53:23 +02:00
Eugene Burmakin
550d20c555 Imlement visits deletion API 2025-08-21 20:41:53 +02:00
Eugene Burmakin
6e773b6b51 Add current location to a visit popup as a fallback 2025-08-21 19:52:51 +02:00
Eugene Burmakin
6f842e8143 Make visit popup look nicer 2025-08-21 19:48:32 +02:00
Eugene Burmakin
e68bbc9220 Add test for visits creation API 2025-08-21 19:09:43 +02:00
Eugene Burmakin
efc7ffa579 Extract visit creation to a service 2025-08-21 18:58:59 +02:00
Eugene Burmakin
1da3ef5c44 Add visits manual creation 2025-08-21 18:42:45 +02:00
Eugene Burmakin
86a76db2c0 Fix date nav hidden under navbar 2025-08-19 23:53:10 +02:00
Eugene Burmakin
c3c997be02 Add a separate layout for full screen map 2025-08-19 23:32:06 +02:00
Evgenii Burmakin
ead1673cc5
Merge branch 'dev' into feature/trial 2025-08-19 20:58:00 +02:00
Eugene Burmakin
b9764d39c3 Skip trial emails for active users 2025-08-19 18:55:22 +02:00
Eugene Burmakin
cdbd51c9f9 Update mailers 2025-08-19 18:31:37 +02:00
Eugene Burmakin
464a183e8f Fix spec 2025-08-19 18:29:34 +02:00
Evgenii Burmakin
4918ae94f4
Merge branch 'dev' into fix/trip-visited-countries 2025-08-18 20:54:16 +02:00
Eugene Burmakin
6708e11ab3 Add limits for import size for trial users 2025-08-14 20:50:22 +02:00
Eugene Burmakin
71488c9fb1 Add trial mode 2025-08-13 20:25:48 +02:00
Eugene Burmakin
f6b7652a01 Return dawarich headers on all API responses 2025-08-11 00:21:58 +02:00
Eugene Burmakin
dfbe9a9821 Dry out scratch map. 2025-08-03 23:35:29 +02:00
Eugene Burmakin
0918bb1b8d Extract scratch map to a separate file. 2025-08-03 22:19:57 +02:00
Eugene Burmakin
74112c0d04 Calculate trip's visited countries from points 2025-08-02 00:06:09 +02:00
Eugene Burmakin
f2f0e824c8 Fix fog of war on zoom and map movement 2025-08-01 22:14:23 +02:00
Eugene Burmakin
ad5670072e Merge branch 'dev' into feature/tracks-on-ruby 2025-08-01 20:37:32 +02:00
Eugene Burmakin
559e7c2951 Pluck country name instead of country 2025-08-01 18:42:53 +02:00
Eugene Burmakin
c4c829b4b0 Fix some nitpicks 2025-08-01 18:39:01 +02:00
Eugene Burmakin
0e8baf493e Extract markers to separate file 2025-08-01 18:05:26 +02:00
Eugene Burmakin
050b98fb5d Extract live mode to separate file 2025-08-01 17:18:05 +02:00
Eugene Burmakin
eec8706fbe Fix live map memory bloat 2025-08-01 17:03:05 +02:00
Eugene Burmakin
712a483fd4 Add e2e tests for map page. 2025-08-01 14:14:46 +02:00
Eugene Burmakin
89de7c5506 Update map e2e tests 2025-07-30 22:38:09 +02:00
Eugene Burmakin
2f3ba0c8db Merge branch 'dev', remote-tracking branch 'origin' into fix/photos-layer 2025-07-30 19:02:16 +02:00
Eugene Burmakin
84c35ea5fa Fix maps layers 2025-07-30 19:00:00 +02:00
Eugene Burmakin
087c01535d Add Playwright tests for map functionality. 2025-07-30 00:41:30 +02:00
Eugene Burmakin
5f259a5bcc Fix missing areas button 2025-07-29 21:40:49 +02:00
Eugene Burmakin
6870be2045 Fix country name in points 2025-07-29 21:17:33 +02:00
Eugene Burmakin
a2b20cfdf1 Fix tests 2025-07-29 20:14:24 +02:00
Eugene Burmakin
599af37109 Implement language-sided tracks generation 2025-07-28 22:30:36 +02:00
Eugene Burmakin
f492a69fbb Add country_name to points and fix some bugs. 2025-07-28 18:53:19 +02:00
Eugene Burmakin
fb4eedfe92 Add battery statuses. 2025-07-27 21:38:51 +02:00
Eugene Burmakin
25b74716ee Fix chart 2025-07-27 20:14:36 +02:00
Eugene Burmakin
d0bb9ef8d1 Add test for places reverse geocoding. 2025-07-27 01:39:39 +02:00
Eugene Burmakin
66e6112ad8 Eliminate some n-plus-ones. 2025-07-27 01:08:29 +02:00
Eugene Burmakin
3264725d2a Fix trips page. 2025-07-26 21:05:28 +02:00
Eugene Burmakin
b995594b8b Use constants for metrics username and password. 2025-07-26 15:27:22 +02:00
Evgenii Burmakin
f3d4a1431b
Merge branch 'dev' into fix/basecamp-gpx 2025-07-26 15:17:11 +02:00
Eugene Burmakin
460d008152 Use Tailwind CSS classes for buttons. 2025-07-26 14:52:01 +02:00
Eugene Burmakin
31b23745f8 Add spec for no points selected. 2025-07-26 14:46:53 +02:00
Eugene Burmakin
e3d3a92faa Hide "Delete Selected" button when no points are selected. 2025-07-26 14:41:03 +02:00
Eugene Burmakin
2e6d1bdef6 Return 0.0 if speed is nil 2025-07-26 13:37:50 +02:00
Eugene Burmakin
b2d8f85d35 Implement Basecamp GPX import 2025-07-26 13:32:13 +02:00
Eugene Burmakin
cb9525cb77 Add missing live map info modal. 2025-07-26 13:10:24 +02:00
Eugene Burmakin
e127511262 Fix live map checkbox 2025-07-26 13:06:06 +02:00
Eugene Burmakin
b55b1eb018 Merge branch 'dev', remote-tracking branch 'origin' into feature/prometheus-exporter 2025-07-26 12:49:58 +02:00
Eugene Burmakin
9c7084a10b Fix request to a user in partial 2025-07-26 12:37:46 +02:00
Eugene Burmakin
17340079ce Expose prometheus metrics at /metrics 2025-07-26 12:14:08 +02:00
Eugene Burmakin
9fb251fa4a Sanitize input in distanceable 2025-07-23 20:52:02 +02:00
Eugene Burmakin
7920209187 Return tailwind.css 2025-07-23 20:35:42 +02:00
Eugene Burmakin
94f6dbe18e Extract timestamp range calculation to separate methods 2025-07-23 20:27:55 +02:00
Eugene Burmakin
51dd2e0a4b Fix auth rules for export and import 2025-07-23 20:21:33 +02:00
Eugene Burmakin
bf199de2a0 Fix non-selfhosted users export and import 2025-07-23 20:17:07 +02:00
Eugene Burmakin
2e46069fcc Clean up code a bit 2025-07-23 20:08:24 +02:00
Eugene Burmakin
7ea149bd4e Fix specs 2025-07-23 20:02:38 +02:00
Eugene Burmakin
88e3f53cc5 Remove old code 2025-07-23 19:48:39 +02:00
Eugene Burmakin
278a4d28b5 Remove tailwind.css 2025-07-23 19:33:38 +02:00
Eugene Burmakin
d8033a1e27 Update track generation 2025-07-23 18:21:21 +02:00
Eugene Burmakin
25a185b206 Add timezone validation to Stats::DailyDistanceQuery 2025-07-23 00:10:48 +02:00
Eugene Burmakin
bdcfb5eb62 Stats calculation is now timezone-aware. 2025-07-22 23:57:25 +02:00
Eugene Burmakin
9803ccc6a8 Remove unused method 2025-07-22 22:44:41 +02:00
Eugene Burmakin
0c904a6b84 Fix stats calculation performance 2025-07-22 22:41:12 +02:00
Eugene Burmakin
0bfddd932f Disable specs for track generation 2025-07-22 20:28:46 +02:00
Eugene Burmakin
27857ba078 Disable tracks panel on the map 2025-07-22 20:26:58 +02:00
Eugene Burmakin
7c8a7e7f38 Temporary disable track creation 2025-07-22 20:25:44 +02:00
Eugene Burmakin
c14054fdc3 Disable track generation failure notification for self-hosted users 2025-07-22 20:15:52 +02:00
Eugene Burmakin
cbdef5fa43 Parameterize stats query 2025-07-22 19:56:12 +02:00
Eugene Burmakin
6e5dd4bed6 Update stats query 2025-07-22 19:52:24 +02:00
Eugene Burmakin
da38c12819 Extract stats query 2025-07-22 19:43:27 +02:00
Eugene Burmakin
88909b3e9f Optimize stats page performance 2025-07-22 19:17:28 +02:00
Eugene Burmakin
7afc399724 Add cache to points limit exceeded check 2025-07-21 22:27:20 +02:00
Eugene Burmakin
6a6c3c938f Fix distance calculation 2025-07-21 19:00:28 +02:00
Eugene Burmakin
59a4d760bf Fix owntracks points creation 2025-07-21 18:59:13 +02:00
Eugene Burmakin
c74ba7d1fe Revert "Optimize bulk visits suggesting job" 2025-07-20 21:54:00 +02:00
Eugene Burmakin
6ec24ffc3d Optimize bulk visits suggesting job 2025-07-20 21:38:46 +02:00
Eugene Burmakin
8b03b0c7f5 Recalculate stats after changing distance units 2025-07-20 19:14:20 +02:00
Eugene Burmakin
f969d5d3e6 Clean up some mess 2025-07-20 18:57:53 +02:00
Eugene Burmakin
708bca26eb Fix owntracks point creation 2025-07-20 17:43:55 +02:00
Eugene Burmakin
002b3bd635 Fix settings controller spec and tracks popup 2025-07-20 17:06:45 +02:00
Eugene Burmakin
9d616c7957 Remove logging from tracks generator 2025-07-17 21:02:45 +02:00
Eugene Burmakin
7cdb7d2f21 Add some more tests to make sure points are properly cleaned up 2025-07-17 20:57:55 +02:00
Eugene Burmakin
dc8460a948 Fix tracks create job spec 2025-07-17 20:46:07 +02:00
Eugene Burmakin
91f4cf7c7a Fix range objects in generator 2025-07-17 20:36:21 +02:00
Eugene Burmakin
f5ef2ab9ef Fix potential issue with time range data types 2025-07-17 20:20:14 +02:00
Eugene Burmakin
10777714b1 Clean up a bit 2025-07-17 19:19:50 +02:00
Eugene Burmakin
eca09ce3eb Remove bulk generator job 2025-07-16 22:25:50 +02:00
Eugene Burmakin
c31d09e5c3 Refactor tracks jobs and services 2025-07-16 22:22:33 +02:00
Eugene Burmakin
54aaf03453 Merge branch 'master' into dev 2025-07-14 21:30:51 +02:00
Eugene Burmakin
49d1e7014b Add simple analytics 2025-07-14 21:26:19 +02:00
Eugene Burmakin
878d863569 Fix some tests 2025-07-14 21:15:45 +02:00
Eugene Burmakin
24378b150d Add user serializer and update CHANGELOG.md 2025-07-13 12:50:24 +02:00
Eugene Burmakin
7885374993 Refactor Tracks::BulkTrackCreator to use start_at and end_at as datetime objects 2025-07-12 23:45:43 +02:00
Eugene Burmakin
244fb2b192 Move bulk track creation to service 2025-07-12 23:04:15 +02:00
Eugene Burmakin
418df71c53 Fixes for bulk creating job 2025-07-12 22:04:14 +02:00
Eugene Burmakin
43bc8c444c Fix name fetcher 2025-07-12 17:57:22 +02:00
Eugene Burmakin
6b96e1f0be Revert specs 2025-07-12 17:21:53 +02:00
Eugene Burmakin
0dff80e12b Fix some tests 2025-07-12 13:43:15 +02:00
Eugene Burmakin
58a7972976 Fix bulk name fetching job queue 2025-07-12 11:30:51 +02:00
Eugene Burmakin
bc36882e73 Add name fetcher for places and visits 2025-07-12 11:21:38 +02:00
Eugene Burmakin
e9eeb6aae2 Add rails-ujs to manifest.js and application.js. 2025-07-10 22:14:52 +02:00
Eugene Burmakin
13fd9da1f9 Add a scheduled job to create tracks for all users for the past 24 hours. 2025-07-09 21:25:56 +02:00
Eugene Burmakin
9a326733c7 Return missing map buttons 2025-07-09 00:58:33 +02:00
Eugene Burmakin
0295d3f2a0 Fix year page charts 2025-07-08 21:23:55 +02:00
Eugene Burmakin
b7e5296235 Fix tracks layer 2025-07-08 21:14:46 +02:00
Eugene Burmakin
f4687a101c Remove unused helper methods 2025-07-08 20:51:51 +02:00
Eugene Burmakin
042696caeb Show correct miles value on the map 2025-07-08 20:31:25 +02:00
Eugene Burmakin
b3e8155e43 Don't use bang save 2025-07-08 20:24:07 +02:00
Eugene Burmakin
6dd048cee3 Fix a few tests 2025-07-08 19:23:08 +02:00
Eugene Burmakin
f1720b859b Store distance in meters in the database and convert to user's preferred unit on the fly. 2025-07-08 18:10:10 +02:00
Eugene Burmakin
81eb759fb8 Remove tracks api 2025-07-08 00:05:22 +02:00