diff --git a/app/assets/stylesheets/maps_v2.css b/app/assets/stylesheets/maps_maplibre.css similarity index 100% rename from app/assets/stylesheets/maps_v2.css rename to app/assets/stylesheets/maps_maplibre.css diff --git a/app/assets/stylesheets/maps_v2_panel.css b/app/assets/stylesheets/maps_maplibre_panel.css similarity index 100% rename from app/assets/stylesheets/maps_v2_panel.css rename to app/assets/stylesheets/maps_maplibre_panel.css diff --git a/app/controllers/maps_v2_controller.rb b/app/controllers/maps/maplibre_controller.rb similarity index 66% rename from app/controllers/maps_v2_controller.rb rename to app/controllers/maps/maplibre_controller.rb index ad275a8d..302f3a54 100644 --- a/app/controllers/maps_v2_controller.rb +++ b/app/controllers/maps/maplibre_controller.rb @@ -1,11 +1,12 @@ -class MapsV2Controller < ApplicationController - before_action :authenticate_user! - layout 'map' +module Maps + class MaplibreController < ApplicationController + before_action :authenticate_user! + layout 'map' - def index - @start_at = parsed_start_at - @end_at = parsed_end_at - end + def index + @start_at = parsed_start_at + @end_at = parsed_end_at + end private @@ -28,4 +29,5 @@ class MapsV2Controller < ApplicationController def parsed_end_at Time.zone.at(end_at) end + end end diff --git a/app/controllers/maps_controller.rb b/app/controllers/maps_controller.rb new file mode 100644 index 00000000..e1f31898 --- /dev/null +++ b/app/controllers/maps_controller.rb @@ -0,0 +1,5 @@ +class MapsController < ApplicationController + def index + redirect_to maps_maplibre_path + end +end diff --git a/app/javascript/README.md b/app/javascript/README.md index f33e5474..42f99b93 100644 --- a/app/javascript/README.md +++ b/app/javascript/README.md @@ -1,6 +1,6 @@ # Dawarich JavaScript Architecture -This document provides a comprehensive guide to the JavaScript architecture used in the Dawarich application, with a focus on the Maps V2 implementation. +This document provides a comprehensive guide to the JavaScript architecture used in the Dawarich application, with a focus on the Maps (MapLibre) implementation. ## Table of Contents @@ -9,13 +9,13 @@ This document provides a comprehensive guide to the JavaScript architecture used - [Architecture Patterns](#architecture-patterns) - [Directory Structure](#directory-structure) - [Core Concepts](#core-concepts) -- [Maps V2 Architecture](#maps-v2-architecture) +- [Maps (MapLibre) Architecture](#maps-v2-architecture) - [Creating New Features](#creating-new-features) - [Best Practices](#best-practices) ## Overview -Dawarich uses a modern JavaScript architecture built on **Hotwire (Turbo + Stimulus)** for page interactions and **MapLibre GL JS** for map rendering. The Maps V2 implementation follows object-oriented principles with clear separation of concerns. +Dawarich uses a modern JavaScript architecture built on **Hotwire (Turbo + Stimulus)** for page interactions and **MapLibre GL JS** for map rendering. The Maps (MapLibre) implementation follows object-oriented principles with clear separation of concerns. ## Technology Stack @@ -61,7 +61,7 @@ export default class extends Controller { **Purpose:** Encapsulate business logic and API communication -**Location:** `app/javascript/maps_v2/services/` +**Location:** `app/javascript/maps_maplibre/services/` **Pattern:** ```javascript @@ -89,7 +89,7 @@ export class ApiClient { **Purpose:** Manage map visualization layers -**Location:** `app/javascript/maps_v2/layers/` +**Location:** `app/javascript/maps_maplibre/layers/` **Pattern:** ```javascript @@ -129,7 +129,7 @@ export class CustomLayer extends BaseLayer { **Purpose:** Provide reusable helper functions -**Location:** `app/javascript/maps_v2/utils/` +**Location:** `app/javascript/maps_maplibre/utils/` **Pattern:** ```javascript @@ -147,7 +147,7 @@ export const utilityInstance = new UtilityClass() **Purpose:** Reusable UI components -**Location:** `app/javascript/maps_v2/components/` +**Location:** `app/javascript/maps_maplibre/components/` **Pattern:** ```javascript @@ -164,15 +164,15 @@ export class PopupFactory { app/javascript/ ├── application.js # Entry point ├── controllers/ # Stimulus controllers -│ ├── maps_v2_controller.js # Main map controller -│ ├── maps_v2/ # Controller modules +│ ├── maps/maplibre_controller.js # Main map controller +│ ├── maps_maplibre/ # Controller modules │ │ ├── layer_manager.js # Layer lifecycle management │ │ ├── data_loader.js # API data fetching │ │ ├── event_handlers.js # Map event handling │ │ ├── filter_manager.js # Data filtering │ │ └── date_manager.js # Date range management │ └── ... # Other controllers -├── maps_v2/ # Maps V2 implementation +├── maps_maplibre/ # Maps (MapLibre) implementation │ ├── layers/ # Map layer classes │ │ ├── base_layer.js # Abstract base class │ │ ├── points_layer.js # Point markers @@ -206,7 +206,7 @@ app/javascript/ ### Manager Pattern -The Maps V2 controller delegates responsibilities to specialized managers: +The Maps (MapLibre) controller delegates responsibilities to specialized managers: 1. **LayerManager** - Layer lifecycle (add/remove/toggle/update) 2. **DataLoader** - API data fetching and transformation @@ -277,7 +277,7 @@ map.on('click', 'layer-id', (e) => { }) ``` -## Maps V2 Architecture +## Maps (MapLibre) Architecture ### Layer Hierarchy @@ -393,7 +393,7 @@ All data is transformed to GeoJSON before rendering: ### Adding a New Layer -1. **Create layer class** in `app/javascript/maps_v2/layers/`: +1. **Create layer class** in `app/javascript/maps_maplibre/layers/`: ```javascript import { BaseLayer } from './base_layer' @@ -422,10 +422,10 @@ export class NewLayer extends BaseLayer { } ``` -2. **Register in LayerManager** (`controllers/maps_v2/layer_manager.js`): +2. **Register in LayerManager** (`controllers/maps_maplibre/layer_manager.js`): ```javascript -import { NewLayer } from 'maps_v2/layers/new_layer' +import { NewLayer } from 'maps_maplibre/layers/new_layer' // In addAllLayers method _addNewLayer(dataGeoJSON) { @@ -528,7 +528,7 @@ export const newManager = new NewManager() 2. **Import and use:** ```javascript -import { NewUtility } from 'maps_v2/utils/new_utility' +import { NewUtility } from 'maps_maplibre/utils/new_utility' const result = NewUtility.calculate(input) ``` @@ -705,19 +705,19 @@ When updating features, follow this pattern: ### Complete Layer Implementation -See `app/javascript/maps_v2/layers/heatmap_layer.js` for a simple example. +See `app/javascript/maps_maplibre/layers/heatmap_layer.js` for a simple example. ### Complete Utility Implementation -See `app/javascript/maps_v2/utils/settings_manager.js` for state management. +See `app/javascript/maps_maplibre/utils/settings_manager.js` for state management. ### Complete Service Implementation -See `app/javascript/maps_v2/services/api_client.js` for API communication. +See `app/javascript/maps_maplibre/services/api_client.js` for API communication. ### Complete Controller Implementation -See `app/javascript/controllers/maps_v2_controller.js` for orchestration. +See `app/javascript/controllers/maps/maplibre_controller.js` for orchestration. --- diff --git a/app/javascript/controllers/area_drawer_controller.js b/app/javascript/controllers/area_drawer_controller.js index 94bd1870..d1005866 100644 --- a/app/javascript/controllers/area_drawer_controller.js +++ b/app/javascript/controllers/area_drawer_controller.js @@ -1,5 +1,5 @@ import { Controller } from '@hotwired/stimulus' -import { createCircle, calculateDistance } from 'maps_v2/utils/geometry' +import { createCircle, calculateDistance } from 'maps_maplibre/utils/geometry' /** * Area drawer controller diff --git a/app/javascript/controllers/area_selector_controller.js b/app/javascript/controllers/area_selector_controller.js index 4565df1b..433ca71d 100644 --- a/app/javascript/controllers/area_selector_controller.js +++ b/app/javascript/controllers/area_selector_controller.js @@ -1,5 +1,5 @@ import { Controller } from '@hotwired/stimulus' -import { createRectangle } from 'maps_v2/utils/geometry' +import { createRectangle } from 'maps_maplibre/utils/geometry' /** * Area selector controller diff --git a/app/javascript/controllers/maps_v2/area_selection_manager.js b/app/javascript/controllers/maps/maplibre/area_selection_manager.js similarity index 98% rename from app/javascript/controllers/maps_v2/area_selection_manager.js rename to app/javascript/controllers/maps/maplibre/area_selection_manager.js index 699be9ea..16c189ab 100644 --- a/app/javascript/controllers/maps_v2/area_selection_manager.js +++ b/app/javascript/controllers/maps/maplibre/area_selection_manager.js @@ -1,8 +1,8 @@ -import { SelectionLayer } from 'maps_v2/layers/selection_layer' -import { SelectedPointsLayer } from 'maps_v2/layers/selected_points_layer' -import { pointsToGeoJSON } from 'maps_v2/utils/geojson_transformers' -import { VisitCard } from 'maps_v2/components/visit_card' -import { Toast } from 'maps_v2/components/toast' +import { SelectionLayer } from 'maps_maplibre/layers/selection_layer' +import { SelectedPointsLayer } from 'maps_maplibre/layers/selected_points_layer' +import { pointsToGeoJSON } from 'maps_maplibre/utils/geojson_transformers' +import { VisitCard } from 'maps_maplibre/components/visit_card' +import { Toast } from 'maps_maplibre/components/toast' /** * Manages area selection and bulk operations for Maps V2 diff --git a/app/javascript/controllers/maps_v2/data_loader.js b/app/javascript/controllers/maps/maplibre/data_loader.js similarity index 95% rename from app/javascript/controllers/maps_v2/data_loader.js rename to app/javascript/controllers/maps/maplibre/data_loader.js index 2a6b1141..8b583cc0 100644 --- a/app/javascript/controllers/maps_v2/data_loader.js +++ b/app/javascript/controllers/maps/maplibre/data_loader.js @@ -1,7 +1,7 @@ -import { pointsToGeoJSON } from 'maps_v2/utils/geojson_transformers' -import { RoutesLayer } from 'maps_v2/layers/routes_layer' -import { createCircle } from 'maps_v2/utils/geometry' -import { performanceMonitor } from 'maps_v2/utils/performance_monitor' +import { pointsToGeoJSON } from 'maps_maplibre/utils/geojson_transformers' +import { RoutesLayer } from 'maps_maplibre/layers/routes_layer' +import { createCircle } from 'maps_maplibre/utils/geometry' +import { performanceMonitor } from 'maps_maplibre/utils/performance_monitor' /** * Handles loading and transforming data from API diff --git a/app/javascript/controllers/maps_v2/date_manager.js b/app/javascript/controllers/maps/maplibre/date_manager.js similarity index 100% rename from app/javascript/controllers/maps_v2/date_manager.js rename to app/javascript/controllers/maps/maplibre/date_manager.js diff --git a/app/javascript/controllers/maps_v2/event_handlers.js b/app/javascript/controllers/maps/maplibre/event_handlers.js similarity index 87% rename from app/javascript/controllers/maps_v2/event_handlers.js rename to app/javascript/controllers/maps/maplibre/event_handlers.js index 418c5f47..d63573d7 100644 --- a/app/javascript/controllers/maps_v2/event_handlers.js +++ b/app/javascript/controllers/maps/maplibre/event_handlers.js @@ -1,7 +1,7 @@ import maplibregl from 'maplibre-gl' -import { PopupFactory } from 'maps_v2/components/popup_factory' -import { VisitPopupFactory } from 'maps_v2/components/visit_popup' -import { PhotoPopupFactory } from 'maps_v2/components/photo_popup' +import { PopupFactory } from 'maps_maplibre/components/popup_factory' +import { VisitPopupFactory } from 'maps_maplibre/components/visit_popup' +import { PhotoPopupFactory } from 'maps_maplibre/components/photo_popup' /** * Handles map interaction events (clicks, popups) diff --git a/app/javascript/controllers/maps_v2/filter_manager.js b/app/javascript/controllers/maps/maplibre/filter_manager.js similarity index 100% rename from app/javascript/controllers/maps_v2/filter_manager.js rename to app/javascript/controllers/maps/maplibre/filter_manager.js diff --git a/app/javascript/controllers/maps_v2/layer_manager.js b/app/javascript/controllers/maps/maplibre/layer_manager.js similarity index 90% rename from app/javascript/controllers/maps_v2/layer_manager.js rename to app/javascript/controllers/maps/maplibre/layer_manager.js index f5e1811b..81729deb 100644 --- a/app/javascript/controllers/maps_v2/layer_manager.js +++ b/app/javascript/controllers/maps/maplibre/layer_manager.js @@ -1,15 +1,15 @@ -import { PointsLayer } from 'maps_v2/layers/points_layer' -import { RoutesLayer } from 'maps_v2/layers/routes_layer' -import { HeatmapLayer } from 'maps_v2/layers/heatmap_layer' -import { VisitsLayer } from 'maps_v2/layers/visits_layer' -import { PhotosLayer } from 'maps_v2/layers/photos_layer' -import { AreasLayer } from 'maps_v2/layers/areas_layer' -import { TracksLayer } from 'maps_v2/layers/tracks_layer' -import { PlacesLayer } from 'maps_v2/layers/places_layer' -import { FogLayer } from 'maps_v2/layers/fog_layer' -import { FamilyLayer } from 'maps_v2/layers/family_layer' -import { lazyLoader } from 'maps_v2/utils/lazy_loader' -import { performanceMonitor } from 'maps_v2/utils/performance_monitor' +import { PointsLayer } from 'maps_maplibre/layers/points_layer' +import { RoutesLayer } from 'maps_maplibre/layers/routes_layer' +import { HeatmapLayer } from 'maps_maplibre/layers/heatmap_layer' +import { VisitsLayer } from 'maps_maplibre/layers/visits_layer' +import { PhotosLayer } from 'maps_maplibre/layers/photos_layer' +import { AreasLayer } from 'maps_maplibre/layers/areas_layer' +import { TracksLayer } from 'maps_maplibre/layers/tracks_layer' +import { PlacesLayer } from 'maps_maplibre/layers/places_layer' +import { FogLayer } from 'maps_maplibre/layers/fog_layer' +import { FamilyLayer } from 'maps_maplibre/layers/family_layer' +import { lazyLoader } from 'maps_maplibre/utils/lazy_loader' +import { performanceMonitor } from 'maps_maplibre/utils/performance_monitor' /** * Manages all map layers lifecycle and visibility diff --git a/app/javascript/controllers/maps_v2/map_data_manager.js b/app/javascript/controllers/maps/maplibre/map_data_manager.js similarity index 96% rename from app/javascript/controllers/maps_v2/map_data_manager.js rename to app/javascript/controllers/maps/maplibre/map_data_manager.js index f15eb7ed..08d14bbc 100644 --- a/app/javascript/controllers/maps_v2/map_data_manager.js +++ b/app/javascript/controllers/maps/maplibre/map_data_manager.js @@ -1,6 +1,6 @@ import maplibregl from 'maplibre-gl' -import { Toast } from 'maps_v2/components/toast' -import { performanceMonitor } from 'maps_v2/utils/performance_monitor' +import { Toast } from 'maps_maplibre/components/toast' +import { performanceMonitor } from 'maps_maplibre/utils/performance_monitor' /** * Manages data loading and layer setup for the map diff --git a/app/javascript/controllers/maps_v2/map_initializer.js b/app/javascript/controllers/maps/maplibre/map_initializer.js similarity index 96% rename from app/javascript/controllers/maps_v2/map_initializer.js rename to app/javascript/controllers/maps/maplibre/map_initializer.js index 34cf71f5..b253135e 100644 --- a/app/javascript/controllers/maps_v2/map_initializer.js +++ b/app/javascript/controllers/maps/maplibre/map_initializer.js @@ -1,5 +1,5 @@ import maplibregl from 'maplibre-gl' -import { getMapStyle } from 'maps_v2/utils/style_manager' +import { getMapStyle } from 'maps_maplibre/utils/style_manager' /** * Handles map initialization for Maps V2 diff --git a/app/javascript/controllers/maps_v2/places_manager.js b/app/javascript/controllers/maps/maplibre/places_manager.js similarity index 98% rename from app/javascript/controllers/maps_v2/places_manager.js rename to app/javascript/controllers/maps/maplibre/places_manager.js index 8b642d0c..66022b82 100644 --- a/app/javascript/controllers/maps_v2/places_manager.js +++ b/app/javascript/controllers/maps/maplibre/places_manager.js @@ -1,5 +1,5 @@ -import { SettingsManager } from 'maps_v2/utils/settings_manager' -import { Toast } from 'maps_v2/components/toast' +import { SettingsManager } from 'maps_maplibre/utils/settings_manager' +import { Toast } from 'maps_maplibre/components/toast' /** * Manages places-related operations for Maps V2 diff --git a/app/javascript/controllers/maps_v2/routes_manager.js b/app/javascript/controllers/maps/maplibre/routes_manager.js similarity index 97% rename from app/javascript/controllers/maps_v2/routes_manager.js rename to app/javascript/controllers/maps/maplibre/routes_manager.js index 3e091300..00d88888 100644 --- a/app/javascript/controllers/maps_v2/routes_manager.js +++ b/app/javascript/controllers/maps/maplibre/routes_manager.js @@ -1,6 +1,6 @@ -import { SettingsManager } from 'maps_v2/utils/settings_manager' -import { Toast } from 'maps_v2/components/toast' -import { lazyLoader } from 'maps_v2/utils/lazy_loader' +import { SettingsManager } from 'maps_maplibre/utils/settings_manager' +import { Toast } from 'maps_maplibre/components/toast' +import { lazyLoader } from 'maps_maplibre/utils/lazy_loader' /** * Manages routes-related operations for Maps V2 @@ -176,7 +176,7 @@ export class RoutesManager { const distanceThresholdMeters = this.settings.metersBetweenRoutes || 500 const timeThresholdMinutes = this.settings.minutesBetweenRoutes || 60 - const { calculateSpeed, getSpeedColor } = await import('maps_v2/utils/speed_colors') + const { calculateSpeed, getSpeedColor } = await import('maps_maplibre/utils/speed_colors') const routesGeoJSON = await this.generateRoutesWithSpeedColors( points, @@ -199,7 +199,7 @@ export class RoutesManager { * Generate routes with speed coloring */ async generateRoutesWithSpeedColors(points, options, calculateSpeed, getSpeedColor) { - const { RoutesLayer } = await import('maps_v2/layers/routes_layer') + const { RoutesLayer } = await import('maps_maplibre/layers/routes_layer') const useSpeedColors = this.settings.speedColoredRoutesEnabled || false const speedColorScale = this.settings.speedColorScale || '0:#00ff00|15:#00ffff|30:#ff00ff|50:#ffff00|100:#ff3300' diff --git a/app/javascript/controllers/maps_v2/settings_manager.js b/app/javascript/controllers/maps/maplibre/settings_manager.js similarity index 97% rename from app/javascript/controllers/maps_v2/settings_manager.js rename to app/javascript/controllers/maps/maplibre/settings_manager.js index c825e181..d3b70b27 100644 --- a/app/javascript/controllers/maps_v2/settings_manager.js +++ b/app/javascript/controllers/maps/maplibre/settings_manager.js @@ -1,6 +1,6 @@ -import { SettingsManager } from 'maps_v2/utils/settings_manager' -import { getMapStyle } from 'maps_v2/utils/style_manager' -import { Toast } from 'maps_v2/components/toast' +import { SettingsManager } from 'maps_maplibre/utils/settings_manager' +import { getMapStyle } from 'maps_maplibre/utils/style_manager' +import { Toast } from 'maps_maplibre/components/toast' /** * Handles all settings-related operations for Maps V2 diff --git a/app/javascript/controllers/maps_v2/visits_manager.js b/app/javascript/controllers/maps/maplibre/visits_manager.js similarity index 97% rename from app/javascript/controllers/maps_v2/visits_manager.js rename to app/javascript/controllers/maps/maplibre/visits_manager.js index 6d61974f..70fa0098 100644 --- a/app/javascript/controllers/maps_v2/visits_manager.js +++ b/app/javascript/controllers/maps/maplibre/visits_manager.js @@ -1,5 +1,5 @@ -import { SettingsManager } from 'maps_v2/utils/settings_manager' -import { Toast } from 'maps_v2/components/toast' +import { SettingsManager } from 'maps_maplibre/utils/settings_manager' +import { Toast } from 'maps_maplibre/components/toast' /** * Manages visits-related operations for Maps V2 diff --git a/app/javascript/controllers/maps_v2_controller.js b/app/javascript/controllers/maps/maplibre_controller.js similarity index 90% rename from app/javascript/controllers/maps_v2_controller.js rename to app/javascript/controllers/maps/maplibre_controller.js index 36a21a25..72f8ea60 100644 --- a/app/javascript/controllers/maps_v2_controller.js +++ b/app/javascript/controllers/maps/maplibre_controller.js @@ -1,22 +1,22 @@ import { Controller } from '@hotwired/stimulus' -import { ApiClient } from 'maps_v2/services/api_client' -import { SettingsManager } from 'maps_v2/utils/settings_manager' -import { SearchManager } from 'maps_v2/utils/search_manager' -import { Toast } from 'maps_v2/components/toast' -import { performanceMonitor } from 'maps_v2/utils/performance_monitor' -import { CleanupHelper } from 'maps_v2/utils/cleanup_helper' -import { MapInitializer } from './maps_v2/map_initializer' -import { MapDataManager } from './maps_v2/map_data_manager' -import { LayerManager } from './maps_v2/layer_manager' -import { DataLoader } from './maps_v2/data_loader' -import { EventHandlers } from './maps_v2/event_handlers' -import { FilterManager } from './maps_v2/filter_manager' -import { DateManager } from './maps_v2/date_manager' -import { SettingsController } from './maps_v2/settings_manager' -import { AreaSelectionManager } from './maps_v2/area_selection_manager' -import { VisitsManager } from './maps_v2/visits_manager' -import { PlacesManager } from './maps_v2/places_manager' -import { RoutesManager } from './maps_v2/routes_manager' +import { ApiClient } from 'maps_maplibre/services/api_client' +import { SettingsManager } from 'maps_maplibre/utils/settings_manager' +import { SearchManager } from 'maps_maplibre/utils/search_manager' +import { Toast } from 'maps_maplibre/components/toast' +import { performanceMonitor } from 'maps_maplibre/utils/performance_monitor' +import { CleanupHelper } from 'maps_maplibre/utils/cleanup_helper' +import { MapInitializer } from './maplibre/map_initializer' +import { MapDataManager } from './maplibre/map_data_manager' +import { LayerManager } from './maplibre/layer_manager' +import { DataLoader } from './maplibre/data_loader' +import { EventHandlers } from './maplibre/event_handlers' +import { FilterManager } from './maplibre/filter_manager' +import { DateManager } from './maplibre/date_manager' +import { SettingsController } from './maplibre/settings_manager' +import { AreaSelectionManager } from './maplibre/area_selection_manager' +import { VisitsManager } from './maplibre/visits_manager' +import { PlacesManager } from './maplibre/places_manager' +import { RoutesManager } from './maplibre/routes_manager' /** * Main map controller for Maps V2 diff --git a/app/javascript/controllers/maps_v2_realtime_controller.js b/app/javascript/controllers/maps/maplibre_realtime_controller.js similarity index 97% rename from app/javascript/controllers/maps_v2_realtime_controller.js rename to app/javascript/controllers/maps/maplibre_realtime_controller.js index 5e560083..b26e4de0 100644 --- a/app/javascript/controllers/maps_v2_realtime_controller.js +++ b/app/javascript/controllers/maps/maplibre_realtime_controller.js @@ -1,7 +1,7 @@ import { Controller } from '@hotwired/stimulus' -import { createMapChannel } from 'maps_v2/channels/map_channel' -import { WebSocketManager } from 'maps_v2/utils/websocket_manager' -import { Toast } from 'maps_v2/components/toast' +import { createMapChannel } from 'maps_maplibre/channels/map_channel' +import { WebSocketManager } from 'maps_maplibre/utils/websocket_manager' +import { Toast } from 'maps_maplibre/components/toast' /** * Real-time controller diff --git a/app/javascript/controllers/visit_creation_v2_controller.js b/app/javascript/controllers/visit_creation_v2_controller.js index 34db2ccd..4b9038e7 100644 --- a/app/javascript/controllers/visit_creation_v2_controller.js +++ b/app/javascript/controllers/visit_creation_v2_controller.js @@ -1,5 +1,5 @@ import { Controller } from '@hotwired/stimulus' -import { Toast } from 'maps_v2/components/toast' +import { Toast } from 'maps_maplibre/components/toast' /** * Controller for visit creation modal in Maps V2 diff --git a/app/javascript/maps_v2/channels/map_channel.js b/app/javascript/maps_maplibre/channels/map_channel.js similarity index 98% rename from app/javascript/maps_v2/channels/map_channel.js rename to app/javascript/maps_maplibre/channels/map_channel.js index f88fa5e9..7a2e9d38 100644 --- a/app/javascript/maps_v2/channels/map_channel.js +++ b/app/javascript/maps_maplibre/channels/map_channel.js @@ -1,7 +1,7 @@ import consumer from '../../channels/consumer' /** - * Create map channel subscription for maps_v2 + * Create map channel subscription for maps_maplibre * Wraps the existing FamilyLocationsChannel and other channels for real-time updates * @param {Object} options - { received, connected, disconnected, enableLiveMode } * @returns {Object} Subscriptions object with multiple channels diff --git a/app/javascript/maps_v2/components/photo_popup.js b/app/javascript/maps_maplibre/components/photo_popup.js similarity index 100% rename from app/javascript/maps_v2/components/photo_popup.js rename to app/javascript/maps_maplibre/components/photo_popup.js diff --git a/app/javascript/maps_v2/components/popup_factory.js b/app/javascript/maps_maplibre/components/popup_factory.js similarity index 100% rename from app/javascript/maps_v2/components/popup_factory.js rename to app/javascript/maps_maplibre/components/popup_factory.js diff --git a/app/javascript/maps_v2/components/toast.js b/app/javascript/maps_maplibre/components/toast.js similarity index 100% rename from app/javascript/maps_v2/components/toast.js rename to app/javascript/maps_maplibre/components/toast.js diff --git a/app/javascript/maps_v2/components/visit_card.js b/app/javascript/maps_maplibre/components/visit_card.js similarity index 100% rename from app/javascript/maps_v2/components/visit_card.js rename to app/javascript/maps_maplibre/components/visit_card.js diff --git a/app/javascript/maps_v2/components/visit_popup.js b/app/javascript/maps_maplibre/components/visit_popup.js similarity index 100% rename from app/javascript/maps_v2/components/visit_popup.js rename to app/javascript/maps_maplibre/components/visit_popup.js diff --git a/app/javascript/maps_v2/layers/areas_layer.js b/app/javascript/maps_maplibre/layers/areas_layer.js similarity index 100% rename from app/javascript/maps_v2/layers/areas_layer.js rename to app/javascript/maps_maplibre/layers/areas_layer.js diff --git a/app/javascript/maps_v2/layers/base_layer.js b/app/javascript/maps_maplibre/layers/base_layer.js similarity index 100% rename from app/javascript/maps_v2/layers/base_layer.js rename to app/javascript/maps_maplibre/layers/base_layer.js diff --git a/app/javascript/maps_v2/layers/family_layer.js b/app/javascript/maps_maplibre/layers/family_layer.js similarity index 100% rename from app/javascript/maps_v2/layers/family_layer.js rename to app/javascript/maps_maplibre/layers/family_layer.js diff --git a/app/javascript/maps_v2/layers/fog_layer.js b/app/javascript/maps_maplibre/layers/fog_layer.js similarity index 100% rename from app/javascript/maps_v2/layers/fog_layer.js rename to app/javascript/maps_maplibre/layers/fog_layer.js diff --git a/app/javascript/maps_v2/layers/heatmap_layer.js b/app/javascript/maps_maplibre/layers/heatmap_layer.js similarity index 100% rename from app/javascript/maps_v2/layers/heatmap_layer.js rename to app/javascript/maps_maplibre/layers/heatmap_layer.js diff --git a/app/javascript/maps_v2/layers/photos_layer.js b/app/javascript/maps_maplibre/layers/photos_layer.js similarity index 100% rename from app/javascript/maps_v2/layers/photos_layer.js rename to app/javascript/maps_maplibre/layers/photos_layer.js diff --git a/app/javascript/maps_v2/layers/places_layer.js b/app/javascript/maps_maplibre/layers/places_layer.js similarity index 100% rename from app/javascript/maps_v2/layers/places_layer.js rename to app/javascript/maps_maplibre/layers/places_layer.js diff --git a/app/javascript/maps_v2/layers/points_layer.js b/app/javascript/maps_maplibre/layers/points_layer.js similarity index 100% rename from app/javascript/maps_v2/layers/points_layer.js rename to app/javascript/maps_maplibre/layers/points_layer.js diff --git a/app/javascript/maps_v2/layers/routes_layer.js b/app/javascript/maps_maplibre/layers/routes_layer.js similarity index 100% rename from app/javascript/maps_v2/layers/routes_layer.js rename to app/javascript/maps_maplibre/layers/routes_layer.js diff --git a/app/javascript/maps_v2/layers/scratch_layer.js b/app/javascript/maps_maplibre/layers/scratch_layer.js similarity index 100% rename from app/javascript/maps_v2/layers/scratch_layer.js rename to app/javascript/maps_maplibre/layers/scratch_layer.js diff --git a/app/javascript/maps_v2/layers/selected_points_layer.js b/app/javascript/maps_maplibre/layers/selected_points_layer.js similarity index 100% rename from app/javascript/maps_v2/layers/selected_points_layer.js rename to app/javascript/maps_maplibre/layers/selected_points_layer.js diff --git a/app/javascript/maps_v2/layers/selection_layer.js b/app/javascript/maps_maplibre/layers/selection_layer.js similarity index 100% rename from app/javascript/maps_v2/layers/selection_layer.js rename to app/javascript/maps_maplibre/layers/selection_layer.js diff --git a/app/javascript/maps_v2/layers/tracks_layer.js b/app/javascript/maps_maplibre/layers/tracks_layer.js similarity index 100% rename from app/javascript/maps_v2/layers/tracks_layer.js rename to app/javascript/maps_maplibre/layers/tracks_layer.js diff --git a/app/javascript/maps_v2/layers/visits_layer.js b/app/javascript/maps_maplibre/layers/visits_layer.js similarity index 100% rename from app/javascript/maps_v2/layers/visits_layer.js rename to app/javascript/maps_maplibre/layers/visits_layer.js diff --git a/app/javascript/maps_v2/services/api_client.js b/app/javascript/maps_maplibre/services/api_client.js similarity index 100% rename from app/javascript/maps_v2/services/api_client.js rename to app/javascript/maps_maplibre/services/api_client.js diff --git a/app/javascript/maps_v2/services/location_search_service.js b/app/javascript/maps_maplibre/services/location_search_service.js similarity index 100% rename from app/javascript/maps_v2/services/location_search_service.js rename to app/javascript/maps_maplibre/services/location_search_service.js diff --git a/app/javascript/maps_v2/utils/cleanup_helper.js b/app/javascript/maps_maplibre/utils/cleanup_helper.js similarity index 100% rename from app/javascript/maps_v2/utils/cleanup_helper.js rename to app/javascript/maps_maplibre/utils/cleanup_helper.js diff --git a/app/javascript/maps_v2/utils/fps_monitor.js b/app/javascript/maps_maplibre/utils/fps_monitor.js similarity index 100% rename from app/javascript/maps_v2/utils/fps_monitor.js rename to app/javascript/maps_maplibre/utils/fps_monitor.js diff --git a/app/javascript/maps_v2/utils/geojson_transformers.js b/app/javascript/maps_maplibre/utils/geojson_transformers.js similarity index 100% rename from app/javascript/maps_v2/utils/geojson_transformers.js rename to app/javascript/maps_maplibre/utils/geojson_transformers.js diff --git a/app/javascript/maps_v2/utils/geometry.js b/app/javascript/maps_maplibre/utils/geometry.js similarity index 100% rename from app/javascript/maps_v2/utils/geometry.js rename to app/javascript/maps_maplibre/utils/geometry.js diff --git a/app/javascript/maps_v2/utils/lazy_loader.js b/app/javascript/maps_maplibre/utils/lazy_loader.js similarity index 100% rename from app/javascript/maps_v2/utils/lazy_loader.js rename to app/javascript/maps_maplibre/utils/lazy_loader.js diff --git a/app/javascript/maps_v2/utils/performance_monitor.js b/app/javascript/maps_maplibre/utils/performance_monitor.js similarity index 100% rename from app/javascript/maps_v2/utils/performance_monitor.js rename to app/javascript/maps_maplibre/utils/performance_monitor.js diff --git a/app/javascript/maps_v2/utils/popup_theme.js b/app/javascript/maps_maplibre/utils/popup_theme.js similarity index 100% rename from app/javascript/maps_v2/utils/popup_theme.js rename to app/javascript/maps_maplibre/utils/popup_theme.js diff --git a/app/javascript/maps_v2/utils/progressive_loader.js b/app/javascript/maps_maplibre/utils/progressive_loader.js similarity index 100% rename from app/javascript/maps_v2/utils/progressive_loader.js rename to app/javascript/maps_maplibre/utils/progressive_loader.js diff --git a/app/javascript/maps_v2/utils/search_manager.js b/app/javascript/maps_maplibre/utils/search_manager.js similarity index 100% rename from app/javascript/maps_v2/utils/search_manager.js rename to app/javascript/maps_maplibre/utils/search_manager.js diff --git a/app/javascript/maps_v2/utils/settings_manager.js b/app/javascript/maps_maplibre/utils/settings_manager.js similarity index 99% rename from app/javascript/maps_v2/utils/settings_manager.js rename to app/javascript/maps_maplibre/utils/settings_manager.js index f0d7eb41..0dd0f9eb 100644 --- a/app/javascript/maps_v2/utils/settings_manager.js +++ b/app/javascript/maps_maplibre/utils/settings_manager.js @@ -33,7 +33,7 @@ const LAYER_NAME_MAP = { // Mapping between frontend settings and backend API keys const BACKEND_SETTINGS_MAP = { - mapStyle: 'maps_v2_style', + mapStyle: 'maps_maplibre_style', enabledMapLayers: 'enabled_map_layers' } diff --git a/app/javascript/maps_v2/utils/speed_colors.js b/app/javascript/maps_maplibre/utils/speed_colors.js similarity index 100% rename from app/javascript/maps_v2/utils/speed_colors.js rename to app/javascript/maps_maplibre/utils/speed_colors.js diff --git a/app/javascript/maps_v2/utils/style_manager.js b/app/javascript/maps_maplibre/utils/style_manager.js similarity index 97% rename from app/javascript/maps_v2/utils/style_manager.js rename to app/javascript/maps_maplibre/utils/style_manager.js index 3c43bbc0..f71749b4 100644 --- a/app/javascript/maps_v2/utils/style_manager.js +++ b/app/javascript/maps_maplibre/utils/style_manager.js @@ -31,7 +31,7 @@ async function loadStyleFile(styleName) { } // Fetch the style file from the public assets - const response = await fetch(`/maps_v2/styles/${styleName}.json`) + const response = await fetch(`/maps_maplibre/styles/${styleName}.json`) if (!response.ok) { throw new Error(`Failed to load style: ${styleName} (${response.status})`) } diff --git a/app/javascript/maps_v2/utils/websocket_manager.js b/app/javascript/maps_maplibre/utils/websocket_manager.js similarity index 100% rename from app/javascript/maps_v2/utils/websocket_manager.js rename to app/javascript/maps_maplibre/utils/websocket_manager.js diff --git a/app/views/maps_v2/_area_creation_modal.html.erb b/app/views/maps/maplibre/_area_creation_modal.html.erb similarity index 100% rename from app/views/maps_v2/_area_creation_modal.html.erb rename to app/views/maps/maplibre/_area_creation_modal.html.erb diff --git a/app/views/maps_v2/_settings_panel.html.erb b/app/views/maps/maplibre/_settings_panel.html.erb similarity index 81% rename from app/views/maps_v2/_settings_panel.html.erb rename to app/views/maps/maplibre/_settings_panel.html.erb index ee568712..95be7f6c 100644 --- a/app/views/maps_v2/_settings_panel.html.erb +++ b/app/views/maps/maplibre/_settings_panel.html.erb @@ -1,4 +1,4 @@ -
Show individual location points
@@ -105,36 +105,36 @@Show connected route lines