/** * jQuery EasyUI 1.4 * * 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,_14){ var _15=$.data(_13,"tabs"); var _16=_15.options; var cc=$(_13); if(_14){ $.extend(_16,{width:_14.width,height:_14.height}); } cc._size(_16); var _17=cc.children("div.tabs-header"); var _18=cc.children("div.tabs-panels"); var _19=_17.find("div.tabs-wrap"); var ul=_19.find(".tabs"); for(var i=0;i<_15.tabs.length;i++){ var _1a=_15.tabs[i].panel("options"); var p_t=_1a.tab.find("a.tabs-inner"); var _1b=parseInt(_1a.tabWidth||_16.tabWidth)||undefined; if(_1b){ p_t._outerWidth(_1b); }else{ p_t.css("width",""); } p_t._outerHeight(_16.tabHeight); p_t.css("lineHeight",p_t.height()+"px"); } if(_16.tabPosition=="left"||_16.tabPosition=="right"){ _17._outerWidth(_16.showHeader?_16.headerWidth:0); _18._outerWidth(cc.width()-_17.outerWidth()); _17.add(_18)._outerHeight(_16.height); _19._outerWidth(_17.width()); ul._outerWidth(_19.width()).css("height",""); }else{ var lrt=_17.children("div.tabs-scroller-left,div.tabs-scroller-right,div.tabs-tool"); _17._outerWidth(_16.width).css("height",""); if(_16.showHeader){ _17.css("background-color",""); _19.css("height",""); lrt.show(); }else{ _17.css("background-color","transparent"); _17._outerHeight(0); _19._outerHeight(0); lrt.hide(); } ul._outerHeight(_16.tabHeight).css("width",""); _1(_13); _18._size("height",isNaN(_16.height)?"":(_16.height-_17.outerHeight())); _18._size("width",isNaN(_16.width)?"":_16.width); } }; 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); _35(_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){ if($(this).hasClass("easyui-fluid")||_27){ _12(_24); _1c(_24); } return false; }); }; function _28(_29){ var _2a=$.data(_29,"tabs"); var _2b=_2a.options; $(_29).children("div.tabs-header").unbind().bind("click",function(e){ if($(e.target).hasClass("tabs-scroller-left")){ $(_29).tabs("scrollBy",-_2b.scrollIncrement); }else{ if($(e.target).hasClass("tabs-scroller-right")){ $(_29).tabs("scrollBy",_2b.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){ _4b(_29,_2c(li)); }else{ if(li.length){ var _2d=_2c(li); var _2e=_2a.tabs[_2d].panel("options"); if(_2e.collapsible){ _2e.closed?_40(_29,_2d):_6a(_29,_2d); }else{ _40(_29,_2d); } } } } } }).bind("contextmenu",function(e){ var li=$(e.target).closest("li"); if(li.hasClass("tabs-disabled")){ return; } if(li.length){ _2b.onContextMenu.call(_29,e,li.find("span.tabs-title").html(),_2c(li)); } }); function _2c(li){ var _2f=0; li.parent().children("li").each(function(i){ if(li[0]==this){ _2f=i; return false; } }); return _2f; }; }; function _30(_31){ var _32=$.data(_31,"tabs").options; var _33=$(_31).children("div.tabs-header"); var _34=$(_31).children("div.tabs-panels"); _33.removeClass("tabs-header-top tabs-header-bottom tabs-header-left tabs-header-right"); _34.removeClass("tabs-panels-top tabs-panels-bottom tabs-panels-left tabs-panels-right"); if(_32.tabPosition=="top"){ _33.insertBefore(_34); }else{ if(_32.tabPosition=="bottom"){ _33.insertAfter(_34); _33.addClass("tabs-header-bottom"); _34.addClass("tabs-panels-top"); }else{ if(_32.tabPosition=="left"){ _33.addClass("tabs-header-left"); _34.addClass("tabs-panels-right"); }else{ if(_32.tabPosition=="right"){ _33.addClass("tabs-header-right"); _34.addClass("tabs-panels-left"); } } } } if(_32.plain==true){ _33.addClass("tabs-header-plain"); }else{ _33.removeClass("tabs-header-plain"); } if(_32.border==true){ _33.removeClass("tabs-header-noborder"); _34.removeClass("tabs-panels-noborder"); }else{ _33.addClass("tabs-header-noborder"); _34.addClass("tabs-panels-noborder"); } }; function _35(_36,pp,_37){ var _38=$.data(_36,"tabs"); _37=_37||{}; pp.panel($.extend({},_37,{border:false,noheader:true,closed:true,doSize:false,iconCls:(_37.icon?_37.icon:undefined),onLoad:function(){ if(_37.onLoad){ _37.onLoad.call(this,arguments); } _38.options.onLoad.call(_36,$(this)); }})); var _39=pp.panel("options"); var _3a=$(_36).children("div.tabs-header").find("ul.tabs"); _39.tab=$("
  • ").appendTo(_3a); _39.tab.append(""+""+""+""); $(_36).tabs("update",{tab:pp,options:_39}); }; function _3b(_3c,_3d){ var _3e=$.data(_3c,"tabs").options; var _3f=$.data(_3c,"tabs").tabs; if(_3d.selected==undefined){ _3d.selected=true; } var pp=$("
    ").appendTo($(_3c).children("div.tabs-panels")); _3f.push(pp); _35(_3c,pp,_3d); _3e.onAdd.call(_3c,_3d.title,_3f.length-1); _12(_3c); if(_3d.selected){ _40(_3c,_3f.length-1); } }; function _41(_42,_43){ var _44=$.data(_42,"tabs").selectHis; var pp=_43.tab; var _45=pp.panel("options").title; pp.panel($.extend({},_43.options,{iconCls:(_43.options.icon?_43.options.icon:undefined)})); var _46=pp.panel("options"); var tab=_46.tab; var _47=tab.find("span.tabs-title"); var _48=tab.find("span.tabs-icon"); _47.html(_46.title); _48.attr("class","tabs-icon"); tab.find("a.tabs-close").remove(); if(_46.closable){ _47.addClass("tabs-closable"); $("").appendTo(tab); }else{ _47.removeClass("tabs-closable"); } if(_46.iconCls){ _47.addClass("tabs-with-icon"); _48.addClass(_46.iconCls); }else{ _47.removeClass("tabs-with-icon"); } if(_45!=_46.title){ for(var i=0;i<_44.length;i++){ if(_44[i]==_45){ _44[i]=_46.title; } } } tab.find("span.tabs-p-tool").remove(); if(_46.tools){ var _49=$("").insertAfter(tab.find("a.tabs-inner")); if($.isArray(_46.tools)){ for(var i=0;i<_46.tools.length;i++){ var t=$("").appendTo(_49); t.addClass(_46.tools[i].iconCls); if(_46.tools[i].handler){ t.bind("click",{handler:_46.tools[i].handler},function(e){ if($(this).parents("li").hasClass("tabs-disabled")){ return; } e.data.handler.call(this); }); } } }else{ $(_46.tools).children().appendTo(_49); } var pr=_49.children().length*12; if(_46.closable){ pr+=8; }else{ pr-=3; _49.css("right","5px"); } _47.css("padding-right",pr+"px"); } _12(_42); $.data(_42,"tabs").options.onUpdate.call(_42,_46.title,_4a(_42,pp)); }; function _4b(_4c,_4d){ var _4e=$.data(_4c,"tabs").options; var _4f=$.data(_4c,"tabs").tabs; var _50=$.data(_4c,"tabs").selectHis; if(!_51(_4c,_4d)){ return; } var tab=_52(_4c,_4d); var _53=tab.panel("options").title; var _54=_4a(_4c,tab); if(_4e.onBeforeClose.call(_4c,_53,_54)==false){ return; } var tab=_52(_4c,_4d,true); tab.panel("options").tab.remove(); tab.panel("destroy"); _4e.onClose.call(_4c,_53,_54); _12(_4c); for(var i=0;i<_50.length;i++){ if(_50[i]==_53){ _50.splice(i,1); i--; } } var _55=_50.pop(); if(_55){ _40(_4c,_55); }else{ if(_4f.length){ _40(_4c,0); } } }; function _52(_56,_57,_58){ var _59=$.data(_56,"tabs").tabs; if(typeof _57=="number"){ if(_57<0||_57>=_59.length){ return null; }else{ var tab=_59[_57]; if(_58){ _59.splice(_57,1); } return tab; } } for(var i=0;i<_59.length;i++){ var tab=_59[i]; if(tab.panel("options").title==_57){ if(_58){ _59.splice(i,1); } return tab; } } return null; }; function _4a(_5a,tab){ var _5b=$.data(_5a,"tabs").tabs; for(var i=0;i<_5b.length;i++){ if(_5b[i][0]==$(tab)[0]){ return i; } } return -1; }; function _1f(_5c){ var _5d=$.data(_5c,"tabs").tabs; for(var i=0;i<_5d.length;i++){ var tab=_5d[i]; if(tab.panel("options").closed==false){ return tab; } } return null; }; function _5e(_5f){ var _60=$.data(_5f,"tabs"); var _61=_60.tabs; for(var i=0;i<_61.length;i++){ if(_61[i].panel("options").selected){ _40(_5f,i); return; } } _40(_5f,_60.options.selected); }; function _40(_62,_63){ var _64=$.data(_62,"tabs"); var _65=_64.options; var _66=_64.tabs; var _67=_64.selectHis; if(_66.length==0){ return; } var _68=_52(_62,_63); if(!_68){ return; } var _69=_1f(_62); if(_69){ if(_68[0]==_69[0]){ _1c(_62); return; } _6a(_62,_4a(_62,_69)); if(!_69.panel("options").closed){ return; } } _68.panel("open"); var _6b=_68.panel("options").title; _67.push(_6b); var tab=_68.panel("options").tab; tab.addClass("tabs-selected"); var _6c=$(_62).find(">div.tabs-header>div.tabs-wrap"); var _6d=tab.position().left; var _6e=_6d+tab.outerWidth(); if(_6d<0||_6e>_6c.width()){ var _6f=_6d-(_6c.width()-tab.width())/2; $(_62).tabs("scrollBy",_6f); }else{ $(_62).tabs("scrollBy",0); } _1c(_62); _65.onSelect.call(_62,_6b,_4a(_62,_68)); }; function _6a(_70,_71){ var _72=$.data(_70,"tabs"); var p=_52(_70,_71); if(p){ var _73=p.panel("options"); if(!_73.closed){ p.panel("close"); if(_73.closed){ _73.tab.removeClass("tabs-selected"); _72.options.onUnselect.call(_70,_73.title,_4a(_70,p)); } } } }; function _51(_74,_75){ return _52(_74,_75)!=null; }; function _76(_77,_78){ var _79=$.data(_77,"tabs").options; _79.showHeader=_78; $(_77).tabs("resize"); }; $.fn.tabs=function(_7a,_7b){ if(typeof _7a=="string"){ return $.fn.tabs.methods[_7a](this,_7b); } _7a=_7a||{}; return this.each(function(){ var _7c=$.data(this,"tabs"); if(_7c){ $.extend(_7c.options,_7a); }else{ $.data(this,"tabs",{options:$.extend({},$.fn.tabs.defaults,$.fn.tabs.parseOptions(this),_7a),tabs:[],selectHis:[]}); _23(this); } _c(this); _30(this); _12(this); _28(this); _5e(this); }); }; $.fn.tabs.methods={options:function(jq){ var cc=jq[0]; var _7d=$.data(cc,"tabs").options; var s=_1f(cc); _7d.selected=s?_4a(cc,s):-1; return _7d; },tabs:function(jq){ return $.data(jq[0],"tabs").tabs; },resize:function(jq,_7e){ return jq.each(function(){ _12(this,_7e); _1c(this); }); },add:function(jq,_7f){ return jq.each(function(){ _3b(this,_7f); }); },close:function(jq,_80){ return jq.each(function(){ _4b(this,_80); }); },getTab:function(jq,_81){ return _52(jq[0],_81); },getTabIndex:function(jq,tab){ return _4a(jq[0],tab); },getSelected:function(jq){ return _1f(jq[0]); },select:function(jq,_82){ return jq.each(function(){ _40(this,_82); }); },unselect:function(jq,_83){ return jq.each(function(){ _6a(this,_83); }); },exists:function(jq,_84){ return _51(jq[0],_84); },update:function(jq,_85){ return jq.each(function(){ _41(this,_85); }); },enableTab:function(jq,_86){ return jq.each(function(){ $(this).tabs("getTab",_86).panel("options").tab.removeClass("tabs-disabled"); }); },disableTab:function(jq,_87){ return jq.each(function(){ $(this).tabs("getTab",_87).panel("options").tab.addClass("tabs-disabled"); }); },showHeader:function(jq){ return jq.each(function(){ _76(this,true); }); },hideHeader:function(jq){ return jq.each(function(){ _76(this,false); }); },scrollBy:function(jq,_88){ return jq.each(function(){ var _89=$(this).tabs("options"); var _8a=$(this).find(">div.tabs-header>div.tabs-wrap"); var pos=Math.min(_8a._scrollLeft()+_88,_8b()); _8a.animate({scrollLeft:pos},_89.scrollDuration); function _8b(){ var w=0; var ul=_8a.children("ul"); ul.children("li").each(function(){ w+=$(this).outerWidth(true); }); return w-_8a.width()+(ul.outerWidth()-ul.width()); }; }); }}; $.fn.tabs.parseOptions=function(_8c){ return $.extend({},$.parser.parseOptions(_8c,["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(_8d){ },onSelect:function(_8e,_8f){ },onUnselect:function(_90,_91){ },onBeforeClose:function(_92,_93){ },onClose:function(_94,_95){ },onAdd:function(_96,_97){ },onUpdate:function(_98,_99){ },onContextMenu:function(e,_9a,_9b){ }}; })(jQuery);