Add live map enabled setting

This commit is contained in:
Eugene Burmakin 2024-11-07 13:07:54 +01:00
parent 853d02cd80
commit ebee214982
7 changed files with 43 additions and 5 deletions

View file

@ -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

View file

@ -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,

View file

@ -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
</label>
<label for="live_map_enabled">
Live Map
<label for="live_map_enabled_info" class="btn-xs join-item inline">?</label>
<input type="checkbox" id="live_map_enabled" name="live_map_enabled" class='w-4' style="width: 20px;" value="false" ${this.liveMapEnabledChecked()} />
</label>
<button type="submit">Update</button>
</form>
`;
@ -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
},
}),
})

View file

@ -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'])

View file

@ -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

View file

@ -1 +1 @@
DataMigrate::Data.define(version: 20240730130922)
DataMigrate::Data.define(version: 20241107112451)

5
db/schema.rb generated
View file

@ -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"