Files
conservatorio-tomadini/media/com_jem/js/slider-state.js
2024-12-17 17:34:10 +01:00

59 lines
1.8 KiB
JavaScript

/**
* @package JEM
* @copyright (C) 2013-2015 joomlaeventmanager.net
* @copyright (C) 2005-2009 Christoph Lukes
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
*/
/**
* JavaScript behavior to allow selected collapse to be remained after save or page reload
* keeping state in localstorage
*
* @todo use id's for sliders + finetune
*/
jQuery(function() {
var loadcollapse = function() {
var $ = jQuery.noConflict();
jQuery(document).find('a[data-toggle="collapse"]').on('click', function(e) {
// Store the selected collapse href in localstorage
window.localStorage.setItem('collapse-href', $(e.target).attr('href'));
});
var activatecollapse = function(href) {
var $el = $('a[data-toggle="collapse"]a[href*=' + href + ']');
var $el2 = $el.parent().parent().parent();
var $el3 = $el2.find(".accordion-body");
$el3.collapse('show');
};
var hascollapse = function(href){
return $('a[data-toggle="collapse"]a[href*=' + href + ']').length;
};
if (localStorage.getItem('collapse-href')) {
// When moving from collapse area to a different view
if(!hascollapse(localStorage.getItem('collapse-href'))){
localStorage.removeItem('collapse-href');
return true;
}
// Clean default collapse
$('a[data-toggle="collapse"]').parent().removeClass('in');
var collapsehref = localStorage.getItem('collapse-href');
// Add active attribute for selected collapse indicated by url
activatecollapse(collapsehref);
// Check whether internal collapse is selected (in format <collapsename>-<id>)
var seperatorIndex = collapsehref.indexOf('-');
if (seperatorIndex !== -1) {
var singular = collapsehref.substring(0, seperatorIndex);
var plural = singular + "s";
activatecollapse(plural);
}
}
};
setTimeout(loadcollapse, 100);
});