123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460 |
- if (typeof jQuery === "undefined") {
- throw new Error("jQuery plugins need to be before this file");
- }
- $.AdminBSB = {};
- $.AdminBSB.options = {
- colors: {
- red: '#F44336',
- pink: '#E91E63',
- purple: '#9C27B0',
- deepPurple: '#673AB7',
- indigo: '#3F51B5',
- blue: '#2196F3',
- lightBlue: '#03A9F4',
- cyan: '#00BCD4',
- teal: '#009688',
- green: '#4CAF50',
- lightGreen: '#8BC34A',
- lime: '#CDDC39',
- yellow: '#ffe821',
- amber: '#FFC107',
- orange: '#FF9800',
- deepOrange: '#FF5722',
- brown: '#795548',
- grey: '#9E9E9E',
- blueGrey: '#607D8B',
- black: '#000000',
- white: '#ffffff'
- },
- leftSideBar: {
- scrollColor: 'rgba(0,0,0,0.5)',
- scrollWidth: '4px',
- scrollAlwaysVisible: false,
- scrollBorderRadius: '0',
- scrollRailBorderRadius: '0',
- scrollActiveItemWhenPageLoad: true,
- breakpointWidth: 1170
- },
- dropdownMenu: {
- effectIn: 'fadeIn',
- effectOut: 'fadeOut'
- }
- }
- /* Left Sidebar - Function =================================================================================================
- * You can manage the left sidebar menu options
- *
- */
- $.AdminBSB.leftSideBar = {
- activate: function () {
- var _this = this;
- var $body = $('body');
- var $overlay = $('.overlay');
- //Close sidebar
- $(window).click(function (e) {
- var $target = $(e.target);
- if (e.target.nodeName.toLowerCase() === 'i') { $target = $(e.target).parent(); }
- if (!$target.hasClass('bars') && _this.isOpen() && $target.parents('#leftsidebar').length === 0) {
- if (!$target.hasClass('js-right-sidebar')) $overlay.fadeOut();
- $body.removeClass('overlay-open');
- }
- });
- $.each($('.menu-toggle.toggled'), function (i, val) {
- $(val).next().slideToggle(0);
- });
- //When page load
- $.each($('.menu .list li.active'), function (i, val) {
- var $activeAnchors = $(val).find('a:eq(0)');
- $activeAnchors.addClass('toggled');
- $activeAnchors.next().show();
- });
- //Collapse or Expand Menu
- $('.menu-toggle').on('click', function (e) {
- var $this = $(this);
- var $content = $this.next();
- if ($($this.parents('ul')[0]).hasClass('list')) {
- var $not = $(e.target).hasClass('menu-toggle') ? e.target : $(e.target).parents('.menu-toggle');
- $.each($('.menu-toggle.toggled').not($not).next(), function (i, val) {
- if ($(val).is(':visible')) {
- $(val).prev().toggleClass('toggled');
- $(val).slideUp();
- }
- });
- }
- $this.toggleClass('toggled');
- $content.slideToggle(320);
- });
- //Set menu height
- _this.setMenuHeight();
- _this.checkStatuForResize(true);
- $(window).resize(function () {
- _this.setMenuHeight();
- _this.checkStatuForResize(false);
- });
- //Set Waves
- Waves.attach('.menu .list a', ['waves-block']);
- Waves.init();
- },
- setMenuHeight: function (isFirstTime) {
- if (typeof $.fn.slimScroll != 'undefined') {
- var configs = $.AdminBSB.options.leftSideBar;
- var height = ($(window).height() - ($('.legal').outerHeight() + $('.user-info').outerHeight() + $('.navbar').innerHeight()));
- var $el = $('.list');
- $el.slimscroll({
- height: height + "px",
- color: configs.scrollColor,
- size: configs.scrollWidth,
- alwaysVisible: configs.scrollAlwaysVisible,
- borderRadius: configs.scrollBorderRadius,
- railBorderRadius: configs.scrollRailBorderRadius
- });
- //Scroll active menu item when page load, if option set = true
- if ($.AdminBSB.options.leftSideBar.scrollActiveItemWhenPageLoad) {
- if($('.menu .list li.active')[0] !== undefined) {
- var activeItemOffsetTop = $('.menu .list li.active')[0].offsetTop
- if (activeItemOffsetTop > 150) $el.slimscroll({scrollTo: activeItemOffsetTop + 'px'});
- }
- }
- }
- },
- checkStatuForResize: function (firstTime) {
- var $body = $('body');
- var $openCloseBar = $('.navbar .navbar-header .bars');
- var width = $body.width();
- if (firstTime) {
- $body.find('.content, .sidebar').addClass('no-animate').delay(1000).queue(function () {
- $(this).removeClass('no-animate').dequeue();
- });
- }
- if (width < $.AdminBSB.options.leftSideBar.breakpointWidth) {
- $body.addClass('ls-closed');
- $openCloseBar.fadeIn();
- }
- else {
- $body.removeClass('ls-closed');
- $openCloseBar.fadeOut();
- }
- },
- isOpen: function () {
- return $('body').hasClass('overlay-open');
- }
- };
- //==========================================================================================================================
- /* Right Sidebar - Function ================================================================================================
- * You can manage the right sidebar menu options
- *
- */
- $.AdminBSB.rightSideBar = {
- activate: function () {
- var _this = this;
- var $sidebar = $('#rightsidebar');
- var $overlay = $('.overlay');
- //Close sidebar
- $(window).click(function (e) {
- var $target = $(e.target);
- if (e.target.nodeName.toLowerCase() === 'i') { $target = $(e.target).parent(); }
- if (!$target.hasClass('js-right-sidebar') && _this.isOpen() && $target.parents('#rightsidebar').length === 0) {
- if (!$target.hasClass('bars')) $overlay.fadeOut();
- $sidebar.removeClass('open');
- }
- });
- $('.js-right-sidebar').on('click', function () {
- $sidebar.toggleClass('open');
- if (_this.isOpen()) { $overlay.fadeIn(); } else { $overlay.fadeOut(); }
- });
- },
- isOpen: function () {
- return $('.right-sidebar').hasClass('open');
- }
- }
- //==========================================================================================================================
- /* Searchbar - Function ================================================================================================
- * You can manage the search bar
- *
- */
- var $searchBar = $('.search-bar');
- $.AdminBSB.search = {
- activate: function () {
- var _this = this;
- //Search button click event
- $('.js-search').on('click', function () {
- _this.showSearchBar();
- });
- //Close search click event
- $searchBar.find('.close-search').on('click', function () {
- _this.hideSearchBar();
- });
- //ESC key on pressed
- $searchBar.find('input[type="text"]').on('keyup', function (e) {
- if (e.keyCode == 27) {
- _this.hideSearchBar();
- }
- });
- },
- showSearchBar: function () {
- $searchBar.addClass('open');
- $searchBar.find('input[type="text"]').focus();
- },
- hideSearchBar: function () {
- $searchBar.removeClass('open');
- $searchBar.find('input[type="text"]').val('');
- }
- }
- //==========================================================================================================================
- /* Navbar - Function =======================================================================================================
- * You can manage the navbar
- *
- */
- $.AdminBSB.navbar = {
- activate: function () {
- var $body = $('body');
- var $overlay = $('.overlay');
- //Open left sidebar panel
- $('.bars').on('click', function () {
- $body.toggleClass('overlay-open');
- if ($body.hasClass('overlay-open')) { $overlay.fadeIn(); } else { $overlay.fadeOut(); }
- });
- //Close collapse bar on click event
- $('.nav [data-close="true"]').on('click', function () {
- var isVisible = $('.navbar-toggle').is(':visible');
- var $navbarCollapse = $('.navbar-collapse');
- if (isVisible) {
- $navbarCollapse.slideUp(function () {
- $navbarCollapse.removeClass('in').removeAttr('style');
- });
- }
- });
- }
- }
- //==========================================================================================================================
- /* Input - Function ========================================================================================================
- * You can manage the inputs(also textareas) with name of class 'form-control'
- *
- */
- $.AdminBSB.input = {
- activate: function () {
- //On focus event
- $('.form-control').focus(function () {
- $(this).parent().addClass('focused');
- });
- //On focusout event
- $('.form-control').focusout(function () {
- var $this = $(this);
- if ($this.parents('.form-group').hasClass('form-float')) {
- if ($this.val() == '') { $this.parents('.form-line').removeClass('focused'); }
- }
- else {
- $this.parents('.form-line').removeClass('focused');
- }
- });
- //On label click
- $('body').on('click', '.form-float .form-line .form-label', function () {
- $(this).parent().find('input').focus();
- });
- //Not blank form
- $('.form-control').each(function () {
- if ($(this).val() !== '') {
- $(this).parents('.form-line').addClass('focused');
- }
- });
- }
- }
- //==========================================================================================================================
- /* Form - Select - Function ================================================================================================
- * You can manage the 'select' of form elements
- *
- */
- $.AdminBSB.select = {
- activate: function () {
- if ($.fn.selectpicker) { $('select:not(.ms)').selectpicker(); }
- }
- }
- //==========================================================================================================================
- /* DropdownMenu - Function =================================================================================================
- * You can manage the dropdown menu
- *
- */
- $.AdminBSB.dropdownMenu = {
- activate: function () {
- var _this = this;
- $('.dropdown, .dropup, .btn-group').on({
- "show.bs.dropdown": function () {
- var dropdown = _this.dropdownEffect(this);
- _this.dropdownEffectStart(dropdown, dropdown.effectIn);
- },
- "shown.bs.dropdown": function () {
- var dropdown = _this.dropdownEffect(this);
- if (dropdown.effectIn && dropdown.effectOut) {
- _this.dropdownEffectEnd(dropdown, function () { });
- }
- },
- "hide.bs.dropdown": function (e) {
- var dropdown = _this.dropdownEffect(this);
- if (dropdown.effectOut) {
- e.preventDefault();
- _this.dropdownEffectStart(dropdown, dropdown.effectOut);
- _this.dropdownEffectEnd(dropdown, function () {
- dropdown.dropdown.removeClass('open');
- });
- }
- }
- });
- //Set Waves
- Waves.attach('.dropdown-menu li a', ['waves-block']);
- Waves.init();
- },
- dropdownEffect: function (target) {
- var effectIn = $.AdminBSB.options.dropdownMenu.effectIn, effectOut = $.AdminBSB.options.dropdownMenu.effectOut;
- var dropdown = $(target), dropdownMenu = $('.dropdown-menu', target);
- if (dropdown.length > 0) {
- var udEffectIn = dropdown.data('effect-in');
- var udEffectOut = dropdown.data('effect-out');
- if (udEffectIn !== undefined) { effectIn = udEffectIn; }
- if (udEffectOut !== undefined) { effectOut = udEffectOut; }
- }
- return {
- target: target,
- dropdown: dropdown,
- dropdownMenu: dropdownMenu,
- effectIn: effectIn,
- effectOut: effectOut
- };
- },
- dropdownEffectStart: function (data, effectToStart) {
- if (effectToStart) {
- data.dropdown.addClass('dropdown-animating');
- data.dropdownMenu.addClass('animated dropdown-animated');
- data.dropdownMenu.addClass(effectToStart);
- }
- },
- dropdownEffectEnd: function (data, callback) {
- var animationEnd = 'webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend';
- data.dropdown.one(animationEnd, function () {
- data.dropdown.removeClass('dropdown-animating');
- data.dropdownMenu.removeClass('animated dropdown-animated');
- data.dropdownMenu.removeClass(data.effectIn);
- data.dropdownMenu.removeClass(data.effectOut);
- if (typeof callback == 'function') {
- callback();
- }
- });
- }
- }
- //==========================================================================================================================
- /* Browser - Function ======================================================================================================
- * You can manage browser
- *
- */
- var edge = 'Microsoft Edge';
- var ie10 = 'Internet Explorer 10';
- var ie11 = 'Internet Explorer 11';
- var opera = 'Opera';
- var firefox = 'Mozilla Firefox';
- var chrome = 'Google Chrome';
- var safari = 'Safari';
- $.AdminBSB.browser = {
- activate: function () {
- var _this = this;
- var className = _this.getClassName();
- if (className !== '') $('html').addClass(_this.getClassName());
- },
- getBrowser: function () {
- var userAgent = navigator.userAgent.toLowerCase();
- if (/edge/i.test(userAgent)) {
- return edge;
- } else if (/rv:11/i.test(userAgent)) {
- return ie11;
- } else if (/msie 10/i.test(userAgent)) {
- return ie10;
- } else if (/opr/i.test(userAgent)) {
- return opera;
- } else if (/chrome/i.test(userAgent)) {
- return chrome;
- } else if (/firefox/i.test(userAgent)) {
- return firefox;
- } else if (!!navigator.userAgent.match(/Version\/[\d\.]+.*Safari/)) {
- return safari;
- }
- return undefined;
- },
- getClassName: function () {
- var browser = this.getBrowser();
- if (browser === edge) {
- return 'edge';
- } else if (browser === ie11) {
- return 'ie11';
- } else if (browser === ie10) {
- return 'ie10';
- } else if (browser === opera) {
- return 'opera';
- } else if (browser === chrome) {
- return 'chrome';
- } else if (browser === firefox) {
- return 'firefox';
- } else if (browser === safari) {
- return 'safari';
- } else {
- return '';
- }
- }
- }
- //==========================================================================================================================
- $(function () {
- $.AdminBSB.browser.activate();
- $.AdminBSB.leftSideBar.activate();
- $.AdminBSB.rightSideBar.activate();
- $.AdminBSB.navbar.activate();
- $.AdminBSB.dropdownMenu.activate();
- $.AdminBSB.input.activate();
- $.AdminBSB.select.activate();
- $.AdminBSB.search.activate();
- setTimeout(function () { $('.page-loader-wrapper').fadeOut(); }, 50);
- });
|