* 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
* Pull only necessary data for map v2 points
* 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>
* Set raw_data to an empty hash instead of nil when archiving
* Fix storage configuration and file extraction
* 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
* Use user timezone to show dates on maps (#2020)
* Fix/pre epoch time (#2019)
* Use user timezone to show dates on maps
* Limit timestamps to valid range to prevent database errors when users enter pre-epoch dates.
* Limit timestamps to valid range to prevent database errors when users enter pre-epoch dates.
* Fix tests failing due to new index on stats table
* Fix failing specs
* Update redis client configuration to support unix socket connection
* Update changelog
* Fix kml kmz import issues (#2023)
* Fix kml kmz import issues
* Refactor KML importer to improve readability and maintainability
* Implement moving points in map v2 and fix route rendering logic to ma… (#2027)
* Implement moving points in map v2 and fix route rendering logic to match map v1.
* Fix route spec
* fix(maplibre): update date format to ISO 8601 (#2029)
* 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
* Eliminate zip-bomb risk
* Fix potential memory leak in js
* Return .keep files
* Use Toast instead of alert for notifications
* Add help section to navbar dropdown
* Update changelog
* Remove raw_data_archival_job
* Ensure file is being closed properly after reading in Archivable concern
---------
Co-authored-by: Robin Tuszik <mail@robin.gg>
* 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>
* 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
---------
Co-authored-by: Robin Tuszik <mail@robin.gg>
* 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