//= require easy_cms/bootstrap.min //= require easy_cms/material.min //= require easy_cms/chartist.min //= require easy_cms/bootstrap-notify /*! ========================================================= * Material Dashboard - v1.1.1 ========================================================= * Product Page: http://www.creative-tim.com/product/material-dashboard * Copyright 2017 Creative Tim (http://www.creative-tim.com) * Licensed under MIT (https://github.com/creativetimofficial/material-dashboard/blob/master/LICENSE.md) ========================================================= * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. */ // Material Dashboard Wizard Functions var searchVisible = 0; var transparent = true; var transparentDemo = true; var fixedTop = false; var mobile_menu_visible = 0, mobile_menu_initialized = false, toggle_initialized = false, bootstrap_nav_initialized = false; var seq = 0, delays = 80, durations = 500; var seq2 = 0, delays2 = 80, durations2 = 500; $(document).ready(function(){ $sidebar = $('.sidebar'); $.material.init(); md.initSidebarsCheck(); window_width = $(window).width(); // check if there is an image set for the sidebar's background md.checkSidebarImage(); // Activate the tooltips $('[rel="tooltip"]').tooltip(); $('.form-control').on("focus", function(){ $(this).parent('.input-group').addClass("input-group-focus"); }).on("blur", function(){ $(this).parent(".input-group").removeClass("input-group-focus"); }); }); // activate collapse right menu when the windows is resized $(window).resize(function(){ md.initSidebarsCheck(); // reset the seq for charts drawing animations seq = seq2 = 0; }); md = { misc:{ navbar_menu_visible: 0, active_collapse: true, disabled_collapse_init: 0, }, checkSidebarImage: function(){ $sidebar = $('.sidebar'); image_src = $sidebar.data('image'); if(image_src !== undefined){ sidebar_container = '
' $sidebar.append(sidebar_container); } }, initSidebarsCheck: function(){ if($(window).width() <= 991){ if($sidebar.length != 0){ md.initRightMenu(); } else { md.initBootstrapNavbarMenu(); } } }, checkScrollForTransparentNavbar: debounce(function() { if($(document).scrollTop() > 260 ) { if(transparent) { transparent = false; $('.navbar-color-on-scroll').removeClass('navbar-transparent'); } } else { if( !transparent ) { transparent = true; $('.navbar-color-on-scroll').addClass('navbar-transparent'); } } }, 17), initRightMenu: debounce(function(){ $sidebar_wrapper = $('.sidebar-wrapper'); if(!mobile_menu_initialized){ $navbar = $('nav').find('.navbar-collapse').first().clone(true); nav_content = ''; mobile_menu_content = ''; $navbar.children('ul').each(function(){ content_buff = $(this).html(); nav_content = nav_content + content_buff; }); nav_content = ' '; $navbar_form = $('nav').find('.navbar-form').clone(true); $sidebar_nav = $sidebar_wrapper.find(' > .nav'); // insert the navbar form before the sidebar list $nav_content = $(nav_content); $nav_content.insertBefore($sidebar_nav); $navbar_form.insertBefore($nav_content); $(".sidebar-wrapper .dropdown .dropdown-menu > li > a").click(function(event) { event.stopPropagation(); }); mobile_menu_initialized = true; } else { if($(window).width() > 991){ // reset all the additions that we made for the sidebar wrapper only if the screen is bigger than 991px $sidebar_wrapper.find('.navbar-form').remove(); $sidebar_wrapper.find('.nav-mobile-menu').remove(); mobile_menu_initialized = false; } } if(!toggle_initialized){ $toggle = $('.navbar-toggle'); $toggle.click(function (){ if(mobile_menu_visible == 1) { $('html').removeClass('nav-open'); $('.close-layer').remove(); setTimeout(function(){ $toggle.removeClass('toggled'); }, 400); mobile_menu_visible = 0; } else { setTimeout(function(){ $toggle.addClass('toggled'); }, 430); main_panel_height = $('.main-panel')[0].scrollHeight; $layer = $(''); $layer.css('height',main_panel_height + 'px'); $layer.appendTo(".main-panel"); setTimeout(function(){ $layer.addClass('visible'); }, 100); $layer.click(function() { $('html').removeClass('nav-open'); mobile_menu_visible = 0; $layer.removeClass('visible'); setTimeout(function(){ $layer.remove(); $toggle.removeClass('toggled'); }, 400); }); $('html').addClass('nav-open'); mobile_menu_visible = 1; } }); toggle_initialized = true; } }, 500), initBootstrapNavbarMenu: debounce(function(){ if(!bootstrap_nav_initialized){ $navbar = $('nav').find('.navbar-collapse').first().clone(true); nav_content = ''; mobile_menu_content = ''; //add the content from the regular header to the mobile menu $navbar.children('ul').each(function(){ content_buff = $(this).html(); nav_content = nav_content + content_buff; }); nav_content = ' '; $navbar.html(nav_content); $navbar.addClass('off-canvas-sidebar'); // append it to the body, so it will come from the right side of the screen $('body').append($navbar); $toggle = $('.navbar-toggle'); $navbar.find('a').removeClass('btn btn-round btn-default'); $navbar.find('button').removeClass('btn-round btn-fill btn-info btn-primary btn-success btn-danger btn-warning btn-neutral'); $navbar.find('button').addClass('btn-simple btn-block'); $toggle.click(function (){ if(mobile_menu_visible == 1) { $('html').removeClass('nav-open'); $('.close-layer').remove(); setTimeout(function(){ $toggle.removeClass('toggled'); }, 400); mobile_menu_visible = 0; } else { setTimeout(function(){ $toggle.addClass('toggled'); }, 430); $layer = $(''); $layer.appendTo(".wrapper-full-page"); setTimeout(function(){ $layer.addClass('visible'); }, 100); $layer.click(function() { $('html').removeClass('nav-open'); mobile_menu_visible = 0; $layer.removeClass('visible'); setTimeout(function(){ $layer.remove(); $toggle.removeClass('toggled'); }, 400); }); $('html').addClass('nav-open'); mobile_menu_visible = 1; } }); bootstrap_nav_initialized = true; } }, 500), startAnimationForLineChart: function(chart){ chart.on('draw', function(data) { if(data.type === 'line' || data.type === 'area') { data.element.animate({ d: { begin: 600, dur: 700, from: data.path.clone().scale(1, 0).translate(0, data.chartRect.height()).stringify(), to: data.path.clone().stringify(), easing: Chartist.Svg.Easing.easeOutQuint } }); } else if(data.type === 'point') { seq++; data.element.animate({ opacity: { begin: seq * delays, dur: durations, from: 0, to: 1, easing: 'ease' } }); } }); seq = 0; }, startAnimationForBarChart: function(chart){ chart.on('draw', function(data) { if(data.type === 'bar'){ seq2++; data.element.animate({ opacity: { begin: seq2 * delays2, dur: durations2, from: 0, to: 1, easing: 'ease' } }); } }); seq2 = 0; } } // Returns a function, that, as long as it continues to be invoked, will not // be triggered. The function will be called after it stops being called for // N milliseconds. If `immediate` is passed, trigger the function on the // leading edge, instead of the trailing. function debounce(func, wait, immediate) { var timeout; return function() { var context = this, args = arguments; clearTimeout(timeout); timeout = setTimeout(function() { timeout = null; if (!immediate) func.apply(context, args); }, wait); if (immediate && !timeout) func.apply(context, args); }; };