Commit graph

314 commits

Author SHA1 Message Date
Eugene Burmakin
6f8bdce9f4 Update time spent calculation for country minutes in user digests 2026-01-04 19:19:38 +01:00
Eugene Burmakin
88ae7c43c6 Adjust calculate_duration_in_minutes to only count continuous presence within cities, excluding long gaps. 2026-01-04 17:12:39 +01:00
Eugene Burmakin
348bf96bfe Rework country tracked days calculation 2026-01-04 16:42:35 +01:00
Evgenii Burmakin
ec524d64a0
Update digest calculation to use actual time spent in countries based… (#2115)
* Update digest calculation to use actual time spent in countries based on consecutive points, avoiding double-counting days when crossing borders.

* Move methods to private
2026-01-04 12:45:30 +01:00
Evgenii Burmakin
b037be3299
Update calculation of time spent in a country for year-end digest email (#2110)
* Update calculation of time spent in a country for year-end digest email

* Add a filter to exclude raw data points when calculating yearly digests.
2026-01-03 13:28:21 +01:00
Evgenii Burmakin
18b13fb915
Add yearly digest (#2073)
* Add yearly digest

* Rename YearlyDigests to Users::Digests

* Minor changes

* Update yearly digest layout and styles

* Add flags and chart to email

* Update colors

* Fix layout of stats in yearly digest view

* Remove cron job for yearly digest scheduling

* Update CHANGELOG.md

* Update digest email setting handling

* Allow sharing digest for 1 week or 1 month

* Change Digests Distance to Bigint

* Fix settings page
2025-12-28 17:33:35 +01:00
Evgenii Burmakin
9e933aff9c
Fix/stats cache invalidation (#2072)
* Fix family layer toggle in Map v2 settings for non-selfhosted env

* Invalidate cache

* Remove comments

* Remove comment
2025-12-27 13:33:54 +01:00
Evgenii Burmakin
f325fd7a4f
Fix stats calculation to recursively reduce H3 resolution when too ma… (#2065)
* Fix stats calculation to recursively reduce H3 resolution when too many hexagons are generated

* Update CHANGELOG.md
2025-12-26 15:42:32 +01:00
Evgenii Burmakin
88f5e2a6ea
Add verification step to raw data archival process (#2028)
* Add verification step to raw data archival process

* Add actual verification of raw data archives after creation, and only clear raw_data for verified archives.

* Fix failing specs
2025-12-13 21:25:06 +01:00
Evgenii Burmakin
8af032a215
Fix kml kmz import issues (#2023)
* Fix kml kmz import issues

* Refactor KML importer to improve readability and maintainability
2025-12-09 19:37:27 +01:00
Evgenii Burmakin
1c9843dde7
Consider MIN_MINUTES_SPENT_IN_CITY during stats calculation (#2018)
* Consider MIN_MINUTES_SPENT_IN_CITY during stats calculation

* Remove raw data from visited cities api endpoint
2025-12-08 21:38:56 +01:00
Eugene Burmakin
a7f77b042e Set raw_data to an empty hash instead of nil when archiving 2025-12-07 23:58:05 +01:00
Evgenii Burmakin
9661e8e7f7
Feature/raw data archive (#2009)
* 0.36.2 (#2007)

* fix: move foreman to global gems to fix startup crash (#1971)

* Update exporting code to stream points data to file in batches to red… (#1980)

* Update exporting code to stream points data to file in batches to reduce memory usage

* Update changelog

* Update changelog

* Feature/maplibre frontend (#1953)

* Add a plan to use MapLibre GL JS for the frontend map rendering, replacing Leaflet

* Implement phase 1

* Phases 1-3 + part of 4

* Fix e2e tests

* Phase 6

* Implement fog of war

* Phase 7

* Next step: fix specs, phase 7 done

* Use our own map tiles

* Extract v2 map logic to separate manager classes

* Update settings panel on v2 map

* Update v2 e2e tests structure

* Reimplement location search in maps v2

* Update speed routes

* Implement visits and places creation in v2

* Fix last failing test

* Implement visits merging

* Fix a routes e2e test and simplify the routes layer styling.

* Extract js to modules from maps_v2_controller.js

* Implement area creation

* Fix spec problem

* Fix some e2e tests

* Implement live mode in v2 map

* Update icons and panel

* Extract some styles

* Remove unused file

* Start adding dark theme to popups on MapLibre maps

* Make popups respect dark theme

* Move v2 maps to maplibre namespace

* Update v2 references to maplibre

* Put place, area and visit info into side panel

* Update API to use safe settings config method

* Fix specs

* Fix method name to config in SafeSettings and update usages accordingly

* Add missing public files

* Add handling for real time points

* Fix remembering enabled/disabled layers of the v2 map

* Fix lots of e2e tests

* Add settings to select map version

* Use maps/v2 as main path for MapLibre maps

* Update routing

* Update live mode

* Update maplibre controller

* Update changelog

* Remove some console.log statements

---------

Co-authored-by: Robin Tuszik <mail@robin.gg>

* Remove esbuild scripts from package.json

* Remove sideEffects field from package.json

* Raw data archivation

* Add tests

* Fix tests

* Fix tests

* Update ExceptionReporter

* Add schedule to run raw data archival job monthly

* Change file structure for raw data archival feature

* Update changelog and version for raw data archival feature

---------

Co-authored-by: Robin Tuszik <mail@robin.gg>
2025-12-07 14:33:23 +01:00
Evgenii Burmakin
4421a5bf3c
Feature/maplibre frontend (#1953)
* Add a plan to use MapLibre GL JS for the frontend map rendering, replacing Leaflet

* Implement phase 1

* Phases 1-3 + part of 4

* Fix e2e tests

* Phase 6

* Implement fog of war

* Phase 7

* Next step: fix specs, phase 7 done

* Use our own map tiles

* Extract v2 map logic to separate manager classes

* Update settings panel on v2 map

* Update v2 e2e tests structure

* Reimplement location search in maps v2

* Update speed routes

* Implement visits and places creation in v2

* Fix last failing test

* Implement visits merging

* Fix a routes e2e test and simplify the routes layer styling.

* Extract js to modules from maps_v2_controller.js

* Implement area creation

* Fix spec problem

* Fix some e2e tests

* Implement live mode in v2 map

* Update icons and panel

* Extract some styles

* Remove unused file

* Start adding dark theme to popups on MapLibre maps

* Make popups respect dark theme

* Move v2 maps to maplibre namespace

* Update v2 references to maplibre

* Put place, area and visit info into side panel

* Update API to use safe settings config method

* Fix specs

* Fix method name to config in SafeSettings and update usages accordingly

* Add missing public files

* Add handling for real time points

* Fix remembering enabled/disabled layers of the v2 map

* Fix lots of e2e tests

* Add settings to select map version

* Use maps/v2 as main path for MapLibre maps

* Update routing

* Update live mode
2025-12-06 20:34:49 +01:00
Evgenii Burmakin
ac9b668c30
Update exporting code to stream points data to file in batches to red… (#1980)
* Update exporting code to stream points data to file in batches to reduce memory usage

* Update changelog
2025-11-27 21:29:59 +01:00
Evgenii Burmakin
b1393ee674
0.36.0 (#1952)
* Implement OmniAuth GitHub authentication

* Fix omniauth GitHub scope to include user email access

* Remove margin-bottom

* Implement Google OAuth2 authentication

* Implement OIDC authentication for Dawarich using omniauth_openid_connect gem.

* Add patreon account linking and patron checking service

* Update docker-compose.yml to use boolean values instead of strings

* Add support for KML files

* Add tests

* Update changelog

* Remove patreon OAuth integration

* Move omniauthable to a concern

* Update an icon in integrations

* Update changelog

* Update app version

* Fix family location sharing toggle

* Move family location sharing to its own controller

* Update changelog

* Implement basic tagging functionality for places, allowing users to categorize and label places with custom tags.

* Add places management API and tags feature

* Add some changes related to places management feature

* Fix some tests

* Fix sometests

* Add places layer

* Update places layer to use Leaflet.Control.Layers.Tree for hierarchical layer control

* Rework tag form

* Add hashtag

* Add privacy zones to tags

* Add notes to places and manage place tags

* Update changelog

* Update e2e tests

* Extract tag serializer to its own file

* Fix some tests

* Fix tags request specs

* Fix some tests

* Fix rest of the tests

* Revert some changes

* Add missing specs

* Revert changes in place export/import code

* Fix some specs

* Fix PlaceFinder to only consider global places when finding existing places

* Fix few more specs

* Fix visits creator spec

* Fix last tests

* Update place creating modal

* Add home location based on "Home" tagged place

* Save enabled tag layers

* Some fixes

* Fix bug where enabling place tag layers would trigger saving enabled layers, overwriting with incomplete data

* Update migration to use disable_ddl_transaction! and add up/down methods

* Fix tag layers restoration and filtering logic

* Update OIDC auto-registration and email/password registration settings

* Fix potential xss
2025-11-24 19:45:09 +01:00
Eugene Burmakin
b0bd2bf93c Update tests 2025-11-09 16:03:05 +01:00
Eugene Burmakin
eed9480a9e Move sending family invitation email to a background job 2025-11-07 11:49:21 +01:00
Eugene Burmakin
adcf6aceca Fix tests and remove unused policy files 2025-11-07 11:34:34 +01:00
Eugene Burmakin
632f389ace Remember enabled map layers for users 2025-10-20 20:11:28 +02:00
Eugene Burmakin
cdd5525ff4 Update changelog 2025-10-16 19:01:39 +02:00
Eugene Burmakin
1671a781b0 Improve performance of Google Maps imports by batching database inserts. 2025-10-16 18:59:21 +02:00
Eugene Burmakin
39c3c157c8 Implement real-time family member location updates via ActionCable 2025-10-13 14:10:36 +02:00
Evgenii Burmakin
99281317d7
Merge branch 'dev' into feature/family 2025-10-13 12:30:27 +02:00
Eugene Burmakin
a7b92c10f5 Fix time shift when creating visits manually 2025-10-07 22:00:11 +02:00
Eugene Burmakin
e711ff25fe Refactor family invitations and memberships into separate models and controllers 2025-10-07 18:38:06 +02:00
Eugene Burmakin
87c5c34fb4 Update batch size for streaming imports to 5000 2025-10-05 21:18:16 +02:00
Eugene Burmakin
fa995a7f84 Update json_stream_handler_spec.rb path and remove tmp.json 2025-10-05 21:01:34 +02:00
Eugene Burmakin
6591a629ad Stream points during user data import 2025-10-05 20:59:03 +02:00
Eugene Burmakin
6fb5d98b19 Extract update location sharing logic to a service object 2025-10-05 19:40:42 +02:00
Eugene Burmakin
9bc0e2accc Use family path instead of families/id 2025-10-04 22:39:47 +02:00
Eugene Burmakin
f898f3aab0 Fix tests 2025-10-04 20:31:36 +02:00
Eugene Burmakin
78693f3001 Merge branch 'dev' into feature/family 2025-10-04 15:57:03 +02:00
Eugene Burmakin
0728c21c61 Update stuff, fix stuff 2025-09-29 22:27:07 +02:00
Eugene Burmakin
1f67e889e3 Complete phase 5 2025-09-28 13:10:07 +02:00
Eugene Burmakin
e17f732706 Minor changes 2025-09-27 21:14:40 +02:00
Eugene Burmakin
2af0147505 Fix tests 2025-09-27 20:14:57 +02:00
Eugene Burmakin
40fff59ec6 Complete Phase 2 implementation of Family feature with robust error handling 2025-09-27 13:03:48 +02:00
Eugene Burmakin
4287fee93d Fix tests after updating rubyzip 2025-09-26 23:31:45 +02:00
Eugene Burmakin
1043d572fe Fix failing specs 2025-09-20 14:25:16 +02:00
Eugene Burmakin
339ba3130e Fix missing hexagons 2025-09-20 14:05:14 +02:00
Eugene Burmakin
3450ca35b0 Extract hexagon calculation to its own service 2025-09-20 12:57:30 +02:00
Eugene Burmakin
a20a3c5b36 Fix missing hexes 2025-09-19 22:52:08 +02:00
Eugene Burmakin
e169cc7074 Fix failing specs 2025-09-19 21:37:31 +02:00
Eugene Burmakin
584daadb5c Fix failing specs 2025-09-19 19:55:27 +02:00
Eugene Burmakin
0cce4929f0 Remove unused code 2025-09-18 22:23:47 +02:00
Eugene Burmakin
5db2ac7fac Refactor hexagon services to remove Maps::HexagonContextResolver and improve date parsing 2025-09-18 21:21:54 +02:00
Eugene Burmakin
a97e133b35 Remove unsed class 2025-09-18 20:15:49 +02:00
Eugene Burmakin
ab765a4370 Rename params 2025-09-18 20:10:00 +02:00
Eugene Burmakin
3fd7634657 Simplify some services by removing unused parameters and validations 2025-09-18 20:02:18 +02:00