/** * jQuery EasyUI 1.3.6 * * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved. * * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt * To use it on other terms please contact us at info@jeasyui.com * */ (function($){ function _1(_2){ var _3=$.data(_2,"tabs").options; if(_3.tabPosition=="left"||_3.tabPosition=="right"||!_3.showHeader){ return; } var _4=$(_2).children("div.tabs-header"); var _5=_4.children("div.tabs-tool"); var _6=_4.children("div.tabs-scroller-left"); var _7=_4.children("div.tabs-scroller-right"); var _8=_4.children("div.tabs-wrap"); var _9=_4.outerHeight(); if(_3.plain){ _9-=_9-_4.height(); } _5._outerHeight(_9); var _a=0; $("ul.tabs li",_4).each(function(){ _a+=$(this).outerWidth(true); }); var _b=_4.width()-_5._outerWidth(); if(_a>_b){ _6.add(_7).show()._outerHeight(_9); if(_3.toolPosition=="left"){ _5.css({left:_6.outerWidth(),right:""}); _8.css({marginLeft:_6.outerWidth()+_5._outerWidth(),marginRight:_7._outerWidth(),width:_b-_6.outerWidth()-_7.outerWidth()}); }else{ _5.css({left:"",right:_7.outerWidth()}); _8.css({marginLeft:_6.outerWidth(),marginRight:_7.outerWidth()+_5._outerWidth(),width:_b-_6.outerWidth()-_7.outerWidth()}); } }else{ _6.add(_7).hide(); if(_3.toolPosition=="left"){ _5.css({left:0,right:""}); _8.css({marginLeft:_5._outerWidth(),marginRight:0,width:_b}); }else{ _5.css({left:"",right:0}); _8.css({marginLeft:0,marginRight:_5._outerWidth(),width:_b}); } } }; function _c(_d){ var _e=$.data(_d,"tabs").options; var _f=$(_d).children("div.tabs-header"); if(_e.tools){ if(typeof _e.tools=="string"){ $(_e.tools).addClass("tabs-tool").appendTo(_f); $(_e.tools).show(); }else{ _f.children("div.tabs-tool").remove(); var _10=$("
").appendTo(_f); var tr=_10.find("tr"); for(var i=0;i<_e.tools.length;i++){ var td=$("").appendTo(tr); var _11=$("").appendTo(td); _11[0].onclick=eval(_e.tools[i].handler||function(){ }); _11.linkbutton($.extend({},_e.tools[i],{plain:true})); } } }else{ _f.children("div.tabs-tool").remove(); } }; function _12(_13){ var _14=$.data(_13,"tabs"); var _15=_14.options; var cc=$(_13); _15.fit?$.extend(_15,cc._fit()):cc._fit(false); cc.width(_15.width).height(_15.height); var _16=$(_13).children("div.tabs-header"); var _17=$(_13).children("div.tabs-panels"); var _18=_16.find("div.tabs-wrap"); var ul=_18.find(".tabs"); for(var i=0;i<_14.tabs.length;i++){ var _19=_14.tabs[i].panel("options"); var p_t=_19.tab.find("a.tabs-inner"); var _1a=parseInt(_19.tabWidth||_15.tabWidth)||undefined; if(_1a){ p_t._outerWidth(_1a); }else{ p_t.css("width",""); } p_t._outerHeight(_15.tabHeight); p_t.css("lineHeight",p_t.height()+"px"); } if(_15.tabPosition=="left"||_15.tabPosition=="right"){ _16._outerWidth(_15.showHeader?_15.headerWidth:0); _17._outerWidth(cc.width()-_16.outerWidth()); _16.add(_17)._outerHeight(_15.height); _18._outerWidth(_16.width()); ul._outerWidth(_18.width()).css("height",""); }else{ var lrt=_16.children("div.tabs-scroller-left,div.tabs-scroller-right,div.tabs-tool"); _16._outerWidth(_15.width).css("height",""); if(_15.showHeader){ _16.css("background-color",""); _18.css("height",""); lrt.show(); }else{ _16.css("background-color","transparent"); _16._outerHeight(0); _18._outerHeight(0); lrt.hide(); } ul._outerHeight(_15.tabHeight).css("width",""); _1(_13); var _1b=_15.height; if(!isNaN(_1b)){ _17._outerHeight(_1b-_16.outerHeight()); }else{ _17.height("auto"); } var _1a=_15.width; if(!isNaN(_1a)){ _17._outerWidth(_1a); }else{ _17.width("auto"); } } }; function _1c(_1d){ var _1e=$.data(_1d,"tabs").options; var tab=_1f(_1d); if(tab){ var _20=$(_1d).children("div.tabs-panels"); var _21=_1e.width=="auto"?"auto":_20.width(); var _22=_1e.height=="auto"?"auto":_20.height(); tab.panel("resize",{width:_21,height:_22}); } }; function _23(_24){ var _25=$.data(_24,"tabs").tabs; var cc=$(_24); cc.addClass("tabs-container"); var pp=$("
").insertBefore(cc); cc.children("div").each(function(){ pp[0].appendChild(this); }); cc[0].appendChild(pp[0]); $("
"+"
"+"
"+"
"+""+"
"+"
").prependTo(_24); cc.children("div.tabs-panels").children("div").each(function(i){ var _26=$.extend({},$.parser.parseOptions(this),{selected:($(this).attr("selected")?true:undefined)}); var pp=$(this); _25.push(pp); _36(_24,pp,_26); }); cc.children("div.tabs-header").find(".tabs-scroller-left, .tabs-scroller-right").hover(function(){ $(this).addClass("tabs-scroller-over"); },function(){ $(this).removeClass("tabs-scroller-over"); }); cc.bind("_resize",function(e,_27){ var _28=$.data(_24,"tabs").options; if(_28.fit==true||_27){ _12(_24); _1c(_24); } return false; }); }; function _29(_2a){ var _2b=$.data(_2a,"tabs"); var _2c=_2b.options; $(_2a).children("div.tabs-header").unbind().bind("click",function(e){ if($(e.target).hasClass("tabs-scroller-left")){ $(_2a).tabs("scrollBy",-_2c.scrollIncrement); }else{ if($(e.target).hasClass("tabs-scroller-right")){ $(_2a).tabs("scrollBy",_2c.scrollIncrement); }else{ var li=$(e.target).closest("li"); if(li.hasClass("tabs-disabled")){ return; } var a=$(e.target).closest("a.tabs-close"); if(a.length){ _4c(_2a,_2d(li)); }else{ if(li.length){ var _2e=_2d(li); var _2f=_2b.tabs[_2e].panel("options"); if(_2f.collapsible){ _2f.closed?_41(_2a,_2e):_6b(_2a,_2e); }else{ _41(_2a,_2e); } } } } } }).bind("contextmenu",function(e){ var li=$(e.target).closest("li"); if(li.hasClass("tabs-disabled")){ return; } if(li.length){ _2c.onContextMenu.call(_2a,e,li.find("span.tabs-title").html(),_2d(li)); } }); function _2d(li){ var _30=0; li.parent().children("li").each(function(i){ if(li[0]==this){ _30=i; return false; } }); return _30; }; }; function _31(_32){ var _33=$.data(_32,"tabs").options; var _34=$(_32).children("div.tabs-header"); var _35=$(_32).children("div.tabs-panels"); _34.removeClass("tabs-header-top tabs-header-bottom tabs-header-left tabs-header-right"); _35.removeClass("tabs-panels-top tabs-panels-bottom tabs-panels-left tabs-panels-right"); if(_33.tabPosition=="top"){ _34.insertBefore(_35); }else{ if(_33.tabPosition=="bottom"){ _34.insertAfter(_35); _34.addClass("tabs-header-bottom"); _35.addClass("tabs-panels-top"); }else{ if(_33.tabPosition=="left"){ _34.addClass("tabs-header-left"); _35.addClass("tabs-panels-right"); }else{ if(_33.tabPosition=="right"){ _34.addClass("tabs-header-right"); _35.addClass("tabs-panels-left"); } } } } if(_33.plain==true){ _34.addClass("tabs-header-plain"); }else{ _34.removeClass("tabs-header-plain"); } if(_33.border==true){ _34.removeClass("tabs-header-noborder"); _35.removeClass("tabs-panels-noborder"); }else{ _34.addClass("tabs-header-noborder"); _35.addClass("tabs-panels-noborder"); } }; function _36(_37,pp,_38){ var _39=$.data(_37,"tabs"); _38=_38||{}; pp.panel($.extend({},_38,{border:false,noheader:true,closed:true,doSize:false,iconCls:(_38.icon?_38.icon:undefined),onLoad:function(){ if(_38.onLoad){ _38.onLoad.call(this,arguments); } _39.options.onLoad.call(_37,$(this)); }})); var _3a=pp.panel("options"); var _3b=$(_37).children("div.tabs-header").find("ul.tabs"); _3a.tab=$("
  • ").appendTo(_3b); _3a.tab.append(""+""+""+""); $(_37).tabs("update",{tab:pp,options:_3a}); }; function _3c(_3d,_3e){ var _3f=$.data(_3d,"tabs").options; var _40=$.data(_3d,"tabs").tabs; if(_3e.selected==undefined){ _3e.selected=true; } var pp=$("
    ").appendTo($(_3d).children("div.tabs-panels")); _40.push(pp); _36(_3d,pp,_3e); _3f.onAdd.call(_3d,_3e.title,_40.length-1); _12(_3d); if(_3e.selected){ _41(_3d,_40.length-1); } }; function _42(_43,_44){ var _45=$.data(_43,"tabs").selectHis; var pp=_44.tab; var _46=pp.panel("options").title; pp.panel($.extend({},_44.options,{iconCls:(_44.options.icon?_44.options.icon:undefined)})); var _47=pp.panel("options"); var tab=_47.tab; var _48=tab.find("span.tabs-title"); var _49=tab.find("span.tabs-icon"); _48.html(_47.title); _49.attr("class","tabs-icon"); tab.find("a.tabs-close").remove(); if(_47.closable){ _48.addClass("tabs-closable"); $("").appendTo(tab); }else{ _48.removeClass("tabs-closable"); } if(_47.iconCls){ _48.addClass("tabs-with-icon"); _49.addClass(_47.iconCls); }else{ _48.removeClass("tabs-with-icon"); } if(_46!=_47.title){ for(var i=0;i<_45.length;i++){ if(_45[i]==_46){ _45[i]=_47.title; } } } tab.find("span.tabs-p-tool").remove(); if(_47.tools){ var _4a=$("").insertAfter(tab.find("a.tabs-inner")); if($.isArray(_47.tools)){ for(var i=0;i<_47.tools.length;i++){ var t=$("").appendTo(_4a); t.addClass(_47.tools[i].iconCls); if(_47.tools[i].handler){ t.bind("click",{handler:_47.tools[i].handler},function(e){ if($(this).parents("li").hasClass("tabs-disabled")){ return; } e.data.handler.call(this); }); } } }else{ $(_47.tools).children().appendTo(_4a); } var pr=_4a.children().length*12; if(_47.closable){ pr+=8; }else{ pr-=3; _4a.css("right","5px"); } _48.css("padding-right",pr+"px"); } _12(_43); $.data(_43,"tabs").options.onUpdate.call(_43,_47.title,_4b(_43,pp)); }; function _4c(_4d,_4e){ var _4f=$.data(_4d,"tabs").options; var _50=$.data(_4d,"tabs").tabs; var _51=$.data(_4d,"tabs").selectHis; if(!_52(_4d,_4e)){ return; } var tab=_53(_4d,_4e); var _54=tab.panel("options").title; var _55=_4b(_4d,tab); if(_4f.onBeforeClose.call(_4d,_54,_55)==false){ return; } var tab=_53(_4d,_4e,true); tab.panel("options").tab.remove(); tab.panel("destroy"); _4f.onClose.call(_4d,_54,_55); _12(_4d); for(var i=0;i<_51.length;i++){ if(_51[i]==_54){ _51.splice(i,1); i--; } } var _56=_51.pop(); if(_56){ _41(_4d,_56); }else{ if(_50.length){ _41(_4d,0); } } }; function _53(_57,_58,_59){ var _5a=$.data(_57,"tabs").tabs; if(typeof _58=="number"){ if(_58<0||_58>=_5a.length){ return null; }else{ var tab=_5a[_58]; if(_59){ _5a.splice(_58,1); } return tab; } } for(var i=0;i<_5a.length;i++){ var tab=_5a[i]; if(tab.panel("options").title==_58){ if(_59){ _5a.splice(i,1); } return tab; } } return null; }; function _4b(_5b,tab){ var _5c=$.data(_5b,"tabs").tabs; for(var i=0;i<_5c.length;i++){ if(_5c[i][0]==$(tab)[0]){ return i; } } return -1; }; function _1f(_5d){ var _5e=$.data(_5d,"tabs").tabs; for(var i=0;i<_5e.length;i++){ var tab=_5e[i]; if(tab.panel("options").closed==false){ return tab; } } return null; }; function _5f(_60){ var _61=$.data(_60,"tabs"); var _62=_61.tabs; for(var i=0;i<_62.length;i++){ if(_62[i].panel("options").selected){ _41(_60,i); return; } } _41(_60,_61.options.selected); }; function _41(_63,_64){ var _65=$.data(_63,"tabs"); var _66=_65.options; var _67=_65.tabs; var _68=_65.selectHis; if(_67.length==0){ return; } var _69=_53(_63,_64); if(!_69){ return; } var _6a=_1f(_63); if(_6a){ if(_69[0]==_6a[0]){ _1c(_63); return; } _6b(_63,_4b(_63,_6a)); if(!_6a.panel("options").closed){ return; } } _69.panel("open"); var _6c=_69.panel("options").title; _68.push(_6c); var tab=_69.panel("options").tab; tab.addClass("tabs-selected"); var _6d=$(_63).find(">div.tabs-header>div.tabs-wrap"); var _6e=tab.position().left; var _6f=_6e+tab.outerWidth(); if(_6e<0||_6f>_6d.width()){ var _70=_6e-(_6d.width()-tab.width())/2; $(_63).tabs("scrollBy",_70); }else{ $(_63).tabs("scrollBy",0); } _1c(_63); _66.onSelect.call(_63,_6c,_4b(_63,_69)); }; function _6b(_71,_72){ var _73=$.data(_71,"tabs"); var p=_53(_71,_72); if(p){ var _74=p.panel("options"); if(!_74.closed){ p.panel("close"); if(_74.closed){ _74.tab.removeClass("tabs-selected"); _73.options.onUnselect.call(_71,_74.title,_4b(_71,p)); } } } }; function _52(_75,_76){ return _53(_75,_76)!=null; }; function _77(_78,_79){ var _7a=$.data(_78,"tabs").options; _7a.showHeader=_79; $(_78).tabs("resize"); }; $.fn.tabs=function(_7b,_7c){ if(typeof _7b=="string"){ return $.fn.tabs.methods[_7b](this,_7c); } _7b=_7b||{}; return this.each(function(){ var _7d=$.data(this,"tabs"); var _7e; if(_7d){ _7e=$.extend(_7d.options,_7b); _7d.options=_7e; }else{ $.data(this,"tabs",{options:$.extend({},$.fn.tabs.defaults,$.fn.tabs.parseOptions(this),_7b),tabs:[],selectHis:[]}); _23(this); } _c(this); _31(this); _12(this); _29(this); _5f(this); }); }; $.fn.tabs.methods={options:function(jq){ var cc=jq[0]; var _7f=$.data(cc,"tabs").options; var s=_1f(cc); _7f.selected=s?_4b(cc,s):-1; return _7f; },tabs:function(jq){ return $.data(jq[0],"tabs").tabs; },resize:function(jq){ return jq.each(function(){ _12(this); _1c(this); }); },add:function(jq,_80){ return jq.each(function(){ _3c(this,_80); }); },close:function(jq,_81){ return jq.each(function(){ _4c(this,_81); }); },getTab:function(jq,_82){ return _53(jq[0],_82); },getTabIndex:function(jq,tab){ return _4b(jq[0],tab); },getSelected:function(jq){ return _1f(jq[0]); },select:function(jq,_83){ return jq.each(function(){ _41(this,_83); }); },unselect:function(jq,_84){ return jq.each(function(){ _6b(this,_84); }); },exists:function(jq,_85){ return _52(jq[0],_85); },update:function(jq,_86){ return jq.each(function(){ _42(this,_86); }); },enableTab:function(jq,_87){ return jq.each(function(){ $(this).tabs("getTab",_87).panel("options").tab.removeClass("tabs-disabled"); }); },disableTab:function(jq,_88){ return jq.each(function(){ $(this).tabs("getTab",_88).panel("options").tab.addClass("tabs-disabled"); }); },showHeader:function(jq){ return jq.each(function(){ _77(this,true); }); },hideHeader:function(jq){ return jq.each(function(){ _77(this,false); }); },scrollBy:function(jq,_89){ return jq.each(function(){ var _8a=$(this).tabs("options"); var _8b=$(this).find(">div.tabs-header>div.tabs-wrap"); var pos=Math.min(_8b._scrollLeft()+_89,_8c()); _8b.animate({scrollLeft:pos},_8a.scrollDuration); function _8c(){ var w=0; var ul=_8b.children("ul"); ul.children("li").each(function(){ w+=$(this).outerWidth(true); }); return w-_8b.width()+(ul.outerWidth()-ul.width()); }; }); }}; $.fn.tabs.parseOptions=function(_8d){ return $.extend({},$.parser.parseOptions(_8d,["width","height","tools","toolPosition","tabPosition",{fit:"boolean",border:"boolean",plain:"boolean",headerWidth:"number",tabWidth:"number",tabHeight:"number",selected:"number",showHeader:"boolean"}])); }; $.fn.tabs.defaults={width:"auto",height:"auto",headerWidth:150,tabWidth:"auto",tabHeight:27,selected:0,showHeader:true,plain:false,fit:false,border:true,tools:null,toolPosition:"right",tabPosition:"top",scrollIncrement:100,scrollDuration:400,onLoad:function(_8e){ },onSelect:function(_8f,_90){ },onUnselect:function(_91,_92){ },onBeforeClose:function(_93,_94){ },onClose:function(_95,_96){ },onAdd:function(_97,_98){ },onUpdate:function(_99,_9a){ },onContextMenu:function(e,_9b,_9c){ }}; })(jQuery);