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.
1 lines
12 KiB
1 lines
12 KiB
var Layout=function(){var layoutImgPath=sys_theme+'layouts/layout/img/';var layoutCssPath=sys_theme+'layouts/layout/css/';var resBreakpointMd=App.getResponsiveBreakpoint('md');var handleSidebarAndContentHeight=function(){var content=$('.page-content');var sidebar=$('.page-sidebar');var body=$('body');var height;if(body.hasClass("page-footer-fixed")===true&&body.hasClass("page-sidebar-fixed")===false){var available_height=App.getViewPort().height-$('.page-footer').outerHeight()-$('.page-header').outerHeight();if(content.height()<available_height){content.attr('style','min-height:'+available_height+'px')}}else{if(body.hasClass('page-sidebar-fixed')){height=_calculateFixedSidebarViewportHeight();if(body.hasClass('page-footer-fixed')===false){height=height-$('.page-footer').outerHeight()}}else{var headerHeight=$('.page-header').outerHeight();var footerHeight=$('.page-footer').outerHeight();if(App.getViewPort().width<resBreakpointMd){height=App.getViewPort().height-headerHeight-footerHeight}else{height=sidebar.height()+20}if((height+headerHeight+footerHeight)<=App.getViewPort().height){height=App.getViewPort().height-headerHeight-footerHeight}}content.attr('style','min-height:'+height+'px')}};var handleSidebarMenuActiveLink=function(mode,el){var url=location.hash.toLowerCase();var menu=$('.page-sidebar-menu');if(mode==='click'||mode==='set'){el=$(el)}else if(mode==='match'){menu.find("li > a").each(function(){var path=$(this).attr("href").toLowerCase();if(path.length>1&&url.substr(1,path.length-1)==path.substr(1)){el=$(this);return}})}if(!el||el.size()==0){return}if(el.attr('href').toLowerCase()==='javascript:;'||el.attr('href').toLowerCase()==='#'){return}var slideSpeed=parseInt(menu.data("slide-speed"));var keepExpand=menu.data("keep-expanded");menu.find('li.active').removeClass('active');menu.find('li > a > .selected').remove();if(menu.hasClass('page-sidebar-menu-hover-submenu')===false){menu.find('li.open').each(function(){if($(this).children('.sub-menu').size()===0){$(this).removeClass('open');$(this).find('> a > .arrow.open').removeClass('open')}})}else{menu.find('li.open').removeClass('open')}el.parents('li').each(function(){$(this).addClass('active');$(this).find('> a > span.arrow').addClass('open');if($(this).parent('ul.page-sidebar-menu').size()===1){$(this).find('> a').append('<span class="selected"></span>')}if($(this).children('ul.sub-menu').size()===1){$(this).addClass('open')}});if(mode==='click'){if(App.getViewPort().width<resBreakpointMd&&$('.page-sidebar').hasClass("in")){$('.page-header .responsive-toggler').click()}}};var handleSidebarMenu=function(){$('.page-sidebar-menu').on('click','li > a.nav-toggle, li > a > span.nav-toggle',function(e){var that=$(this).closest('.nav-item').children('.nav-link');if(App.getViewPort().width>=resBreakpointMd&&!$('.page-sidebar-menu').attr("data-initialized")&&$('body').hasClass('page-sidebar-closed')&&that.parent('li').parent('.page-sidebar-menu').size()===1){return}var hasSubMenu=that.next().hasClass('sub-menu');if(App.getViewPort().width>=resBreakpointMd&&that.parents('.page-sidebar-menu-hover-submenu').size()===1){return}if(hasSubMenu===false){if(App.getViewPort().width<resBreakpointMd&&$('.page-sidebar').hasClass("in")){$('.page-header .responsive-toggler').click()}return}if(that.next().hasClass('sub-menu always-open')){return}var parent=that.parent().parent();var the=that;var menu=$('.page-sidebar-menu');var sub=that.next();var autoScroll=menu.data("auto-scroll");var slideSpeed=parseInt(menu.data("slide-speed"));var keepExpand=menu.data("keep-expanded");if(!keepExpand){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',the).removeClass("open");the.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)}}handleSidebarAndContentHeight()})}else if(hasSubMenu){$('.dr_left').removeClass("active");$('.arrow',the).addClass("open");the.parent().addClass("active");the.parent().addClass("open");sub.slideDown(slideSpeed,function(){if(autoScroll===true&&$('body').hasClass('page-sidebar-closed')===false){}handleSidebarAndContentHeight()})}e.preventDefault()});if(App.isAngularJsApp()){$(".page-sidebar-menu li > a").on("click",function(e){if(App.getViewPort().width<resBreakpointMd&&$(this).next().hasClass('sub-menu')===false){$('.page-header .responsive-toggler').click()}})}$('.page-sidebar').on('click',' li > a.ajaxify',function(e){});$('.page-content').on('click','.ajaxify',function(e){});$(document).on('click','.page-header-fixed-mobile .page-header .responsive-toggler',function(){App.scrollTop()});handleFixedSidebarHoverEffect();$('.page-sidebar').on('click','.sidebar-search .remove',function(e){e.preventDefault();$('.sidebar-search').removeClass("open")});$('.page-sidebar .sidebar-search').on('keypress','input.form-control',function(e){if(e.which==13){$('.sidebar-search').submit();return false}});$('.sidebar-search .submit').on('click',function(e){e.preventDefault();if($('body').hasClass("page-sidebar-closed")){if($('.sidebar-search').hasClass('open')===false){if($('.page-sidebar-fixed').size()===1){$('.page-sidebar .sidebar-toggler').click()}$('.sidebar-search').addClass("open")}else{$('.sidebar-search').submit()}}else{$('.sidebar-search').submit()}});if($('.sidebar-search').size()!==0){$('.sidebar-search .input-group').on('click',function(e){e.stopPropagation()});$('body').on('click',function(){if($('.sidebar-search').hasClass('open')){$('.sidebar-search').removeClass("open")}})}};var _calculateFixedSidebarViewportHeight=function(){var sidebarHeight=App.getViewPort().height-$('.page-header').outerHeight(true);if($('body').hasClass("page-footer-fixed")){sidebarHeight=sidebarHeight-$('.page-footer').outerHeight()}return sidebarHeight};var handleFixedSidebar=function(){var menu=$('.page-sidebar-menu');App.destroySlimScroll(menu);if($('.page-sidebar-fixed').size()===0){handleSidebarAndContentHeight();return}if(App.getViewPort().width>=resBreakpointMd){menu.attr("data-height",_calculateFixedSidebarViewportHeight());App.initSlimScroll(menu);handleSidebarAndContentHeight()}};var handleFixedSidebarHoverEffect=function(){var body=$('body');if(body.hasClass('page-sidebar-fixed')){$('.page-sidebar').on('mouseenter',function(){if(body.hasClass('page-sidebar-closed')){$(this).find('.page-sidebar-menu').removeClass('page-sidebar-menu-closed')}}).on('mouseleave',function(){if(body.hasClass('page-sidebar-closed')){$(this).find('.page-sidebar-menu').addClass('page-sidebar-menu-closed')}})}};var handleSidebarToggler=function(){var body=$('body');if(body.attr('index')!='nheader'&&$.cookie&&$.cookie('sidebar_closed')==='1'&&App.getViewPort().width>=resBreakpointMd){$('body').addClass('page-sidebar-closed');$('.page-sidebar-menu').addClass('page-sidebar-menu-closed')}$('body').on('click','.sidebar-toggler',function(e){var sidebar=$('.page-sidebar');var sidebarMenu=$('.page-sidebar-menu');$(".sidebar-search",sidebar).removeClass("open");if(body.hasClass("page-sidebar-closed")){body.removeClass("page-sidebar-closed");sidebarMenu.removeClass("page-sidebar-menu-closed");if($.cookie){$.cookie('sidebar_closed','0')}}else{body.addClass("page-sidebar-closed");sidebarMenu.addClass("page-sidebar-menu-closed");if(body.hasClass("page-sidebar-fixed")){sidebarMenu.trigger("mouseleave")}if($.cookie){$.cookie('sidebar_closed','1')}}})};var handleHorizontalMenu=function(){$('.page-header').on('click','.hor-menu a[data-toggle="tab"]',function(e){e.preventDefault();var nav=$(".hor-menu .nav");var active_link=nav.find('li.current');$('li.active',active_link).removeClass("active");$('.selected',active_link).remove();var new_link=$(this).parents('li').last();new_link.addClass("current");new_link.find("a:first").append('<span class="selected"></span>')});$('.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")})});$('.page-header').on('keypress','.hor-menu .search-form .form-control',function(e){if(e.which==13){$(this).closest('.search-form').submit();return false}});$('.page-header').on('mousedown','.search-form.open .submit',function(e){e.preventDefault();e.stopPropagation();$(this).closest('.search-form').submit()});$('[data-hover="megamenu-dropdown"]').not('.hover-initialized').each(function(){$(this).dropdownHover();$(this).addClass('hover-initialized')});$(document).on('click','.mega-menu-dropdown .dropdown-menu',function(e){e.stopPropagation()})};var handleTabs=function(){$('body').on('shown.bs.tab','a[data-toggle="tab"]',function(){handleSidebarAndContentHeight()})};var handleGoTop=function(){var offset=300;var duration=500;if(navigator.userAgent.match(/iPhone|iPad|iPod/i)){$(window).bind("touchend touchcancel touchleave",function(e){if($(this).scrollTop()>offset){$('.scroll-to-top').fadeIn(duration)}else{$('.scroll-to-top').fadeOut(duration)}})}else{$(window).scroll(function(){if($(this).scrollTop()>offset){$('.scroll-to-top').fadeIn(duration)}else{$('.scroll-to-top').fadeOut(duration)}})}$('.scroll-to-top').click(function(e){e.preventDefault();$('html, body').animate({scrollTop:0},duration);return false})};var handle100HeightContent=function(){$('.full-height-content').each(function(){var target=$(this);var height;height=App.getViewPort().height-$('.page-header').outerHeight(true)-$('.page-footer').outerHeight(true)-$('.page-title').outerHeight(true)-$('.page-bar').outerHeight(true);if(target.hasClass('portlet')){var portletBody=target.find('.portlet-body');App.destroySlimScroll(portletBody.find('.full-height-content-body'));height=height-target.find('.portlet-title').outerHeight(true)-parseInt(target.find('.portlet-body').css('padding-top'))-parseInt(target.find('.portlet-body').css('padding-bottom'))-5;if(App.getViewPort().width>=resBreakpointMd&&target.hasClass("full-height-content-scrollable")){height=height-35;portletBody.find('.full-height-content-body').css('height',height);App.initSlimScroll(portletBody.find('.full-height-content-body'))}else{portletBody.css('min-height',height)}}else{App.destroySlimScroll(target.find('.full-height-content-body'));if(App.getViewPort().width>=resBreakpointMd&&target.hasClass("full-height-content-scrollable")){height=height-35;target.find('.full-height-content-body').css('height',height);App.initSlimScroll(target.find('.full-height-content-body'))}else{target.css('min-height',height)}}})};return{initHeader:function(){handleHorizontalMenu()},setSidebarMenuActiveLink:function(mode,el){handleSidebarMenuActiveLink(mode,el)},initSidebar:function(){handleFixedSidebar();handleSidebarMenu();handleSidebarToggler();if(App.isAngularJsApp()){handleSidebarMenuActiveLink('match')}App.addResizeHandler(handleFixedSidebar)},initContent:function(){handle100HeightContent();handleTabs();App.addResizeHandler(handleSidebarAndContentHeight);App.addResizeHandler(handle100HeightContent)},initFooter:function(){handleGoTop()},init:function(){this.initHeader();this.initSidebar();this.initContent();this.initFooter()},fixContentHeight:function(){handleSidebarAndContentHeight()},initFixedSidebarHoverEffect:function(){handleFixedSidebarHoverEffect()},initFixedSidebar:function(){handleFixedSidebar()},getLayoutImgPath:function(){return layoutImgPath},getLayoutCssPath:function(){return layoutCssPath}}}();if(App.isAngularJsApp()===false){jQuery(document).ready(function(){Layout.init()})}
|