diff --git a/app/controllers/api/v1/settings_controller.rb b/app/controllers/api/v1/settings_controller.rb
index 4834178f..660f88e0 100644
--- a/app/controllers/api/v1/settings_controller.rb
+++ b/app/controllers/api/v1/settings_controller.rb
@@ -31,7 +31,7 @@ class Api::V1::SettingsController < ApiController
params.require(:settings).permit(
:meters_between_routes, :minutes_between_routes, :fog_of_war_meters,
:time_threshold_minutes, :merge_threshold_minutes, :route_opacity,
- :preferred_map_layer, :points_rendering_mode
+ :preferred_map_layer, :points_rendering_mode, :live_map_enabled
)
end
end
diff --git a/app/javascript/controllers/imports_controller.js b/app/javascript/controllers/imports_controller.js
index fe302ac7..f6259a03 100644
--- a/app/javascript/controllers/imports_controller.js
+++ b/app/javascript/controllers/imports_controller.js
@@ -5,6 +5,11 @@ export default class extends Controller {
static targets = ["index"];
connect() {
+ if (!this.hasIndexTarget) {
+ console.log("No index target found, skipping subscription")
+ return
+ }
+
console.log("Imports controller connected", {
hasIndexTarget: this.hasIndexTarget,
element: this.element,
diff --git a/app/javascript/controllers/maps_controller.js b/app/javascript/controllers/maps_controller.js
index 025f9655..404d8f69 100644
--- a/app/javascript/controllers/maps_controller.js
+++ b/app/javascript/controllers/maps_controller.js
@@ -44,6 +44,7 @@ export default class extends Controller {
this.routeOpacity = parseFloat(this.userSettings.route_opacity) || 0.6;
this.distanceUnit = this.element.dataset.distance_unit || "km";
this.pointsRenderingMode = this.userSettings.points_rendering_mode || "raw";
+ this.liveMapEnabled = this.userSettings.liveMapEnabled || false;
this.countryCodesMap = countryCodesMap();
this.center = this.markers[this.markers.length - 1] || [52.514568, 13.350111];
@@ -551,6 +552,12 @@ export default class extends Controller {
Simplified
+
+
`;
@@ -583,6 +590,14 @@ export default class extends Controller {
}
}
+ liveMapEnabledChecked(value) {
+ if (value === this.pointsRenderingMode) {
+ return 'checked';
+ } else {
+ return '';
+ }
+ }
+
updateSettings(event) {
event.preventDefault();
@@ -597,7 +612,8 @@ export default class extends Controller {
minutes_between_routes: event.target.minutes_between_routes.value,
time_threshold_minutes: event.target.time_threshold_minutes.value,
merge_threshold_minutes: event.target.merge_threshold_minutes.value,
- points_rendering_mode: event.target.points_rendering_mode.value
+ points_rendering_mode: event.target.points_rendering_mode.value,
+ live_map_enabled: event.target.live_map_enabled.checked
},
}),
})
diff --git a/app/services/immich/import_parser.rb b/app/services/immich/import_parser.rb
index 5d74c9d3..b0a2a38c 100644
--- a/app/services/immich/import_parser.rb
+++ b/app/services/immich/import_parser.rb
@@ -15,7 +15,7 @@ class Immich::ImportParser
json.each.with_index(1) { |point, index| create_point(point, index) }
end
- def create_point(point)
+ def create_point(point, index)
return 0 if point['latitude'].blank? || point['longitude'].blank? || point['timestamp'].blank?
return 0 if point_exists?(point, point['timestamp'])
diff --git a/db/data/20241107112451_add_live_map_enabled_to_settings.rb b/db/data/20241107112451_add_live_map_enabled_to_settings.rb
new file mode 100644
index 00000000..74cd3b2a
--- /dev/null
+++ b/db/data/20241107112451_add_live_map_enabled_to_settings.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+class AddLiveMapEnabledToSettings < ActiveRecord::Migration[7.2]
+ def up
+ User.find_each do |user|
+ user.settings = user.settings.merge(live_map_enabled: false)
+ user.save!
+ end
+ end
+
+ def down
+ raise ActiveRecord::IrreversibleMigration
+ end
+end
diff --git a/db/data_schema.rb b/db/data_schema.rb
index 8dfd037d..e14cf9d4 100644
--- a/db/data_schema.rb
+++ b/db/data_schema.rb
@@ -1 +1 @@
-DataMigrate::Data.define(version: 20240730130922)
+DataMigrate::Data.define(version: 20241107112451)
diff --git a/db/schema.rb b/db/schema.rb
index 0eb33448..46ceb3d4 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema[7.2].define(version: 2024_08_22_092405) do
+ActiveRecord::Schema[7.2].define(version: 2024_10_30_152025) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -53,6 +53,9 @@ ActiveRecord::Schema[7.2].define(version: 2024_08_22_092405) do
t.index ["user_id"], name: "index_areas_on_user_id"
end
+ create_table "data_migrations", primary_key: "version", id: :string, force: :cascade do |t|
+ end
+
create_table "exports", force: :cascade do |t|
t.string "name", null: false
t.string "url"