Merge pull request #1972 from fabianfrz/fix_localstorage_error

fix the localStorage issue from #1915
This commit is contained in:
Ad Schellevis 2017-12-03 13:37:30 +01:00 committed by GitHub
commit 97a1065cfd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 39 additions and 23 deletions

View File

@ -36,9 +36,10 @@
* @param value encoded text
* @return string decoded text
*/
function htmlDecode(value) {
return $("<textarea/>").html(value).text();
}
function htmlDecode(value) {
return $("<textarea/>").html(value).text();
}
/**
*
@ -240,17 +241,19 @@ function watchScrollPosition() {
}
// link on scroll event handler
$(window).scroll(function(){
sessionStorage.setItem('scrollpos', current_location()+"|"+$(window).scrollTop());
});
if (window.sessionStorage) {
$(window).scroll(function(){
sessionStorage.setItem('scrollpos', current_location()+"|"+$(window).scrollTop());
});
// move to last known position on page load
$( document ).ready(function() {
var scrollpos = sessionStorage.getItem('scrollpos');
if (scrollpos != null) {
if (scrollpos.split('|')[0] == current_location()) {
$(window).scrollTop(scrollpos.split('|')[1]);
// move to last known position on page load
$( document ).ready(function() {
var scrollpos = sessionStorage.getItem('scrollpos');
if (scrollpos != null) {
if (scrollpos.split('|')[0] == current_location()) {
$(window).scrollTop(scrollpos.split('|')[1]);
}
}
}
});
});
}
}

View File

@ -228,6 +228,7 @@ function addMultiSelectClearUI() {
});
}
/**
* setup form help buttons
*/
@ -243,17 +244,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 (window.sessionStorage) {
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 (window.sessionStorage) {
sessionStorage.setItem('all_help_preset', 0);
}
}
event.preventDefault();
});
if (sessionStorage.getItem('all_help_preset') == 1) {
if (window.sessionStorage && 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 +271,7 @@ function initFormHelpUI() {
* handle advanced show/hide
*/
function initFormAdvancedUI() {
if (sessionStorage.getItem('show_advanced_preset') == 1) {
if (window.sessionStorage && 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 +287,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 (window.sessionStorage) {
sessionStorage.setItem('show_advanced_preset', 1);
}
} else {
$('[data-advanced*="true"]').after("<tr data-advanced='hidden_row'></tr>").hide(); // the table row is added to keep correct table striping
sessionStorage.setItem('show_advanced_preset', 0);
if (window.sessionStorage) {
sessionStorage.setItem('show_advanced_preset', 0);
}
}
});
}

View File

@ -151,17 +151,21 @@ $pagetitle .= html_safe(sprintf(' | %s.%s', $config['system']['hostname'], $conf
$('[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 (window.sessionStorage) {
sessionStorage.setItem('all_help_preset', 1);
}
$('[for*="help_for"]').addClass("show");
$('[for*="help_for"]').removeClass("hidden");
} else {
sessionStorage.setItem('all_help_preset', 0);
if (window.sessionStorage) {
sessionStorage.setItem('all_help_preset', 0);
}
$('[for*="help_for"]').addClass("hidden");
$('[for*="help_for"]').removeClass("show");
}
event.preventDefault();
});
if (sessionStorage.getItem('all_help_preset') == 1) {
if (window.sessionStorage && 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");