diff --git a/app/controllers/api/v1/settings_controller.rb b/app/controllers/api/v1/settings_controller.rb index 0471f49b..10620730 100644 --- a/app/controllers/api/v1/settings_controller.rb +++ b/app/controllers/api/v1/settings_controller.rb @@ -5,7 +5,7 @@ class Api::V1::SettingsController < ApiController def index render json: { - settings: current_api_user.settings, + settings: current_api_user.safe_settings, status: 'success' }, status: :ok end diff --git a/app/javascript/maps/tracks.js b/app/javascript/maps/tracks.js index ffda6a35..2e30ca98 100644 --- a/app/javascript/maps/tracks.js +++ b/app/javascript/maps/tracks.js @@ -30,7 +30,7 @@ export function createTrackPopupContent(track, distanceUnit) { 🕐 Start: ${startTime}
🏁 End: ${endTime}
⏱️ Duration: ${durationFormatted}
- 📏 Distance: ${formatDistance(track.distance, distanceUnit)}
+ 📏 Distance: ${formatDistance(track.distance / 1000, distanceUnit)}
⚡ Avg Speed: ${formatSpeed(track.avg_speed, distanceUnit)}
⛰️ Elevation: +${track.elevation_gain || 0}m / -${track.elevation_loss || 0}m
📊 Max Alt: ${track.elevation_max || 0}m
diff --git a/spec/swagger/api/v1/settings_controller_spec.rb b/spec/swagger/api/v1/settings_controller_spec.rb index e9716d12..0f440b51 100644 --- a/spec/swagger/api/v1/settings_controller_spec.rb +++ b/spec/swagger/api/v1/settings_controller_spec.rb @@ -21,8 +21,8 @@ describe 'Settings API', type: :request do 'immich_api_key': 'your-immich-api-key', 'photoprism_url': 'https://photoprism.example.com', 'photoprism_api_key': 'your-photoprism-api-key', - 'maps': { 'distance_unit': 'km' }, - 'visits_suggestions_enabled': true + 'speed_color_scale': 'viridis', + 'fog_of_war_threshold': 100 } } tags 'Settings' @@ -100,21 +100,15 @@ describe 'Settings API', type: :request do example: 'your-photoprism-api-key', description: 'API key for PhotoPrism photo service' }, - maps: { - type: :object, - properties: { - distance_unit: { - type: :string, - example: 'km', - description: 'Distance unit preference (km or miles)' - } - }, - description: 'Map-related settings' + speed_color_scale: { + type: :string, + example: 'viridis', + description: 'Color scale for speed-colored routes' }, - visits_suggestions_enabled: { - type: :boolean, - example: true, - description: 'Whether visit suggestions are enabled' + fog_of_war_threshold: { + type: :number, + example: 100, + description: 'Fog of war threshold value' } } } @@ -138,33 +132,33 @@ describe 'Settings API', type: :request do type: :object, properties: { route_opacity: { - type: :string, - example: '60', + type: :number, + example: 60, description: 'Route opacity percentage (0-100)' }, meters_between_routes: { - type: :string, - example: '500', + type: :number, + example: 500, description: 'Minimum distance between routes in meters' }, minutes_between_routes: { - type: :string, - example: '30', + type: :number, + example: 30, description: 'Minimum time between routes in minutes' }, fog_of_war_meters: { - type: :string, - example: '50', + type: :number, + example: 50, description: 'Fog of war radius in meters' }, time_threshold_minutes: { - type: :string, - example: '30', + type: :number, + example: 30, description: 'Time threshold for grouping points in minutes' }, merge_threshold_minutes: { - type: :string, - example: '15', + type: :number, + example: 15, description: 'Threshold for merging nearby points in minutes' }, preferred_map_layer: { @@ -207,21 +201,15 @@ describe 'Settings API', type: :request do example: 'your-photoprism-api-key', description: 'API key for PhotoPrism photo service' }, - maps: { - type: :object, - properties: { - distance_unit: { - type: :string, - example: 'km', - description: 'Distance unit preference (km or miles)' - } - }, - description: 'Map-related settings' + speed_color_scale: { + type: :string, + example: 'viridis', + description: 'Color scale for speed-colored routes' }, - visits_suggestions_enabled: { - type: :boolean, - example: true, - description: 'Whether visit suggestions are enabled' + fog_of_war_threshold: { + type: :number, + example: 100, + description: 'Fog of war threshold value' } } }