From b63c02673a23bb704bdd65d8410aaa53099ad1c1 Mon Sep 17 00:00:00 2001 From: Ivan Efimov Date: Sat, 2 Oct 2021 03:16:46 -0500 Subject: [PATCH] Expert mode toggle refactoring --- src/js/TuningSliders.js | 6 +++--- src/js/main.js | 12 ++++++++---- src/js/tabs/pid_tuning.js | 5 +++++ 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/js/TuningSliders.js b/src/js/TuningSliders.js index 09023f25..ea12bce9 100644 --- a/src/js/TuningSliders.js +++ b/src/js/TuningSliders.js @@ -115,7 +115,7 @@ TuningSliders.initialize = function() { this.setDMinFeatureEnabled($('#dMinSwitch').is(':checked')); } - this.setExpertMode($('input[name="expertModeCheckbox"]').is(':checked')); + this.setExpertMode(isExpertModeEnabled()); this.initPidSlidersPosition(); this.initGyroFilterSliderPosition(); @@ -130,8 +130,8 @@ TuningSliders.initialize = function() { this.updateFilterSlidersDisplay(); }; -TuningSliders.setExpertMode = function() { - this.expertMode = isExpertModeEnabled(); +TuningSliders.setExpertMode = function(expertModeEnabled) { + this.expertMode = expertModeEnabled; if (semver.gte(FC.CONFIG.apiVersion, API_VERSION_1_44)) { document.getElementById('sliderDMaxGain').disabled = !this.expertMode; diff --git a/src/js/main.js b/src/js/main.js index 839c1f4b..65636be0 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -515,8 +515,8 @@ function startProcess() { $(expertModeCheckbox).prop('checked', true); } - $(expertModeCheckbox).change(function () { - const checked = $(this).is(':checked'); + $(expertModeCheckbox).on("change", () => { + const checked = $(expertModeCheckbox).is(':checked'); checkSetupAnalytics(function (analyticsService) { analyticsService.setDimension(analyticsService.DIMENSIONS.CONFIGURATOR_EXPERT_MODE, checked ? 'On' : 'Off'); }); @@ -525,8 +525,12 @@ function startProcess() { updateTabList(FC.FEATURE_CONFIG.features); } - TuningSliders.setExpertMode(checked); - }).change(); + if (GUI.active_tab) { + TABS[GUI.active_tab]?.expertModeChanged?.(checked); + } + }); + + $(expertModeCheckbox).trigger("change"); }); ConfigStorage.get('cliAutoComplete', function (result) { diff --git a/src/js/tabs/pid_tuning.js b/src/js/tabs/pid_tuning.js index de32bc89..f7cc4063 100644 --- a/src/js/tabs/pid_tuning.js +++ b/src/js/tabs/pid_tuning.js @@ -3017,3 +3017,8 @@ TABS.pid_tuning.changeRatesTypeLogo = function() { break; } }; + + +TABS.pid_tuning.expertModeChanged = function(expertModeEnabled) { + TuningSliders.setExpertMode(expertModeEnabled); +};