rushfee/WebContent/www/jquery-easyui-1.4/plugins/jquery.panel.js

543 lines
13 KiB
JavaScript
Raw Normal View History

2022-05-16 15:07:40 +00:00
/**
* 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($){
$.fn._remove=function(){
return this.each(function(){
$(this).remove();
try{
this.outerHTML="";
}
catch(err){
}
});
};
function _1(_2){
_2._remove();
};
function _3(_4,_5){
var _6=$.data(_4,"panel");
var _7=_6.options;
var _8=_6.panel;
var _9=_8.children("div.panel-header");
var _a=_8.children("div.panel-body");
if(_5){
$.extend(_7,{width:_5.width,height:_5.height,minWidth:_5.minWidth,maxWidth:_5.maxWidth,minHeight:_5.minHeight,maxHeight:_5.maxHeight,left:_5.left,top:_5.top});
}
_8._size(_7);
_9.add(_a)._outerWidth(_8.width());
if(!isNaN(parseInt(_7.height))){
_a._outerHeight(_8.height()-_9._outerHeight());
}else{
_a.css("height","");
var _b=$.parser.parseValue("minHeight",_7.minHeight,_8.parent());
var _c=$.parser.parseValue("maxHeight",_7.maxHeight,_8.parent());
var _d=_9._outerHeight()+_8._outerHeight()-_8.height();
_a._size("minHeight",_b?(_b-_d):"");
_a._size("maxHeight",_c?(_c-_d):"");
}
_8.css({height:"",minHeight:"",maxHeight:"",left:_7.left,top:_7.top});
_7.onResize.apply(_4,[_7.width,_7.height]);
$(_4).panel("doLayout");
};
function _e(_f,_10){
var _11=$.data(_f,"panel").options;
var _12=$.data(_f,"panel").panel;
if(_10){
if(_10.left!=null){
_11.left=_10.left;
}
if(_10.top!=null){
_11.top=_10.top;
}
}
_12.css({left:_11.left,top:_11.top});
_11.onMove.apply(_f,[_11.left,_11.top]);
};
function _13(_14){
$(_14).addClass("panel-body")._size("clear");
var _15=$("<div class=\"panel\"></div>").insertBefore(_14);
_15[0].appendChild(_14);
_15.bind("_resize",function(e,_16){
if($(this).hasClass("easyui-fluid")||_16){
_3(_14);
}
return false;
});
return _15;
};
function _17(_18){
var _19=$.data(_18,"panel");
var _1a=_19.options;
var _1b=_19.panel;
_1b.css(_1a.style);
_1b.addClass(_1a.cls);
_1c();
var _1d=$(_18).panel("header");
var _1e=$(_18).panel("body");
if(_1a.border){
_1d.removeClass("panel-header-noborder");
_1e.removeClass("panel-body-noborder");
}else{
_1d.addClass("panel-header-noborder");
_1e.addClass("panel-body-noborder");
}
_1d.addClass(_1a.headerCls);
_1e.addClass(_1a.bodyCls);
$(_18).attr("id",_1a.id||"");
if(_1a.content){
$(_18).panel("clear");
$(_18).html(_1a.content);
$.parser.parse($(_18));
}
function _1c(){
if(_1a.tools&&typeof _1a.tools=="string"){
_1b.find(">div.panel-header>div.panel-tool .panel-tool-a").appendTo(_1a.tools);
}
_1(_1b.children("div.panel-header"));
if(_1a.title&&!_1a.noheader){
var _1f=$("<div class=\"panel-header\"></div>").prependTo(_1b);
var _20=$("<div class=\"panel-title\"></div>").html(_1a.title).appendTo(_1f);
if(_1a.iconCls){
_20.addClass("panel-with-icon");
$("<div class=\"panel-icon\"></div>").addClass(_1a.iconCls).appendTo(_1f);
}
var _21=$("<div class=\"panel-tool\"></div>").appendTo(_1f);
_21.bind("click",function(e){
e.stopPropagation();
});
if(_1a.tools){
if($.isArray(_1a.tools)){
for(var i=0;i<_1a.tools.length;i++){
var t=$("<a href=\"javascript:void(0)\"></a>").addClass(_1a.tools[i].iconCls).appendTo(_21);
if(_1a.tools[i].handler){
t.bind("click",eval(_1a.tools[i].handler));
}
}
}else{
$(_1a.tools).children().each(function(){
$(this).addClass($(this).attr("iconCls")).addClass("panel-tool-a").appendTo(_21);
});
}
}
if(_1a.collapsible){
$("<a class=\"panel-tool-collapse\" href=\"javascript:void(0)\"></a>").appendTo(_21).bind("click",function(){
if(_1a.collapsed==true){
_46(_18,true);
}else{
_36(_18,true);
}
return false;
});
}
if(_1a.minimizable){
$("<a class=\"panel-tool-min\" href=\"javascript:void(0)\"></a>").appendTo(_21).bind("click",function(){
_51(_18);
return false;
});
}
if(_1a.maximizable){
$("<a class=\"panel-tool-max\" href=\"javascript:void(0)\"></a>").appendTo(_21).bind("click",function(){
if(_1a.maximized==true){
_55(_18);
}else{
_35(_18);
}
return false;
});
}
if(_1a.closable){
$("<a class=\"panel-tool-close\" href=\"javascript:void(0)\"></a>").appendTo(_21).bind("click",function(){
_22(_18);
return false;
});
}
_1b.children("div.panel-body").removeClass("panel-body-noheader");
}else{
_1b.children("div.panel-body").addClass("panel-body-noheader");
}
};
};
function _23(_24,_25){
var _26=$.data(_24,"panel");
var _27=_26.options;
if(_28){
_27.queryParams=_25;
}
if(!_27.href){
return;
}
if(!_26.isLoaded||!_27.cache){
var _28=$.extend({},_27.queryParams);
if(_27.onBeforeLoad.call(_24,_28)==false){
return;
}
_26.isLoaded=false;
$(_24).panel("clear");
if(_27.loadingMessage){
$(_24).html($("<div class=\"panel-loading\"></div>").html(_27.loadingMessage));
}
_27.loader.call(_24,_28,function(_29){
var _2a=_27.extractor.call(_24,_29);
$(_24).html(_2a);
$.parser.parse($(_24));
_27.onLoad.apply(_24,arguments);
_26.isLoaded=true;
},function(){
_27.onLoadError.apply(_24,arguments);
});
}
};
function _2b(_2c){
var t=$(_2c);
t.find(".combo-f").each(function(){
$(this).combo("destroy");
});
t.find(".m-btn").each(function(){
$(this).menubutton("destroy");
});
t.find(".s-btn").each(function(){
$(this).splitbutton("destroy");
});
t.find(".tooltip-f").each(function(){
$(this).tooltip("destroy");
});
t.children("div").each(function(){
$(this)._size("unfit");
});
t.empty();
};
function _2d(_2e){
$(_2e).panel("doLayout",true);
};
function _2f(_30,_31){
var _32=$.data(_30,"panel").options;
var _33=$.data(_30,"panel").panel;
if(_31!=true){
if(_32.onBeforeOpen.call(_30)==false){
return;
}
}
_33.show();
_32.closed=false;
_32.minimized=false;
var _34=_33.children("div.panel-header").find("a.panel-tool-restore");
if(_34.length){
_32.maximized=true;
}
_32.onOpen.call(_30);
if(_32.maximized==true){
_32.maximized=false;
_35(_30);
}
if(_32.collapsed==true){
_32.collapsed=false;
_36(_30);
}
if(!_32.collapsed){
_23(_30);
_2d(_30);
}
};
function _22(_37,_38){
var _39=$.data(_37,"panel").options;
var _3a=$.data(_37,"panel").panel;
if(_38!=true){
if(_39.onBeforeClose.call(_37)==false){
return;
}
}
_3a._size("unfit");
_3a.hide();
_39.closed=true;
_39.onClose.call(_37);
};
function _3b(_3c,_3d){
var _3e=$.data(_3c,"panel").options;
var _3f=$.data(_3c,"panel").panel;
if(_3d!=true){
if(_3e.onBeforeDestroy.call(_3c)==false){
return;
}
}
$(_3c).panel("clear");
_1(_3f);
_3e.onDestroy.call(_3c);
};
function _36(_40,_41){
var _42=$.data(_40,"panel").options;
var _43=$.data(_40,"panel").panel;
var _44=_43.children("div.panel-body");
var _45=_43.children("div.panel-header").find("a.panel-tool-collapse");
if(_42.collapsed==true){
return;
}
_44.stop(true,true);
if(_42.onBeforeCollapse.call(_40)==false){
return;
}
_45.addClass("panel-tool-expand");
if(_41==true){
_44.slideUp("normal",function(){
_42.collapsed=true;
_42.onCollapse.call(_40);
});
}else{
_44.hide();
_42.collapsed=true;
_42.onCollapse.call(_40);
}
};
function _46(_47,_48){
var _49=$.data(_47,"panel").options;
var _4a=$.data(_47,"panel").panel;
var _4b=_4a.children("div.panel-body");
var _4c=_4a.children("div.panel-header").find("a.panel-tool-collapse");
if(_49.collapsed==false){
return;
}
_4b.stop(true,true);
if(_49.onBeforeExpand.call(_47)==false){
return;
}
_4c.removeClass("panel-tool-expand");
if(_48==true){
_4b.slideDown("normal",function(){
_49.collapsed=false;
_49.onExpand.call(_47);
_23(_47);
_2d(_47);
});
}else{
_4b.show();
_49.collapsed=false;
_49.onExpand.call(_47);
_23(_47);
_2d(_47);
}
};
function _35(_4d){
var _4e=$.data(_4d,"panel").options;
var _4f=$.data(_4d,"panel").panel;
var _50=_4f.children("div.panel-header").find("a.panel-tool-max");
if(_4e.maximized==true){
return;
}
_50.addClass("panel-tool-restore");
if(!$.data(_4d,"panel").original){
$.data(_4d,"panel").original={width:_4e.width,height:_4e.height,left:_4e.left,top:_4e.top,fit:_4e.fit};
}
_4e.left=0;
_4e.top=0;
_4e.fit=true;
_3(_4d);
_4e.minimized=false;
_4e.maximized=true;
_4e.onMaximize.call(_4d);
};
function _51(_52){
var _53=$.data(_52,"panel").options;
var _54=$.data(_52,"panel").panel;
_54._size("unfit");
_54.hide();
_53.minimized=true;
_53.maximized=false;
_53.onMinimize.call(_52);
};
function _55(_56){
var _57=$.data(_56,"panel").options;
var _58=$.data(_56,"panel").panel;
var _59=_58.children("div.panel-header").find("a.panel-tool-max");
if(_57.maximized==false){
return;
}
_58.show();
_59.removeClass("panel-tool-restore");
$.extend(_57,$.data(_56,"panel").original);
_3(_56);
_57.minimized=false;
_57.maximized=false;
$.data(_56,"panel").original=null;
_57.onRestore.call(_56);
};
function _5a(_5b,_5c){
$.data(_5b,"panel").options.title=_5c;
$(_5b).panel("header").find("div.panel-title").html(_5c);
};
var _5d=null;
$(window).unbind(".panel").bind("resize.panel",function(){
if(_5d){
clearTimeout(_5d);
}
_5d=setTimeout(function(){
var _5e=$("body.layout");
if(_5e.length){
_5e.layout("resize");
}else{
$("body").panel("doLayout");
}
_5d=null;
},100);
});
$.fn.panel=function(_5f,_60){
if(typeof _5f=="string"){
return $.fn.panel.methods[_5f](this,_60);
}
_5f=_5f||{};
return this.each(function(){
var _61=$.data(this,"panel");
var _62;
if(_61){
_62=$.extend(_61.options,_5f);
_61.isLoaded=false;
}else{
_62=$.extend({},$.fn.panel.defaults,$.fn.panel.parseOptions(this),_5f);
$(this).attr("title","");
_61=$.data(this,"panel",{options:_62,panel:_13(this),isLoaded:false});
}
_17(this);
if(_62.doSize==true){
_61.panel.css("display","block");
_3(this);
}
if(_62.closed==true||_62.minimized==true){
_61.panel.hide();
}else{
_2f(this);
}
});
};
$.fn.panel.methods={options:function(jq){
return $.data(jq[0],"panel").options;
},panel:function(jq){
return $.data(jq[0],"panel").panel;
},header:function(jq){
return $.data(jq[0],"panel").panel.find(">div.panel-header");
},body:function(jq){
return $.data(jq[0],"panel").panel.find(">div.panel-body");
},setTitle:function(jq,_63){
return jq.each(function(){
_5a(this,_63);
});
},open:function(jq,_64){
return jq.each(function(){
_2f(this,_64);
});
},close:function(jq,_65){
return jq.each(function(){
_22(this,_65);
});
},destroy:function(jq,_66){
return jq.each(function(){
_3b(this,_66);
});
},clear:function(jq){
return jq.each(function(){
_2b(this);
});
},refresh:function(jq,_67){
return jq.each(function(){
var _68=$.data(this,"panel");
_68.isLoaded=false;
if(_67){
if(typeof _67=="string"){
_68.options.href=_67;
}else{
_68.options.queryParams=_67;
}
}
_23(this);
});
},resize:function(jq,_69){
return jq.each(function(){
_3(this,_69);
});
},doLayout:function(jq,all){
return jq.each(function(){
var _6a=this;
var _6b=_6a==$("body")[0];
var s=$(this).find("div.panel:visible,div.accordion:visible,div.tabs-container:visible,div.layout:visible,.easyui-fluid:visible").filter(function(_6c,el){
var p=$(el).parents("div.panel-body:first");
if(_6b){
return p.length==0;
}else{
return p[0]==_6a;
}
});
s.trigger("_resize",[all||false]);
});
},move:function(jq,_6d){
return jq.each(function(){
_e(this,_6d);
});
},maximize:function(jq){
return jq.each(function(){
_35(this);
});
},minimize:function(jq){
return jq.each(function(){
_51(this);
});
},restore:function(jq){
return jq.each(function(){
_55(this);
});
},collapse:function(jq,_6e){
return jq.each(function(){
_36(this,_6e);
});
},expand:function(jq,_6f){
return jq.each(function(){
_46(this,_6f);
});
}};
$.fn.panel.parseOptions=function(_70){
var t=$(_70);
return $.extend({},$.parser.parseOptions(_70,["id","width","height","left","top","title","iconCls","cls","headerCls","bodyCls","tools","href","method",{cache:"boolean",fit:"boolean",border:"boolean",noheader:"boolean"},{collapsible:"boolean",minimizable:"boolean",maximizable:"boolean"},{closable:"boolean",collapsed:"boolean",minimized:"boolean",maximized:"boolean",closed:"boolean"}]),{loadingMessage:(t.attr("loadingMessage")!=undefined?t.attr("loadingMessage"):undefined)});
};
$.fn.panel.defaults={id:null,title:null,iconCls:null,width:"auto",height:"auto",left:null,top:null,cls:null,headerCls:null,bodyCls:null,style:{},href:null,cache:true,fit:false,border:true,doSize:true,noheader:false,content:null,collapsible:false,minimizable:false,maximizable:false,closable:false,collapsed:false,minimized:false,maximized:false,closed:false,tools:null,queryParams:{},method:"get",href:null,loadingMessage:"Loading...",loader:function(_71,_72,_73){
var _74=$(this).panel("options");
if(!_74.href){
return false;
}
$.ajax({type:_74.method,url:_74.href,cache:false,data:_71,dataType:"html",success:function(_75){
_72(_75);
},error:function(){
_73.apply(this,arguments);
}});
},extractor:function(_76){
var _77=/<body[^>]*>((.|[\n\r])*)<\/body>/im;
var _78=_77.exec(_76);
if(_78){
return _78[1];
}else{
return _76;
}
},onBeforeLoad:function(_79){
},onLoad:function(){
},onLoadError:function(){
},onBeforeOpen:function(){
},onOpen:function(){
},onBeforeClose:function(){
},onClose:function(){
},onBeforeDestroy:function(){
},onDestroy:function(){
},onResize:function(_7a,_7b){
},onMove:function(_7c,top){
},onMaximize:function(){
},onRestore:function(){
},onMinimize:function(){
},onBeforeCollapse:function(){
},onBeforeExpand:function(){
},onCollapse:function(){
},onExpand:function(){
}};
})(jQuery);