Files
jshERP/WebRoot/js/easyui-1.3.5/plugins/jquery.treegrid.js
季圣华 a67629d0f7
2016-10-30 17:13:58 +08:00

1101 lines
26 KiB
JavaScript

/**
* jQuery EasyUI 1.3.5
*
* 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: info@jeasyui.com
* http://www.gnu.org/licenses/gpl.txt
* http://www.jeasyui.com/license_commercial.php
*
*/
(function($){
function _1(_2){
var _3=$.data(_2,"treegrid");
var _4=_3.options;
$(_2).datagrid($.extend({},_4,{url:null,data:null,loader:function(){
return false;
},onBeforeLoad:function(){
return false;
},onLoadSuccess:function(){
},onResizeColumn:function(_5,_6){
_20(_2);
_4.onResizeColumn.call(_2,_5,_6);
},onSortColumn:function(_7,_8){
_4.sortName=_7;
_4.sortOrder=_8;
if(_4.remoteSort){
_1f(_2);
}else{
var _9=$(_2).treegrid("getData");
_39(_2,0,_9);
}
_4.onSortColumn.call(_2,_7,_8);
},onBeforeEdit:function(_a,_b){
if(_4.onBeforeEdit.call(_2,_b)==false){
return false;
}
},onAfterEdit:function(_c,_d,_e){
_4.onAfterEdit.call(_2,_d,_e);
},onCancelEdit:function(_f,row){
_4.onCancelEdit.call(_2,row);
},onSelect:function(_10){
_4.onSelect.call(_2,_41(_2,_10));
},onUnselect:function(_11){
_4.onUnselect.call(_2,_41(_2,_11));
},onSelectAll:function(){
_4.onSelectAll.call(_2,$.data(_2,"treegrid").data);
},onUnselectAll:function(){
_4.onUnselectAll.call(_2,$.data(_2,"treegrid").data);
},onCheck:function(_12){
_4.onCheck.call(_2,_41(_2,_12));
},onUncheck:function(_13){
_4.onUncheck.call(_2,_41(_2,_13));
},onCheckAll:function(){
_4.onCheckAll.call(_2,$.data(_2,"treegrid").data);
},onUncheckAll:function(){
_4.onUncheckAll.call(_2,$.data(_2,"treegrid").data);
},onClickRow:function(_14){
_4.onClickRow.call(_2,_41(_2,_14));
},onDblClickRow:function(_15){
_4.onDblClickRow.call(_2,_41(_2,_15));
},onClickCell:function(_16,_17){
_4.onClickCell.call(_2,_17,_41(_2,_16));
},onDblClickCell:function(_18,_19){
_4.onDblClickCell.call(_2,_19,_41(_2,_18));
},onRowContextMenu:function(e,_1a){
_4.onContextMenu.call(_2,e,_41(_2,_1a));
}}));
if(!_4.columns){
var _1b=$.data(_2,"datagrid").options;
_4.columns=_1b.columns;
_4.frozenColumns=_1b.frozenColumns;
}
_3.dc=$.data(_2,"datagrid").dc;
if(_4.pagination){
var _1c=$(_2).datagrid("getPager");
_1c.pagination({pageNumber:_4.pageNumber,pageSize:_4.pageSize,pageList:_4.pageList,onSelectPage:function(_1d,_1e){
_4.pageNumber=_1d;
_4.pageSize=_1e;
_1f(_2);
}});
_4.pageSize=_1c.pagination("options").pageSize;
}
};
function _20(_21,_22){
var _23=$.data(_21,"datagrid").options;
var dc=$.data(_21,"datagrid").dc;
if(!dc.body1.is(":empty")&&(!_23.nowrap||_23.autoRowHeight)){
if(_22!=undefined){
var _24=_25(_21,_22);
for(var i=0;i<_24.length;i++){
_26(_24[i][_23.idField]);
}
}
}
$(_21).datagrid("fixRowHeight",_22);
function _26(_27){
var tr1=_23.finder.getTr(_21,_27,"body",1);
var tr2=_23.finder.getTr(_21,_27,"body",2);
tr1.css("height","");
tr2.css("height","");
var _28=Math.max(tr1.height(),tr2.height());
tr1.css("height",_28);
tr2.css("height",_28);
};
};
function _29(_2a){
var dc=$.data(_2a,"datagrid").dc;
var _2b=$.data(_2a,"treegrid").options;
if(!_2b.rownumbers){
return;
}
dc.body1.find("div.datagrid-cell-rownumber").each(function(i){
$(this).html(i+1);
});
};
function _2c(_2d){
var dc=$.data(_2d,"datagrid").dc;
var _2e=dc.body1.add(dc.body2);
var _2f=($.data(_2e[0],"events")||$._data(_2e[0],"events")).click[0].handler;
dc.body1.add(dc.body2).bind("mouseover",function(e){
var tt=$(e.target);
var tr=tt.closest("tr.datagrid-row");
if(!tr.length){
return;
}
if(tt.hasClass("tree-hit")){
tt.hasClass("tree-expanded")?tt.addClass("tree-expanded-hover"):tt.addClass("tree-collapsed-hover");
}
e.stopPropagation();
}).bind("mouseout",function(e){
var tt=$(e.target);
var tr=tt.closest("tr.datagrid-row");
if(!tr.length){
return;
}
if(tt.hasClass("tree-hit")){
tt.hasClass("tree-expanded")?tt.removeClass("tree-expanded-hover"):tt.removeClass("tree-collapsed-hover");
}
e.stopPropagation();
}).unbind("click").bind("click",function(e){
var tt=$(e.target);
var tr=tt.closest("tr.datagrid-row");
if(!tr.length){
return;
}
if(tt.hasClass("tree-hit")){
_30(_2d,tr.attr("node-id"));
}else{
_2f(e);
}
e.stopPropagation();
});
};
function _31(_32,_33){
var _34=$.data(_32,"treegrid").options;
var tr1=_34.finder.getTr(_32,_33,"body",1);
var tr2=_34.finder.getTr(_32,_33,"body",2);
var _35=$(_32).datagrid("getColumnFields",true).length+(_34.rownumbers?1:0);
var _36=$(_32).datagrid("getColumnFields",false).length;
_37(tr1,_35);
_37(tr2,_36);
function _37(tr,_38){
$("<tr class=\"treegrid-tr-tree\">"+"<td style=\"border:0px\" colspan=\""+_38+"\">"+"<div></div>"+"</td>"+"</tr>").insertAfter(tr);
};
};
function _39(_3a,_3b,_3c,_3d){
var _3e=$.data(_3a,"treegrid");
var _3f=_3e.options;
var dc=_3e.dc;
_3c=_3f.loadFilter.call(_3a,_3c,_3b);
var _40=_41(_3a,_3b);
if(_40){
var _42=_3f.finder.getTr(_3a,_3b,"body",1);
var _43=_3f.finder.getTr(_3a,_3b,"body",2);
var cc1=_42.next("tr.treegrid-tr-tree").children("td").children("div");
var cc2=_43.next("tr.treegrid-tr-tree").children("td").children("div");
if(!_3d){
_40.children=[];
}
}else{
var cc1=dc.body1;
var cc2=dc.body2;
if(!_3d){
_3e.data=[];
}
}
if(!_3d){
cc1.empty();
cc2.empty();
}
if(_3f.view.onBeforeRender){
_3f.view.onBeforeRender.call(_3f.view,_3a,_3b,_3c);
}
_3f.view.render.call(_3f.view,_3a,cc1,true);
_3f.view.render.call(_3f.view,_3a,cc2,false);
if(_3f.showFooter){
_3f.view.renderFooter.call(_3f.view,_3a,dc.footer1,true);
_3f.view.renderFooter.call(_3f.view,_3a,dc.footer2,false);
}
if(_3f.view.onAfterRender){
_3f.view.onAfterRender.call(_3f.view,_3a);
}
_3f.onLoadSuccess.call(_3a,_40,_3c);
if(!_3b&&_3f.pagination){
var _44=$.data(_3a,"treegrid").total;
var _45=$(_3a).datagrid("getPager");
if(_45.pagination("options").total!=_44){
_45.pagination({total:_44});
}
}
_20(_3a);
_29(_3a);
$(_3a).treegrid("autoSizeColumn");
};
function _1f(_46,_47,_48,_49,_4a){
var _4b=$.data(_46,"treegrid").options;
var _4c=$(_46).datagrid("getPanel").find("div.datagrid-body");
if(_48){
_4b.queryParams=_48;
}
var _4d=$.extend({},_4b.queryParams);
if(_4b.pagination){
$.extend(_4d,{page:_4b.pageNumber,rows:_4b.pageSize});
}
if(_4b.sortName){
$.extend(_4d,{sort:_4b.sortName,order:_4b.sortOrder});
}
var row=_41(_46,_47);
if(_4b.onBeforeLoad.call(_46,row,_4d)==false){
return;
}
var _4e=_4c.find("tr[node-id=\""+_47+"\"] span.tree-folder");
_4e.addClass("tree-loading");
$(_46).treegrid("loading");
var _4f=_4b.loader.call(_46,_4d,function(_50){
_4e.removeClass("tree-loading");
$(_46).treegrid("loaded");
_39(_46,_47,_50,_49);
if(_4a){
_4a();
}
},function(){
_4e.removeClass("tree-loading");
$(_46).treegrid("loaded");
_4b.onLoadError.apply(_46,arguments);
if(_4a){
_4a();
}
});
if(_4f==false){
_4e.removeClass("tree-loading");
$(_46).treegrid("loaded");
}
};
function _51(_52){
var _53=_54(_52);
if(_53.length){
return _53[0];
}else{
return null;
}
};
function _54(_55){
return $.data(_55,"treegrid").data;
};
function _56(_57,_58){
var row=_41(_57,_58);
if(row._parentId){
return _41(_57,row._parentId);
}else{
return null;
}
};
function _25(_59,_5a){
var _5b=$.data(_59,"treegrid").options;
var _5c=$(_59).datagrid("getPanel").find("div.datagrid-view2 div.datagrid-body");
var _5d=[];
if(_5a){
_5e(_5a);
}else{
var _5f=_54(_59);
for(var i=0;i<_5f.length;i++){
_5d.push(_5f[i]);
_5e(_5f[i][_5b.idField]);
}
}
function _5e(_60){
var _61=_41(_59,_60);
if(_61&&_61.children){
for(var i=0,len=_61.children.length;i<len;i++){
var _62=_61.children[i];
_5d.push(_62);
_5e(_62[_5b.idField]);
}
}
};
return _5d;
};
function _63(_64){
var _65=_66(_64);
if(_65.length){
return _65[0];
}else{
return null;
}
};
function _66(_67){
var _68=[];
var _69=$(_67).datagrid("getPanel");
_69.find("div.datagrid-view2 div.datagrid-body tr.datagrid-row-selected").each(function(){
var id=$(this).attr("node-id");
_68.push(_41(_67,id));
});
return _68;
};
function _6a(_6b,_6c){
if(!_6c){
return 0;
}
var _6d=$.data(_6b,"treegrid").options;
var _6e=$(_6b).datagrid("getPanel").children("div.datagrid-view");
var _6f=_6e.find("div.datagrid-body tr[node-id=\""+_6c+"\"]").children("td[field=\""+_6d.treeField+"\"]");
return _6f.find("span.tree-indent,span.tree-hit").length;
};
function _41(_70,_71){
var _72=$.data(_70,"treegrid").options;
var _73=$.data(_70,"treegrid").data;
var cc=[_73];
while(cc.length){
var c=cc.shift();
for(var i=0;i<c.length;i++){
var _74=c[i];
if(_74[_72.idField]==_71){
return _74;
}else{
if(_74["children"]){
cc.push(_74["children"]);
}
}
}
}
return null;
};
function _75(_76,_77){
var _78=$.data(_76,"treegrid").options;
var row=_41(_76,_77);
var tr=_78.finder.getTr(_76,_77);
var hit=tr.find("span.tree-hit");
if(hit.length==0){
return;
}
if(hit.hasClass("tree-collapsed")){
return;
}
if(_78.onBeforeCollapse.call(_76,row)==false){
return;
}
hit.removeClass("tree-expanded tree-expanded-hover").addClass("tree-collapsed");
hit.next().removeClass("tree-folder-open");
row.state="closed";
tr=tr.next("tr.treegrid-tr-tree");
var cc=tr.children("td").children("div");
if(_78.animate){
cc.slideUp("normal",function(){
$(_76).treegrid("autoSizeColumn");
_20(_76,_77);
_78.onCollapse.call(_76,row);
});
}else{
cc.hide();
$(_76).treegrid("autoSizeColumn");
_20(_76,_77);
_78.onCollapse.call(_76,row);
}
};
function _79(_7a,_7b){
var _7c=$.data(_7a,"treegrid").options;
var tr=_7c.finder.getTr(_7a,_7b);
var hit=tr.find("span.tree-hit");
var row=_41(_7a,_7b);
if(hit.length==0){
return;
}
if(hit.hasClass("tree-expanded")){
return;
}
if(_7c.onBeforeExpand.call(_7a,row)==false){
return;
}
hit.removeClass("tree-collapsed tree-collapsed-hover").addClass("tree-expanded");
hit.next().addClass("tree-folder-open");
var _7d=tr.next("tr.treegrid-tr-tree");
if(_7d.length){
var cc=_7d.children("td").children("div");
_7e(cc);
}else{
_31(_7a,row[_7c.idField]);
var _7d=tr.next("tr.treegrid-tr-tree");
var cc=_7d.children("td").children("div");
cc.hide();
var _7f=$.extend({},_7c.queryParams||{});
_7f.id=row[_7c.idField];
_1f(_7a,row[_7c.idField],_7f,true,function(){
if(cc.is(":empty")){
_7d.remove();
}else{
_7e(cc);
}
});
}
function _7e(cc){
row.state="open";
if(_7c.animate){
cc.slideDown("normal",function(){
$(_7a).treegrid("autoSizeColumn");
_20(_7a,_7b);
_7c.onExpand.call(_7a,row);
});
}else{
cc.show();
$(_7a).treegrid("autoSizeColumn");
_20(_7a,_7b);
_7c.onExpand.call(_7a,row);
}
};
};
function _30(_80,_81){
var _82=$.data(_80,"treegrid").options;
var tr=_82.finder.getTr(_80,_81);
var hit=tr.find("span.tree-hit");
if(hit.hasClass("tree-expanded")){
_75(_80,_81);
}else{
_79(_80,_81);
}
};
function _83(_84,_85){
var _86=$.data(_84,"treegrid").options;
var _87=_25(_84,_85);
if(_85){
_87.unshift(_41(_84,_85));
}
for(var i=0;i<_87.length;i++){
_75(_84,_87[i][_86.idField]);
}
};
function _88(_89,_8a){
var _8b=$.data(_89,"treegrid").options;
var _8c=_25(_89,_8a);
if(_8a){
_8c.unshift(_41(_89,_8a));
}
for(var i=0;i<_8c.length;i++){
_79(_89,_8c[i][_8b.idField]);
}
};
function _8d(_8e,_8f){
var _90=$.data(_8e,"treegrid").options;
var ids=[];
var p=_56(_8e,_8f);
while(p){
var id=p[_90.idField];
ids.unshift(id);
p=_56(_8e,id);
}
for(var i=0;i<ids.length;i++){
_79(_8e,ids[i]);
}
};
function _91(_92,_93){
var _94=$.data(_92,"treegrid").options;
if(_93.parent){
var tr=_94.finder.getTr(_92,_93.parent);
if(tr.next("tr.treegrid-tr-tree").length==0){
_31(_92,_93.parent);
}
var _95=tr.children("td[field=\""+_94.treeField+"\"]").children("div.datagrid-cell");
var _96=_95.children("span.tree-icon");
if(_96.hasClass("tree-file")){
_96.removeClass("tree-file").addClass("tree-folder tree-folder-open");
var hit=$("<span class=\"tree-hit tree-expanded\"></span>").insertBefore(_96);
if(hit.prev().length){
hit.prev().remove();
}
}
}
_39(_92,_93.parent,_93.data,true);
};
function _97(_98,_99){
var ref=_99.before||_99.after;
var _9a=$.data(_98,"treegrid").options;
var _9b=_56(_98,ref);
_91(_98,{parent:(_9b?_9b[_9a.idField]:null),data:[_99.data]});
_9c(true);
_9c(false);
_29(_98);
function _9c(_9d){
var _9e=_9d?1:2;
var tr=_9a.finder.getTr(_98,_99.data[_9a.idField],"body",_9e);
var _9f=tr.closest("table.datagrid-btable");
tr=tr.parent().children();
var _a0=_9a.finder.getTr(_98,ref,"body",_9e);
if(_99.before){
tr.insertBefore(_a0);
}else{
var sub=_a0.next("tr.treegrid-tr-tree");
tr.insertAfter(sub.length?sub:_a0);
}
_9f.remove();
};
};
function _a1(_a2,_a3){
var _a4=$.data(_a2,"treegrid").options;
var tr=_a4.finder.getTr(_a2,_a3);
tr.next("tr.treegrid-tr-tree").remove();
tr.remove();
var _a5=del(_a3);
if(_a5){
if(_a5.children.length==0){
tr=_a4.finder.getTr(_a2,_a5[_a4.idField]);
tr.next("tr.treegrid-tr-tree").remove();
var _a6=tr.children("td[field=\""+_a4.treeField+"\"]").children("div.datagrid-cell");
_a6.find(".tree-icon").removeClass("tree-folder").addClass("tree-file");
_a6.find(".tree-hit").remove();
$("<span class=\"tree-indent\"></span>").prependTo(_a6);
}
}
_29(_a2);
function del(id){
var cc;
var _a7=_56(_a2,_a3);
if(_a7){
cc=_a7.children;
}else{
cc=$(_a2).treegrid("getData");
}
for(var i=0;i<cc.length;i++){
if(cc[i][_a4.idField]==id){
cc.splice(i,1);
break;
}
}
return _a7;
};
};
$.fn.treegrid=function(_a8,_a9){
if(typeof _a8=="string"){
var _aa=$.fn.treegrid.methods[_a8];
if(_aa){
return _aa(this,_a9);
}else{
return this.datagrid(_a8,_a9);
}
}
_a8=_a8||{};
return this.each(function(){
var _ab=$.data(this,"treegrid");
if(_ab){
$.extend(_ab.options,_a8);
}else{
_ab=$.data(this,"treegrid",{options:$.extend({},$.fn.treegrid.defaults,$.fn.treegrid.parseOptions(this),_a8),data:[]});
}
_1(this);
if(_ab.options.data){
$(this).treegrid("loadData",_ab.options.data);
}
_1f(this);
_2c(this);
});
};
$.fn.treegrid.methods={options:function(jq){
return $.data(jq[0],"treegrid").options;
},resize:function(jq,_ac){
return jq.each(function(){
$(this).datagrid("resize",_ac);
});
},fixRowHeight:function(jq,_ad){
return jq.each(function(){
_20(this,_ad);
});
},loadData:function(jq,_ae){
return jq.each(function(){
_39(this,_ae.parent,_ae);
});
},load:function(jq,_af){
return jq.each(function(){
$(this).treegrid("options").pageNumber=1;
$(this).treegrid("getPager").pagination({pageNumber:1});
$(this).treegrid("reload",_af);
});
},reload:function(jq,id){
return jq.each(function(){
var _b0=$(this).treegrid("options");
var _b1={};
if(typeof id=="object"){
_b1=id;
}else{
_b1=$.extend({},_b0.queryParams);
_b1.id=id;
}
if(_b1.id){
var _b2=$(this).treegrid("find",_b1.id);
if(_b2.children){
_b2.children.splice(0,_b2.children.length);
}
_b0.queryParams=_b1;
var tr=_b0.finder.getTr(this,_b1.id);
tr.next("tr.treegrid-tr-tree").remove();
tr.find("span.tree-hit").removeClass("tree-expanded tree-expanded-hover").addClass("tree-collapsed");
_79(this,_b1.id);
}else{
_1f(this,null,_b1);
}
});
},reloadFooter:function(jq,_b3){
return jq.each(function(){
var _b4=$.data(this,"treegrid").options;
var dc=$.data(this,"datagrid").dc;
if(_b3){
$.data(this,"treegrid").footer=_b3;
}
if(_b4.showFooter){
_b4.view.renderFooter.call(_b4.view,this,dc.footer1,true);
_b4.view.renderFooter.call(_b4.view,this,dc.footer2,false);
if(_b4.view.onAfterRender){
_b4.view.onAfterRender.call(_b4.view,this);
}
$(this).treegrid("fixRowHeight");
}
});
},getData:function(jq){
return $.data(jq[0],"treegrid").data;
},getFooterRows:function(jq){
return $.data(jq[0],"treegrid").footer;
},getRoot:function(jq){
return _51(jq[0]);
},getRoots:function(jq){
return _54(jq[0]);
},getParent:function(jq,id){
return _56(jq[0],id);
},getChildren:function(jq,id){
return _25(jq[0],id);
},getSelected:function(jq){
return _63(jq[0]);
},getSelections:function(jq){
return _66(jq[0]);
},getLevel:function(jq,id){
return _6a(jq[0],id);
},find:function(jq,id){
return _41(jq[0],id);
},isLeaf:function(jq,id){
var _b5=$.data(jq[0],"treegrid").options;
var tr=_b5.finder.getTr(jq[0],id);
var hit=tr.find("span.tree-hit");
return hit.length==0;
},select:function(jq,id){
return jq.each(function(){
$(this).datagrid("selectRow",id);
});
},unselect:function(jq,id){
return jq.each(function(){
$(this).datagrid("unselectRow",id);
});
},collapse:function(jq,id){
return jq.each(function(){
_75(this,id);
});
},expand:function(jq,id){
return jq.each(function(){
_79(this,id);
});
},toggle:function(jq,id){
return jq.each(function(){
_30(this,id);
});
},collapseAll:function(jq,id){
return jq.each(function(){
_83(this,id);
});
},expandAll:function(jq,id){
return jq.each(function(){
_88(this,id);
});
},expandTo:function(jq,id){
return jq.each(function(){
_8d(this,id);
});
},append:function(jq,_b6){
return jq.each(function(){
_91(this,_b6);
});
},insert:function(jq,_b7){
return jq.each(function(){
_97(this,_b7);
});
},remove:function(jq,id){
return jq.each(function(){
_a1(this,id);
});
},pop:function(jq,id){
var row=jq.treegrid("find",id);
jq.treegrid("remove",id);
return row;
},refresh:function(jq,id){
return jq.each(function(){
var _b8=$.data(this,"treegrid").options;
_b8.view.refreshRow.call(_b8.view,this,id);
});
},update:function(jq,_b9){
return jq.each(function(){
var _ba=$.data(this,"treegrid").options;
_ba.view.updateRow.call(_ba.view,this,_b9.id,_b9.row);
});
},beginEdit:function(jq,id){
return jq.each(function(){
$(this).datagrid("beginEdit",id);
$(this).treegrid("fixRowHeight",id);
});
},endEdit:function(jq,id){
return jq.each(function(){
$(this).datagrid("endEdit",id);
});
},cancelEdit:function(jq,id){
return jq.each(function(){
$(this).datagrid("cancelEdit",id);
});
}};
$.fn.treegrid.parseOptions=function(_bb){
return $.extend({},$.fn.datagrid.parseOptions(_bb),$.parser.parseOptions(_bb,["treeField",{animate:"boolean"}]));
};
var _bc=$.extend({},$.fn.datagrid.defaults.view,{render:function(_bd,_be,_bf){
var _c0=$.data(_bd,"treegrid").options;
var _c1=$(_bd).datagrid("getColumnFields",_bf);
var _c2=$.data(_bd,"datagrid").rowIdPrefix;
if(_bf){
if(!(_c0.rownumbers||(_c0.frozenColumns&&_c0.frozenColumns.length))){
return;
}
}
var _c3=0;
var _c4=this;
var _c5=_c6(_bf,this.treeLevel,this.treeNodes);
$(_be).append(_c5.join(""));
function _c6(_c7,_c8,_c9){
var _ca=["<table class=\"datagrid-btable\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tbody>"];
for(var i=0;i<_c9.length;i++){
var row=_c9[i];
if(row.state!="open"&&row.state!="closed"){
row.state="open";
}
var css=_c0.rowStyler?_c0.rowStyler.call(_bd,row):"";
var _cb="";
var _cc="";
if(typeof css=="string"){
_cc=css;
}else{
if(css){
_cb=css["class"]||"";
_cc=css["style"]||"";
}
}
var cls="class=\"datagrid-row "+(_c3++%2&&_c0.striped?"datagrid-row-alt ":" ")+_cb+"\"";
var _cd=_cc?"style=\""+_cc+"\"":"";
var _ce=_c2+"-"+(_c7?1:2)+"-"+row[_c0.idField];
_ca.push("<tr id=\""+_ce+"\" node-id=\""+row[_c0.idField]+"\" "+cls+" "+_cd+">");
_ca=_ca.concat(_c4.renderRow.call(_c4,_bd,_c1,_c7,_c8,row));
_ca.push("</tr>");
if(row.children&&row.children.length){
var tt=_c6(_c7,_c8+1,row.children);
var v=row.state=="closed"?"none":"block";
_ca.push("<tr class=\"treegrid-tr-tree\"><td style=\"border:0px\" colspan="+(_c1.length+(_c0.rownumbers?1:0))+"><div style=\"display:"+v+"\">");
_ca=_ca.concat(tt);
_ca.push("</div></td></tr>");
}
}
_ca.push("</tbody></table>");
return _ca;
};
},renderFooter:function(_cf,_d0,_d1){
var _d2=$.data(_cf,"treegrid").options;
var _d3=$.data(_cf,"treegrid").footer||[];
var _d4=$(_cf).datagrid("getColumnFields",_d1);
var _d5=["<table class=\"datagrid-ftable\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tbody>"];
for(var i=0;i<_d3.length;i++){
var row=_d3[i];
row[_d2.idField]=row[_d2.idField]||("foot-row-id"+i);
_d5.push("<tr class=\"datagrid-row\" node-id=\""+row[_d2.idField]+"\">");
_d5.push(this.renderRow.call(this,_cf,_d4,_d1,0,row));
_d5.push("</tr>");
}
_d5.push("</tbody></table>");
$(_d0).html(_d5.join(""));
},renderRow:function(_d6,_d7,_d8,_d9,row){
var _da=$.data(_d6,"treegrid").options;
var cc=[];
if(_d8&&_da.rownumbers){
cc.push("<td class=\"datagrid-td-rownumber\"><div class=\"datagrid-cell-rownumber\">0</div></td>");
}
for(var i=0;i<_d7.length;i++){
var _db=_d7[i];
var col=$(_d6).datagrid("getColumnOption",_db);
if(col){
var css=col.styler?(col.styler(row[_db],row)||""):"";
var _dc="";
var _dd="";
if(typeof css=="string"){
_dd=css;
}else{
if(cc){
_dc=css["class"]||"";
_dd=css["style"]||"";
}
}
var cls=_dc?"class=\""+_dc+"\"":"";
var _de=col.hidden?"style=\"display:none;"+_dd+"\"":(_dd?"style=\""+_dd+"\"":"");
cc.push("<td field=\""+_db+"\" "+cls+" "+_de+">");
if(col.checkbox){
var _de="";
}else{
var _de=_dd;
if(col.align){
_de+=";text-align:"+col.align+";";
}
if(!_da.nowrap){
_de+=";white-space:normal;height:auto;";
}else{
if(_da.autoRowHeight){
_de+=";height:auto;";
}
}
}
cc.push("<div style=\""+_de+"\" ");
if(col.checkbox){
cc.push("class=\"datagrid-cell-check ");
}else{
cc.push("class=\"datagrid-cell "+col.cellClass);
}
cc.push("\">");
if(col.checkbox){
if(row.checked){
cc.push("<input type=\"checkbox\" checked=\"checked\"");
}else{
cc.push("<input type=\"checkbox\"");
}
cc.push(" name=\""+_db+"\" value=\""+(row[_db]!=undefined?row[_db]:"")+"\"/>");
}else{
var val=null;
if(col.formatter){
val=col.formatter(row[_db],row);
}else{
val=row[_db];
}
if(_db==_da.treeField){
for(var j=0;j<_d9;j++){
cc.push("<span class=\"tree-indent\"></span>");
}
if(row.state=="closed"){
cc.push("<span class=\"tree-hit tree-collapsed\"></span>");
cc.push("<span class=\"tree-icon tree-folder "+(row.iconCls?row.iconCls:"")+"\"></span>");
}else{
if(row.children&&row.children.length){
cc.push("<span class=\"tree-hit tree-expanded\"></span>");
cc.push("<span class=\"tree-icon tree-folder tree-folder-open "+(row.iconCls?row.iconCls:"")+"\"></span>");
}else{
cc.push("<span class=\"tree-indent\"></span>");
cc.push("<span class=\"tree-icon tree-file "+(row.iconCls?row.iconCls:"")+"\"></span>");
}
}
cc.push("<span class=\"tree-title\">"+val+"</span>");
}else{
cc.push(val);
}
}
cc.push("</div>");
cc.push("</td>");
}
}
return cc.join("");
},refreshRow:function(_df,id){
this.updateRow.call(this,_df,id,{});
},updateRow:function(_e0,id,row){
var _e1=$.data(_e0,"treegrid").options;
var _e2=$(_e0).treegrid("find",id);
$.extend(_e2,row);
var _e3=$(_e0).treegrid("getLevel",id)-1;
var _e4=_e1.rowStyler?_e1.rowStyler.call(_e0,_e2):"";
function _e5(_e6){
var _e7=$(_e0).treegrid("getColumnFields",_e6);
var tr=_e1.finder.getTr(_e0,id,"body",(_e6?1:2));
var _e8=tr.find("div.datagrid-cell-rownumber").html();
var _e9=tr.find("div.datagrid-cell-check input[type=checkbox]").is(":checked");
tr.html(this.renderRow(_e0,_e7,_e6,_e3,_e2));
tr.attr("style",_e4||"");
tr.find("div.datagrid-cell-rownumber").html(_e8);
if(_e9){
tr.find("div.datagrid-cell-check input[type=checkbox]")._propAttr("checked",true);
}
};
_e5.call(this,true);
_e5.call(this,false);
$(_e0).treegrid("fixRowHeight",id);
},onBeforeRender:function(_ea,_eb,_ec){
if($.isArray(_eb)){
_ec={total:_eb.length,rows:_eb};
_eb=null;
}
if(!_ec){
return false;
}
var _ed=$.data(_ea,"treegrid");
var _ee=_ed.options;
if(_ec.length==undefined){
if(_ec.footer){
_ed.footer=_ec.footer;
}
if(_ec.total){
_ed.total=_ec.total;
}
_ec=this.transfer(_ea,_eb,_ec.rows);
}else{
function _ef(_f0,_f1){
for(var i=0;i<_f0.length;i++){
var row=_f0[i];
row._parentId=_f1;
if(row.children&&row.children.length){
_ef(row.children,row[_ee.idField]);
}
}
};
_ef(_ec,_eb);
}
var _f2=_41(_ea,_eb);
if(_f2){
if(_f2.children){
_f2.children=_f2.children.concat(_ec);
}else{
_f2.children=_ec;
}
}else{
_ed.data=_ed.data.concat(_ec);
}
this.sort(_ea,_ec);
this.treeNodes=_ec;
this.treeLevel=$(_ea).treegrid("getLevel",_eb);
},sort:function(_f3,_f4){
var _f5=$.data(_f3,"treegrid").options;
if(!_f5.remoteSort&&_f5.sortName){
var _f6=_f5.sortName.split(",");
var _f7=_f5.sortOrder.split(",");
_f8(_f4);
}
function _f8(_f9){
_f9.sort(function(r1,r2){
var r=0;
for(var i=0;i<_f6.length;i++){
var sn=_f6[i];
var so=_f7[i];
var col=$(_f3).treegrid("getColumnOption",sn);
var _fa=col.sorter||function(a,b){
return a==b?0:(a>b?1:-1);
};
r=_fa(r1[sn],r2[sn])*(so=="asc"?1:-1);
if(r!=0){
return r;
}
}
return r;
});
for(var i=0;i<_f9.length;i++){
var _fb=_f9[i].children;
if(_fb&&_fb.length){
_f8(_fb);
}
}
};
},transfer:function(_fc,_fd,_fe){
var _ff=$.data(_fc,"treegrid").options;
var rows=[];
for(var i=0;i<_fe.length;i++){
rows.push(_fe[i]);
}
var _100=[];
for(var i=0;i<rows.length;i++){
var row=rows[i];
if(!_fd){
if(!row._parentId){
_100.push(row);
rows.splice(i,1);
i--;
}
}else{
if(row._parentId==_fd){
_100.push(row);
rows.splice(i,1);
i--;
}
}
}
var toDo=[];
for(var i=0;i<_100.length;i++){
toDo.push(_100[i]);
}
while(toDo.length){
var node=toDo.shift();
for(var i=0;i<rows.length;i++){
var row=rows[i];
if(row._parentId==node[_ff.idField]){
if(node.children){
node.children.push(row);
}else{
node.children=[row];
}
toDo.push(row);
rows.splice(i,1);
i--;
}
}
}
return _100;
}});
$.fn.treegrid.defaults=$.extend({},$.fn.datagrid.defaults,{treeField:null,animate:false,singleSelect:true,view:_bc,loader:function(_101,_102,_103){
var opts=$(this).treegrid("options");
if(!opts.url){
return false;
}
$.ajax({type:opts.method,url:opts.url,data:_101,dataType:"json",success:function(data){
_102(data);
},error:function(){
_103.apply(this,arguments);
}});
},loadFilter:function(data,_104){
return data;
},finder:{getTr:function(_105,id,type,_106){
type=type||"body";
_106=_106||0;
var dc=$.data(_105,"datagrid").dc;
if(_106==0){
var opts=$.data(_105,"treegrid").options;
var tr1=opts.finder.getTr(_105,id,type,1);
var tr2=opts.finder.getTr(_105,id,type,2);
return tr1.add(tr2);
}else{
if(type=="body"){
var tr=$("#"+$.data(_105,"datagrid").rowIdPrefix+"-"+_106+"-"+id);
if(!tr.length){
tr=(_106==1?dc.body1:dc.body2).find("tr[node-id=\""+id+"\"]");
}
return tr;
}else{
if(type=="footer"){
return (_106==1?dc.footer1:dc.footer2).find("tr[node-id=\""+id+"\"]");
}else{
if(type=="selected"){
return (_106==1?dc.body1:dc.body2).find("tr.datagrid-row-selected");
}else{
if(type=="highlight"){
return (_106==1?dc.body1:dc.body2).find("tr.datagrid-row-over");
}else{
if(type=="checked"){
return (_106==1?dc.body1:dc.body2).find("tr.datagrid-row-checked");
}else{
if(type=="last"){
return (_106==1?dc.body1:dc.body2).find("tr:last[node-id]");
}else{
if(type=="allbody"){
return (_106==1?dc.body1:dc.body2).find("tr[node-id]");
}else{
if(type=="allfooter"){
return (_106==1?dc.footer1:dc.footer2).find("tr[node-id]");
}
}
}
}
}
}
}
}
}
},getRow:function(_107,p){
var id=(typeof p=="object")?p.attr("node-id"):p;
return $(_107).treegrid("find",id);
}},onBeforeLoad:function(row,_108){
},onLoadSuccess:function(row,data){
},onLoadError:function(){
},onBeforeCollapse:function(row){
},onCollapse:function(row){
},onBeforeExpand:function(row){
},onExpand:function(row){
},onClickRow:function(row){
},onDblClickRow:function(row){
},onClickCell:function(_109,row){
},onDblClickCell:function(_10a,row){
},onContextMenu:function(e,row){
},onBeforeEdit:function(row){
},onAfterEdit:function(row,_10b){
},onCancelEdit:function(row){
}});
})(jQuery);