/**
|
<b>Settings box</b>. It's good for demo only. You don't need this.
|
*/
|
(function($ , undefined) {
|
|
$('#ace-settings-btn').on(ace.click_event, function(e){
|
e.preventDefault();
|
|
$(this).toggleClass('open');
|
$('#ace-settings-box').toggleClass('open');
|
})
|
|
$('#ace-settings-navbar').on('click', function(){
|
ace.settingFunction.navbar_fixed(null, this.checked);
|
})
|
|
$('#ace-settings-sidebar').on('click', function(){
|
ace.settingFunction.sidebar_fixed(null, this.checked);
|
})
|
|
$('#ace-settings-breadcrumbs').on('click', function(){
|
ace.settingFunction.breadcrumbs_fixed(null, this.checked);
|
})
|
|
$('#ace-settings-add-container').on('click', function(){
|
ace.settingFunction.main_container_fixed(null, this.checked);
|
})
|
|
|
|
$('#ace-settings-compact').on('click', function(){
|
if(this.checked) {
|
$('#sidebar').addClass('compact');
|
var hover = $('#ace-settings-hover');
|
if( hover.length > 0 ) {
|
hover.removeAttr('checked').trigger('click');
|
}
|
}
|
else {
|
$('#sidebar').removeClass('compact');
|
$('#sidebar[data-sidebar-scroll=true]').ace_sidebar_scroll('reset')
|
}
|
|
if(ace.vars['old_ie']) ace.helper.redraw($('#sidebar')[0], true);
|
})
|
|
|
$('#ace-settings-highlight').on('click', function(){
|
if(this.checked) $('#sidebar .nav-list > li').addClass('highlight');
|
else $('#sidebar .nav-list > li').removeClass('highlight');
|
|
if(ace.vars['old_ie']) ace.helper.redraw($('#sidebar')[0]);
|
})
|
|
|
$('#ace-settings-hover').on('click', function(){
|
if($('#sidebar').hasClass('h-sidebar')) return;
|
if(this.checked) {
|
$('#sidebar li').addClass('hover')
|
.filter('.open').removeClass('open').find('> .submenu').css('display', 'none');
|
//and remove .open items
|
}
|
else {
|
$('#sidebar li.hover').removeClass('hover');
|
|
var compact = $('#ace-settings-compact');
|
if( compact.length > 0 && compact.get(0).checked ) {
|
compact.trigger('click');
|
}
|
}
|
|
$('.sidebar[data-sidebar-hover=true]').ace_sidebar_hover('reset')
|
$('.sidebar[data-sidebar-scroll=true]').ace_sidebar_scroll('reset')
|
|
if(ace.vars['old_ie']) ace.helper.redraw($('#sidebar')[0]);
|
})
|
|
|
|
//these are only for Ace demo!
|
//we want to save only important states(sidebar-fixed and sidebar-collapsed) so before fixing sidebar or collpasing it, hide mobile menu or remove extra classes!
|
//and then save class name, etc to localStorage for later retrieval
|
|
/**
|
$(document).on('presettings.ace', function(ev, event_name, event_val, event_source, save_state) {
|
if( !save_state ) return false;
|
|
var $event_name = event_name;
|
if( (event_name == 'sidebar_fixed' || event_name == 'sidebar_collapsed') ) {
|
var sidebar = event_source ? $(event_source) : $('#sidebar');
|
var tmpClassName = sidebar.attr('class');
|
sidebar.attr('class', event_name == 'sidebar_fixed' ? 'sidebar-fixed' : 'menu-min');//don't save these classes in demo
|
|
//we don't use 'one' because other 'settings.ace' events could be triggered before the 'sidebar_*' one!
|
$(document).on('settings.ace.sidebar', function(ev, event_name) {
|
if( (event_name == $event_name) ) {
|
sidebar.addClass(tmpClassName);
|
$(document).off('settings.ace.sidebar');
|
}
|
});
|
}
|
else if( (event_name == 'navbar_fixed') ) {
|
var navbar = event_source ? $(event_source) : $('#navbar');
|
var tmpClassName = navbar.attr('class');
|
navbar.attr('class', 'navbar-fixed-top');//don't save these classes in demo
|
|
//we don't use 'one' because other 'settings.ace' events could be triggered before the 'sidebar_*' one!
|
$(document).on('settings.ace.navbar', function(ev, event_name) {
|
if( (event_name == $event_name) ) {
|
navbar.addClass(tmpClassName);
|
$(document).off('settings.ace.navbar');
|
}
|
});
|
}
|
|
});
|
*/
|
|
|
//check/uncheck the checkbox in settings box
|
var checkbox = this;
|
$(document).on('settings.ace', function(ev, event_name, event_val, event_source, save_state) {
|
var checkbox = '';
|
switch(event_name) {
|
case 'navbar_fixed':
|
checkbox = 'ace-settings-navbar';
|
break;
|
|
case 'sidebar_fixed':
|
checkbox = 'ace-settings-sidebar';
|
break;
|
|
case 'breadcrumbs_fixed':
|
checkbox = 'ace-settings-breadcrumbs';
|
break;
|
|
case 'main_container_fixed':
|
checkbox = 'ace-settings-add-container';
|
break;
|
}
|
|
if( checkbox && (checkbox = document.getElementById(checkbox)) ) {
|
$(checkbox).prop('checked', event_val);
|
|
try {
|
if(save_state == true) ace.settings.saveState(checkbox, 'checked');
|
} catch(e) {}
|
}
|
});
|
|
|
////
|
ace.settingFunction = {
|
navbar_fixed : function(navbar, fixed , save, chain) {
|
if(ace.vars['very_old_ie']) return false;
|
|
var navbar = navbar || '#navbar';
|
if(typeof navbar === 'string') navbar = $(navbar).get(0);
|
if(!navbar) return false;
|
|
var fixed = fixed || false;
|
var save = typeof save !== 'undefined' ? save : true;
|
|
|
var event;
|
$(document).trigger(event = $.Event('presettings.ace'), ['navbar_fixed' , fixed , navbar, save]);
|
if (event.isDefaultPrevented()) {
|
return false;
|
}
|
|
|
if(chain !== false && !fixed) {
|
//unfix sidebar as well
|
var sidebar = $('#sidebar');
|
if(sidebar.hasClass('sidebar-fixed')) {
|
ace.settingFunction.sidebar_fixed(sidebar.get(0), false, save);
|
}
|
}
|
|
if(fixed) {
|
$(navbar).addClass('navbar-fixed-top');
|
} else {
|
$(navbar).removeClass('navbar-fixed-top');
|
}
|
|
if(save) {
|
ace.settings.saveState(navbar, 'class', 'navbar-fixed-top', fixed);//the 'last' boolean means whether to append this classname or to remove it from previous value
|
}
|
|
$(document).trigger('settings.ace', ['navbar_fixed' , fixed , navbar, save]);
|
},
|
|
|
sidebar_fixed : function(sidebar, fixed , save, chain) {
|
if(ace.vars['very_old_ie']) return false;
|
|
var sidebar = sidebar || '#sidebar';
|
if(typeof sidebar === 'string') sidebar = $(sidebar).get(0);
|
if(!sidebar) return false;
|
|
|
var fixed = fixed || false;
|
var save = typeof save !== 'undefined' ? save : true;
|
|
|
var event;
|
$(document).trigger(event = $.Event('presettings.ace'), ['sidebar_fixed' , fixed , sidebar, save]);
|
if (event.isDefaultPrevented()) {
|
return false;
|
}
|
|
|
if(chain !== false) {
|
if(fixed) {
|
//fix navbar as well
|
ace.settingFunction.navbar_fixed(null, true, save);
|
}
|
|
else {
|
//unfix breadcrumbs as well
|
ace.settingFunction.breadcrumbs_fixed(null, false, save);
|
}
|
}
|
|
var toggler = $('#menu-toggler');
|
if(fixed) {
|
$(sidebar).addClass('sidebar-fixed');
|
toggler.addClass('fixed');
|
} else {
|
$(sidebar).removeClass('sidebar-fixed');
|
toggler.removeClass('fixed');
|
}
|
|
if( save ) {
|
ace.settings.saveState(sidebar, 'class', 'sidebar-fixed', fixed);//the 'last' boolean means whether to append this classname or to remove it from previous value
|
if(toggler.length != 0) ace.settings.saveState(toggler[0], 'class', 'fixed', fixed);
|
}
|
|
$(document).trigger('settings.ace', ['sidebar_fixed' , fixed , sidebar, save]);
|
},
|
|
//fixed position
|
breadcrumbs_fixed : function(breadcrumbs, fixed , save, chain) {
|
if(ace.vars['very_old_ie']) return false;
|
|
var breadcrumbs = breadcrumbs || '#breadcrumbs';
|
if(typeof breadcrumbs === 'string') breadcrumbs = $(breadcrumbs).get(0);
|
if(!breadcrumbs) return false;
|
|
var fixed = fixed || false;
|
var save = typeof save !== 'undefined' ? save : true;
|
|
|
var event;
|
$(document).trigger(event = $.Event('presettings.ace'), ['breadcrumbs_fixed' , fixed , breadcrumbs, save]);
|
if (event.isDefaultPrevented()) {
|
return false;
|
}
|
|
|
if(fixed && chain !== false) {
|
//fix sidebar and navbar as well
|
ace.settingFunction.sidebar_fixed(null, true, save);
|
}
|
|
if(fixed) {
|
$(breadcrumbs).addClass('breadcrumbs-fixed');
|
} else {
|
$(breadcrumbs).removeClass('breadcrumbs-fixed');
|
}
|
|
if( save ) {
|
ace.settings.saveState(breadcrumbs, 'class', 'breadcrumbs-fixed', fixed);
|
}
|
|
$(document).trigger('settings.ace', ['breadcrumbs_fixed' , fixed , breadcrumbs, save]);
|
},
|
|
//fixed size
|
main_container_fixed : function(main_container, fixed , save) {
|
if(ace.vars['very_old_ie']) return false;
|
|
var fixed = fixed || false;//fixed width? inside .container
|
var save = typeof save !== 'undefined' ? save : true;
|
|
var main_container = main_container || '#main-container';
|
if(typeof main_container === 'string') main_container = $(main_container).get(0);
|
if(!main_container) return false;
|
|
|
var event;
|
$(document).trigger(event = $.Event('presettings.ace'), ['main_container_fixed' , fixed , main_container, save]);
|
if (event.isDefaultPrevented()) {
|
return false;
|
}
|
|
|
var navbar_container = $('#navbar-container');
|
if(fixed) {
|
$(main_container).addClass('container');
|
$(navbar_container).addClass('container');
|
} else {
|
$(main_container).removeClass('container');
|
$(navbar_container).removeClass('container');
|
}
|
|
|
if( save ) {
|
ace.settings.saveState(main_container, 'class', 'container', fixed);
|
if(navbar_container.length != 0) ace.settings.saveState(navbar_container[0], 'class', 'container', fixed);
|
}
|
|
|
if(navigator.userAgent.match(/webkit/i)) {
|
//webkit has a problem redrawing and moving around the sidebar background in realtime
|
//so we do this, to force redraw
|
//there will be no problems with webkit if the ".container" class is statically put inside HTML code.
|
$('#sidebar').toggleClass('menu-min')
|
setTimeout(function() { $('#sidebar').toggleClass('menu-min') } , 10)
|
}
|
|
$(document).trigger('settings.ace', ['main_container_fixed', fixed, main_container, save]);
|
}
|
/**
|
,
|
sidebar_collapsed : function(sidebar, collapsed , save) {
|
if(ace.vars['very_old_ie']) return false;
|
|
var sidebar = sidebar || '#sidebar';
|
if(typeof sidebar === 'string') sidebar = $(sidebar).get(0);
|
if(!sidebar) return false;
|
|
var collapsed = collapsed || false;
|
var save = typeof save !== 'undefined' ? save : true;
|
|
|
var event;
|
$(document).trigger(event = $.Event('presettings.ace'), ['sidebar_collapsed' , collapsed , sidebar, save]);
|
if (event.isDefaultPrevented()) {
|
return false;
|
}
|
|
|
if(collapsed) {
|
$('#sidebar').addClass('menu-min');
|
} else {
|
$('#sidebar').removeClass('menu-min');
|
}
|
|
if( save ) {
|
ace.settings.saveState(sidebar, 'class', 'menu-min', collapsed);//the 'last' boolean means whether to append this classname or to remove it from previous value
|
}
|
|
$(document).trigger('settings.ace', ['sidebar_collapsed' , collapsed, sidebar, save]);
|
}
|
*/
|
}
|
|
|
})(jQuery);
|