/*========================================================================================= File Name: app.js Description: Template related app JS. ---------------------------------------------------------------------------------------- Item Name: Modern Admin - Clean Bootstrap 4 Dashboard HTML Template Author: Pixinvent Author URL: hhttp://www.themeforest.net/user/pixinvent ==========================================================================================*/ (function (window, document, $) { 'use strict'; var $html = $('html'); var $body = $('body'); $(window).on('load', function () { var rtl; var compactMenu = false; // Set it to true, if you want default menu to be compact if ($body.hasClass("menu-collapsed")) { compactMenu = true; } if ($('html').data('textdirection') == 'rtl') { rtl = true; } setTimeout(function () { $html.removeClass('loading').addClass('loaded'); }, 1200); $.app.menu.init(compactMenu); // Navigation configurations var config = { speed: 300 // set speed to expand / collpase menu }; if ($.app.nav.initialized === false) { $.app.nav.init(config); } Unison.on('change', function (bp) { $.app.menu.change(); }); // Tooltip Initialization $('[data-toggle="tooltip"]').tooltip({ container: 'body' }); // Top Navbars - Hide on Scroll if ($(".navbar-hide-on-scroll").length > 0) { $(".navbar-hide-on-scroll.fixed-top").headroom({ "offset": 205, "tolerance": 5, "classes": { // when element is initialised initial: "headroom", // when scrolling up pinned: "headroom--pinned-top", // when scrolling down unpinned: "headroom--unpinned-top", } }); // Bottom Navbars - Hide on Scroll $(".navbar-hide-on-scroll.fixed-bottom").headroom({ "offset": 205, "tolerance": 5, "classes": { // when element is initialised initial: "headroom", // when scrolling up pinned: "headroom--pinned-bottom", // when scrolling down unpinned: "headroom--unpinned-bottom", } }); } //Match content & menu height for content menu setTimeout(function () { if ($('body').hasClass('vertical-content-menu')) { setContentMenuHeight(); } }, 500); function setContentMenuHeight() { var menuHeight = $('.main-menu').height(); var bodyHeight = $('.content-body').height(); if (bodyHeight < menuHeight) { $('.content-body').css('height', menuHeight); } } // Collapsible Card $('a[data-action="collapse"]').on('click', function (e) { e.preventDefault(); $(this).closest('.card').children('.card-content').collapse('toggle'); $(this).closest('.card').find('[data-action="collapse"] i').toggleClass('ft-plus ft-minus'); }); // Toggle fullscreen $('a[data-action="expand"]').on('click', function (e) { e.preventDefault(); $(this).closest('.card').find('[data-action="expand"] i').toggleClass('ft-maximize ft-minimize'); $(this).closest('.card').toggleClass('card-fullscreen'); }); // Notifications & messages scrollable if ($('.scrollable-container').length > 0) { $('.scrollable-container').each(function () { var scrollable_container = new PerfectScrollbar($(this)[0], { wheelPropagation: false }); }); } // Reload Card $('a[data-action="reload"]').on('click', function () { var block_ele = $(this).closest('.card'); // Block Element block_ele.block({ message: '
', timeout: 2000, //unblock after 2 seconds overlayCSS: { backgroundColor: '#FFF', cursor: 'wait', }, css: { border: 0, padding: 0, backgroundColor: 'none' } }); }); // Close Card $('a[data-action="close"]').on('click', function () { $(this).closest('.card').removeClass().slideUp('fast'); }); // Match the height of each card in a row setTimeout(function () { $('.row.match-height').each(function () { $(this).find('.card').not('.card .card').matchHeight(); // Not .card .card prevents collapsible cards from taking height }); }, 500); $('.card .heading-elements a[data-action="collapse"]').on('click', function () { var $this = $(this), card = $this.closest('.card'); var cardHeight; if (parseInt(card[0].style.height, 10) > 0) { cardHeight = card.css('height'); card.css('height', '').attr('data-height', cardHeight); } else { if (card.data('height')) { cardHeight = card.data('height'); card.css('height', cardHeight).attr('data-height', ''); } } }); // Add Menu Collapsed Open class to the parents of active menu item $(".main-menu-content") .find("li.active") .parents("li") .addClass("menu-collapsed-open") // Add open class to parent list item if subitem is active except compact menu var menuType = $body.data('menu'); if (menuType != 'vertical-compact-menu' && menuType != 'horizontal-menu' && compactMenu === false) { $(".main-menu-content").find('li.active').parents('li').addClass('open'); } if (menuType == 'vertical-compact-menu' || menuType == 'horizontal-menu') { $(".main-menu-content").find('li.active').parents('li:not(.nav-item)').addClass('open'); $(".main-menu-content").find('li.active').parents('li').addClass('active'); } //card heading actions buttons small screen support $(".heading-elements-toggle").on("click", function () { $(this).parent().children(".heading-elements").toggleClass("visible"); }); // Dynamic height for the chartjs div for the chart animations to work var chartjsDiv = $('.chartjs'), canvasHeight = chartjsDiv.children('canvas').attr('height'); chartjsDiv.css('height', canvasHeight); /************** search *******************/ var $filename = $(".search-input input").data("search") // Navigation Search area Open $(".nav-link-search").on("click", function () { var $this = $(this) var searchInput = $(this) .parent(".nav-search") .find(".search-input") searchInput.addClass("open"); setTimeout(function () { $(".search-input.open .input").focus() }, 50) $(".search-input .search-list li").remove() $(".search-input .search-list").addClass("show") }) // Navigation Search area Close $(".search-input-close i").on("click", function () { var $this = $(this), searchInput = $(this).closest(".search-input") if (searchInput.hasClass("open")) { searchInput.removeClass("open") $(".search-input input").val("") $(".search-input input").blur() $(".search-input .search-list").removeClass("show") if ($(".app-content").hasClass("show-overlay")) { $(".app-content").removeClass("show-overlay") } } }) // Navigation Search area Close on click of app-content $(".app-content").on("click", function () { var $this = $(".search-input-close"), searchInput = $($this).parent(".search-input"), searchList = $(".search-list") if (searchInput.hasClass("open")) { searchInput.removeClass("open") } if (searchList.hasClass("show")) { searchList.removeClass("show") } if ($(".app-content").hasClass("show-overlay")) { $(".app-content").removeClass("show-overlay") } }) // Filter $(".search-input .input").on("keyup", function (e) { if (e.keyCode !== 38 && e.keyCode !== 40 && e.keyCode !== 13) { if (e.keyCode == 27) { // $(".app-content").removeClass("show-overlay") $(".search-input input").val("") $(".search-input input").blur() $(".search-input").removeClass("open") if ($(".search-list").hasClass("show")) { $(this).removeClass("show") $(".search-input").removeClass("show") } } // Define variables var value = $(this) .val() .toLowerCase(), //get values of inout on keyup activeClass = "", liList = $("ul.search-list li") // get all the list items of the search liList.remove() // If input value is blank if (value != "") { $(".app-content").addClass("show-overlay") var $startList = "", $otherList = "", $htmlList = "", $activeItemClass = "", a = 0 // getting json data from file for search results $.getJSON("../../../app-assets/data/" + $filename + ".json", function ( data ) { for (var i = 0; i < data.listItems.length; i++) { // Search list item start with entered letters and create list if ( data.listItems[i].name.toLowerCase().indexOf(value) == 0 && a < 10 || !(data.listItems[i].name.toLowerCase().indexOf(value) == 0) && data.listItems[i].name.toLowerCase().indexOf(value) > -1 && a < 10 ) { if (a === 0) { $activeItemClass = "current_item" } else { $activeItemClass = "" } $startList += '
  • ' + '' + '' + "" + data.listItems[i].name + "" + "" a++ } } if ($startList == "" && $otherList == "") { $otherList = '
  • ' + '' + '
    ' + '' + "No results found." + "
    " + "
    " + "
  • " } $htmlList = $startList.concat($otherList) // merging start with and other list $("ul.search-list").html($htmlList) // Appending list to