From b28b002e6b3f2335204449d77d41e32e349b8e60 Mon Sep 17 00:00:00 2001 From: Jordan T Date: Wed, 19 Aug 2020 10:40:07 -0500 Subject: [PATCH] Dynamically change theme css --- web/index.html | 1 + web/js/main.js | 16 ++++++++++++++++ web/plates/js/settings.js | 8 +++++++- 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/web/index.html b/web/index.html index 66e17266..87b342a7 100644 --- a/web/index.html +++ b/web/index.html @@ -50,6 +50,7 @@ + diff --git a/web/js/main.js b/web/js/main.js index bf62e8b0..3a263955 100755 --- a/web/js/main.js +++ b/web/js/main.js @@ -99,7 +99,23 @@ app.controller('MainCtrl', function ($scope, $http) { .then(function(response) { var settings = angular.fromJson(response.data); $scope.DeveloperMode = settings.DeveloperMode; + + // Update theme + $scope.updateTheme(settings.DarkMode); }, function(response) { //Second function handles error }); + + $scope.updateTheme = function(darkMode) { + if(darkMode != $scope.DarkMode) { + // console.log("Updating theme, use dark mode?", darkMode); + $scope.DarkMode = darkMode; + + if($scope.DarkMode) { + document.getElementById('themeStylesheet').href = 'css/dark-mode.css'; + } else { + document.getElementById('themeStylesheet').href = ''; + } + } + }; }); diff --git a/web/plates/js/settings.js b/web/plates/js/settings.js index 48cac472..210a42d6 100644 --- a/web/plates/js/settings.js +++ b/web/plates/js/settings.js @@ -8,7 +8,7 @@ function SettingsCtrl($rootScope, $scope, $state, $location, $window, $http) { $scope.$parent.helppage = 'plates/settings-help.html'; var toggles = ['UAT_Enabled', 'ES_Enabled', 'Ping_Enabled', 'GPS_Enabled', 'IMU_Sensor_Enabled', - 'BMP_Sensor_Enabled', 'DisplayTrafficSource', 'DEBUG', 'ReplayLog', 'AHRSLog']; + 'BMP_Sensor_Enabled', 'DisplayTrafficSource', 'DEBUG', 'ReplayLog', 'AHRSLog', 'DarkMode']; var settings = {}; for (var i = 0; i < toggles.length; i++) { settings[toggles[i]] = undefined; @@ -24,6 +24,9 @@ function SettingsCtrl($rootScope, $scope, $state, $location, $window, $http) { $scope.Baud = settings.SerialOutputs['/dev/serialout0'].Baud; $scope.visible_serialout = true; } + + $scope.DarkMode = settings.DarkMode; + $scope.UAT_Enabled = settings.UAT_Enabled; $scope.ES_Enabled = settings.ES_Enabled; $scope.Ping_Enabled = settings.Ping_Enabled; @@ -50,6 +53,9 @@ function SettingsCtrl($rootScope, $scope, $state, $location, $window, $http) { $scope.WiFiSmartEnabled = settings.WiFiSmartEnabled; $scope.Channels = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]; + + // Update theme + $scope.$parent.updateTheme($scope.DarkMode); } function getSettings() {