Blame | Letzte Änderung | Log anzeigen | RSS feed
/**Core script to handle the entire theme and core functions**/var Layout = function() {var layoutImgPath = 'layouts/layout6/img/';var layoutCssPath = 'layouts/layout6/css/';var resBreakpointMd = App.getResponsiveBreakpoint('md'); //992pxvar resBreakpointSm = App.getResponsiveBreakpoint('sm'); //768pxvar handleQuickSearch = function() {// handle search box expand/collapse$('.page-header').on('click', '.search-form', function(e) {$(this).addClass("open");$(this).find('.form-control').focus();$('.page-header .search-form .form-control').on('blur', function(e) {$(this).closest('.search-form').removeClass("open");$(this).unbind("blur");});});// handle hor menu search form on enter press$('.page-header').on('keypress', '.hor-menu .search-form .form-control', function(e) {if (e.which == 13) {$(this).closest('.search-form').submit();return false;}});// handle header search button click$('.page-header').on('mousedown', '.search-form.open .submit', function(e) {e.preventDefault();e.stopPropagation();$(this).closest('.search-form').submit();});};// handle go to top buttonvar handleGo2Top = function () {var Go2TopOperation = function(){var CurrentWindowPosition = $(window).scrollTop();// current vertical positionif (CurrentWindowPosition > 100) {$(".go2top").show();} else {$(".go2top").hide();}};Go2TopOperation();// call headerFix() when the page was loadedif (navigator.userAgent.match(/iPhone|iPad|iPod/i)) {$(window).bind("touchend touchcancel touchleave", function(e){Go2TopOperation();});} else {$(window).scroll(function() {Go2TopOperation();});}$(".go2top").click(function(e) {e.preventDefault();$("html, body").animate({ scrollTop: 0 }, 600);});};// Handle sidebar menuvar handleSidebarMenu = function() {$('.page-sidebar').on('click', 'li > a', function(e) {if (App.getViewPort().width >= resBreakpointMd && $(this).parents('.page-sidebar-menu-hover-submenu').size() === 1) { // exit of hover sidebar menureturn;}if ($(this).next().hasClass('sub-menu') === false) {if (App.getViewPort().width < resBreakpointMd && $('.page-sidebar').hasClass("in")) { // close the menu on mobile view while laoding a page$('.page-header .responsive-toggler').click();}return;}var parent = $(this).parent().parent();var the = $(this);var menu = $('.page-sidebar-menu');var sub = $(this).next();var autoScroll = menu.data("auto-scroll");var slideSpeed = parseInt(menu.data("slide-speed"));var keepExpand = menu.data("keep-expanded");if (keepExpand !== true) {parent.children('li.open').children('a').children('.arrow').removeClass('open');parent.children('li.open').children('.sub-menu:not(.always-open)').slideUp(slideSpeed);parent.children('li.open').removeClass('open');}var slideOffeset = -200;if (sub.is(":visible")) {$('.arrow', $(this)).removeClass("open");$(this).parent().removeClass("open");sub.slideUp(slideSpeed, function() {if (autoScroll === true && $('body').hasClass('page-sidebar-closed') === false) {if ($('body').hasClass('page-sidebar-fixed')) {menu.slimScroll({'scrollTo': (the.position()).top});} else {App.scrollTo(the, slideOffeset);}}});} else {$('.arrow', $(this)).addClass("open");$(this).parent().addClass("open");sub.slideDown(slideSpeed, function() {if (autoScroll === true && $('body').hasClass('page-sidebar-closed') === false) {if ($('body').hasClass('page-sidebar-fixed')) {menu.slimScroll({'scrollTo': (the.position()).top});} else {App.scrollTo(the, slideOffeset);}}});}e.preventDefault();});// handle ajax links within sidebar menu$('.page-sidebar').on('click', ' li > a.ajaxify', function(e) {e.preventDefault();App.scrollTop();var url = $(this).attr("href");var menuContainer = $('.page-sidebar ul');var pageContent = $('.page-content');var pageContentBody = $('.page-content .page-content-body');menuContainer.children('li.active').removeClass('active');menuContainer.children('arrow.open').removeClass('open');$(this).parents('li').each(function() {$(this).addClass('active');$(this).children('a > span.arrow').addClass('open');});$(this).parents('li').addClass('active');if (App.getViewPort().width < resBreakpointMd && $('.page-sidebar').hasClass("in")) { // close the menu on mobile view while laoding a page$('.page-header .responsive-toggler').click();}App.startPageLoading();var the = $(this);$.ajax({type: "GET",cache: false,url: url,dataType: "html",success: function(res) {if (the.parents('li.open').size() === 0) {$('.page-sidebar-menu > li.open > a').click();}App.stopPageLoading();pageContentBody.html(res);Layout.fixContentHeight(); // fix content heightApp.initAjax(); // initialize core stuff},error: function(xhr, ajaxOptions, thrownError) {App.stopPageLoading();pageContentBody.html('<h4>Could not load the requested content.</h4>');}});});// handle ajax link within main content$('.page-content').on('click', '.ajaxify', function(e) {e.preventDefault();App.scrollTop();var url = $(this).attr("href");var pageContent = $('.page-content');var pageContentBody = $('.page-content .page-content-body');App.startPageLoading();if (App.getViewPort().width < resBreakpointMd && $('.page-sidebar').hasClass("in")) { // close the menu on mobile view while laoding a page$('.page-header .responsive-toggler').click();}$.ajax({type: "GET",cache: false,url: url,dataType: "html",success: function(res) {App.stopPageLoading();pageContentBody.html(res);Layout.fixContentHeight(); // fix content heightApp.initAjax(); // initialize core stuff},error: function(xhr, ajaxOptions, thrownError) {pageContentBody.html('<h4>Could not load the requested content.</h4>');App.stopPageLoading();}});});// handle scrolling to top on responsive menu toggler click when header is fixed for mobile view$(document).on('click', '.page-header-fixed-mobile .responsive-toggler', function(){App.scrollTop();});};return {// Main init methods to initialize the layout// IMPORTANT!!!: Do not modify the core handlers call order.init: function () {handleQuickSearch();handleGo2Top();handleSidebarMenu();},getLayoutImgPath: function() {return App.getAssetsPath() + layoutImgPath;},getLayoutCssPath: function() {return App.getAssetsPath() + layoutCssPath;}};}();jQuery(document).ready(function() {Layout.init(); // init metronic core componets});