From bfed4ec1cd3cda9a3ca23f3fc68300c879bb210f Mon Sep 17 00:00:00 2001 From: Theodore Kruczek Date: Sat, 1 Feb 2025 16:16:49 -0500 Subject: [PATCH 1/3] fix: :bug: fix camera widget ignoring settings --- src/singletons/camera-control-widget.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/singletons/camera-control-widget.ts b/src/singletons/camera-control-widget.ts index fe28a29d..16958581 100644 --- a/src/singletons/camera-control-widget.ts +++ b/src/singletons/camera-control-widget.ts @@ -195,6 +195,9 @@ export class CameraControlWidget { } private draw() { + if (!settingsManager.drawCameraWidget) { + return; + } this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height); const camera = keepTrackApi.getMainCamera(); From c285a03b3408ded1eb1f3032815fea99fd96ca0d Mon Sep 17 00:00:00 2001 From: Theodore Kruczek Date: Sat, 1 Feb 2025 16:17:14 -0500 Subject: [PATCH 2/3] refactor: :recycle: move sync settings to settingsManager --- src/plugins/settings-menu/settings-menu.ts | 42 ++++------------------ src/settings/settings.ts | 35 ++++++++++++++++-- 2 files changed, 39 insertions(+), 38 deletions(-) diff --git a/src/plugins/settings-menu/settings-menu.ts b/src/plugins/settings-menu/settings-menu.ts index 144a5fad..326db58d 100644 --- a/src/plugins/settings-menu/settings-menu.ts +++ b/src/plugins/settings-menu/settings-menu.ts @@ -12,6 +12,7 @@ import settingsPng from '@public/img/icons/settings.png'; import { KeepTrackPlugin } from '../KeepTrackPlugin'; import { SoundNames } from '../sounds/SoundNames'; import { TimeMachine } from '../time-machine/time-machine'; +import { SettingsManager } from '@app/settings/settings'; /** * ///////////////////////////////////////////////////////////////////////////// @@ -356,7 +357,7 @@ export class SettingsMenuPlugin extends KeepTrackPlugin { cb: () => { getEl('settings-form').addEventListener('change', SettingsMenuPlugin.onFormChange_); getEl('settings-form').addEventListener('submit', SettingsMenuPlugin.onSubmit_); - getEl('settings-reset').addEventListener('click', SettingsMenuPlugin.resetToDefaults_); + getEl('settings-reset').addEventListener('click', SettingsMenuPlugin.resetToDefaults); const colorPalette = [ // Reds @@ -521,37 +522,6 @@ export class SettingsMenuPlugin extends KeepTrackPlugin { // (getEl('satFieldOfView')).value = settingsManager.selectedSatFOV.toString(); } - static preserveSettings() { - PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_LEO_SATS, settingsManager.isShowLeoSats.toString()); - PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_STARLINK_SATS, settingsManager.isShowStarlinkSats.toString()); - PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_HEO_SATS, settingsManager.isShowHeoSats.toString()); - PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_MEO_SATS, settingsManager.isShowMeoSats.toString()); - PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_GEO_SATS, settingsManager.isShowGeoSats.toString()); - PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_PAYLOADS, settingsManager.isShowPayloads.toString()); - PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_ROCKET_BODIES, settingsManager.isShowRocketBodies.toString()); - PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_DEBRIS, settingsManager.isShowDebris.toString()); - PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_AGENCIES, settingsManager.isShowAgencies.toString()); - PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_DRAW_CAMERA_WIDGET, settingsManager.drawCameraWidget.toString()); - PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_DRAW_ORBITS, settingsManager.isDrawOrbits.toString()); - PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_DRAW_TRAILING_ORBITS, settingsManager.isDrawTrailingOrbits.toString()); - PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_DRAW_ECF, settingsManager.isOrbitCruncherInEcf.toString()); - PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_DRAW_IN_COVERAGE_LINES, settingsManager.isDrawInCoverageLines.toString()); - PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_DRAW_SUN, settingsManager.isDrawSun.toString()); - PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_DRAW_BLACK_EARTH, settingsManager.isBlackEarth.toString()); - PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_DRAW_ATMOSPHERE, settingsManager.isDrawAtmosphere.toString()); - PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_DRAW_AURORA, settingsManager.isDrawAurora.toString()); - PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_DRAW_MILKY_WAY, settingsManager.isDrawMilkyWay.toString()); - PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_GRAY_SKYBOX, settingsManager.isGraySkybox.toString()); - PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_ECI_ON_HOVER, settingsManager.isEciOnHover.toString()); - PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_HOS, settingsManager.colors.transparent[3] === 0 ? 'true' : 'false'); - PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_CONFIDENCE_LEVELS, settingsManager.isShowConfidenceLevels.toString()); - PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_DEMO_MODE, settingsManager.isDemoModeOn.toString()); - PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_SAT_LABEL_MODE, settingsManager.isSatLabelModeOn.toString()); - PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_FREEZE_PROP_RATE_ON_DRAG, settingsManager.isFreezePropRateOnDrag.toString()); - PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_DISABLE_TIME_MACHINE_TOASTS, settingsManager.isDisableTimeMachineToasts.toString()); - PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_SEARCH_LIMIT, settingsManager.searchLimit.toString()); - } - private onColorSelected_(context: ColorPick, colorStr: string) { if (typeof context === 'undefined' || context === null) { throw new Error('context is undefined'); @@ -632,7 +602,7 @@ export class SettingsMenuPlugin extends KeepTrackPlugin { } } - private static resetToDefaults_() { + static resetToDefaults() { keepTrackApi.getSoundManager().play(SoundNames.BUTTON_CLICK); settingsManager.isShowLeoSats = true; settingsManager.isShowHeoSats = true; @@ -643,7 +613,7 @@ export class SettingsMenuPlugin extends KeepTrackPlugin { settingsManager.isShowDebris = true; settingsManager.isShowAgencies = false; settingsManager.isDrawOrbits = true; - settingsManager.drawCameraWidget = true; + settingsManager.drawCameraWidget = false; settingsManager.isDrawTrailingOrbits = false; settingsManager.isOrbitCruncherInEcf = false; settingsManager.isDrawInCoverageLines = true; @@ -662,7 +632,7 @@ export class SettingsMenuPlugin extends KeepTrackPlugin { settingsManager.isFreezePropRateOnDrag = false; settingsManager.isDisableTimeMachineToasts = false; settingsManager.searchLimit = 600; - SettingsMenuPlugin.preserveSettings(); + SettingsManager.preserveSettings(); SettingsMenuPlugin.syncOnLoad(); } @@ -798,7 +768,7 @@ export class SettingsMenuPlugin extends KeepTrackPlugin { colorSchemeManagerInstance.setColorScheme(colorSchemeManagerInstance.currentColorScheme, true); - SettingsMenuPlugin.preserveSettings(); + SettingsManager.preserveSettings(); } } diff --git a/src/settings/settings.ts b/src/settings/settings.ts index b16a06b7..ea87de19 100644 --- a/src/settings/settings.ts +++ b/src/settings/settings.ts @@ -90,6 +90,37 @@ export class SettingsManager { calculator: true, }; + static preserveSettings() { + PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_LEO_SATS, settingsManager.isShowLeoSats.toString()); + PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_STARLINK_SATS, settingsManager.isShowStarlinkSats.toString()); + PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_HEO_SATS, settingsManager.isShowHeoSats.toString()); + PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_MEO_SATS, settingsManager.isShowMeoSats.toString()); + PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_GEO_SATS, settingsManager.isShowGeoSats.toString()); + PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_PAYLOADS, settingsManager.isShowPayloads.toString()); + PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_ROCKET_BODIES, settingsManager.isShowRocketBodies.toString()); + PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_DEBRIS, settingsManager.isShowDebris.toString()); + PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_AGENCIES, settingsManager.isShowAgencies.toString()); + PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_DRAW_CAMERA_WIDGET, settingsManager.drawCameraWidget.toString()); + PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_DRAW_ORBITS, settingsManager.isDrawOrbits.toString()); + PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_DRAW_TRAILING_ORBITS, settingsManager.isDrawTrailingOrbits.toString()); + PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_DRAW_ECF, settingsManager.isOrbitCruncherInEcf.toString()); + PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_DRAW_IN_COVERAGE_LINES, settingsManager.isDrawInCoverageLines.toString()); + PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_DRAW_SUN, settingsManager.isDrawSun.toString()); + PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_DRAW_BLACK_EARTH, settingsManager.isBlackEarth.toString()); + PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_DRAW_ATMOSPHERE, settingsManager.isDrawAtmosphere.toString()); + PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_DRAW_AURORA, settingsManager.isDrawAurora.toString()); + PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_DRAW_MILKY_WAY, settingsManager.isDrawMilkyWay.toString()); + PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_GRAY_SKYBOX, settingsManager.isGraySkybox.toString()); + PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_ECI_ON_HOVER, settingsManager.isEciOnHover.toString()); + PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_HOS, settingsManager.colors.transparent[3] === 0 ? 'true' : 'false'); + PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_CONFIDENCE_LEVELS, settingsManager.isShowConfidenceLevels.toString()); + PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_DEMO_MODE, settingsManager.isDemoModeOn.toString()); + PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_SAT_LABEL_MODE, settingsManager.isSatLabelModeOn.toString()); + PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_FREEZE_PROP_RATE_ON_DRAG, settingsManager.isFreezePropRateOnDrag.toString()); + PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_DISABLE_TIME_MACHINE_TOASTS, settingsManager.isDisableTimeMachineToasts.toString()); + PersistenceManager.getInstance().saveItem(StorageKey.SETTINGS_SEARCH_LIMIT, settingsManager.searchLimit.toString()); + } + colors: ColorSchemeColorMap; /** Ensures no html is injected into the page */ @@ -1198,8 +1229,8 @@ export class SettingsManager { * Load Order: * URL Params > Local Storage > Default */ - this.loadOverrides_(settingsOverride); this.loadPersistedSettings(); + this.loadOverrides_(settingsOverride); const params = this.loadOverridesFromUrl_(); @@ -1469,7 +1500,7 @@ export class SettingsManager { this.externalTLEs = decodeURIComponent(val); break; case 'jsc': - this.isEnableJscCatalog = true; + this.isEnableJscCatalog = val === 'true'; break; case 'sat': keepTrackApi.register({ From ac80694878a878ce8498a1be35f1855c4aafceb1 Mon Sep 17 00:00:00 2001 From: Theodore Kruczek Date: Sat, 1 Feb 2025 16:32:48 -0500 Subject: [PATCH 3/3] test: :white_check_mark: fix test --- test/environment/TLE2.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/environment/TLE2.json b/test/environment/TLE2.json index fb8878bc..2bd3a6a0 100644 --- a/test/environment/TLE2.json +++ b/test/environment/TLE2.json @@ -1 +1 @@ -[{"TLE1":"1 00005U 58002B 23102.57063344 .00000078 00000+0 84911-4 0 9991","TLE2":"2 00005 34.2581 297.5582 1847009 304.1004 39.7575 10.85078443317039","payload":"Vanguard Test Satellite H","Mass":"2","vmag":9.5,"status":"In Orbit","launchDate":"1958 Mar 17","owner":"NRL","country":"US","manufacturer":"NRL","bus":"NRL 6\"","launchMass":"2","dryMass":"2","length":"0.1","diameter":"0.1","span":"0.1","shape":"Sphere","name":"VANGUARD 1","launchSite":"AFETR","launchVehicle":"U","type":1,"rcs":"0.1220"},{"TLE1":"1 00011U 59001A 23102.52381981 .00002247 00000+0 11744-2 0 9995","TLE2":"2 00011 32.8738 149.9410 1462946 303.7300 43.2162 11.86962895397182","payload":"Cloud cover satellite","Mass":"10","vmag":7.5,"name":"VANGUARD 2","country":"US","launchSite":"AFETR","launchVehicle":"U","launchDate":"1959 Feb 17","type":1,"rcs":"0.3931","status":"In Orbit","owner":"BSC","manufacturer":"NRL","bus":"NRL 20\"","launchMass":"10","dryMass":"10","length":"0.5","diameter":"0.5","span":"0.5","shape":"Sphere"},{"TLE1":"1 00012U 59001B 23102.10452989 .00002633 00000+0 15673-2 0 9991","TLE2":"2 00012 32.9014 350.5476 1660406 86.2571 292.5454 11.45391638397850","payload":"GRC 33-KS-2800 175-15-21","Mass":"195","vmag":6.5,"status":"In Orbit","launchDate":"1959 Feb 17","owner":"BSC","country":"US","manufacturer":"GCR","bus":"33-KS-2800","launchMass":"195","dryMass":"22","length":"1.5","diameter":"0.7","span":"1.5","shape":"Cyl","name":"VANGUARD R/B","launchSite":"AFETR","launchVehicle":"U","type":2,"rcs":"0.5266"},{"TLE1":"1 00016U 58002A 23102.24264491 .00000023 00000+0 39726-5 0 9998","TLE2":"2 00016 34.2783 63.7306 2025681 255.9344 80.9042 10.48822741566857","payload":"GRC 33-KS-2800 144-79-22","Mass":"195","vmag":7,"status":"In Orbit","launchDate":"1958 Mar 17","owner":"NRL","country":"US","manufacturer":"GCR","bus":"33-KS-2800","launchMass":"195","dryMass":"22","length":"1.5","diameter":"0.7","span":"1.5","shape":"Cyl","name":"VANGUARD R/B","launchSite":"AFETR","launchVehicle":"U","type":2,"rcs":"0.2282"},{"TLE1":"1 00020U 59007A 23102.46762352 .00003540 00000+0 14326-2 0 9995","TLE2":"2 00020 33.3469 114.0738 1659263 328.5202 22.5716 11.57283969349718","payload":"Magne-Ray satellite","Mass":"23","vmag":7,"status":"Attached in Orbit","launchDate":"1959 Sep 18","owner":"GSFC","country":"US","manufacturer":"NRL","bus":"NRL 20\"","launchMass":"23","dryMass":"23","length":"1.2","diameter":"0.5","span":"1.2","shape":"Sphere + Ant","name":"VANGUARD 3","launchSite":"AFETR","launchVehicle":"U","type":1,"rcs":"0.6412"},{"TLE1":"1 00022U 59009A 23102.83836663 .00005260 00000+0 37193-3 0 9996","TLE2":"2 00022 50.2818 302.6617 0128350 239.4768 119.3460 14.99973922379472","payload":"NASA S-1A","Mass":"41","vmag":7.5,"name":"EXPLORER 7","country":"US","launchSite":"AFETR","launchVehicle":"U","launchDate":"1959 Oct 13","type":1,"rcs":"0.5003","status":"In Orbit","owner":"GSFC","manufacturer":"ABMA","bus":"S-1","launchMass":"41","dryMass":"41","length":"0.8","diameter":"0.8","span":"7.0","shape":"DCone + 2 Ant"}] \ No newline at end of file +[{"tle1":"1 00005U 58002B 23102.57063344 .00000078 00000+0 84911-4 0 9991","tle2":"2 00005 34.2581 297.5582 1847009 304.1004 39.7575 10.85078443317039","payload":"Vanguard Test Satellite H","Mass":"2","vmag":9.5,"status":"In Orbit","launchDate":"1958 Mar 17","owner":"NRL","country":"US","manufacturer":"NRL","bus":"NRL 6\"","launchMass":"2","dryMass":"2","length":"0.1","diameter":"0.1","span":"0.1","shape":"Sphere","name":"VANGUARD 1","launchSite":"AFETR","launchVehicle":"U","type":1,"rcs":"0.1220"},{"tle1":"1 00011U 59001A 23102.52381981 .00002247 00000+0 11744-2 0 9995","tle2":"2 00011 32.8738 149.9410 1462946 303.7300 43.2162 11.86962895397182","payload":"Cloud cover satellite","Mass":"10","vmag":7.5,"name":"VANGUARD 2","country":"US","launchSite":"AFETR","launchVehicle":"U","launchDate":"1959 Feb 17","type":1,"rcs":"0.3931","status":"In Orbit","owner":"BSC","manufacturer":"NRL","bus":"NRL 20\"","launchMass":"10","dryMass":"10","length":"0.5","diameter":"0.5","span":"0.5","shape":"Sphere"},{"tle1":"1 00012U 59001B 23102.10452989 .00002633 00000+0 15673-2 0 9991","tle2":"2 00012 32.9014 350.5476 1660406 86.2571 292.5454 11.45391638397850","payload":"GRC 33-KS-2800 175-15-21","Mass":"195","vmag":6.5,"status":"In Orbit","launchDate":"1959 Feb 17","owner":"BSC","country":"US","manufacturer":"GCR","bus":"33-KS-2800","launchMass":"195","dryMass":"22","length":"1.5","diameter":"0.7","span":"1.5","shape":"Cyl","name":"VANGUARD R/B","launchSite":"AFETR","launchVehicle":"U","type":2,"rcs":"0.5266"},{"tle1":"1 00016U 58002A 23102.24264491 .00000023 00000+0 39726-5 0 9998","tle2":"2 00016 34.2783 63.7306 2025681 255.9344 80.9042 10.48822741566857","payload":"GRC 33-KS-2800 144-79-22","Mass":"195","vmag":7,"status":"In Orbit","launchDate":"1958 Mar 17","owner":"NRL","country":"US","manufacturer":"GCR","bus":"33-KS-2800","launchMass":"195","dryMass":"22","length":"1.5","diameter":"0.7","span":"1.5","shape":"Cyl","name":"VANGUARD R/B","launchSite":"AFETR","launchVehicle":"U","type":2,"rcs":"0.2282"},{"tle1":"1 00020U 59007A 23102.46762352 .00003540 00000+0 14326-2 0 9995","tle2":"2 00020 33.3469 114.0738 1659263 328.5202 22.5716 11.57283969349718","payload":"Magne-Ray satellite","Mass":"23","vmag":7,"status":"Attached in Orbit","launchDate":"1959 Sep 18","owner":"GSFC","country":"US","manufacturer":"NRL","bus":"NRL 20\"","launchMass":"23","dryMass":"23","length":"1.2","diameter":"0.5","span":"1.2","shape":"Sphere + Ant","name":"VANGUARD 3","launchSite":"AFETR","launchVehicle":"U","type":1,"rcs":"0.6412"},{"tle1":"1 00022U 59009A 23102.83836663 .00005260 00000+0 37193-3 0 9996","tle2":"2 00022 50.2818 302.6617 0128350 239.4768 119.3460 14.99973922379472","payload":"NASA S-1A","Mass":"41","vmag":7.5,"name":"EXPLORER 7","country":"US","launchSite":"AFETR","launchVehicle":"U","launchDate":"1959 Oct 13","type":1,"rcs":"0.5003","status":"In Orbit","owner":"GSFC","manufacturer":"ABMA","bus":"S-1","launchMass":"41","dryMass":"41","length":"0.8","diameter":"0.8","span":"7.0","shape":"DCone + 2 Ant"}] \ No newline at end of file