$.FleetCart = {}; /* ---------------------------------- - FleetCart Options - ---------------------------------- */ $.FleetCart.options = { animationSpeed: 300, // Sidebar push menu toggle button selector sidebarToggleSelector: '[data-toggle=\'offcanvas\']', // Activate sidebar push menu sidebarPushMenu: true, // BoxRefresh Plugin enableBoxRefresh: true, // Bootstrap.js tooltip enableBSToppltip: true, BSTooltipSelector: '[data-toggle=\'tooltip\']', // Control Sidebar Tree views enableControlTreeView: true, // The standard screen sizes that bootstrap uses. screenSizes: { xs: 480, sm: 768, md: 992, lg: 1200, }, }; /* ---------------------------------- - Implementation - ---------------------------------- */ $(function () { // Easy access to options var o = $.FleetCart.options; // Set up the object _init(); // Activate layout $.FleetCart.layout.activate(); // Enable sidebar tree view controls if (o.enableControlTreeView) { $.FleetCart.tree('.sidebar'); } // Activate sidebar push menu if (o.sidebarPushMenu) { $.FleetCart.pushMenu.activate(o.sidebarToggleSelector); } // Activate Bootstrap tooltip if (o.enableBSToppltip) { $('body').tooltip({ selector: o.BSTooltipSelector, container: 'body', }); } }); /* ---------------------------------- - Initialize the FleetCart Object - ---------------------------------- */ function _init() { // Layout $.FleetCart.layout = { activate: function () { var _this = this; _this.fix(); $(window, '.wrapper').resize(function () { _this.fix(); }); }, fix: function () { var window_height = $(window).height(); $('.wrapper').css('min-height', window_height + 'px'); } }; // PushMenu $.FleetCart.pushMenu = { activate: function (toggleBtn) { var screenSizes = $.FleetCart.options.screenSizes; $(document).on('click', toggleBtn, function (e) { e.preventDefault(); if ($(window).outerWidth() > (screenSizes.md - 1)) { if ($('body').hasClass('sidebar-collapse')) { $('body').removeClass('sidebar-collapse').trigger('expanded.pushMenu'); return; } $('body').addClass('sidebar-collapse').trigger('collapsed.pushMenu'); return; } if ($('body').hasClass('sidebar-open')) { $('body').removeClass('sidebar-open').removeClass('sidebar-collapse').trigger('collapsed.pushMenu'); return; } $('body').addClass('sidebar-open').trigger('expanded.pushMenu'); }); $(window).on('resize', function () { if ($(window).outerWidth() > (screenSizes.md - 1)) { return; } else { $('body').removeClass('sidebar-collapse'); } }); $('.content-wrapper').click(function () { if ($(window).width() <= (screenSizes.md - 1) && $('body').hasClass('sidebar-open')) { $('body').removeClass('sidebar-open'); } }); } }; // Tree $.FleetCart.tree = function (menu) { var animationSpeed = $.FleetCart.options.animationSpeed; $(document).off('click', menu + ' li a') .on('click', menu + ' li a', function (e) { var self = $(this); var checkElement = self.next(); var activeElement = self.closest('.sidebar-menu').find('.active'); if (checkElement.is('.treeview-menu')) { self.closest('.sidebar-menu').find('.selected').removeClass('selected'); e.preventDefault(); } if (self.parent().is('.active')) { activeElement.toggleClass('closed'); } else { activeElement.addClass('closed'); } if ((checkElement.is('.treeview-menu')) && (checkElement.is(':visible')) && (!$('body').hasClass('sidebar-collapse'))) { self.parent().removeClass('selected'); checkElement.slideUp(animationSpeed); } else if ((checkElement.is('.treeview-menu')) && (!checkElement.is(':visible'))) { var ul = self.parents('ul').first().find('ul:visible').slideUp(animationSpeed); self.parent().addClass('selected'); checkElement.slideDown(animationSpeed); } }); }; } /* ---------------------------------- - Box Refresh Button - ---------------------------------- */ (function ($) { $.fn.boxRefresh = function (options) { var settings = $.extend({ trigger: '.refresh-btn', source: '', onLoadStart: function (box) { return box; }, onLoadDone: function (box) { return box; }, }, options); var overlay = $('
'); return this.each(function () { if (settings.source === '') { if (window.console) { window.console.log('Please specify a source first - boxRefresh()'); } return; } var box = $(this); var rBtn = box.find(settings.trigger).first(); rBtn.on('click', function (e) { e.preventDefault(); start(box); box.find('.box-body').load(settings.source, function () { done(box); }); }); }); function start(box) { box.append(overlay); settings.onLoadStart.call(box); } function done(box) { box.find(overlay).remove(); settings.onLoadDone.call(box); } }; })(jQuery);