/** Settings box. 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);