/** * Toggles * * Non-animation */ ;(function($, window, undefined) { "use strict"; $(document).ready(function() { // Chat Toggler $('a[data-toggle="chat"]').each(function(i, el) { $(el).on('click', function(ev) { ev.preventDefault(); public_vars.$body.toggleClass('chat-open'); if($.isFunction($.fn.perfectScrollbar)) { setTimeout(function() { public_vars.$chat.find('.chat_inner').perfectScrollbar('update'); $(window).trigger('xenon.resize'); }, 1); } }); }); // Settings Pane Toggler $('a[data-toggle="settings-pane"]').each(function(i, el) { $(el).on('click', function(ev) { ev.preventDefault(); var use_animation = attrDefault($(el), 'animate', false) && ! isxs(); var scroll = { top: $(document).scrollTop(), toTop: 0 }; if(public_vars.$body.hasClass('settings-pane-open')) { scroll.toTop = scroll.top; } TweenMax.to(scroll, (use_animation ? .1 : 0), {top: scroll.toTop, roundProps: ['top'], ease: scroll.toTop < 10 ? null : Sine.easeOut, onUpdate: function() { $(window).scrollTop( scroll.top ); }, onComplete: function() { if(use_animation) { // With Animation public_vars.$settingsPaneIn.addClass('with-animation'); // Opening if( ! public_vars.$settingsPane.is(':visible')) { public_vars.$body.addClass('settings-pane-open'); var height = public_vars.$settingsPane.outerHeight(true); public_vars.$settingsPane.css({ height: 0 }); TweenMax.to(public_vars.$settingsPane, .25, {css: {height: height}, ease: Circ.easeInOut, onComplete: function() { public_vars.$settingsPane.css({height: ''}); }}); public_vars.$settingsPaneIn.addClass('visible'); } // Closing else { public_vars.$settingsPaneIn.addClass('closing'); TweenMax.to(public_vars.$settingsPane, .25, {css: {height: 0}, delay: .15, ease: Power1.easeInOut, onComplete: function() { public_vars.$body.removeClass('settings-pane-open'); public_vars.$settingsPane.css({height: ''}); public_vars.$settingsPaneIn.removeClass('closing visible'); }}); } } else { // Without Animation public_vars.$body.toggleClass('settings-pane-open'); public_vars.$settingsPaneIn.removeClass('visible'); public_vars.$settingsPaneIn.removeClass('with-animation'); } } }); }); }); // Sidebar Toggle $('a[data-toggle="sidebar"]').each(function(i, el) { $(el).on('click', function(ev) { ev.preventDefault(); if(public_vars.$sidebarMenu.hasClass('collapsed')) { public_vars.$sidebarMenu.removeClass('collapsed'); ps_init(); } else { public_vars.$sidebarMenu.addClass('collapsed'); ps_destroy(); } $(window).trigger('xenon.resize'); }); }); // Mobile Menu Trigger $('a[data-toggle="mobile-menu"]').on('click', function(ev) { ev.preventDefault(); public_vars.$mainMenu.add(public_vars.$sidebarProfile).toggleClass('mobile-is-visible'); ps_destroy(); }); // Mobile Menu Trigger for Horizontal Menu $('a[data-toggle="mobile-menu-horizontal"]').on('click', function(ev) { ev.preventDefault(); public_vars.$horizontalMenu.toggleClass('mobile-is-visible'); }); // Mobile Menu Trigger for Sidebar & Horizontal Menu $('a[data-toggle="mobile-menu-both"]').on('click', function(ev) { ev.preventDefault(); public_vars.$mainMenu.toggleClass('mobile-is-visible both-menus-visible'); public_vars.$horizontalMenu.toggleClass('mobile-is-visible both-menus-visible'); }); // Mobile User Info Menu Trigger $('a[data-toggle="user-info-menu"]').on('click', function(ev) { ev.preventDefault(); public_vars.$userInfoMenu.toggleClass('mobile-is-visible'); }); // Mobile User Info Menu Trigger for Horizontal Menu $('a[data-toggle="user-info-menu-horizontal"]').on('click', function(ev) { ev.preventDefault(); public_vars.$userInfoMenuHor.find('.nav.nav-userinfo').toggleClass('mobile-is-visible'); }); // Panel Close $('body').on('click', '.panel a[data-toggle="remove"]', function(ev) { ev.preventDefault(); var $panel = $(this).closest('.panel'), $panel_parent = $panel.parent(); $panel.remove(); if($panel_parent.children().length == 0) { $panel_parent.remove(); } }); // Panel Reload $('body').on('click', '.panel a[data-toggle="reload"]', function(ev) { ev.preventDefault(); var $panel = $(this).closest('.panel'); // This is just a simulation, nothing is going to be reloaded $panel.append('
'); var $pd = $panel.find('.panel-disabled'); setTimeout(function() { $pd.fadeOut('fast', function() { $pd.remove(); }); }, 500 + 300 * (Math.random() * 5)); }); // Panel Expand/Collapse Toggle $('body').on('click', '.panel a[data-toggle="panel"]', function(ev) { ev.preventDefault(); var $panel = $(this).closest('.panel'); $panel.toggleClass('collapsed'); }); // Loading Text toggle $('[data-loading-text]').each(function(i, el) // Temporary for demo purpose only { var $this = $(el); $this.on('click', function(ev) { $this.button('loading'); setTimeout(function(){ $this.button('reset'); }, 1800); }); }); // Popovers and tooltips $('[data-toggle="popover"]').each(function(i, el) { var $this = $(el), placement = attrDefault($this, 'placement', 'right'), trigger = attrDefault($this, 'trigger', 'click'), popover_class = $this.get(0).className.match(/(popover-[a-z0-9]+)/i); $this.popover({ placement: placement, trigger: trigger }); if(popover_class) { $this.removeClass(popover_class[1]); $this.on('show.bs.popover', function(ev) { setTimeout(function() { var $popover = $this.next(); $popover.addClass(popover_class[1]); }, 0); }); } }); $('[data-toggle="tooltip"]').each(function(i, el) { var $this = $(el), placement = attrDefault($this, 'placement', 'top'), trigger = attrDefault($this, 'trigger', 'hover'), tooltip_class = $this.get(0).className.match(/(tooltip-[a-z0-9]+)/i); $this.tooltip({ placement: placement, trigger: trigger }); if(tooltip_class) { $this.removeClass(tooltip_class[1]); $this.on('show.bs.tooltip', function(ev) { setTimeout(function() { var $tooltip = $this.next(); $tooltip.addClass(tooltip_class[1]); }, 0); }); } }); }); })(jQuery, window);