You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

263 lines
8.8 KiB

/*
Template Name: Shreyu - Responsive Bootstrap 4 Admin Dashboard
Author: CoderThemes
Version: 1.0.0
Website: https://coderthemes.com/
Contact: support@coderthemes.com
File: Main Js File
*/
!function ($) {
"use strict";
var Components = function () { };
//initializing tooltip
Components.prototype.initTooltipPlugin = function () {
$.fn.tooltip && $('[data-toggle="tooltip"]').tooltip()
},
//initializing popover
Components.prototype.initPopoverPlugin = function () {
$.fn.popover && $('[data-toggle="popover"]').popover()
},
//initializing Slimscroll
Components.prototype.initSlimScrollPlugin = function () {
//You can change the color of scroll bar here
$.fn.slimScroll && $(".slimscroll").slimScroll({
height: 'auto',
position: 'right',
size: "4px",
touchScrollStep: 20,
color: '#9ea5ab'
});
},
//initializing form validation
Components.prototype.initFormValidation = function () {
$(".needs-validation").on('submit', function (event) {
$(this).addClass('was-validated');
if ($(this)[0].checkValidity() === false) {
event.preventDefault();
event.stopPropagation();
return false;
}
return true;
});
},
//initilizing
Components.prototype.init = function () {
var $this = this;
this.initTooltipPlugin(),
this.initPopoverPlugin(),
this.initSlimScrollPlugin(),
this.initFormValidation()
},
$.Components = new Components, $.Components.Constructor = Components
}(window.jQuery),
function ($) {
'use strict';
var App = function () {
this.$body = $('body'),
this.$window = $(window)
};
/**
Resets the scroll
*/
App.prototype._resetSidebarScroll = function () {
// sidebar - scroll container
$('.slimscroll-menu').slimscroll({
height: 'auto',
position: 'right',
size: "4px",
color: '#9ea5ab',
wheelStep: 5,
touchScrollStep: 20
});
},
/**
* Initlizes the menu - top and sidebar
*/
App.prototype.initMenu = function () {
var $this = this;
// Left menu collapse
$('.button-menu-mobile').on('click', function (event) {
event.preventDefault();
var layout = $this.$body.data('layout');
if (layout === 'topnav') {
$(this).toggleClass('open');
$('#topnav-menu-content').slideToggle(400);
} else {
$this.$body.toggleClass('sidebar-enable');
if ($this.$window.width() >= 768) {
$this.$body.toggleClass('left-side-menu-condensed');
} else {
$this.$body.removeClass('left-side-menu-condensed');
}
// sidebar - scroll container
$this._resetSidebarScroll();
}
});
// sidebar - main menu
// activate the menu in left side bar based on url
var layout = $this.$body.data('layout');
if ($('#menu-bar').length) {
if (layout !== 'topnav') {
// init menu
new MetisMenu('#menu-bar');
// sidebar - scroll container
$this._resetSidebarScroll();
$("#menu-bar a").each(function () {
var pageUrl = window.location.href.split(/[?#]/)[0];
if (this.href == pageUrl) {
$(this).addClass("active");
$(this).parent().addClass("mm-active"); // add active to li of the current link
$(this).parent().parent().addClass("mm-show");
$(this).parent().parent().prev().addClass("active"); // add active class to an anchor
$(this).parent().parent().parent().addClass("mm-active");
$(this).parent().parent().parent().parent().addClass("mm-show"); // add active to li of the current link
$(this).parent().parent().parent().parent().parent().addClass("mm-active");
}
});
} else {
var menuRef = new MetisMenu('#menu-bar').on('shown.metisMenu', function (event) {
window.addEventListener('click', function menuClick(e) {
if (!event.target.contains(e.target)) {
menuRef.hide(event.detail.shownElement);
window.removeEventListener('click', menuClick);
}
});
});
$("#menu-bar a").each(function () {
var pageUrl = window.location.href.split(/[?#]/)[0];
if (this.href == pageUrl) {
$(this).addClass("active");
$(this).parent().addClass("active"); // add active to li of the current link
$(this).parent().parent().prev().addClass("active"); // add active class to an anchor
$(this).parent().parent().parent().addClass("active");
$(this).parent().parent().parent().parent().parent().addClass("active");
}
});
}
}
// right side-bar toggle
$('.right-bar-toggle').on('click', function (e) {
$('body').toggleClass('right-bar-enabled');
});
$(document).on('click', 'body', function (e) {
if ($(e.target).closest('.right-bar-toggle, .right-bar').length > 0) {
return;
}
if ($(e.target).closest('.left-side-menu, .side-nav').length > 0 || $(e.target).hasClass('button-menu-mobile')
|| $(e.target).closest('.button-menu-mobile').length > 0) {
return;
}
$('body').removeClass('right-bar-enabled');
$('body').removeClass('sidebar-enable');
return;
});
// activate topnav menu
// $('#topnav-menu li a').each(function () {
// var pageUrl = window.location.href.split(/[?#]/)[0];
// if (this.href == pageUrl) {
// $(this).addClass('active');
// $(this).parent().parent().addClass('active'); // add active to li of the current link
// $(this).parent().parent().parent().parent().addClass('active');
// $(this).parent().parent().parent().parent().parent().parent().addClass('active');
// }
// });
// // horizontal menu
// $('#topnav-menu .dropdown-menu a.dropdown-toggle').on('click', function () {
// console.log("hello");
// if (
// !$(this)
// .next()
// .hasClass('show')
// ) {
// $(this)
// .parents('.dropdown-menu')
// .first()
// .find('.show')
// .removeClass('show');
// }
// var $subMenu = $(this).next('.dropdown-menu');
// $subMenu.toggleClass('show');
// return false;
// });
// Preloader
$(window).on('load', function () {
$('#status').fadeOut();
$('#preloader').delay(350).fadeOut('slow');
});
},
/**
* Init the layout - with broad sidebar or compact side bar
*/
App.prototype.initLayout = function () {
// in case of small size, add class enlarge to have minimal menu
if (this.$window.width() >= 768 && this.$window.width() <= 1024) {
this.$body.addClass('left-side-menu-condensed');
} else {
if (this.$body.data('left-keep-condensed') != true) {
this.$body.removeClass('left-side-menu-condensed');
}
}
// if the layout is scrollable - let's remove the slimscroll class from menu
if (this.$body.hasClass('scrollable-layout')) {
$('#sidebar-menu').removeClass("slimscroll-menu");
}
},
//initilizing
App.prototype.init = function () {
var $this = this;
this.initLayout();
this.initMenu();
$.Components.init();
// on window resize, make menu flipped automatically
$this.$window.on('resize', function (e) {
e.preventDefault();
$this.initLayout();
$this._resetSidebarScroll();
});
// feather
feather.replace();
},
$.App = new App, $.App.Constructor = App
}(window.jQuery),
//initializing main application module
function ($) {
"use strict";
$.App.init();
}(window.jQuery);