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
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); |