From 28b6dff793428b1d0732f658cf2940eb01b24f08 Mon Sep 17 00:00:00 2001 From: Fabian Franz Date: Sat, 2 Dec 2017 18:35:25 +0100 Subject: [PATCH 1/4] fix the localStorage issue from #1915 --- src/opnsense/www/js/opnsense_ui.js | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/src/opnsense/www/js/opnsense_ui.js b/src/opnsense/www/js/opnsense_ui.js index 9824f5865..d1e133e28 100644 --- a/src/opnsense/www/js/opnsense_ui.js +++ b/src/opnsense/www/js/opnsense_ui.js @@ -228,6 +228,15 @@ function addMultiSelectClearUI() { }); } +function checkSessionStorageExists() { + if ('sessionStorage' in window) { + if (window.sessionStorage != null) { + return true; + } + } + return false; +} + /** * setup form help buttons */ @@ -243,17 +252,21 @@ function initFormHelpUI() { $('[id*="show_all_help"]').toggleClass("fa-toggle-on fa-toggle-off"); $('[id*="show_all_help"]').toggleClass("text-success text-danger"); if ($('[id*="show_all_help"]').hasClass("fa-toggle-on")) { - sessionStorage.setItem('all_help_preset', 1); + if (checkSessionStorageExists()) { + sessionStorage.setItem('all_help_preset', 1); + } $('[for*="help_for"]').addClass("show"); $('[for*="help_for"]').removeClass("hidden"); } else { $('[for*="help_for"]').addClass("hidden"); $('[for*="help_for"]').removeClass("show"); - sessionStorage.setItem('all_help_preset', 0); + if (checkSessionStorageExists()) { + sessionStorage.setItem('all_help_preset', 0); + } } event.preventDefault(); }); - if (sessionStorage.getItem('all_help_preset') == 1) { + if (checkSessionStorageExists() && sessionStorage.getItem('all_help_preset') == 1) { // show all help messages when preset was stored $('[id*="show_all_help"]').toggleClass("fa-toggle-on fa-toggle-off"); $('[id*="show_all_help"]').toggleClass("text-success text-danger"); @@ -266,7 +279,7 @@ function initFormHelpUI() { * handle advanced show/hide */ function initFormAdvancedUI() { - if (sessionStorage.getItem('show_advanced_preset') == 1) { + if (checkSessionStorageExists() && sessionStorage.getItem('show_advanced_preset') == 1) { // show advanced options when preset was stored $('[id*="show_advanced"]').toggleClass("fa-toggle-on fa-toggle-off"); $('[id*="show_advanced"]').toggleClass("text-success text-danger"); @@ -282,10 +295,14 @@ function initFormAdvancedUI() { if ($('[id*="show_advanced"]').hasClass("fa-toggle-on")) { $('[data-advanced*="true"]').show(); $('[data-advanced*="hidden_row"]').remove(); // the table row is deleted to keep correct table striping - sessionStorage.setItem('show_advanced_preset', 1); + if (checkSessionStorageExists()) { + sessionStorage.setItem('show_advanced_preset', 1); + } } else { $('[data-advanced*="true"]').after("").hide(); // the table row is added to keep correct table striping - sessionStorage.setItem('show_advanced_preset', 0); + if (checkSessionStorageExists()) { + sessionStorage.setItem('show_advanced_preset', 0); + } } }); } From b2f0465cecf4b40cdad4e31615832dd86081099a Mon Sep 17 00:00:00 2001 From: Fabian Franz Date: Sat, 2 Dec 2017 19:21:14 +0100 Subject: [PATCH 2/4] add the fix to the other files too --- src/opnsense/www/js/opnsense.js | 45 ++++++++++++++++++++---------- src/opnsense/www/js/opnsense_ui.js | 8 ------ src/www/head.inc | 10 +++++-- 3 files changed, 38 insertions(+), 25 deletions(-) diff --git a/src/opnsense/www/js/opnsense.js b/src/opnsense/www/js/opnsense.js index f5254e9ec..7e76342a8 100644 --- a/src/opnsense/www/js/opnsense.js +++ b/src/opnsense/www/js/opnsense.js @@ -36,9 +36,24 @@ * @param value encoded text * @return string decoded text */ - function htmlDecode(value) { - return $("