jquery.treegrid.js 27 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117
  1. /**
  2. * jQuery EasyUI 1.4.4
  3. *
  4. * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved.
  5. *
  6. * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php
  7. * To use it on other terms please contact us: info@jeasyui.com
  8. *
  9. */
  10. (function($){
  11. function _1(_2){
  12. var _3=$.data(_2,"treegrid");
  13. var _4=_3.options;
  14. $(_2).datagrid($.extend({},_4,{url:null,data:null,loader:function(){
  15. return false;
  16. },onBeforeLoad:function(){
  17. return false;
  18. },onLoadSuccess:function(){
  19. },onResizeColumn:function(_5,_6){
  20. _16(_2);
  21. _4.onResizeColumn.call(_2,_5,_6);
  22. },onBeforeSortColumn:function(_7,_8){
  23. if(_4.onBeforeSortColumn.call(_2,_7,_8)==false){
  24. return false;
  25. }
  26. },onSortColumn:function(_9,_a){
  27. _4.sortName=_9;
  28. _4.sortOrder=_a;
  29. if(_4.remoteSort){
  30. _15(_2);
  31. }else{
  32. var _b=$(_2).treegrid("getData");
  33. _2f(_2,0,_b);
  34. }
  35. _4.onSortColumn.call(_2,_9,_a);
  36. },onClickCell:function(_c,_d){
  37. _4.onClickCell.call(_2,_d,_37(_2,_c));
  38. },onDblClickCell:function(_e,_f){
  39. _4.onDblClickCell.call(_2,_f,_37(_2,_e));
  40. },onRowContextMenu:function(e,_10){
  41. _4.onContextMenu.call(_2,e,_37(_2,_10));
  42. }}));
  43. var _11=$.data(_2,"datagrid").options;
  44. _4.columns=_11.columns;
  45. _4.frozenColumns=_11.frozenColumns;
  46. _3.dc=$.data(_2,"datagrid").dc;
  47. if(_4.pagination){
  48. var _12=$(_2).datagrid("getPager");
  49. _12.pagination({pageNumber:_4.pageNumber,pageSize:_4.pageSize,pageList:_4.pageList,onSelectPage:function(_13,_14){
  50. _4.pageNumber=_13;
  51. _4.pageSize=_14;
  52. _15(_2);
  53. }});
  54. _4.pageSize=_12.pagination("options").pageSize;
  55. }
  56. };
  57. function _16(_17,_18){
  58. var _19=$.data(_17,"datagrid").options;
  59. var dc=$.data(_17,"datagrid").dc;
  60. if(!dc.body1.is(":empty")&&(!_19.nowrap||_19.autoRowHeight)){
  61. if(_18!=undefined){
  62. var _1a=_1b(_17,_18);
  63. for(var i=0;i<_1a.length;i++){
  64. _1c(_1a[i][_19.idField]);
  65. }
  66. }
  67. }
  68. $(_17).datagrid("fixRowHeight",_18);
  69. function _1c(_1d){
  70. var tr1=_19.finder.getTr(_17,_1d,"body",1);
  71. var tr2=_19.finder.getTr(_17,_1d,"body",2);
  72. tr1.css("height","");
  73. tr2.css("height","");
  74. var _1e=Math.max(tr1.height(),tr2.height());
  75. tr1.css("height",_1e);
  76. tr2.css("height",_1e);
  77. };
  78. };
  79. function _1f(_20){
  80. var dc=$.data(_20,"datagrid").dc;
  81. var _21=$.data(_20,"treegrid").options;
  82. if(!_21.rownumbers){
  83. return;
  84. }
  85. dc.body1.find("div.datagrid-cell-rownumber").each(function(i){
  86. $(this).html(i+1);
  87. });
  88. };
  89. function _22(_23){
  90. return function(e){
  91. $.fn.datagrid.defaults.rowEvents[_23?"mouseover":"mouseout"](e);
  92. var tt=$(e.target);
  93. var fn=_23?"addClass":"removeClass";
  94. if(tt.hasClass("tree-hit")){
  95. tt.hasClass("tree-expanded")?tt[fn]("tree-expanded-hover"):tt[fn]("tree-collapsed-hover");
  96. }
  97. };
  98. };
  99. function _24(e){
  100. var tt=$(e.target);
  101. if(tt.hasClass("tree-hit")){
  102. var tr=tt.closest("tr.datagrid-row");
  103. var _25=tr.closest("div.datagrid-view").children(".datagrid-f")[0];
  104. _26(_25,tr.attr("node-id"));
  105. }else{
  106. $.fn.datagrid.defaults.rowEvents.click(e);
  107. }
  108. };
  109. function _27(_28,_29){
  110. var _2a=$.data(_28,"treegrid").options;
  111. var tr1=_2a.finder.getTr(_28,_29,"body",1);
  112. var tr2=_2a.finder.getTr(_28,_29,"body",2);
  113. var _2b=$(_28).datagrid("getColumnFields",true).length+(_2a.rownumbers?1:0);
  114. var _2c=$(_28).datagrid("getColumnFields",false).length;
  115. _2d(tr1,_2b);
  116. _2d(tr2,_2c);
  117. function _2d(tr,_2e){
  118. $("<tr class=\"treegrid-tr-tree\">"+"<td style=\"border:0px\" colspan=\""+_2e+"\">"+"<div></div>"+"</td>"+"</tr>").insertAfter(tr);
  119. };
  120. };
  121. function _2f(_30,_31,_32,_33){
  122. var _34=$.data(_30,"treegrid");
  123. var _35=_34.options;
  124. var dc=_34.dc;
  125. _32=_35.loadFilter.call(_30,_32,_31);
  126. var _36=_37(_30,_31);
  127. if(_36){
  128. var _38=_35.finder.getTr(_30,_31,"body",1);
  129. var _39=_35.finder.getTr(_30,_31,"body",2);
  130. var cc1=_38.next("tr.treegrid-tr-tree").children("td").children("div");
  131. var cc2=_39.next("tr.treegrid-tr-tree").children("td").children("div");
  132. if(!_33){
  133. _36.children=[];
  134. }
  135. }else{
  136. var cc1=dc.body1;
  137. var cc2=dc.body2;
  138. if(!_33){
  139. _34.data=[];
  140. }
  141. }
  142. if(!_33){
  143. cc1.empty();
  144. cc2.empty();
  145. }
  146. if(_35.view.onBeforeRender){
  147. _35.view.onBeforeRender.call(_35.view,_30,_31,_32);
  148. }
  149. _35.view.render.call(_35.view,_30,cc1,true);
  150. _35.view.render.call(_35.view,_30,cc2,false);
  151. if(_35.showFooter){
  152. _35.view.renderFooter.call(_35.view,_30,dc.footer1,true);
  153. _35.view.renderFooter.call(_35.view,_30,dc.footer2,false);
  154. }
  155. if(_35.view.onAfterRender){
  156. _35.view.onAfterRender.call(_35.view,_30);
  157. }
  158. if(!_31&&_35.pagination){
  159. var _3a=$.data(_30,"treegrid").total;
  160. var _3b=$(_30).datagrid("getPager");
  161. if(_3b.pagination("options").total!=_3a){
  162. _3b.pagination({total:_3a});
  163. }
  164. }
  165. _16(_30);
  166. _1f(_30);
  167. $(_30).treegrid("showLines");
  168. $(_30).treegrid("setSelectionState");
  169. $(_30).treegrid("autoSizeColumn");
  170. _35.onLoadSuccess.call(_30,_36,_32);
  171. };
  172. function _15(_3c,_3d,_3e,_3f,_40){
  173. var _41=$.data(_3c,"treegrid").options;
  174. var _42=$(_3c).datagrid("getPanel").find("div.datagrid-body");
  175. if(_3e){
  176. _41.queryParams=_3e;
  177. }
  178. var _43=$.extend({},_41.queryParams);
  179. if(_41.pagination){
  180. $.extend(_43,{page:_41.pageNumber,rows:_41.pageSize});
  181. }
  182. if(_41.sortName){
  183. $.extend(_43,{sort:_41.sortName,order:_41.sortOrder});
  184. }
  185. var row=_37(_3c,_3d);
  186. if(_41.onBeforeLoad.call(_3c,row,_43)==false){
  187. return;
  188. }
  189. var _44=_42.find("tr[node-id=\""+_3d+"\"] span.tree-folder");
  190. _44.addClass("tree-loading");
  191. $(_3c).treegrid("loading");
  192. var _45=_41.loader.call(_3c,_43,function(_46){
  193. _44.removeClass("tree-loading");
  194. $(_3c).treegrid("loaded");
  195. _2f(_3c,_3d,_46,_3f);
  196. if(_40){
  197. _40();
  198. }
  199. },function(){
  200. _44.removeClass("tree-loading");
  201. $(_3c).treegrid("loaded");
  202. _41.onLoadError.apply(_3c,arguments);
  203. if(_40){
  204. _40();
  205. }
  206. });
  207. if(_45==false){
  208. _44.removeClass("tree-loading");
  209. $(_3c).treegrid("loaded");
  210. }
  211. };
  212. function _47(_48){
  213. var _49=_4a(_48);
  214. if(_49.length){
  215. return _49[0];
  216. }else{
  217. return null;
  218. }
  219. };
  220. function _4a(_4b){
  221. return $.data(_4b,"treegrid").data;
  222. };
  223. function _4c(_4d,_4e){
  224. var row=_37(_4d,_4e);
  225. if(row._parentId){
  226. return _37(_4d,row._parentId);
  227. }else{
  228. return null;
  229. }
  230. };
  231. function _1b(_4f,_50){
  232. var _51=$.data(_4f,"treegrid").options;
  233. var _52=$(_4f).datagrid("getPanel").find("div.datagrid-view2 div.datagrid-body");
  234. var _53=[];
  235. if(_50){
  236. _54(_50);
  237. }else{
  238. var _55=_4a(_4f);
  239. for(var i=0;i<_55.length;i++){
  240. _53.push(_55[i]);
  241. _54(_55[i][_51.idField]);
  242. }
  243. }
  244. function _54(_56){
  245. var _57=_37(_4f,_56);
  246. if(_57&&_57.children){
  247. for(var i=0,len=_57.children.length;i<len;i++){
  248. var _58=_57.children[i];
  249. _53.push(_58);
  250. _54(_58[_51.idField]);
  251. }
  252. }
  253. };
  254. return _53;
  255. };
  256. function _59(_5a,_5b){
  257. var _5c=$.data(_5a,"treegrid").options;
  258. var tr=_5c.finder.getTr(_5a,_5b);
  259. var _5d=tr.children("td[field=\""+_5c.treeField+"\"]");
  260. return _5d.find("span.tree-indent,span.tree-hit").length;
  261. };
  262. function _37(_5e,_5f){
  263. var _60=$.data(_5e,"treegrid").options;
  264. var _61=$.data(_5e,"treegrid").data;
  265. var cc=[_61];
  266. while(cc.length){
  267. var c=cc.shift();
  268. for(var i=0;i<c.length;i++){
  269. var _62=c[i];
  270. if(_62[_60.idField]==_5f){
  271. return _62;
  272. }else{
  273. if(_62["children"]){
  274. cc.push(_62["children"]);
  275. }
  276. }
  277. }
  278. }
  279. return null;
  280. };
  281. function _63(_64,_65){
  282. var _66=$.data(_64,"treegrid").options;
  283. var row=_37(_64,_65);
  284. var tr=_66.finder.getTr(_64,_65);
  285. var hit=tr.find("span.tree-hit");
  286. if(hit.length==0){
  287. return;
  288. }
  289. if(hit.hasClass("tree-collapsed")){
  290. return;
  291. }
  292. if(_66.onBeforeCollapse.call(_64,row)==false){
  293. return;
  294. }
  295. hit.removeClass("tree-expanded tree-expanded-hover").addClass("tree-collapsed");
  296. hit.next().removeClass("tree-folder-open");
  297. row.state="closed";
  298. tr=tr.next("tr.treegrid-tr-tree");
  299. var cc=tr.children("td").children("div");
  300. if(_66.animate){
  301. cc.slideUp("normal",function(){
  302. $(_64).treegrid("autoSizeColumn");
  303. _16(_64,_65);
  304. _66.onCollapse.call(_64,row);
  305. });
  306. }else{
  307. cc.hide();
  308. $(_64).treegrid("autoSizeColumn");
  309. _16(_64,_65);
  310. _66.onCollapse.call(_64,row);
  311. }
  312. };
  313. function _67(_68,_69){
  314. var _6a=$.data(_68,"treegrid").options;
  315. var tr=_6a.finder.getTr(_68,_69);
  316. var hit=tr.find("span.tree-hit");
  317. var row=_37(_68,_69);
  318. if(hit.length==0){
  319. return;
  320. }
  321. if(hit.hasClass("tree-expanded")){
  322. return;
  323. }
  324. if(_6a.onBeforeExpand.call(_68,row)==false){
  325. return;
  326. }
  327. hit.removeClass("tree-collapsed tree-collapsed-hover").addClass("tree-expanded");
  328. hit.next().addClass("tree-folder-open");
  329. var _6b=tr.next("tr.treegrid-tr-tree");
  330. if(_6b.length){
  331. var cc=_6b.children("td").children("div");
  332. _6c(cc);
  333. }else{
  334. _27(_68,row[_6a.idField]);
  335. var _6b=tr.next("tr.treegrid-tr-tree");
  336. var cc=_6b.children("td").children("div");
  337. cc.hide();
  338. var _6d=$.extend({},_6a.queryParams||{});
  339. _6d.id=row[_6a.idField];
  340. _15(_68,row[_6a.idField],_6d,true,function(){
  341. if(cc.is(":empty")){
  342. _6b.remove();
  343. }else{
  344. _6c(cc);
  345. }
  346. });
  347. }
  348. function _6c(cc){
  349. row.state="open";
  350. if(_6a.animate){
  351. cc.slideDown("normal",function(){
  352. $(_68).treegrid("autoSizeColumn");
  353. _16(_68,_69);
  354. _6a.onExpand.call(_68,row);
  355. });
  356. }else{
  357. cc.show();
  358. $(_68).treegrid("autoSizeColumn");
  359. _16(_68,_69);
  360. _6a.onExpand.call(_68,row);
  361. }
  362. };
  363. };
  364. function _26(_6e,_6f){
  365. var _70=$.data(_6e,"treegrid").options;
  366. var tr=_70.finder.getTr(_6e,_6f);
  367. var hit=tr.find("span.tree-hit");
  368. if(hit.hasClass("tree-expanded")){
  369. _63(_6e,_6f);
  370. }else{
  371. _67(_6e,_6f);
  372. }
  373. };
  374. function _71(_72,_73){
  375. var _74=$.data(_72,"treegrid").options;
  376. var _75=_1b(_72,_73);
  377. if(_73){
  378. _75.unshift(_37(_72,_73));
  379. }
  380. for(var i=0;i<_75.length;i++){
  381. _63(_72,_75[i][_74.idField]);
  382. }
  383. };
  384. function _76(_77,_78){
  385. var _79=$.data(_77,"treegrid").options;
  386. var _7a=_1b(_77,_78);
  387. if(_78){
  388. _7a.unshift(_37(_77,_78));
  389. }
  390. for(var i=0;i<_7a.length;i++){
  391. _67(_77,_7a[i][_79.idField]);
  392. }
  393. };
  394. function _7b(_7c,_7d){
  395. var _7e=$.data(_7c,"treegrid").options;
  396. var ids=[];
  397. var p=_4c(_7c,_7d);
  398. while(p){
  399. var id=p[_7e.idField];
  400. ids.unshift(id);
  401. p=_4c(_7c,id);
  402. }
  403. for(var i=0;i<ids.length;i++){
  404. _67(_7c,ids[i]);
  405. }
  406. };
  407. function _7f(_80,_81){
  408. var _82=$.data(_80,"treegrid").options;
  409. if(_81.parent){
  410. var tr=_82.finder.getTr(_80,_81.parent);
  411. if(tr.next("tr.treegrid-tr-tree").length==0){
  412. _27(_80,_81.parent);
  413. }
  414. var _83=tr.children("td[field=\""+_82.treeField+"\"]").children("div.datagrid-cell");
  415. var _84=_83.children("span.tree-icon");
  416. if(_84.hasClass("tree-file")){
  417. _84.removeClass("tree-file").addClass("tree-folder tree-folder-open");
  418. var hit=$("<span class=\"tree-hit tree-expanded\"></span>").insertBefore(_84);
  419. if(hit.prev().length){
  420. hit.prev().remove();
  421. }
  422. }
  423. }
  424. _2f(_80,_81.parent,_81.data,true);
  425. };
  426. function _85(_86,_87){
  427. var ref=_87.before||_87.after;
  428. var _88=$.data(_86,"treegrid").options;
  429. var _89=_4c(_86,ref);
  430. _7f(_86,{parent:(_89?_89[_88.idField]:null),data:[_87.data]});
  431. var _8a=_89?_89.children:$(_86).treegrid("getRoots");
  432. for(var i=0;i<_8a.length;i++){
  433. if(_8a[i][_88.idField]==ref){
  434. var _8b=_8a[_8a.length-1];
  435. _8a.splice(_87.before?i:(i+1),0,_8b);
  436. _8a.splice(_8a.length-1,1);
  437. break;
  438. }
  439. }
  440. _8c(true);
  441. _8c(false);
  442. _1f(_86);
  443. $(_86).treegrid("showLines");
  444. function _8c(_8d){
  445. var _8e=_8d?1:2;
  446. var tr=_88.finder.getTr(_86,_87.data[_88.idField],"body",_8e);
  447. var _8f=tr.closest("table.datagrid-btable");
  448. tr=tr.parent().children();
  449. var _90=_88.finder.getTr(_86,ref,"body",_8e);
  450. if(_87.before){
  451. tr.insertBefore(_90);
  452. }else{
  453. var sub=_90.next("tr.treegrid-tr-tree");
  454. tr.insertAfter(sub.length?sub:_90);
  455. }
  456. _8f.remove();
  457. };
  458. };
  459. function _91(_92,_93){
  460. var _94=$.data(_92,"treegrid");
  461. $(_92).datagrid("deleteRow",_93);
  462. _1f(_92);
  463. _94.total-=1;
  464. $(_92).datagrid("getPager").pagination("refresh",{total:_94.total});
  465. $(_92).treegrid("showLines");
  466. };
  467. function _95(_96){
  468. var t=$(_96);
  469. var _97=t.treegrid("options");
  470. if(_97.lines){
  471. t.treegrid("getPanel").addClass("tree-lines");
  472. }else{
  473. t.treegrid("getPanel").removeClass("tree-lines");
  474. return;
  475. }
  476. t.treegrid("getPanel").find("span.tree-indent").removeClass("tree-line tree-join tree-joinbottom");
  477. t.treegrid("getPanel").find("div.datagrid-cell").removeClass("tree-node-last tree-root-first tree-root-one");
  478. var _98=t.treegrid("getRoots");
  479. if(_98.length>1){
  480. _99(_98[0]).addClass("tree-root-first");
  481. }else{
  482. if(_98.length==1){
  483. _99(_98[0]).addClass("tree-root-one");
  484. }
  485. }
  486. _9a(_98);
  487. _9b(_98);
  488. function _9a(_9c){
  489. $.map(_9c,function(_9d){
  490. if(_9d.children&&_9d.children.length){
  491. _9a(_9d.children);
  492. }else{
  493. var _9e=_99(_9d);
  494. _9e.find(".tree-icon").prev().addClass("tree-join");
  495. }
  496. });
  497. if(_9c.length){
  498. var _9f=_99(_9c[_9c.length-1]);
  499. _9f.addClass("tree-node-last");
  500. _9f.find(".tree-join").removeClass("tree-join").addClass("tree-joinbottom");
  501. }
  502. };
  503. function _9b(_a0){
  504. $.map(_a0,function(_a1){
  505. if(_a1.children&&_a1.children.length){
  506. _9b(_a1.children);
  507. }
  508. });
  509. for(var i=0;i<_a0.length-1;i++){
  510. var _a2=_a0[i];
  511. var _a3=t.treegrid("getLevel",_a2[_97.idField]);
  512. var tr=_97.finder.getTr(_96,_a2[_97.idField]);
  513. var cc=tr.next().find("tr.datagrid-row td[field=\""+_97.treeField+"\"] div.datagrid-cell");
  514. cc.find("span:eq("+(_a3-1)+")").addClass("tree-line");
  515. }
  516. };
  517. function _99(_a4){
  518. var tr=_97.finder.getTr(_96,_a4[_97.idField]);
  519. var _a5=tr.find("td[field=\""+_97.treeField+"\"] div.datagrid-cell");
  520. return _a5;
  521. };
  522. };
  523. $.fn.treegrid=function(_a6,_a7){
  524. if(typeof _a6=="string"){
  525. var _a8=$.fn.treegrid.methods[_a6];
  526. if(_a8){
  527. return _a8(this,_a7);
  528. }else{
  529. return this.datagrid(_a6,_a7);
  530. }
  531. }
  532. _a6=_a6||{};
  533. return this.each(function(){
  534. var _a9=$.data(this,"treegrid");
  535. if(_a9){
  536. $.extend(_a9.options,_a6);
  537. }else{
  538. _a9=$.data(this,"treegrid",{options:$.extend({},$.fn.treegrid.defaults,$.fn.treegrid.parseOptions(this),_a6),data:[]});
  539. }
  540. _1(this);
  541. if(_a9.options.data){
  542. $(this).treegrid("loadData",_a9.options.data);
  543. }
  544. _15(this);
  545. });
  546. };
  547. $.fn.treegrid.methods={options:function(jq){
  548. return $.data(jq[0],"treegrid").options;
  549. },resize:function(jq,_aa){
  550. return jq.each(function(){
  551. $(this).datagrid("resize",_aa);
  552. });
  553. },fixRowHeight:function(jq,_ab){
  554. return jq.each(function(){
  555. _16(this,_ab);
  556. });
  557. },loadData:function(jq,_ac){
  558. return jq.each(function(){
  559. _2f(this,_ac.parent,_ac);
  560. });
  561. },load:function(jq,_ad){
  562. return jq.each(function(){
  563. $(this).treegrid("options").pageNumber=1;
  564. $(this).treegrid("getPager").pagination({pageNumber:1});
  565. $(this).treegrid("reload",_ad);
  566. });
  567. },reload:function(jq,id){
  568. return jq.each(function(){
  569. var _ae=$(this).treegrid("options");
  570. var _af={};
  571. if(typeof id=="object"){
  572. _af=id;
  573. }else{
  574. _af=$.extend({},_ae.queryParams);
  575. _af.id=id;
  576. }
  577. if(_af.id){
  578. var _b0=$(this).treegrid("find",_af.id);
  579. if(_b0.children){
  580. _b0.children.splice(0,_b0.children.length);
  581. }
  582. _ae.queryParams=_af;
  583. var tr=_ae.finder.getTr(this,_af.id);
  584. tr.next("tr.treegrid-tr-tree").remove();
  585. tr.find("span.tree-hit").removeClass("tree-expanded tree-expanded-hover").addClass("tree-collapsed");
  586. _67(this,_af.id);
  587. }else{
  588. _15(this,null,_af);
  589. }
  590. });
  591. },reloadFooter:function(jq,_b1){
  592. return jq.each(function(){
  593. var _b2=$.data(this,"treegrid").options;
  594. var dc=$.data(this,"datagrid").dc;
  595. if(_b1){
  596. $.data(this,"treegrid").footer=_b1;
  597. }
  598. if(_b2.showFooter){
  599. _b2.view.renderFooter.call(_b2.view,this,dc.footer1,true);
  600. _b2.view.renderFooter.call(_b2.view,this,dc.footer2,false);
  601. if(_b2.view.onAfterRender){
  602. _b2.view.onAfterRender.call(_b2.view,this);
  603. }
  604. $(this).treegrid("fixRowHeight");
  605. }
  606. });
  607. },getData:function(jq){
  608. return $.data(jq[0],"treegrid").data;
  609. },getFooterRows:function(jq){
  610. return $.data(jq[0],"treegrid").footer;
  611. },getRoot:function(jq){
  612. return _47(jq[0]);
  613. },getRoots:function(jq){
  614. return _4a(jq[0]);
  615. },getParent:function(jq,id){
  616. return _4c(jq[0],id);
  617. },getChildren:function(jq,id){
  618. return _1b(jq[0],id);
  619. },getLevel:function(jq,id){
  620. return _59(jq[0],id);
  621. },find:function(jq,id){
  622. return _37(jq[0],id);
  623. },isLeaf:function(jq,id){
  624. var _b3=$.data(jq[0],"treegrid").options;
  625. var tr=_b3.finder.getTr(jq[0],id);
  626. var hit=tr.find("span.tree-hit");
  627. return hit.length==0;
  628. },select:function(jq,id){
  629. return jq.each(function(){
  630. $(this).datagrid("selectRow",id);
  631. });
  632. },unselect:function(jq,id){
  633. return jq.each(function(){
  634. $(this).datagrid("unselectRow",id);
  635. });
  636. },collapse:function(jq,id){
  637. return jq.each(function(){
  638. _63(this,id);
  639. });
  640. },expand:function(jq,id){
  641. return jq.each(function(){
  642. _67(this,id);
  643. });
  644. },toggle:function(jq,id){
  645. return jq.each(function(){
  646. _26(this,id);
  647. });
  648. },collapseAll:function(jq,id){
  649. return jq.each(function(){
  650. _71(this,id);
  651. });
  652. },expandAll:function(jq,id){
  653. return jq.each(function(){
  654. _76(this,id);
  655. });
  656. },expandTo:function(jq,id){
  657. return jq.each(function(){
  658. _7b(this,id);
  659. });
  660. },append:function(jq,_b4){
  661. return jq.each(function(){
  662. _7f(this,_b4);
  663. });
  664. },insert:function(jq,_b5){
  665. return jq.each(function(){
  666. _85(this,_b5);
  667. });
  668. },remove:function(jq,id){
  669. return jq.each(function(){
  670. _91(this,id);
  671. });
  672. },pop:function(jq,id){
  673. var row=jq.treegrid("find",id);
  674. jq.treegrid("remove",id);
  675. return row;
  676. },refresh:function(jq,id){
  677. return jq.each(function(){
  678. var _b6=$.data(this,"treegrid").options;
  679. _b6.view.refreshRow.call(_b6.view,this,id);
  680. });
  681. },update:function(jq,_b7){
  682. return jq.each(function(){
  683. var _b8=$.data(this,"treegrid").options;
  684. _b8.view.updateRow.call(_b8.view,this,_b7.id,_b7.row);
  685. });
  686. },beginEdit:function(jq,id){
  687. return jq.each(function(){
  688. $(this).datagrid("beginEdit",id);
  689. $(this).treegrid("fixRowHeight",id);
  690. });
  691. },endEdit:function(jq,id){
  692. return jq.each(function(){
  693. $(this).datagrid("endEdit",id);
  694. });
  695. },cancelEdit:function(jq,id){
  696. return jq.each(function(){
  697. $(this).datagrid("cancelEdit",id);
  698. });
  699. },showLines:function(jq){
  700. return jq.each(function(){
  701. _95(this);
  702. });
  703. }};
  704. $.fn.treegrid.parseOptions=function(_b9){
  705. return $.extend({},$.fn.datagrid.parseOptions(_b9),$.parser.parseOptions(_b9,["treeField",{animate:"boolean"}]));
  706. };
  707. var _ba=$.extend({},$.fn.datagrid.defaults.view,{render:function(_bb,_bc,_bd){
  708. var _be=$.data(_bb,"treegrid").options;
  709. var _bf=$(_bb).datagrid("getColumnFields",_bd);
  710. var _c0=$.data(_bb,"datagrid").rowIdPrefix;
  711. if(_bd){
  712. if(!(_be.rownumbers||(_be.frozenColumns&&_be.frozenColumns.length))){
  713. return;
  714. }
  715. }
  716. var _c1=this;
  717. if(this.treeNodes&&this.treeNodes.length){
  718. var _c2=_c3(_bd,this.treeLevel,this.treeNodes);
  719. $(_bc).append(_c2.join(""));
  720. }
  721. function _c3(_c4,_c5,_c6){
  722. var _c7=$(_bb).treegrid("getParent",_c6[0][_be.idField]);
  723. var _c8=(_c7?_c7.children.length:$(_bb).treegrid("getRoots").length)-_c6.length;
  724. var _c9=["<table class=\"datagrid-btable\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tbody>"];
  725. for(var i=0;i<_c6.length;i++){
  726. var row=_c6[i];
  727. if(row.state!="open"&&row.state!="closed"){
  728. row.state="open";
  729. }
  730. var css=_be.rowStyler?_be.rowStyler.call(_bb,row):"";
  731. var _ca="";
  732. var _cb="";
  733. if(typeof css=="string"){
  734. _cb=css;
  735. }else{
  736. if(css){
  737. _ca=css["class"]||"";
  738. _cb=css["style"]||"";
  739. }
  740. }
  741. var cls="class=\"datagrid-row "+(_c8++%2&&_be.striped?"datagrid-row-alt ":" ")+_ca+"\"";
  742. var _cc=_cb?"style=\""+_cb+"\"":"";
  743. var _cd=_c0+"-"+(_c4?1:2)+"-"+row[_be.idField];
  744. _c9.push("<tr id=\""+_cd+"\" node-id=\""+row[_be.idField]+"\" "+cls+" "+_cc+">");
  745. _c9=_c9.concat(_c1.renderRow.call(_c1,_bb,_bf,_c4,_c5,row));
  746. _c9.push("</tr>");
  747. if(row.children&&row.children.length){
  748. var tt=_c3(_c4,_c5+1,row.children);
  749. var v=row.state=="closed"?"none":"block";
  750. _c9.push("<tr class=\"treegrid-tr-tree\"><td style=\"border:0px\" colspan="+(_bf.length+(_be.rownumbers?1:0))+"><div style=\"display:"+v+"\">");
  751. _c9=_c9.concat(tt);
  752. _c9.push("</div></td></tr>");
  753. }
  754. }
  755. _c9.push("</tbody></table>");
  756. return _c9;
  757. };
  758. },renderFooter:function(_ce,_cf,_d0){
  759. var _d1=$.data(_ce,"treegrid").options;
  760. var _d2=$.data(_ce,"treegrid").footer||[];
  761. var _d3=$(_ce).datagrid("getColumnFields",_d0);
  762. var _d4=["<table class=\"datagrid-ftable\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tbody>"];
  763. for(var i=0;i<_d2.length;i++){
  764. var row=_d2[i];
  765. row[_d1.idField]=row[_d1.idField]||("foot-row-id"+i);
  766. _d4.push("<tr class=\"datagrid-row\" node-id=\""+row[_d1.idField]+"\">");
  767. _d4.push(this.renderRow.call(this,_ce,_d3,_d0,0,row));
  768. _d4.push("</tr>");
  769. }
  770. _d4.push("</tbody></table>");
  771. $(_cf).html(_d4.join(""));
  772. },renderRow:function(_d5,_d6,_d7,_d8,row){
  773. var _d9=$.data(_d5,"treegrid").options;
  774. var cc=[];
  775. if(_d7&&_d9.rownumbers){
  776. cc.push("<td class=\"datagrid-td-rownumber\"><div class=\"datagrid-cell-rownumber\">0</div></td>");
  777. }
  778. for(var i=0;i<_d6.length;i++){
  779. var _da=_d6[i];
  780. var col=$(_d5).datagrid("getColumnOption",_da);
  781. if(col){
  782. var css=col.styler?(col.styler(row[_da],row)||""):"";
  783. var _db="";
  784. var _dc="";
  785. if(typeof css=="string"){
  786. _dc=css;
  787. }else{
  788. if(cc){
  789. _db=css["class"]||"";
  790. _dc=css["style"]||"";
  791. }
  792. }
  793. var cls=_db?"class=\""+_db+"\"":"";
  794. var _dd=col.hidden?"style=\"display:none;"+_dc+"\"":(_dc?"style=\""+_dc+"\"":"");
  795. cc.push("<td field=\""+_da+"\" "+cls+" "+_dd+">");
  796. var _dd="";
  797. if(!col.checkbox){
  798. if(col.align){
  799. _dd+="text-align:"+col.align+";";
  800. }
  801. if(!_d9.nowrap){
  802. _dd+="white-space:normal;height:auto;";
  803. }else{
  804. if(_d9.autoRowHeight){
  805. _dd+="height:auto;";
  806. }
  807. }
  808. }
  809. cc.push("<div style=\""+_dd+"\" ");
  810. if(col.checkbox){
  811. cc.push("class=\"datagrid-cell-check ");
  812. }else{
  813. cc.push("class=\"datagrid-cell "+col.cellClass);
  814. }
  815. cc.push("\">");
  816. if(col.checkbox){
  817. if(row.checked){
  818. cc.push("<input type=\"checkbox\" checked=\"checked\"");
  819. }else{
  820. cc.push("<input type=\"checkbox\"");
  821. }
  822. cc.push(" name=\""+_da+"\" value=\""+(row[_da]!=undefined?row[_da]:"")+"\">");
  823. }else{
  824. var val=null;
  825. if(col.formatter){
  826. val=col.formatter(row[_da],row);
  827. }else{
  828. val=row[_da];
  829. }
  830. if(_da==_d9.treeField){
  831. for(var j=0;j<_d8;j++){
  832. cc.push("<span class=\"tree-indent\"></span>");
  833. }
  834. if(row.state=="closed"){
  835. cc.push("<span class=\"tree-hit tree-collapsed\"></span>");
  836. cc.push("<span class=\"tree-icon tree-folder "+(row.iconCls?row.iconCls:"")+"\"></span>");
  837. }else{
  838. if(row.children&&row.children.length){
  839. cc.push("<span class=\"tree-hit tree-expanded\"></span>");
  840. cc.push("<span class=\"tree-icon tree-folder tree-folder-open "+(row.iconCls?row.iconCls:"")+"\"></span>");
  841. }else{
  842. cc.push("<span class=\"tree-indent\"></span>");
  843. cc.push("<span class=\"tree-icon tree-file "+(row.iconCls?row.iconCls:"")+"\"></span>");
  844. }
  845. }
  846. cc.push("<span class=\"tree-title\">"+val+"</span>");
  847. }else{
  848. cc.push(val);
  849. }
  850. }
  851. cc.push("</div>");
  852. cc.push("</td>");
  853. }
  854. }
  855. return cc.join("");
  856. },refreshRow:function(_de,id){
  857. this.updateRow.call(this,_de,id,{});
  858. },updateRow:function(_df,id,row){
  859. var _e0=$.data(_df,"treegrid").options;
  860. var _e1=$(_df).treegrid("find",id);
  861. $.extend(_e1,row);
  862. var _e2=$(_df).treegrid("getLevel",id)-1;
  863. var _e3=_e0.rowStyler?_e0.rowStyler.call(_df,_e1):"";
  864. var _e4=$.data(_df,"datagrid").rowIdPrefix;
  865. var _e5=_e1[_e0.idField];
  866. function _e6(_e7){
  867. var _e8=$(_df).treegrid("getColumnFields",_e7);
  868. var tr=_e0.finder.getTr(_df,id,"body",(_e7?1:2));
  869. var _e9=tr.find("div.datagrid-cell-rownumber").html();
  870. var _ea=tr.find("div.datagrid-cell-check input[type=checkbox]").is(":checked");
  871. tr.html(this.renderRow(_df,_e8,_e7,_e2,_e1));
  872. tr.attr("style",_e3||"");
  873. tr.find("div.datagrid-cell-rownumber").html(_e9);
  874. if(_ea){
  875. tr.find("div.datagrid-cell-check input[type=checkbox]")._propAttr("checked",true);
  876. }
  877. if(_e5!=id){
  878. tr.attr("id",_e4+"-"+(_e7?1:2)+"-"+_e5);
  879. tr.attr("node-id",_e5);
  880. }
  881. };
  882. _e6.call(this,true);
  883. _e6.call(this,false);
  884. $(_df).treegrid("fixRowHeight",id);
  885. },deleteRow:function(_eb,id){
  886. var _ec=$.data(_eb,"treegrid").options;
  887. var tr=_ec.finder.getTr(_eb,id);
  888. tr.next("tr.treegrid-tr-tree").remove();
  889. tr.remove();
  890. var _ed=del(id);
  891. if(_ed){
  892. if(_ed.children.length==0){
  893. tr=_ec.finder.getTr(_eb,_ed[_ec.idField]);
  894. tr.next("tr.treegrid-tr-tree").remove();
  895. var _ee=tr.children("td[field=\""+_ec.treeField+"\"]").children("div.datagrid-cell");
  896. _ee.find(".tree-icon").removeClass("tree-folder").addClass("tree-file");
  897. _ee.find(".tree-hit").remove();
  898. $("<span class=\"tree-indent\"></span>").prependTo(_ee);
  899. }
  900. }
  901. function del(id){
  902. var cc;
  903. var _ef=$(_eb).treegrid("getParent",id);
  904. if(_ef){
  905. cc=_ef.children;
  906. }else{
  907. cc=$(_eb).treegrid("getData");
  908. }
  909. for(var i=0;i<cc.length;i++){
  910. if(cc[i][_ec.idField]==id){
  911. cc.splice(i,1);
  912. break;
  913. }
  914. }
  915. return _ef;
  916. };
  917. },onBeforeRender:function(_f0,_f1,_f2){
  918. if($.isArray(_f1)){
  919. _f2={total:_f1.length,rows:_f1};
  920. _f1=null;
  921. }
  922. if(!_f2){
  923. return false;
  924. }
  925. var _f3=$.data(_f0,"treegrid");
  926. var _f4=_f3.options;
  927. if(_f2.length==undefined){
  928. if(_f2.footer){
  929. _f3.footer=_f2.footer;
  930. }
  931. if(_f2.total){
  932. _f3.total=_f2.total;
  933. }
  934. _f2=this.transfer(_f0,_f1,_f2.rows);
  935. }else{
  936. function _f5(_f6,_f7){
  937. for(var i=0;i<_f6.length;i++){
  938. var row=_f6[i];
  939. row._parentId=_f7;
  940. if(row.children&&row.children.length){
  941. _f5(row.children,row[_f4.idField]);
  942. }
  943. }
  944. };
  945. _f5(_f2,_f1);
  946. }
  947. var _f8=_37(_f0,_f1);
  948. if(_f8){
  949. if(_f8.children){
  950. _f8.children=_f8.children.concat(_f2);
  951. }else{
  952. _f8.children=_f2;
  953. }
  954. }else{
  955. _f3.data=_f3.data.concat(_f2);
  956. }
  957. this.sort(_f0,_f2);
  958. this.treeNodes=_f2;
  959. this.treeLevel=$(_f0).treegrid("getLevel",_f1);
  960. },sort:function(_f9,_fa){
  961. var _fb=$.data(_f9,"treegrid").options;
  962. if(!_fb.remoteSort&&_fb.sortName){
  963. var _fc=_fb.sortName.split(",");
  964. var _fd=_fb.sortOrder.split(",");
  965. _fe(_fa);
  966. }
  967. function _fe(_ff){
  968. _ff.sort(function(r1,r2){
  969. var r=0;
  970. for(var i=0;i<_fc.length;i++){
  971. var sn=_fc[i];
  972. var so=_fd[i];
  973. var col=$(_f9).treegrid("getColumnOption",sn);
  974. var _100=col.sorter||function(a,b){
  975. return a==b?0:(a>b?1:-1);
  976. };
  977. r=_100(r1[sn],r2[sn])*(so=="asc"?1:-1);
  978. if(r!=0){
  979. return r;
  980. }
  981. }
  982. return r;
  983. });
  984. for(var i=0;i<_ff.length;i++){
  985. var _101=_ff[i].children;
  986. if(_101&&_101.length){
  987. _fe(_101);
  988. }
  989. }
  990. };
  991. },transfer:function(_102,_103,data){
  992. var opts=$.data(_102,"treegrid").options;
  993. var rows=[];
  994. for(var i=0;i<data.length;i++){
  995. rows.push(data[i]);
  996. }
  997. var _104=[];
  998. for(var i=0;i<rows.length;i++){
  999. var row=rows[i];
  1000. if(!_103){
  1001. if(!row._parentId){
  1002. _104.push(row);
  1003. rows.splice(i,1);
  1004. i--;
  1005. }
  1006. }else{
  1007. if(row._parentId==_103){
  1008. _104.push(row);
  1009. rows.splice(i,1);
  1010. i--;
  1011. }
  1012. }
  1013. }
  1014. var toDo=[];
  1015. for(var i=0;i<_104.length;i++){
  1016. toDo.push(_104[i]);
  1017. }
  1018. while(toDo.length){
  1019. var node=toDo.shift();
  1020. for(var i=0;i<rows.length;i++){
  1021. var row=rows[i];
  1022. if(row._parentId==node[opts.idField]){
  1023. if(node.children){
  1024. node.children.push(row);
  1025. }else{
  1026. node.children=[row];
  1027. }
  1028. toDo.push(row);
  1029. rows.splice(i,1);
  1030. i--;
  1031. }
  1032. }
  1033. }
  1034. return _104;
  1035. }});
  1036. $.fn.treegrid.defaults=$.extend({},$.fn.datagrid.defaults,{treeField:null,lines:false,animate:false,singleSelect:true,view:_ba,rowEvents:$.extend({},$.fn.datagrid.defaults.rowEvents,{mouseover:_22(true),mouseout:_22(false),click:_24}),loader:function(_105,_106,_107){
  1037. var opts=$(this).treegrid("options");
  1038. if(!opts.url){
  1039. return false;
  1040. }
  1041. $.ajax({type:opts.method,url:opts.url,data:_105,dataType:"json",success:function(data){
  1042. _106(data);
  1043. },error:function(){
  1044. _107.apply(this,arguments);
  1045. }});
  1046. },loadFilter:function(data,_108){
  1047. return data;
  1048. },finder:{getTr:function(_109,id,type,_10a){
  1049. type=type||"body";
  1050. _10a=_10a||0;
  1051. var dc=$.data(_109,"datagrid").dc;
  1052. if(_10a==0){
  1053. var opts=$.data(_109,"treegrid").options;
  1054. var tr1=opts.finder.getTr(_109,id,type,1);
  1055. var tr2=opts.finder.getTr(_109,id,type,2);
  1056. return tr1.add(tr2);
  1057. }else{
  1058. if(type=="body"){
  1059. var tr=$("#"+$.data(_109,"datagrid").rowIdPrefix+"-"+_10a+"-"+id);
  1060. if(!tr.length){
  1061. tr=(_10a==1?dc.body1:dc.body2).find("tr[node-id=\""+id+"\"]");
  1062. }
  1063. return tr;
  1064. }else{
  1065. if(type=="footer"){
  1066. return (_10a==1?dc.footer1:dc.footer2).find("tr[node-id=\""+id+"\"]");
  1067. }else{
  1068. if(type=="selected"){
  1069. return (_10a==1?dc.body1:dc.body2).find("tr.datagrid-row-selected");
  1070. }else{
  1071. if(type=="highlight"){
  1072. return (_10a==1?dc.body1:dc.body2).find("tr.datagrid-row-over");
  1073. }else{
  1074. if(type=="checked"){
  1075. return (_10a==1?dc.body1:dc.body2).find("tr.datagrid-row-checked");
  1076. }else{
  1077. if(type=="last"){
  1078. return (_10a==1?dc.body1:dc.body2).find("tr:last[node-id]");
  1079. }else{
  1080. if(type=="allbody"){
  1081. return (_10a==1?dc.body1:dc.body2).find("tr[node-id]");
  1082. }else{
  1083. if(type=="allfooter"){
  1084. return (_10a==1?dc.footer1:dc.footer2).find("tr[node-id]");
  1085. }
  1086. }
  1087. }
  1088. }
  1089. }
  1090. }
  1091. }
  1092. }
  1093. }
  1094. },getRow:function(_10b,p){
  1095. var id=(typeof p=="object")?p.attr("node-id"):p;
  1096. return $(_10b).treegrid("find",id);
  1097. },getRows:function(_10c){
  1098. return $(_10c).treegrid("getChildren");
  1099. }},onBeforeLoad:function(row,_10d){
  1100. },onLoadSuccess:function(row,data){
  1101. },onLoadError:function(){
  1102. },onBeforeCollapse:function(row){
  1103. },onCollapse:function(row){
  1104. },onBeforeExpand:function(row){
  1105. },onExpand:function(row){
  1106. },onClickRow:function(row){
  1107. },onDblClickRow:function(row){
  1108. },onClickCell:function(_10e,row){
  1109. },onDblClickCell:function(_10f,row){
  1110. },onContextMenu:function(e,row){
  1111. },onBeforeEdit:function(row){
  1112. },onAfterEdit:function(row,_110){
  1113. },onCancelEdit:function(row){
  1114. }});
  1115. })(jQuery);