/** * jQuery EasyUI 1.3.2 * * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved. * * Licensed under the GPL or commercial licenses * To use it on other terms please contact us: jeasyui@gmail.com * http://www.gnu.org/licenses/gpl.txt * http://www.jeasyui.com/license_commercial.php * */ (function($){ var _1=0; function _2(a,o){ for(var i=0,_3=a.length;i<_3;i++){ if(a[i]==o){ return i; } } return -1; }; function _4(a,o,id){ if(typeof o=="string"){ for(var i=0,_5=a.length;i<_5;i++){ if(a[i][o]==id){ a.splice(i,1); return; } } }else{ var _6=_2(a,o); if(_6!=-1){ a.splice(_6,1); } } }; function _7(a,o,r){ for(var i=0,_8=a.length;i<_8;i++){ if(a[i][o]==r[o]){ return; } } a.push(r); }; function _9(_a,_b){ var _c=$.data(_a,"datagrid").options; var _d=$.data(_a,"datagrid").panel; if(_b){ if(_b.width){ _c.width=_b.width; } if(_b.height){ _c.height=_b.height; } } if(_c.fit==true){ var p=_d.panel("panel").parent(); _c.width=p.width(); _c.height=p.height(); } _d.panel("resize",{width:_c.width,height:_c.height}); }; function _e(_f){ var _10=$.data(_f,"datagrid").options; var dc=$.data(_f,"datagrid").dc; var _11=$.data(_f,"datagrid").panel; var _12=_11.width(); var _13=_11.height(); var _14=dc.view; var _15=dc.view1; var _16=dc.view2; var _17=_15.children("div.datagrid-header"); var _18=_16.children("div.datagrid-header"); var _19=_17.find("table"); var _1a=_18.find("table"); _14.width(_12); var _1b=_17.children("div.datagrid-header-inner").show(); _15.width(_1b.find("table").width()); if(!_10.showHeader){ _1b.hide(); } _16.width(_12-_15._outerWidth()); _15.children("div.datagrid-header,div.datagrid-body,div.datagrid-footer").width(_15.width()); _16.children("div.datagrid-header,div.datagrid-body,div.datagrid-footer").width(_16.width()); var hh; _17.css("height",""); _18.css("height",""); _19.css("height",""); _1a.css("height",""); hh=Math.max(_19.height(),_1a.height()); _19.height(hh); _1a.height(hh); _17.add(_18)._outerHeight(hh); if(_10.height!="auto"){ var _1c=_13-_16.children("div.datagrid-header")._outerHeight()-_16.children("div.datagrid-footer")._outerHeight()-_11.children("div.datagrid-toolbar")._outerHeight(); _11.children("div.datagrid-pager").each(function(){ _1c-=$(this)._outerHeight(); }); dc.body1.add(dc.body2).children("table.datagrid-btable-frozen").css({position:"absolute",top:dc.header2._outerHeight()}); var _1d=dc.body2.children("table.datagrid-btable-frozen")._outerHeight(); _15.add(_16).children("div.datagrid-body").css({marginTop:_1d,height:(_1c-_1d)}); } _14.height(_16.height()); }; function _1e(_1f,_20,_21){ var _22=$.data(_1f,"datagrid").data.rows; var _23=$.data(_1f,"datagrid").options; var dc=$.data(_1f,"datagrid").dc; if(!dc.body1.is(":empty")&&(!_23.nowrap||_23.autoRowHeight||_21)){ if(_20!=undefined){ var tr1=_23.finder.getTr(_1f,_20,"body",1); var tr2=_23.finder.getTr(_1f,_20,"body",2); _24(tr1,tr2); }else{ var tr1=_23.finder.getTr(_1f,0,"allbody",1); var tr2=_23.finder.getTr(_1f,0,"allbody",2); _24(tr1,tr2); if(_23.showFooter){ var tr1=_23.finder.getTr(_1f,0,"allfooter",1); var tr2=_23.finder.getTr(_1f,0,"allfooter",2); _24(tr1,tr2); } } } _e(_1f); if(_23.height=="auto"){ var _25=dc.body1.parent(); var _26=dc.body2; var _27=0; var _28=0; _26.children().each(function(){ var c=$(this); if(c.is(":visible")){ _27+=c._outerHeight(); if(_28_26.width()){ _27+=18; } _25.height(_27); _26.height(_27); dc.view.height(dc.view2.height()); } dc.body2.triggerHandler("scroll"); function _24(_29,_2a){ for(var i=0;i<_2a.length;i++){ var tr1=$(_29[i]); var tr2=$(_2a[i]); tr1.css("height",""); tr2.css("height",""); var _2b=Math.max(tr1.height(),tr2.height()); tr1.css("height",_2b); tr2.css("height",_2b); } }; }; function _2c(_2d,_2e){ var _2f=$.data(_2d,"datagrid"); var _30=_2f.options; var dc=_2f.dc; if(!dc.body2.children("table.datagrid-btable-frozen").length){ dc.body1.add(dc.body2).prepend("
"); } _31(true); _31(false); _e(_2d); function _31(_32){ var _33=_32?1:2; var tr=_30.finder.getTr(_2d,_2e,"body",_33); (_32?dc.body1:dc.body2).children("table.datagrid-btable-frozen").append(tr); }; }; function _34(_35,_36){ function _37(){ var _38=[]; var _39=[]; $(_35).children("thead").each(function(){ var opt=$.parser.parseOptions(this,[{frozen:"boolean"}]); $(this).find("tr").each(function(){ var _3a=[]; $(this).find("th").each(function(){ var th=$(this); var col=$.extend({},$.parser.parseOptions(this,["field","align","halign","order",{sortable:"boolean",checkbox:"boolean",resizable:"boolean"},{rowspan:"number",colspan:"number",width:"number"}]),{title:(th.html()||undefined),hidden:(th.attr("hidden")?true:undefined),formatter:(th.attr("formatter")?eval(th.attr("formatter")):undefined),styler:(th.attr("styler")?eval(th.attr("styler")):undefined),sorter:(th.attr("sorter")?eval(th.attr("sorter")):undefined)}); if(th.attr("editor")){ var s=$.trim(th.attr("editor")); if(s.substr(0,1)=="{"){ col.editor=eval("("+s+")"); }else{ col.editor=s; } } _3a.push(col); }); opt.frozen?_38.push(_3a):_39.push(_3a); }); }); return [_38,_39]; }; var _3b=$("
"+"
"+"
"+"
"+"
"+"
"+"
"+"
"+"
"+"
"+""+"
"+"
"+"
"+"
"+"
"+"
"+"
"+"
"+""+"
"+"
"+"
"+"
").insertAfter(_35); _3b.panel({doSize:false}); _3b.panel("panel").addClass("datagrid").bind("_resize",function(e,_3c){ var _3d=$.data(_35,"datagrid").options; if(_3d.fit==true||_3c){ _9(_35); setTimeout(function(){ if($.data(_35,"datagrid")){ _3e(_35); } },0); } return false; }); $(_35).hide().appendTo(_3b.children("div.datagrid-view")); var cc=_37(); var _3f=_3b.children("div.datagrid-view"); var _40=_3f.children("div.datagrid-view1"); var _41=_3f.children("div.datagrid-view2"); return {panel:_3b,frozenColumns:cc[0],columns:cc[1],dc:{view:_3f,view1:_40,view2:_41,header1:_40.children("div.datagrid-header").children("div.datagrid-header-inner"),header2:_41.children("div.datagrid-header").children("div.datagrid-header-inner"),body1:_40.children("div.datagrid-body").children("div.datagrid-body-inner"),body2:_41.children("div.datagrid-body"),footer1:_40.children("div.datagrid-footer").children("div.datagrid-footer-inner"),footer2:_41.children("div.datagrid-footer").children("div.datagrid-footer-inner")}}; }; function _42(_43){ var _44={total:0,rows:[]}; var _45=_46(_43,true).concat(_46(_43,false)); $(_43).find("tbody tr").each(function(){ _44.total++; var col={}; for(var i=0;i<_45.length;i++){ col[_45[i]]=$("td:eq("+i+")",this).html(); } _44.rows.push(col); }); return _44; }; function _47(_48){ var _49=$.data(_48,"datagrid"); var _4a=_49.options; var dc=_49.dc; var _4b=_49.panel; _4b.panel($.extend({},_4a,{id:null,doSize:false,onResize:function(_4c,_4d){ setTimeout(function(){ if($.data(_48,"datagrid")){ _e(_48); _73(_48); _4a.onResize.call(_4b,_4c,_4d); } },0); },onExpand:function(){ _1e(_48); _4a.onExpand.call(_4b); }})); _49.rowIdPrefix="datagrid-row-r"+(++_1); _4e(dc.header1,_4a.frozenColumns,true); _4e(dc.header2,_4a.columns,false); _4f(); dc.header1.add(dc.header2).css("display",_4a.showHeader?"block":"none"); dc.footer1.add(dc.footer2).css("display",_4a.showFooter?"block":"none"); if(_4a.toolbar){ if(typeof _4a.toolbar=="string"){ $(_4a.toolbar).addClass("datagrid-toolbar").prependTo(_4b); $(_4a.toolbar).show(); }else{ $("div.datagrid-toolbar",_4b).remove(); var tb=$("
").prependTo(_4b); var tr=tb.find("tr"); for(var i=0;i<_4a.toolbar.length;i++){ var btn=_4a.toolbar[i]; if(btn=="-"){ $("
").appendTo(tr); }else{ var td=$("").appendTo(tr); var _50=$("").appendTo(td); _50[0].onclick=eval(btn.handler||function(){ }); _50.linkbutton($.extend({},btn,{plain:true})); } } } }else{ $("div.datagrid-toolbar",_4b).remove(); } $("div.datagrid-pager",_4b).remove(); if(_4a.pagination){ var _51=$("
"); if(_4a.pagePosition=="bottom"){ _51.appendTo(_4b); }else{ if(_4a.pagePosition=="top"){ _51.addClass("datagrid-pager-top").prependTo(_4b); }else{ var _52=$("
").prependTo(_4b); _51.appendTo(_4b); _51=_51.add(_52); } } _51.pagination({total:0,pageNumber:_4a.pageNumber,pageSize:_4a.pageSize,pageList:_4a.pageList,onSelectPage:function(_53,_54){ _4a.pageNumber=_53; _4a.pageSize=_54; _51.pagination("refresh",{pageNumber:_53,pageSize:_54}); _150(_48); }}); _4a.pageSize=_51.pagination("options").pageSize; } function _4e(_55,_56,_57){ if(!_56){ return; } $(_55).show(); $(_55).empty(); var t=$("
").appendTo(_55); for(var i=0;i<_56.length;i++){ var tr=$("").appendTo($("tbody",t)); var _58=_56[i]; for(var j=0;j<_58.length;j++){ var col=_58[j]; var _59=""; if(col.rowspan){ _59+="rowspan=\""+col.rowspan+"\" "; } if(col.colspan){ _59+="colspan=\""+col.colspan+"\" "; } var td=$("").appendTo(tr); if(col.checkbox){ td.attr("field",col.field); $("
").html("").appendTo(td); }else{ if(col.field){ td.attr("field",col.field); td.append("
"); $("span",td).html(col.title); $("span.datagrid-sort-icon",td).html(" "); var _5a=td.find("div.datagrid-cell"); if(col.resizable==false){ _5a.attr("resizable","false"); } if(col.width){ _5a._outerWidth(col.width); col.boxWidth=parseInt(_5a[0].style.width); }else{ col.auto=true; } _5a.css("text-align",(col.halign||col.align||"")); col.cellClass="datagrid-cell-c"+_1+"-"+col.field.replace(/\./g,"-"); col.cellSelector="div."+col.cellClass; }else{ $("
").html(col.title).appendTo(td); } } if(col.hidden){ td.hide(); } } } if(_57&&_4a.rownumbers){ var td=$("
"); if($("tr",t).length==0){ td.wrap("").parent().appendTo($("tbody",t)); }else{ td.prependTo($("tr:first",t)); } } }; function _4f(){ var ss=[""); $(ss.join("\n")).prependTo(dc.view); }; }; function _5d(_5e){ var _5f=$.data(_5e,"datagrid"); var _60=_5f.panel; var _61=_5f.options; var dc=_5f.dc; var _62=dc.header1.add(dc.header2); _62.find("input[type=checkbox]").unbind(".datagrid").bind("click.datagrid",function(e){ if(_61.singleSelect&&_61.selectOnCheck){ return false; } if($(this).is(":checked")){ _e5(_5e); }else{ _ed(_5e); } e.stopPropagation(); }); var _63=_62.find("div.datagrid-cell"); _63.closest("td").unbind(".datagrid").bind("mouseenter.datagrid",function(){ if(_5f.resizing){ return; } $(this).addClass("datagrid-header-over"); }).bind("mouseleave.datagrid",function(){ $(this).removeClass("datagrid-header-over"); }).bind("contextmenu.datagrid",function(e){ var _64=$(this).attr("field"); _61.onHeaderContextMenu.call(_5e,e,_64); }); _63.unbind(".datagrid").bind("click.datagrid",function(e){ var p1=$(this).offset().left+5; var p2=$(this).offset().left+$(this)._outerWidth()-5; if(e.pageXp1){ var _65=$(this).parent().attr("field"); var col=_5c(_5e,_65); if(!col.sortable||_5f.resizing){ return; } _61.sortName=_65; _61.sortOrder=col.order||"asc"; var cls="datagrid-sort-"+_61.sortOrder; if($(this).hasClass("datagrid-sort-asc")){ cls="datagrid-sort-desc"; _61.sortOrder="desc"; }else{ if($(this).hasClass("datagrid-sort-desc")){ cls="datagrid-sort-asc"; _61.sortOrder="asc"; } } _63.removeClass("datagrid-sort-asc datagrid-sort-desc"); $(this).addClass(cls); if(_61.remoteSort){ _150(_5e); }else{ var _66=$.data(_5e,"datagrid").data; _ab(_5e,_66); } _61.onSortColumn.call(_5e,_61.sortName,_61.sortOrder); } }).bind("dblclick.datagrid",function(e){ var p1=$(this).offset().left+5; var p2=$(this).offset().left+$(this)._outerWidth()-5; var _67=_61.resizeHandle=="right"?(e.pageX>p2):(_61.resizeHandle=="left"?(e.pageXp2)); if(_67){ var _68=$(this).parent().attr("field"); var col=_5c(_5e,_68); if(col.resizable==false){ return; } $(_5e).datagrid("autoSizeColumn",_68); col.auto=false; } }); var _69=_61.resizeHandle=="right"?"e":(_61.resizeHandle=="left"?"w":"e,w"); _63.each(function(){ $(this).resizable({handles:_69,disabled:($(this).attr("resizable")?$(this).attr("resizable")=="false":false),minWidth:25,onStartResize:function(e){ _5f.resizing=true; _62.css("cursor",$("body").css("cursor")); if(!_5f.proxy){ _5f.proxy=$("
").appendTo(dc.view); } _5f.proxy.css({left:e.pageX-$(_60).offset().left-1,display:"none"}); setTimeout(function(){ if(_5f.proxy){ _5f.proxy.show(); } },500); },onResize:function(e){ _5f.proxy.css({left:e.pageX-$(_60).offset().left-1,display:"block"}); return false; },onStopResize:function(e){ _62.css("cursor",""); var _6a=$(this).parent().attr("field"); var col=_5c(_5e,_6a); col.width=$(this)._outerWidth(); col.boxWidth=parseInt(this.style.width); col.auto=undefined; _3e(_5e,_6a); _5f.proxy.remove(); _5f.proxy=null; if($(this).parents("div:first.datagrid-header").parent().hasClass("datagrid-view1")){ _e(_5e); } _73(_5e); _61.onResizeColumn.call(_5e,_6a,col.width); setTimeout(function(){ _5f.resizing=false; },0); }}); }); dc.body1.add(dc.body2).unbind().bind("mouseover",function(e){ if(_5f.resizing){ return; } var tr=$(e.target).closest("tr.datagrid-row"); if(!tr.length){ return; } var _6b=_6c(tr); _61.finder.getTr(_5e,_6b).addClass("datagrid-row-over"); e.stopPropagation(); }).bind("mouseout",function(e){ var tr=$(e.target).closest("tr.datagrid-row"); if(!tr.length){ return; } var _6d=_6c(tr); _61.finder.getTr(_5e,_6d).removeClass("datagrid-row-over"); e.stopPropagation(); }).bind("click",function(e){ var tt=$(e.target); var tr=tt.closest("tr.datagrid-row"); if(!tr.length){ return; } var _6e=_6c(tr); if(tt.parent().hasClass("datagrid-cell-check")){ if(_61.singleSelect&&_61.selectOnCheck){ if(!_61.checkOnSelect){ _ed(_5e,true); } _d2(_5e,_6e); }else{ if(tt.is(":checked")){ _d2(_5e,_6e); }else{ _dd(_5e,_6e); } } }else{ var row=_61.finder.getRow(_5e,_6e); var td=tt.closest("td[field]",tr); if(td.length){ var _6f=td.attr("field"); _61.onClickCell.call(_5e,_6e,_6f,row[_6f]); } if(_61.singleSelect==true){ _ca(_5e,_6e); }else{ if(tr.hasClass("datagrid-row-selected")){ _d6(_5e,_6e); }else{ _ca(_5e,_6e); } } _61.onClickRow.call(_5e,_6e,row); } e.stopPropagation(); }).bind("dblclick",function(e){ var tt=$(e.target); var tr=tt.closest("tr.datagrid-row"); if(!tr.length){ return; } var _70=_6c(tr); var row=_61.finder.getRow(_5e,_70); var td=tt.closest("td[field]",tr); if(td.length){ var _71=td.attr("field"); _61.onDblClickCell.call(_5e,_70,_71,row[_71]); } _61.onDblClickRow.call(_5e,_70,row); e.stopPropagation(); }).bind("contextmenu",function(e){ var tr=$(e.target).closest("tr.datagrid-row"); if(!tr.length){ return; } var _72=_6c(tr); var row=_61.finder.getRow(_5e,_72); _61.onRowContextMenu.call(_5e,e,_72,row); e.stopPropagation(); }); dc.body2.bind("scroll",function(){ dc.view1.children("div.datagrid-body").scrollTop($(this).scrollTop()); dc.view2.children("div.datagrid-header,div.datagrid-footer")._scrollLeft($(this)._scrollLeft()); dc.body2.children("table.datagrid-btable-frozen").css("left",-$(this)._scrollLeft()); }); function _6c(tr){ if(tr.attr("datagrid-row-index")){ return parseInt(tr.attr("datagrid-row-index")); }else{ return tr.attr("node-id"); } }; }; function _73(_74){ var _75=$.data(_74,"datagrid").options; var dc=$.data(_74,"datagrid").dc; if(!_75.fitColumns){ return; } var _76=dc.view2.children("div.datagrid-header"); var _77=0; var _78; var _79=_46(_74,false); for(var i=0;i<_79.length;i++){ var col=_5c(_74,_79[i]); if(_7a(col)){ _77+=col.width; _78=col; } } var _7b=_76.children("div.datagrid-header-inner").show(); var _7c=_76.width()-_76.find("table").width()-_75.scrollbarSize; var _7d=_7c/_77; if(!_75.showHeader){ _7b.hide(); } for(var i=0;i<_79.length;i++){ var col=_5c(_74,_79[i]); if(_7a(col)){ var _7e=Math.floor(col.width*_7d); _7f(col,_7e); _7c-=_7e; } } if(_7c&&_78){ _7f(_78,_7c); } _3e(_74); function _7f(col,_80){ col.width+=_80; col.boxWidth+=_80; _76.find("td[field=\""+col.field+"\"] div.datagrid-cell").width(col.boxWidth); }; function _7a(col){ if(!col.hidden&&!col.checkbox&&!col.auto){ return true; } }; }; function _81(_82,_83){ var _84=$.data(_82,"datagrid").options; var dc=$.data(_82,"datagrid").dc; if(_83){ _9(_83); if(_84.fitColumns){ _e(_82); _73(_82); } }else{ var _85=false; var _86=_46(_82,true).concat(_46(_82,false)); for(var i=0;i<_86.length;i++){ var _83=_86[i]; var col=_5c(_82,_83); if(col.auto){ _9(_83); _85=true; } } if(_85&&_84.fitColumns){ _e(_82); _73(_82); } } function _9(_87){ var _88=dc.view.find("div.datagrid-header td[field=\""+_87+"\"] div.datagrid-cell"); _88.css("width",""); var col=$(_82).datagrid("getColumnOption",_87); col.width=undefined; col.boxWidth=undefined; col.auto=true; $(_82).datagrid("fixColumnSize",_87); var _89=Math.max(_88._outerWidth(),_8a("allbody"),_8a("allfooter")); _88._outerWidth(_89); col.width=_89; col.boxWidth=parseInt(_88[0].style.width); $(_82).datagrid("fixColumnSize",_87); _84.onResizeColumn.call(_82,_87,col.width); function _8a(_8b){ var _8c=0; _84.finder.getTr(_82,0,_8b).find("td[field=\""+_87+"\"] div.datagrid-cell").each(function(){ var w=$(this)._outerWidth(); if(_8cb?1:-1); }; _ad.rows.sort(function(r1,r2){ return _b0(r1[_af.sortName],r2[_af.sortName])*(_af.sortOrder=="asc"?1:-1); }); } } if(_af.view.onBeforeRender){ _af.view.onBeforeRender.call(_af.view,_ac,_ad.rows); } _af.view.render.call(_af.view,_ac,dc.body2,false); _af.view.render.call(_af.view,_ac,dc.body1,true); if(_af.showFooter){ _af.view.renderFooter.call(_af.view,_ac,dc.footer2,false); _af.view.renderFooter.call(_af.view,_ac,dc.footer1,true); } if(_af.view.onAfterRender){ _af.view.onAfterRender.call(_af.view,_ac); } dc.view.children("style:gt(0)").remove(); _af.onLoadSuccess.call(_ac,_ad); var _b1=$(_ac).datagrid("getPager"); if(_b1.length){ if(_b1.pagination("options").total!=_ad.total){ _b1.pagination("refresh",{total:_ad.total}); } } _1e(_ac); dc.body2.triggerHandler("scroll"); _b2(); $(_ac).datagrid("autoSizeColumn"); function _b2(){ if(_af.idField){ for(var i=0;i<_ad.rows.length;i++){ var row=_ad.rows[i]; if(_b3(_ae.selectedRows,row)){ _ca(_ac,i,true); } if(_b3(_ae.checkedRows,row)){ _d2(_ac,i,true); } } } function _b3(a,r){ for(var i=0;i=0){ _ca(_c6,_c9); } } }; function _ca(_cb,_cc,_cd){ var _ce=$.data(_cb,"datagrid"); var dc=_ce.dc; var _cf=_ce.options; var _d0=_ce.selectedRows; if(_cf.singleSelect){ _d1(_cb); _d0.splice(0,_d0.length); } if(!_cd&&_cf.checkOnSelect){ _d2(_cb,_cc,true); } var row=_cf.finder.getRow(_cb,_cc); if(_cf.idField){ _7(_d0,_cf.idField,row); } _cf.onSelect.call(_cb,_cc,row); var tr=_cf.finder.getTr(_cb,_cc).addClass("datagrid-row-selected"); if(tr.length){ if(tr.closest("table").hasClass("datagrid-btable-frozen")){ return; } var _d3=dc.view2.children("div.datagrid-header")._outerHeight(); var _d4=dc.body2; var _d5=_d4.outerHeight(true)-_d4.outerHeight(); var top=tr.position().top-_d3-_d5; if(top<0){ _d4.scrollTop(_d4.scrollTop()+top); }else{ if(top+tr._outerHeight()>_d4.height()-18){ _d4.scrollTop(_d4.scrollTop()+top+tr._outerHeight()-_d4.height()+18); } } } }; function _d6(_d7,_d8,_d9){ var _da=$.data(_d7,"datagrid"); var dc=_da.dc; var _db=_da.options; var _dc=$.data(_d7,"datagrid").selectedRows; if(!_d9&&_db.checkOnSelect){ _dd(_d7,_d8,true); } _db.finder.getTr(_d7,_d8).removeClass("datagrid-row-selected"); var row=_db.finder.getRow(_d7,_d8); if(_db.idField){ _4(_dc,_db.idField,row[_db.idField]); } _db.onUnselect.call(_d7,_d8,row); }; function _de(_df,_e0){ var _e1=$.data(_df,"datagrid"); var _e2=_e1.options; var _e3=_e1.data.rows; var _e4=$.data(_df,"datagrid").selectedRows; if(!_e0&&_e2.checkOnSelect){ _e5(_df,true); } _e2.finder.getTr(_df,"","allbody").addClass("datagrid-row-selected"); if(_e2.idField){ for(var _e6=0;_e6<_e3.length;_e6++){ _7(_e4,_e2.idField,_e3[_e6]); } } _e2.onSelectAll.call(_df,_e3); }; function _d1(_e7,_e8){ var _e9=$.data(_e7,"datagrid"); var _ea=_e9.options; var _eb=_e9.data.rows; var _ec=$.data(_e7,"datagrid").selectedRows; if(!_e8&&_ea.checkOnSelect){ _ed(_e7,true); } _ea.finder.getTr(_e7,"","selected").removeClass("datagrid-row-selected"); if(_ea.idField){ for(var _ee=0;_ee<_eb.length;_ee++){ _4(_ec,_ea.idField,_eb[_ee][_ea.idField]); } } _ea.onUnselectAll.call(_e7,_eb); }; function _d2(_ef,_f0,_f1){ var _f2=$.data(_ef,"datagrid"); var _f3=_f2.options; if(!_f1&&_f3.selectOnCheck){ _ca(_ef,_f0,true); } var ck=_f3.finder.getTr(_ef,_f0).find("div.datagrid-cell-check input[type=checkbox]"); ck._propAttr("checked",true); ck=_f3.finder.getTr(_ef,"","allbody").find("div.datagrid-cell-check input[type=checkbox]:not(:checked)"); if(!ck.length){ var dc=_f2.dc; var _f4=dc.header1.add(dc.header2); _f4.find("input[type=checkbox]")._propAttr("checked",true); } var row=_f3.finder.getRow(_ef,_f0); if(_f3.idField){ _7(_f2.checkedRows,_f3.idField,row); } _f3.onCheck.call(_ef,_f0,row); }; function _dd(_f5,_f6,_f7){ var _f8=$.data(_f5,"datagrid"); var _f9=_f8.options; if(!_f7&&_f9.selectOnCheck){ _d6(_f5,_f6,true); } var ck=_f9.finder.getTr(_f5,_f6).find("div.datagrid-cell-check input[type=checkbox]"); ck._propAttr("checked",false); var dc=_f8.dc; var _fa=dc.header1.add(dc.header2); _fa.find("input[type=checkbox]")._propAttr("checked",false); var row=_f9.finder.getRow(_f5,_f6); if(_f9.idField){ _4(_f8.checkedRows,_f9.idField,row[_f9.idField]); } _f9.onUncheck.call(_f5,_f6,row); }; function _e5(_fb,_fc){ var _fd=$.data(_fb,"datagrid"); var _fe=_fd.options; var _ff=_fd.data.rows; if(!_fc&&_fe.selectOnCheck){ _de(_fb,true); } var dc=_fd.dc; var hck=dc.header1.add(dc.header2).find("input[type=checkbox]"); var bck=_fe.finder.getTr(_fb,"","allbody").find("div.datagrid-cell-check input[type=checkbox]"); hck.add(bck)._propAttr("checked",true); if(_fe.idField){ for(var i=0;i<_ff.length;i++){ _7(_fd.checkedRows,_fe.idField,_ff[i]); } } _fe.onCheckAll.call(_fb,_ff); }; function _ed(_100,_101){ var _102=$.data(_100,"datagrid"); var opts=_102.options; var rows=_102.data.rows; if(!_101&&opts.selectOnCheck){ _d1(_100,true); } var dc=_102.dc; var hck=dc.header1.add(dc.header2).find("input[type=checkbox]"); var bck=opts.finder.getTr(_100,"","allbody").find("div.datagrid-cell-check input[type=checkbox]"); hck.add(bck)._propAttr("checked",false); if(opts.idField){ for(var i=0;i"); cell.children("table").bind("click dblclick contextmenu",function(e){ e.stopPropagation(); }); $.data(cell[0],"datagrid.editor",{actions:_121,target:_121.init(cell.find("td"),_120),field:_11e,type:_11f,oldHtml:_122}); } } }); _1e(_11c,_11d,true); }; function _113(_124,_125){ var opts=$.data(_124,"datagrid").options; var tr=opts.finder.getTr(_124,_125); tr.children("td").each(function(){ var cell=$(this).find("div.datagrid-editable"); if(cell.length){ var ed=$.data(cell[0],"datagrid.editor"); if(ed.actions.destroy){ ed.actions.destroy(ed.target); } cell.html(ed.oldHtml); $.removeData(cell[0],"datagrid.editor"); cell.removeClass("datagrid-editable"); cell.css("width",""); } }); }; function _108(_126,_127){ var tr=$.data(_126,"datagrid").options.finder.getTr(_126,_127); if(!tr.hasClass("datagrid-row-editing")){ return true; } var vbox=tr.find(".validatebox-text"); vbox.validatebox("validate"); vbox.trigger("mouseleave"); var _128=tr.find(".validatebox-invalid"); return _128.length==0; }; function _129(_12a,_12b){ var _12c=$.data(_12a,"datagrid").insertedRows; var _12d=$.data(_12a,"datagrid").deletedRows; var _12e=$.data(_12a,"datagrid").updatedRows; if(!_12b){ var rows=[]; rows=rows.concat(_12c); rows=rows.concat(_12d); rows=rows.concat(_12e); return rows; }else{ if(_12b=="inserted"){ return _12c; }else{ if(_12b=="deleted"){ return _12d; }else{ if(_12b=="updated"){ return _12e; } } } } return []; }; function _12f(_130,_131){ var _132=$.data(_130,"datagrid"); var opts=_132.options; var data=_132.data; var _133=_132.insertedRows; var _134=_132.deletedRows; $(_130).datagrid("cancelEdit",_131); var row=data.rows[_131]; if(_2(_133,row)>=0){ _4(_133,row); }else{ _134.push(row); } _4(_132.selectedRows,opts.idField,data.rows[_131][opts.idField]); _4(_132.checkedRows,opts.idField,data.rows[_131][opts.idField]); opts.view.deleteRow.call(opts.view,_130,_131); if(opts.height=="auto"){ _1e(_130); } $(_130).datagrid("getPager").pagination("refresh",{total:data.total}); }; function _135(_136,_137){ var data=$.data(_136,"datagrid").data; var view=$.data(_136,"datagrid").options.view; var _138=$.data(_136,"datagrid").insertedRows; view.insertRow.call(view,_136,_137.index,_137.row); _138.push(_137.row); $(_136).datagrid("getPager").pagination("refresh",{total:data.total}); }; function _139(_13a,row){ var data=$.data(_13a,"datagrid").data; var view=$.data(_13a,"datagrid").options.view; var _13b=$.data(_13a,"datagrid").insertedRows; view.insertRow.call(view,_13a,null,row); _13b.push(row); $(_13a).datagrid("getPager").pagination("refresh",{total:data.total}); }; function _13c(_13d){ var _13e=$.data(_13d,"datagrid"); var data=_13e.data; var rows=data.rows; var _13f=[]; for(var i=0;i0){ _ab(this,data); _13c(this); } } _9(this); _150(this); _5d(this); }); }; var _15e={text:{init:function(_15f,_160){ var _161=$("").appendTo(_15f); return _161; },getValue:function(_162){ return $(_162).val(); },setValue:function(_163,_164){ $(_163).val(_164); },resize:function(_165,_166){ $(_165)._outerWidth(_166); }},textarea:{init:function(_167,_168){ var _169=$("").appendTo(_167); return _169; },getValue:function(_16a){ return $(_16a).val(); },setValue:function(_16b,_16c){ $(_16b).val(_16c); },resize:function(_16d,_16e){ $(_16d)._outerWidth(_16e); }},checkbox:{init:function(_16f,_170){ var _171=$("").appendTo(_16f); _171.val(_170.on); _171.attr("offval",_170.off); return _171; },getValue:function(_172){ if($(_172).is(":checked")){ return $(_172).val(); }else{ return $(_172).attr("offval"); } },setValue:function(_173,_174){ var _175 = false; _175 = easyuifix.datagrid_editors_checkboxVal(_173, _174); if($(_173).val()==_174){ _175=true; } $(_173)._propAttr("checked",_175); }},numberbox:{init:function(_176,_177){ var _178=$("").appendTo(_176); _178.numberbox(_177); return _178; },destroy:function(_179){ $(_179).numberbox("destroy"); },getValue:function(_17a){ $(_17a).blur(); return $(_17a).numberbox("getValue"); },setValue:function(_17b,_17c){ $(_17b).numberbox("setValue",_17c); },resize:function(_17d,_17e){ $(_17d)._outerWidth(_17e); }},validatebox:{init:function(_17f,_180){ var _181=$("").appendTo(_17f); _181.validatebox(_180); return _181; },destroy:function(_182){ $(_182).validatebox("destroy"); },getValue:function(_183){ return $(_183).val(); },setValue:function(_184,_185){ $(_184).val(_185); },resize:function(_186,_187){ $(_186)._outerWidth(_187); }},datebox:{init:function(_188,_189){ var _18a=$("").appendTo(_188); _18a.datebox(_189); return _18a; },destroy:function(_18b){ $(_18b).datebox("destroy"); },getValue:function(_18c){ return $(_18c).datebox("getValue"); },setValue:function(_18d,_18e){ $(_18d).datebox("setValue",_18e); },resize:function(_18f,_190){ $(_18f).datebox("resize",_190); }},combobox:{init:function(_191,_192){ var _193=$("").appendTo(_191); _193.combobox(_192||{}); return _193; },destroy:function(_194){ $(_194).combobox("destroy"); },getValue:function(_195){ return $(_195).combobox("getValue"); },setValue:function(_196,_197){ $(_196).combobox("setValue",_197); },resize:function(_198,_199){ $(_198).combobox("resize",_199); }},combotree:{init:function(_19a,_19b){ var _19c=$("").appendTo(_19a); _19c.combotree(_19b); return _19c; },destroy:function(_19d){ $(_19d).combotree("destroy"); },getValue:function(_19e){ return $(_19e).combotree("getValue"); },setValue:function(_19f,_1a0){ $(_19f).combotree("setValue",_1a0); },resize:function(_1a1,_1a2){ $(_1a1).combotree("resize",_1a2); }}}; $.fn.datagrid.methods={options:function(jq){ var _1a3=$.data(jq[0],"datagrid").options; var _1a4=$.data(jq[0],"datagrid").panel.panel("options"); var opts=$.extend(_1a3,{width:_1a4.width,height:_1a4.height,closed:_1a4.closed,collapsed:_1a4.collapsed,minimized:_1a4.minimized,maximized:_1a4.maximized}); return opts; },getPanel:function(jq){ return $.data(jq[0],"datagrid").panel; },getPager:function(jq){ return $.data(jq[0],"datagrid").panel.children("div.datagrid-pager"); },getColumnFields:function(jq,_1a5){ return _46(jq[0],_1a5); },getColumnOption:function(jq,_1a6){ return _5c(jq[0],_1a6); },resize:function(jq,_1a7){ return jq.each(function(){ _9(this,_1a7); }); },load:function(jq,_1a8){ return jq.each(function(){ var opts=$(this).datagrid("options"); opts.pageNumber=1; var _1a9=$(this).datagrid("getPager"); _1a9.pagination({pageNumber:1}); _150(this,_1a8); }); },reload:function(jq,_1aa){ return jq.each(function(){ _150(this,_1aa); }); },reloadFooter:function(jq,_1ab){ return jq.each(function(){ var opts=$.data(this,"datagrid").options; var dc=$.data(this,"datagrid").dc; if(_1ab){ $.data(this,"datagrid").footer=_1ab; } if(opts.showFooter){ opts.view.renderFooter.call(opts.view,this,dc.footer2,false); opts.view.renderFooter.call(opts.view,this,dc.footer1,true); if(opts.view.onAfterRender){ opts.view.onAfterRender.call(opts.view,this); } $(this).datagrid("fixRowHeight"); } }); },loading:function(jq){ return jq.each(function(){ var opts=$.data(this,"datagrid").options; $(this).datagrid("getPager").pagination("loading"); if(opts.loadMsg){ var _1ac=$(this).datagrid("getPanel"); $("
").appendTo(_1ac); var msg=$("
").html(opts.loadMsg).appendTo(_1ac); msg.css("marginLeft",-msg.outerWidth()/2); } }); },loaded:function(jq){ return jq.each(function(){ $(this).datagrid("getPager").pagination("loaded"); var _1ad=$(this).datagrid("getPanel"); _1ad.children("div.datagrid-mask-msg").remove(); _1ad.children("div.datagrid-mask").remove(); }); },fitColumns:function(jq){ return jq.each(function(){ _73(this); }); },fixColumnSize:function(jq,_1ae){ return jq.each(function(){ _3e(this,_1ae); }); },fixRowHeight:function(jq,_1af){ return jq.each(function(){ _1e(this,_1af); }); },freezeRow:function(jq,_1b0){ return jq.each(function(){ _2c(this,_1b0); }); },autoSizeColumn:function(jq,_1b1){ return jq.each(function(){ _81(this,_1b1); }); },loadData:function(jq,data){ return jq.each(function(){ _ab(this,data); _13c(this); }); },getData:function(jq){ return $.data(jq[0],"datagrid").data; },getRows:function(jq){ return $.data(jq[0],"datagrid").data.rows; },getFooterRows:function(jq){ return $.data(jq[0],"datagrid").footer; },getRowIndex:function(jq,id){ return _b4(jq[0],id); },getChecked:function(jq){ return _bf(jq[0]); },getSelected:function(jq){ var rows=_b8(jq[0]); return rows.length>0?rows[0]:null; },getSelections:function(jq){ return _b8(jq[0]); },clearSelections:function(jq){ return jq.each(function(){ var _1b2=$.data(this,"datagrid").selectedRows; _1b2.splice(0,_1b2.length); _d1(this); }); },clearChecked:function(jq){ return jq.each(function(){ var _1b3=$.data(this,"datagrid").checkedRows; _1b3.splice(0,_1b3.length); _ed(this); }); },selectAll:function(jq){ return jq.each(function(){ _de(this); }); },unselectAll:function(jq){ return jq.each(function(){ _d1(this); }); },selectRow:function(jq,_1b4){ return jq.each(function(){ _ca(this,_1b4); }); },selectRecord:function(jq,id){ return jq.each(function(){ _c5(this,id); }); },unselectRow:function(jq,_1b5){ return jq.each(function(){ _d6(this,_1b5); }); },checkRow:function(jq,_1b6){ return jq.each(function(){ _d2(this,_1b6); }); },uncheckRow:function(jq,_1b7){ return jq.each(function(){ _dd(this,_1b7); }); },checkAll:function(jq){ return jq.each(function(){ _e5(this); }); },uncheckAll:function(jq){ return jq.each(function(){ _ed(this); }); },beginEdit:function(jq,_1b8){ return jq.each(function(){ _103(this,_1b8); }); },endEdit:function(jq,_1b9){ return jq.each(function(){ _109(this,_1b9,false); }); },cancelEdit:function(jq,_1ba){ return jq.each(function(){ _109(this,_1ba,true); }); },getEditors:function(jq,_1bb){ return _114(jq[0],_1bb); },getEditor:function(jq,_1bc){ return _118(jq[0],_1bc); },refreshRow:function(jq,_1bd){ return jq.each(function(){ var opts=$.data(this,"datagrid").options; opts.view.refreshRow.call(opts.view,this,_1bd); }); },validateRow:function(jq,_1be){ return _108(jq[0],_1be); },updateRow:function(jq,_1bf){ return jq.each(function(){ var opts=$.data(this,"datagrid").options; opts.view.updateRow.call(opts.view,this,_1bf.index,_1bf.row); }); },appendRow:function(jq,row){ return jq.each(function(){ _139(this,row); }); },insertRow:function(jq,_1c0){ return jq.each(function(){ _135(this,_1c0); }); },deleteRow:function(jq,_1c1){ return jq.each(function(){ _12f(this,_1c1); }); },getChanges:function(jq,_1c2){ return _129(jq[0],_1c2); },acceptChanges:function(jq){ return jq.each(function(){ _140(this); }); },rejectChanges:function(jq){ return jq.each(function(){ _142(this); }); },mergeCells:function(jq,_1c3){ return jq.each(function(){ _156(this,_1c3); }); },showColumn:function(jq,_1c4){ return jq.each(function(){ var _1c5=$(this).datagrid("getPanel"); _1c5.find("td[field=\""+_1c4+"\"]").show(); $(this).datagrid("getColumnOption",_1c4).hidden=false; $(this).datagrid("fitColumns"); }); },hideColumn:function(jq,_1c6){ return jq.each(function(){ var _1c7=$(this).datagrid("getPanel"); _1c7.find("td[field=\""+_1c6+"\"]").hide(); $(this).datagrid("getColumnOption",_1c6).hidden=true; $(this).datagrid("fitColumns"); }); }}; $.fn.datagrid.parseOptions=function(_1c8){ var t=$(_1c8); return $.extend({},$.fn.panel.parseOptions(_1c8),$.parser.parseOptions(_1c8,["url","toolbar","idField","sortName","sortOrder","pagePosition","resizeHandle",{fitColumns:"boolean",autoRowHeight:"boolean",striped:"boolean",nowrap:"boolean"},{rownumbers:"boolean",singleSelect:"boolean",checkOnSelect:"boolean",selectOnCheck:"boolean"},{pagination:"boolean",pageSize:"number",pageNumber:"number"},{remoteSort:"boolean",showHeader:"boolean",showFooter:"boolean"},{scrollbarSize:"number"}]),{pageList:(t.attr("pageList")?eval(t.attr("pageList")):undefined),loadMsg:(t.attr("loadMsg")!=undefined?t.attr("loadMsg"):undefined),rowStyler:(t.attr("rowStyler")?eval(t.attr("rowStyler")):undefined)}); }; var _1c9={render:function(_1ca,_1cb,_1cc){ var _1cd=$.data(_1ca,"datagrid"); var opts=_1cd.options; var rows=_1cd.data.rows; var _1ce=$(_1ca).datagrid("getColumnFields",_1cc); if(_1cc){ if(!(opts.rownumbers||(opts.frozenColumns&&opts.frozenColumns.length))){ return; } } var _1cf=[""]; for(var i=0;i"); _1cf.push(this.renderRow.call(this,_1ca,_1ce,_1cc,i,rows[i])); _1cf.push(""); } _1cf.push("
"); $(_1cb).html(_1cf.join("")); },renderFooter:function(_1d3,_1d4,_1d5){ var opts=$.data(_1d3,"datagrid").options; var rows=$.data(_1d3,"datagrid").footer||[]; var _1d6=$(_1d3).datagrid("getColumnFields",_1d5); var _1d7=[""]; for(var i=0;i"); _1d7.push(this.renderRow.call(this,_1d3,_1d6,_1d5,i,rows[i])); _1d7.push(""); } _1d7.push("
"); $(_1d4).html(_1d7.join("")); },renderRow:function(_1d8,_1d9,_1da,_1db,_1dc){ var opts=$.data(_1d8,"datagrid").options; var cc=[]; if(_1da&&opts.rownumbers){ var _1dd=_1db+1; if(opts.pagination){ _1dd+=(opts.pageNumber-1)*opts.pageSize; } cc.push("
"+_1dd+"
"); } for(var i=0;i<_1d9.length;i++){ var _1de=_1d9[i]; var col=$(_1d8).datagrid("getColumnOption",_1de); if(col){ var _1df=_1dc[_1de]; var _1e0=col.styler?(col.styler(_1df,_1dc,_1db)||""):""; var _1e1=col.hidden?"style=\"display:none;"+_1e0+"\"":(_1e0?"style=\""+_1e0+"\"":""); cc.push(""); if(col.checkbox){ var _1e1=""; }else{ var _1e1=""; if(col.align){ _1e1+="text-align:"+col.align+";"; } if(!opts.nowrap){ _1e1+="white-space:normal;height:auto;"; }else{ if(opts.autoRowHeight){ _1e1+="height:auto;"; } } } cc.push("
"); if(col.checkbox){ cc.push(""); }else{ if(col.formatter){ cc.push(col.formatter(_1df,_1dc,_1db)); }else{ cc.push(_1df); } } cc.push("
"); cc.push(""); } } return cc.join(""); },refreshRow:function(_1e2,_1e3){ this.updateRow.call(this,_1e2,_1e3,{}); },updateRow:function(_1e4,_1e5,row){ var opts=$.data(_1e4,"datagrid").options; var rows=$(_1e4).datagrid("getRows"); $.extend(rows[_1e5],row); var _1e6=opts.rowStyler?opts.rowStyler.call(_1e4,_1e5,rows[_1e5]):""; function _1e7(_1e8){ var _1e9=$(_1e4).datagrid("getColumnFields",_1e8); var tr=opts.finder.getTr(_1e4,_1e5,"body",(_1e8?1:2)); var _1ea=tr.find("div.datagrid-cell-check input[type=checkbox]").is(":checked"); tr.html(this.renderRow.call(this,_1e4,_1e9,_1e8,_1e5,rows[_1e5])); tr.attr("style",_1e6||""); if(_1ea){ tr.find("div.datagrid-cell-check input[type=checkbox]")._propAttr("checked",true); } }; _1e7.call(this,true); _1e7.call(this,false); $(_1e4).datagrid("fixRowHeight",_1e5); },insertRow:function(_1eb,_1ec,row){ var _1ed=$.data(_1eb,"datagrid"); var opts=_1ed.options; var dc=_1ed.dc; var data=_1ed.data; if(_1ec==undefined||_1ec==null){ _1ec=data.rows.length; } if(_1ec>data.rows.length){ _1ec=data.rows.length; } function _1ee(_1ef){ var _1f0=_1ef?1:2; for(var i=data.rows.length-1;i>=_1ec;i--){ var tr=opts.finder.getTr(_1eb,i,"body",_1f0); tr.attr("datagrid-row-index",i+1); tr.attr("id",_1ed.rowIdPrefix+"-"+_1f0+"-"+(i+1)); if(_1ef&&opts.rownumbers){ var _1f1=i+2; if(opts.pagination){ _1f1+=(opts.pageNumber-1)*opts.pageSize; } tr.find("div.datagrid-cell-rownumber").html(_1f1); } } }; function _1f2(_1f3){ var _1f4=_1f3?1:2; var _1f5=$(_1eb).datagrid("getColumnFields",_1f3); var _1f6=_1ed.rowIdPrefix+"-"+_1f4+"-"+_1ec; var tr=""; if(_1ec>=data.rows.length){ if(data.rows.length){ opts.finder.getTr(_1eb,"","last",_1f4).after(tr); }else{ var cc=_1f3?dc.body1:dc.body2; cc.html(""+tr+"
"); } }else{ opts.finder.getTr(_1eb,_1ec+1,"body",_1f4).before(tr); } }; _1ee.call(this,true); _1ee.call(this,false); _1f2.call(this,true); _1f2.call(this,false); data.total+=1; data.rows.splice(_1ec,0,row); this.refreshRow.call(this,_1eb,_1ec); },deleteRow:function(_1f7,_1f8){ var _1f9=$.data(_1f7,"datagrid"); var opts=_1f9.options; var data=_1f9.data; function _1fa(_1fb){ var _1fc=_1fb?1:2; for(var i=_1f8+1;itable>tbody>tr[datagrid-row-index="+_207+"]"); } return tr; }else{ if(type=="footer"){ return (_208==1?dc.footer1:dc.footer2).find(">table>tbody>tr[datagrid-row-index="+_207+"]"); }else{ if(type=="selected"){ return (_208==1?dc.body1:dc.body2).find(">table>tbody>tr.datagrid-row-selected"); }else{ if(type=="last"){ return (_208==1?dc.body1:dc.body2).find(">table>tbody>tr[datagrid-row-index]:last"); }else{ if(type=="allbody"){ return (_208==1?dc.body1:dc.body2).find(">table>tbody>tr[datagrid-row-index]"); }else{ if(type=="allfooter"){ return (_208==1?dc.footer1:dc.footer2).find(">table>tbody>tr[datagrid-row-index]"); } } } } } } } },getRow:function(_20a,p){ var _20b=(typeof p=="object")?p.attr("datagrid-row-index"):p; return $.data(_20a,"datagrid").data.rows[parseInt(_20b)]; }},view:_1c9,onBeforeLoad:function(_20c){ },onLoadSuccess:function(){ },onLoadError:function(){ },onClickRow:function(_20d,_20e){ },onDblClickRow:function(_20f,_210){ },onClickCell:function(_211,_212,_213){ },onDblClickCell:function(_214,_215,_216){ },onSortColumn:function(sort,_217){ },onResizeColumn:function(_218,_219){ },onSelect:function(_21a,_21b){ },onUnselect:function(_21c,_21d){ },onSelectAll:function(rows){ },onUnselectAll:function(rows){ },onCheck:function(_21e,_21f){ },onUncheck:function(_220,_221){ },onCheckAll:function(rows){ },onUncheckAll:function(rows){ },onBeforeEdit:function(_222,_223){ },onAfterEdit:function(_224,_225,_226){ },onCancelEdit:function(_227,_228){ },onHeaderContextMenu:function(e,_229){ },onRowContextMenu:function(e,_22a,_22b){ }}); })(jQuery); if (easyuifix) easyuifix.datagrid_editor_extend();