| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444 |
- /*! =========================================================
- *
- * Material Dashboard PRO - V1.2.0
- *
- * =========================================================
- *
- * Copyright 2016 Creative Tim (http://www.creative-tim.com/product/material-dashboard-pro)
- *
- *
- * _oo0oo_
- * o8888888o
- * 88" . "88
- * (| -_- |)
- * 0\ = /0
- * ___/`---'\___
- * .' \| |// '.
- * / \||| : |||// \
- * / _||||| -:- |||||- \
- * | | \\ - /// | |
- * | \_| ''\---/'' |_/ |
- * \ .-\__ '-' ___/-. /
- * ___'. .' /--.--\ `. .'___
- * ."" '< `.___\_<|>_/___.' >' "".
- * | | : `- \`.;`\ _ /`;.`/ - ` : | |
- * \ \ `_. \_ __\ /__ _/ .-` / /
- * =====`-.____`.___ \_____/___.-`___.-'=====
- * `=---='
- *
- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- *
- * Buddha Bless: "No Bugs"
- *
- * ========================================================= */
- (function() {
- isWindows = navigator.platform.indexOf('Win') > -1 ? true : false;
- if (isWindows && !$('body').hasClass('sidebar-mini')) {
- // if we are on windows OS we activate the perfectScrollbar function
- $('.sidebar .sidebar-wrapper, .main-panel').perfectScrollbar();
- $('html').addClass('perfect-scrollbar-on');
- } else {
- $('html').addClass('perfect-scrollbar-off');
- }
- })();
- var breakCards = true;
- 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();
- if ($('body').hasClass('sidebar-mini')) {
- md.misc.sidebar_mini_active = true;
- }
- window_width = $(window).width();
- // check if there is an image set for the sidebar's background
- md.checkSidebarImage();
- md.initMinimizeSidebar();
- // Activate bootstrap-select
- if ($(".selectpicker").length != 0) {
- $(".selectpicker").selectpicker();
- }
- // Activate the tooltips
- //$('[rel="tooltip"]').tooltip();
- //removed class label and label-color from tag span and replaced with data-color
- var tagClass = $('.tagsinput').data('color');
- $('.tagsinput').tagsinput({
- tagClass: ' tag-' + tagClass + ' '
- });
- // Activate bootstrap-select
- /*$(".select").dropdown({
- "dropdownClass": "dropdown-menu",
- "optionClass": ""
- });*/
- $('.form-control').on("focus", function() {
- $(this).parent('.input-group').addClass("input-group-focus");
- }).on("blur", function() {
- $(this).parent(".input-group").removeClass("input-group-focus");
- });
- if (breakCards == true) {
- // We break the cards headers if there is too much stress on them :-)
- $('[data-header-animation="true"]').each(function() {
- var $fix_button = $(this)
- var $card = $(this).parent('.card');
- $card.find('.fix-broken-card').click(function() {
- console.log(this);
- var $header = $(this).parent().parent().siblings('.card-header, .card-image');
- $header.removeClass('hinge').addClass('fadeInDown');
- $card.attr('data-count', 0);
- setTimeout(function() {
- $header.removeClass('fadeInDown animate');
- }, 480);
- });
- $card.mouseenter(function() {
- var $this = $(this);
- hover_count = parseInt($this.attr('data-count'), 10) + 1 || 0;
- $this.attr("data-count", hover_count);
- if (hover_count >= 20) {
- $(this).children('.card-header, .card-image').addClass('hinge animated');
- }
- });
- });
- }
- // remove class has-error for checkbox validation
- $('input[type="checkbox"][required="true"], input[type="radio"][required="true"]').on('click', function() {
- if ($(this).hasClass('error')) {
- $(this).closest('div').removeClass('has-error');
- }
- });
- });
- $(document).on('click', '.navbar-toggle', function() {
- $toggle = $(this);
- 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);
- var $layer = $('<div class="close-layer"></div>');
- if ($('body').find('.main-panel').length != 0) {
- $layer.appendTo(".main-panel");
- } else if (($('body').hasClass('off-canvas-sidebar'))) {
- $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;
- }
- });
- // activate collapse right menu when the windows is resized
- $(window).resize(function() {
- md.initSidebarsCheck();
- });
- 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 = '<div class="sidebar-background" style="background-image: url(' + image_src + ') "/>';
- $sidebar.append(sidebar_container);
- }
- },
- initSliders: function() {
- // Sliders for demo purpose in refine cards section
- var slider = document.getElementById('sliderRegular');
- noUiSlider.create(slider, {
- start: 40,
- connect: [true, false],
- range: {
- min: 0,
- max: 100
- }
- });
- var slider2 = document.getElementById('sliderDouble');
- noUiSlider.create(slider2, {
- start: [20, 60],
- connect: true,
- range: {
- min: 0,
- max: 100
- }
- });
- },
- initSidebarsCheck: function() {
- if ($(window).width() <= 991) {
- if ($sidebar.length != 0) {
- md.initRightMenu();
- }
- }
- },
- initMinimizeSidebar: function() {
- $('#minimizeSidebar').click(function() {
- var $btn = $(this);
- if (md.misc.sidebar_mini_active == true) {
- $('body').removeClass('sidebar-mini');
- md.misc.sidebar_mini_active = false;
- } else {
- $('body').addClass('sidebar-mini');
- md.misc.sidebar_mini_active = true;
- }
- // we simulate the window Resize so the charts will get updated in realtime.
- var simulateWindowResize = setInterval(function() {
- window.dispatchEvent(new Event('resize'));
- }, 180);
- // we stop the simulation of Window Resize after the animations are completed
- setTimeout(function() {
- clearInterval(simulateWindowResize);
- }, 1000);
- });
- },
- 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').children('.navbar-nav.navbar-right');
- mobile_menu_content = '';
- nav_content = $navbar.html();
- nav_content = '<ul class="nav nav-mobile-menu">' + nav_content + '</ul>';
- navbar_form = $('nav').find('.navbar-form').get(0).outerHTML;
- $sidebar_nav = $sidebar_wrapper.find(' > .nav');
- // insert the navbar form before the sidebar list
- $nav_content = $(nav_content);
- $navbar_form = $(navbar_form);
- $nav_content.insertBefore($sidebar_nav);
- $navbar_form.insertBefore($nav_content);
- $(".sidebar-wrapper .dropdown .dropdown-menu > li > a").click(function(event) {
- event.stopPropagation();
- });
- // simulate resize so all the charts/maps will be redrawn
- window.dispatchEvent(new Event('resize'));
- 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;
- }
- }
- }, 200),
- // 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 = '<ul class="nav nav-mobile-menu">' + nav_content + '</ul>';
- //
- // $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');
- //
- // 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);
- };
- };
|