jquery.treegrid.js 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119
  1. /**
  2. * jQuery EasyUI 1.4.3
  3. *
  4. * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved.
  5. *
  6. * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt
  7. * To use it on other terms please contact us at 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. if(!_5b){
  258. return 0;
  259. }
  260. var _5c=$.data(_5a,"treegrid").options;
  261. var _5d=$(_5a).datagrid("getPanel").children("div.datagrid-view");
  262. var _5e=_5d.find("div.datagrid-body tr[node-id=\""+_5b+"\"]").children("td[field=\""+_5c.treeField+"\"]");
  263. return _5e.find("span.tree-indent,span.tree-hit").length;
  264. };
  265. function _37(_5f,_60){
  266. var _61=$.data(_5f,"treegrid").options;
  267. var _62=$.data(_5f,"treegrid").data;
  268. var cc=[_62];
  269. while(cc.length){
  270. var c=cc.shift();
  271. for(var i=0;i<c.length;i++){
  272. var _63=c[i];
  273. if(_63[_61.idField]==_60){
  274. return _63;
  275. }else{
  276. if(_63["children"]){
  277. cc.push(_63["children"]);
  278. }
  279. }
  280. }
  281. }
  282. return null;
  283. };
  284. function _64(_65,_66){
  285. var _67=$.data(_65,"treegrid").options;
  286. var row=_37(_65,_66);
  287. var tr=_67.finder.getTr(_65,_66);
  288. var hit=tr.find("span.tree-hit");
  289. if(hit.length==0){
  290. return;
  291. }
  292. if(hit.hasClass("tree-collapsed")){
  293. return;
  294. }
  295. if(_67.onBeforeCollapse.call(_65,row)==false){
  296. return;
  297. }
  298. hit.removeClass("tree-expanded tree-expanded-hover").addClass("tree-collapsed");
  299. hit.next().removeClass("tree-folder-open");
  300. row.state="closed";
  301. tr=tr.next("tr.treegrid-tr-tree");
  302. var cc=tr.children("td").children("div");
  303. if(_67.animate){
  304. cc.slideUp("normal",function(){
  305. $(_65).treegrid("autoSizeColumn");
  306. _16(_65,_66);
  307. _67.onCollapse.call(_65,row);
  308. });
  309. }else{
  310. cc.hide();
  311. $(_65).treegrid("autoSizeColumn");
  312. _16(_65,_66);
  313. _67.onCollapse.call(_65,row);
  314. }
  315. };
  316. function _68(_69,_6a){
  317. var _6b=$.data(_69,"treegrid").options;
  318. var tr=_6b.finder.getTr(_69,_6a);
  319. var hit=tr.find("span.tree-hit");
  320. var row=_37(_69,_6a);
  321. if(hit.length==0){
  322. return;
  323. }
  324. if(hit.hasClass("tree-expanded")){
  325. return;
  326. }
  327. if(_6b.onBeforeExpand.call(_69,row)==false){
  328. return;
  329. }
  330. hit.removeClass("tree-collapsed tree-collapsed-hover").addClass("tree-expanded");
  331. hit.next().addClass("tree-folder-open");
  332. var _6c=tr.next("tr.treegrid-tr-tree");
  333. if(_6c.length){
  334. var cc=_6c.children("td").children("div");
  335. _6d(cc);
  336. }else{
  337. _27(_69,row[_6b.idField]);
  338. var _6c=tr.next("tr.treegrid-tr-tree");
  339. var cc=_6c.children("td").children("div");
  340. cc.hide();
  341. var _6e=$.extend({},_6b.queryParams||{});
  342. _6e.id=row[_6b.idField];
  343. _15(_69,row[_6b.idField],_6e,true,function(){
  344. if(cc.is(":empty")){
  345. _6c.remove();
  346. }else{
  347. _6d(cc);
  348. }
  349. });
  350. }
  351. function _6d(cc){
  352. row.state="open";
  353. if(_6b.animate){
  354. cc.slideDown("normal",function(){
  355. $(_69).treegrid("autoSizeColumn");
  356. _16(_69,_6a);
  357. _6b.onExpand.call(_69,row);
  358. });
  359. }else{
  360. cc.show();
  361. $(_69).treegrid("autoSizeColumn");
  362. _16(_69,_6a);
  363. _6b.onExpand.call(_69,row);
  364. }
  365. };
  366. };
  367. function _26(_6f,_70){
  368. var _71=$.data(_6f,"treegrid").options;
  369. var tr=_71.finder.getTr(_6f,_70);
  370. var hit=tr.find("span.tree-hit");
  371. if(hit.hasClass("tree-expanded")){
  372. _64(_6f,_70);
  373. }else{
  374. _68(_6f,_70);
  375. }
  376. };
  377. function _72(_73,_74){
  378. var _75=$.data(_73,"treegrid").options;
  379. var _76=_1b(_73,_74);
  380. if(_74){
  381. _76.unshift(_37(_73,_74));
  382. }
  383. for(var i=0;i<_76.length;i++){
  384. _64(_73,_76[i][_75.idField]);
  385. }
  386. };
  387. function _77(_78,_79){
  388. var _7a=$.data(_78,"treegrid").options;
  389. var _7b=_1b(_78,_79);
  390. if(_79){
  391. _7b.unshift(_37(_78,_79));
  392. }
  393. for(var i=0;i<_7b.length;i++){
  394. _68(_78,_7b[i][_7a.idField]);
  395. }
  396. };
  397. function _7c(_7d,_7e){
  398. var _7f=$.data(_7d,"treegrid").options;
  399. var ids=[];
  400. var p=_4c(_7d,_7e);
  401. while(p){
  402. var id=p[_7f.idField];
  403. ids.unshift(id);
  404. p=_4c(_7d,id);
  405. }
  406. for(var i=0;i<ids.length;i++){
  407. _68(_7d,ids[i]);
  408. }
  409. };
  410. function _80(_81,_82){
  411. var _83=$.data(_81,"treegrid").options;
  412. if(_82.parent){
  413. var tr=_83.finder.getTr(_81,_82.parent);
  414. if(tr.next("tr.treegrid-tr-tree").length==0){
  415. _27(_81,_82.parent);
  416. }
  417. var _84=tr.children("td[field=\""+_83.treeField+"\"]").children("div.datagrid-cell");
  418. var _85=_84.children("span.tree-icon");
  419. if(_85.hasClass("tree-file")){
  420. _85.removeClass("tree-file").addClass("tree-folder tree-folder-open");
  421. var hit=$("<span class=\"tree-hit tree-expanded\"></span>").insertBefore(_85);
  422. if(hit.prev().length){
  423. hit.prev().remove();
  424. }
  425. }
  426. }
  427. _2f(_81,_82.parent,_82.data,true);
  428. };
  429. function _86(_87,_88){
  430. var ref=_88.before||_88.after;
  431. var _89=$.data(_87,"treegrid").options;
  432. var _8a=_4c(_87,ref);
  433. _80(_87,{parent:(_8a?_8a[_89.idField]:null),data:[_88.data]});
  434. var _8b=_8a?_8a.children:$(_87).treegrid("getRoots");
  435. for(var i=0;i<_8b.length;i++){
  436. if(_8b[i][_89.idField]==ref){
  437. var _8c=_8b[_8b.length-1];
  438. _8b.splice(_88.before?i:(i+1),0,_8c);
  439. _8b.splice(_8b.length-1,1);
  440. break;
  441. }
  442. }
  443. _8d(true);
  444. _8d(false);
  445. _1f(_87);
  446. $(_87).treegrid("showLines");
  447. function _8d(_8e){
  448. var _8f=_8e?1:2;
  449. var tr=_89.finder.getTr(_87,_88.data[_89.idField],"body",_8f);
  450. var _90=tr.closest("table.datagrid-btable");
  451. tr=tr.parent().children();
  452. var _91=_89.finder.getTr(_87,ref,"body",_8f);
  453. if(_88.before){
  454. tr.insertBefore(_91);
  455. }else{
  456. var sub=_91.next("tr.treegrid-tr-tree");
  457. tr.insertAfter(sub.length?sub:_91);
  458. }
  459. _90.remove();
  460. };
  461. };
  462. function _92(_93,_94){
  463. var _95=$.data(_93,"treegrid");
  464. $(_93).datagrid("deleteRow",_94);
  465. _1f(_93);
  466. _95.total-=1;
  467. $(_93).datagrid("getPager").pagination("refresh",{total:_95.total});
  468. $(_93).treegrid("showLines");
  469. };
  470. function _96(_97){
  471. var t=$(_97);
  472. var _98=t.treegrid("options");
  473. if(_98.lines){
  474. t.treegrid("getPanel").addClass("tree-lines");
  475. }else{
  476. t.treegrid("getPanel").removeClass("tree-lines");
  477. return;
  478. }
  479. t.treegrid("getPanel").find("span.tree-indent").removeClass("tree-line tree-join tree-joinbottom");
  480. t.treegrid("getPanel").find("div.datagrid-cell").removeClass("tree-node-last tree-root-first tree-root-one");
  481. var _99=t.treegrid("getRoots");
  482. if(_99.length>1){
  483. _9a(_99[0]).addClass("tree-root-first");
  484. }else{
  485. if(_99.length==1){
  486. _9a(_99[0]).addClass("tree-root-one");
  487. }
  488. }
  489. _9b(_99);
  490. _9c(_99);
  491. function _9b(_9d){
  492. $.map(_9d,function(_9e){
  493. if(_9e.children&&_9e.children.length){
  494. _9b(_9e.children);
  495. }else{
  496. var _9f=_9a(_9e);
  497. _9f.find(".tree-icon").prev().addClass("tree-join");
  498. }
  499. });
  500. if(_9d.length){
  501. var _a0=_9a(_9d[_9d.length-1]);
  502. _a0.addClass("tree-node-last");
  503. _a0.find(".tree-join").removeClass("tree-join").addClass("tree-joinbottom");
  504. }
  505. };
  506. function _9c(_a1){
  507. $.map(_a1,function(_a2){
  508. if(_a2.children&&_a2.children.length){
  509. _9c(_a2.children);
  510. }
  511. });
  512. for(var i=0;i<_a1.length-1;i++){
  513. var _a3=_a1[i];
  514. var _a4=t.treegrid("getLevel",_a3[_98.idField]);
  515. var tr=_98.finder.getTr(_97,_a3[_98.idField]);
  516. var cc=tr.next().find("tr.datagrid-row td[field=\""+_98.treeField+"\"] div.datagrid-cell");
  517. cc.find("span:eq("+(_a4-1)+")").addClass("tree-line");
  518. }
  519. };
  520. function _9a(_a5){
  521. var tr=_98.finder.getTr(_97,_a5[_98.idField]);
  522. var _a6=tr.find("td[field=\""+_98.treeField+"\"] div.datagrid-cell");
  523. return _a6;
  524. };
  525. };
  526. $.fn.treegrid=function(_a7,_a8){
  527. if(typeof _a7=="string"){
  528. var _a9=$.fn.treegrid.methods[_a7];
  529. if(_a9){
  530. return _a9(this,_a8);
  531. }else{
  532. return this.datagrid(_a7,_a8);
  533. }
  534. }
  535. _a7=_a7||{};
  536. return this.each(function(){
  537. var _aa=$.data(this,"treegrid");
  538. if(_aa){
  539. $.extend(_aa.options,_a7);
  540. }else{
  541. _aa=$.data(this,"treegrid",{options:$.extend({},$.fn.treegrid.defaults,$.fn.treegrid.parseOptions(this),_a7),data:[]});
  542. }
  543. _1(this);
  544. if(_aa.options.data){
  545. $(this).treegrid("loadData",_aa.options.data);
  546. }
  547. _15(this);
  548. });
  549. };
  550. $.fn.treegrid.methods={options:function(jq){
  551. return $.data(jq[0],"treegrid").options;
  552. },resize:function(jq,_ab){
  553. return jq.each(function(){
  554. $(this).datagrid("resize",_ab);
  555. });
  556. },fixRowHeight:function(jq,_ac){
  557. return jq.each(function(){
  558. _16(this,_ac);
  559. });
  560. },loadData:function(jq,_ad){
  561. return jq.each(function(){
  562. _2f(this,_ad.parent,_ad);
  563. });
  564. },load:function(jq,_ae){
  565. return jq.each(function(){
  566. $(this).treegrid("options").pageNumber=1;
  567. $(this).treegrid("getPager").pagination({pageNumber:1});
  568. $(this).treegrid("reload",_ae);
  569. });
  570. },reload:function(jq,id){
  571. return jq.each(function(){
  572. var _af=$(this).treegrid("options");
  573. var _b0={};
  574. if(typeof id=="object"){
  575. _b0=id;
  576. }else{
  577. _b0=$.extend({},_af.queryParams);
  578. _b0.id=id;
  579. }
  580. if(_b0.id){
  581. var _b1=$(this).treegrid("find",_b0.id);
  582. if(_b1.children){
  583. _b1.children.splice(0,_b1.children.length);
  584. }
  585. _af.queryParams=_b0;
  586. var tr=_af.finder.getTr(this,_b0.id);
  587. tr.next("tr.treegrid-tr-tree").remove();
  588. tr.find("span.tree-hit").removeClass("tree-expanded tree-expanded-hover").addClass("tree-collapsed");
  589. _68(this,_b0.id);
  590. }else{
  591. _15(this,null,_b0);
  592. }
  593. });
  594. },reloadFooter:function(jq,_b2){
  595. return jq.each(function(){
  596. var _b3=$.data(this,"treegrid").options;
  597. var dc=$.data(this,"datagrid").dc;
  598. if(_b2){
  599. $.data(this,"treegrid").footer=_b2;
  600. }
  601. if(_b3.showFooter){
  602. _b3.view.renderFooter.call(_b3.view,this,dc.footer1,true);
  603. _b3.view.renderFooter.call(_b3.view,this,dc.footer2,false);
  604. if(_b3.view.onAfterRender){
  605. _b3.view.onAfterRender.call(_b3.view,this);
  606. }
  607. $(this).treegrid("fixRowHeight");
  608. }
  609. });
  610. },getData:function(jq){
  611. return $.data(jq[0],"treegrid").data;
  612. },getFooterRows:function(jq){
  613. return $.data(jq[0],"treegrid").footer;
  614. },getRoot:function(jq){
  615. return _47(jq[0]);
  616. },getRoots:function(jq){
  617. return _4a(jq[0]);
  618. },getParent:function(jq,id){
  619. return _4c(jq[0],id);
  620. },getChildren:function(jq,id){
  621. return _1b(jq[0],id);
  622. },getLevel:function(jq,id){
  623. return _59(jq[0],id);
  624. },find:function(jq,id){
  625. return _37(jq[0],id);
  626. },isLeaf:function(jq,id){
  627. var _b4=$.data(jq[0],"treegrid").options;
  628. var tr=_b4.finder.getTr(jq[0],id);
  629. var hit=tr.find("span.tree-hit");
  630. return hit.length==0;
  631. },select:function(jq,id){
  632. return jq.each(function(){
  633. $(this).datagrid("selectRow",id);
  634. });
  635. },unselect:function(jq,id){
  636. return jq.each(function(){
  637. $(this).datagrid("unselectRow",id);
  638. });
  639. },collapse:function(jq,id){
  640. return jq.each(function(){
  641. _64(this,id);
  642. });
  643. },expand:function(jq,id){
  644. return jq.each(function(){
  645. _68(this,id);
  646. });
  647. },toggle:function(jq,id){
  648. return jq.each(function(){
  649. _26(this,id);
  650. });
  651. },collapseAll:function(jq,id){
  652. return jq.each(function(){
  653. _72(this,id);
  654. });
  655. },expandAll:function(jq,id){
  656. return jq.each(function(){
  657. _77(this,id);
  658. });
  659. },expandTo:function(jq,id){
  660. return jq.each(function(){
  661. _7c(this,id);
  662. });
  663. },append:function(jq,_b5){
  664. return jq.each(function(){
  665. _80(this,_b5);
  666. });
  667. },insert:function(jq,_b6){
  668. return jq.each(function(){
  669. _86(this,_b6);
  670. });
  671. },remove:function(jq,id){
  672. return jq.each(function(){
  673. _92(this,id);
  674. });
  675. },pop:function(jq,id){
  676. var row=jq.treegrid("find",id);
  677. jq.treegrid("remove",id);
  678. return row;
  679. },refresh:function(jq,id){
  680. return jq.each(function(){
  681. var _b7=$.data(this,"treegrid").options;
  682. _b7.view.refreshRow.call(_b7.view,this,id);
  683. });
  684. },update:function(jq,_b8){
  685. return jq.each(function(){
  686. var _b9=$.data(this,"treegrid").options;
  687. _b9.view.updateRow.call(_b9.view,this,_b8.id,_b8.row);
  688. });
  689. },beginEdit:function(jq,id){
  690. return jq.each(function(){
  691. $(this).datagrid("beginEdit",id);
  692. $(this).treegrid("fixRowHeight",id);
  693. });
  694. },endEdit:function(jq,id){
  695. return jq.each(function(){
  696. $(this).datagrid("endEdit",id);
  697. });
  698. },cancelEdit:function(jq,id){
  699. return jq.each(function(){
  700. $(this).datagrid("cancelEdit",id);
  701. });
  702. },showLines:function(jq){
  703. return jq.each(function(){
  704. _96(this);
  705. });
  706. }};
  707. $.fn.treegrid.parseOptions=function(_ba){
  708. return $.extend({},$.fn.datagrid.parseOptions(_ba),$.parser.parseOptions(_ba,["treeField",{animate:"boolean"}]));
  709. };
  710. var _bb=$.extend({},$.fn.datagrid.defaults.view,{render:function(_bc,_bd,_be){
  711. var _bf=$.data(_bc,"treegrid").options;
  712. var _c0=$(_bc).datagrid("getColumnFields",_be);
  713. var _c1=$.data(_bc,"datagrid").rowIdPrefix;
  714. if(_be){
  715. if(!(_bf.rownumbers||(_bf.frozenColumns&&_bf.frozenColumns.length))){
  716. return;
  717. }
  718. }
  719. var _c2=this;
  720. if(this.treeNodes&&this.treeNodes.length){
  721. var _c3=_c4(_be,this.treeLevel,this.treeNodes);
  722. $(_bd).append(_c3.join(""));
  723. }
  724. function _c4(_c5,_c6,_c7){
  725. var _c8=$(_bc).treegrid("getParent",_c7[0][_bf.idField]);
  726. var _c9=(_c8?_c8.children.length:$(_bc).treegrid("getRoots").length)-_c7.length;
  727. var _ca=["<table class=\"datagrid-btable\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tbody>"];
  728. for(var i=0;i<_c7.length;i++){
  729. var row=_c7[i];
  730. if(row.state!="open"&&row.state!="closed"){
  731. row.state="open";
  732. }
  733. var css=_bf.rowStyler?_bf.rowStyler.call(_bc,row):"";
  734. var _cb="";
  735. var _cc="";
  736. if(typeof css=="string"){
  737. _cc=css;
  738. }else{
  739. if(css){
  740. _cb=css["class"]||"";
  741. _cc=css["style"]||"";
  742. }
  743. }
  744. var cls="class=\"datagrid-row "+(_c9++%2&&_bf.striped?"datagrid-row-alt ":" ")+_cb+"\"";
  745. var _cd=_cc?"style=\""+_cc+"\"":"";
  746. var _ce=_c1+"-"+(_c5?1:2)+"-"+row[_bf.idField];
  747. _ca.push("<tr id=\""+_ce+"\" node-id=\""+row[_bf.idField]+"\" "+cls+" "+_cd+">");
  748. _ca=_ca.concat(_c2.renderRow.call(_c2,_bc,_c0,_c5,_c6,row));
  749. _ca.push("</tr>");
  750. if(row.children&&row.children.length){
  751. var tt=_c4(_c5,_c6+1,row.children);
  752. var v=row.state=="closed"?"none":"block";
  753. _ca.push("<tr class=\"treegrid-tr-tree\"><td style=\"border:0px\" colspan="+(_c0.length+(_bf.rownumbers?1:0))+"><div style=\"display:"+v+"\">");
  754. _ca=_ca.concat(tt);
  755. _ca.push("</div></td></tr>");
  756. }
  757. }
  758. _ca.push("</tbody></table>");
  759. return _ca;
  760. };
  761. },renderFooter:function(_cf,_d0,_d1){
  762. var _d2=$.data(_cf,"treegrid").options;
  763. var _d3=$.data(_cf,"treegrid").footer||[];
  764. var _d4=$(_cf).datagrid("getColumnFields",_d1);
  765. var _d5=["<table class=\"datagrid-ftable\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tbody>"];
  766. for(var i=0;i<_d3.length;i++){
  767. var row=_d3[i];
  768. row[_d2.idField]=row[_d2.idField]||("foot-row-id"+i);
  769. _d5.push("<tr class=\"datagrid-row\" node-id=\""+row[_d2.idField]+"\">");
  770. _d5.push(this.renderRow.call(this,_cf,_d4,_d1,0,row));
  771. _d5.push("</tr>");
  772. }
  773. _d5.push("</tbody></table>");
  774. $(_d0).html(_d5.join(""));
  775. },renderRow:function(_d6,_d7,_d8,_d9,row){
  776. var _da=$.data(_d6,"treegrid").options;
  777. var cc=[];
  778. if(_d8&&_da.rownumbers){
  779. cc.push("<td class=\"datagrid-td-rownumber\"><div class=\"datagrid-cell-rownumber\">0</div></td>");
  780. }
  781. for(var i=0;i<_d7.length;i++){
  782. var _db=_d7[i];
  783. var col=$(_d6).datagrid("getColumnOption",_db);
  784. if(col){
  785. var css=col.styler?(col.styler(row[_db],row)||""):"";
  786. var _dc="";
  787. var _dd="";
  788. if(typeof css=="string"){
  789. _dd=css;
  790. }else{
  791. if(cc){
  792. _dc=css["class"]||"";
  793. _dd=css["style"]||"";
  794. }
  795. }
  796. var cls=_dc?"class=\""+_dc+"\"":"";
  797. var _de=col.hidden?"style=\"display:none;"+_dd+"\"":(_dd?"style=\""+_dd+"\"":"");
  798. cc.push("<td field=\""+_db+"\" "+cls+" "+_de+">");
  799. var _de="";
  800. if(!col.checkbox){
  801. if(col.align){
  802. _de+="text-align:"+col.align+";";
  803. }
  804. if(!_da.nowrap){
  805. _de+="white-space:normal;height:auto;";
  806. }else{
  807. if(_da.autoRowHeight){
  808. _de+="height:auto;";
  809. }
  810. }
  811. }
  812. cc.push("<div style=\""+_de+"\" ");
  813. if(col.checkbox){
  814. cc.push("class=\"datagrid-cell-check ");
  815. }else{
  816. cc.push("class=\"datagrid-cell "+col.cellClass);
  817. }
  818. cc.push("\">");
  819. if(col.checkbox){
  820. if(row.checked){
  821. cc.push("<input type=\"checkbox\" checked=\"checked\"");
  822. }else{
  823. cc.push("<input type=\"checkbox\"");
  824. }
  825. cc.push(" name=\""+_db+"\" value=\""+(row[_db]!=undefined?row[_db]:"")+"\">");
  826. }else{
  827. var val=null;
  828. if(col.formatter){
  829. val=col.formatter(row[_db],row);
  830. }else{
  831. val=row[_db];
  832. }
  833. if(_db==_da.treeField){
  834. for(var j=0;j<_d9;j++){
  835. cc.push("<span class=\"tree-indent\"></span>");
  836. }
  837. if(row.state=="closed"){
  838. cc.push("<span class=\"tree-hit tree-collapsed\"></span>");
  839. cc.push("<span class=\"tree-icon tree-folder "+(row.iconCls?row.iconCls:"")+"\"></span>");
  840. }else{
  841. if(row.children&&row.children.length){
  842. cc.push("<span class=\"tree-hit tree-expanded\"></span>");
  843. cc.push("<span class=\"tree-icon tree-folder tree-folder-open "+(row.iconCls?row.iconCls:"")+"\"></span>");
  844. }else{
  845. cc.push("<span class=\"tree-indent\"></span>");
  846. cc.push("<span class=\"tree-icon tree-file "+(row.iconCls?row.iconCls:"")+"\"></span>");
  847. }
  848. }
  849. cc.push("<span class=\"tree-title\">"+val+"</span>");
  850. }else{
  851. cc.push(val);
  852. }
  853. }
  854. cc.push("</div>");
  855. cc.push("</td>");
  856. }
  857. }
  858. return cc.join("");
  859. },refreshRow:function(_df,id){
  860. this.updateRow.call(this,_df,id,{});
  861. },updateRow:function(_e0,id,row){
  862. var _e1=$.data(_e0,"treegrid").options;
  863. var _e2=$(_e0).treegrid("find",id);
  864. $.extend(_e2,row);
  865. var _e3=$(_e0).treegrid("getLevel",id)-1;
  866. var _e4=_e1.rowStyler?_e1.rowStyler.call(_e0,_e2):"";
  867. var _e5=$.data(_e0,"datagrid").rowIdPrefix;
  868. var _e6=_e2[_e1.idField];
  869. function _e7(_e8){
  870. var _e9=$(_e0).treegrid("getColumnFields",_e8);
  871. var tr=_e1.finder.getTr(_e0,id,"body",(_e8?1:2));
  872. var _ea=tr.find("div.datagrid-cell-rownumber").html();
  873. var _eb=tr.find("div.datagrid-cell-check input[type=checkbox]").is(":checked");
  874. tr.html(this.renderRow(_e0,_e9,_e8,_e3,_e2));
  875. tr.attr("style",_e4||"");
  876. tr.find("div.datagrid-cell-rownumber").html(_ea);
  877. if(_eb){
  878. tr.find("div.datagrid-cell-check input[type=checkbox]")._propAttr("checked",true);
  879. }
  880. if(_e6!=id){
  881. tr.attr("id",_e5+"-"+(_e8?1:2)+"-"+_e6);
  882. tr.attr("node-id",_e6);
  883. }
  884. };
  885. _e7.call(this,true);
  886. _e7.call(this,false);
  887. $(_e0).treegrid("fixRowHeight",id);
  888. },deleteRow:function(_ec,id){
  889. var _ed=$.data(_ec,"treegrid").options;
  890. var tr=_ed.finder.getTr(_ec,id);
  891. tr.next("tr.treegrid-tr-tree").remove();
  892. tr.remove();
  893. var _ee=del(id);
  894. if(_ee){
  895. if(_ee.children.length==0){
  896. tr=_ed.finder.getTr(_ec,_ee[_ed.idField]);
  897. tr.next("tr.treegrid-tr-tree").remove();
  898. var _ef=tr.children("td[field=\""+_ed.treeField+"\"]").children("div.datagrid-cell");
  899. _ef.find(".tree-icon").removeClass("tree-folder").addClass("tree-file");
  900. _ef.find(".tree-hit").remove();
  901. $("<span class=\"tree-indent\"></span>").prependTo(_ef);
  902. }
  903. }
  904. function del(id){
  905. var cc;
  906. var _f0=$(_ec).treegrid("getParent",id);
  907. if(_f0){
  908. cc=_f0.children;
  909. }else{
  910. cc=$(_ec).treegrid("getData");
  911. }
  912. for(var i=0;i<cc.length;i++){
  913. if(cc[i][_ed.idField]==id){
  914. cc.splice(i,1);
  915. break;
  916. }
  917. }
  918. return _f0;
  919. };
  920. },onBeforeRender:function(_f1,_f2,_f3){
  921. if($.isArray(_f2)){
  922. _f3={total:_f2.length,rows:_f2};
  923. _f2=null;
  924. }
  925. if(!_f3){
  926. return false;
  927. }
  928. var _f4=$.data(_f1,"treegrid");
  929. var _f5=_f4.options;
  930. if(_f3.length==undefined){
  931. if(_f3.footer){
  932. _f4.footer=_f3.footer;
  933. }
  934. if(_f3.total){
  935. _f4.total=_f3.total;
  936. }
  937. _f3=this.transfer(_f1,_f2,_f3.rows);
  938. }else{
  939. function _f6(_f7,_f8){
  940. for(var i=0;i<_f7.length;i++){
  941. var row=_f7[i];
  942. row._parentId=_f8;
  943. if(row.children&&row.children.length){
  944. _f6(row.children,row[_f5.idField]);
  945. }
  946. }
  947. };
  948. _f6(_f3,_f2);
  949. }
  950. var _f9=_37(_f1,_f2);
  951. if(_f9){
  952. if(_f9.children){
  953. _f9.children=_f9.children.concat(_f3);
  954. }else{
  955. _f9.children=_f3;
  956. }
  957. }else{
  958. _f4.data=_f4.data.concat(_f3);
  959. }
  960. this.sort(_f1,_f3);
  961. this.treeNodes=_f3;
  962. this.treeLevel=$(_f1).treegrid("getLevel",_f2);
  963. },sort:function(_fa,_fb){
  964. var _fc=$.data(_fa,"treegrid").options;
  965. if(!_fc.remoteSort&&_fc.sortName){
  966. var _fd=_fc.sortName.split(",");
  967. var _fe=_fc.sortOrder.split(",");
  968. _ff(_fb);
  969. }
  970. function _ff(rows){
  971. rows.sort(function(r1,r2){
  972. var r=0;
  973. for(var i=0;i<_fd.length;i++){
  974. var sn=_fd[i];
  975. var so=_fe[i];
  976. var col=$(_fa).treegrid("getColumnOption",sn);
  977. var _100=col.sorter||function(a,b){
  978. return a==b?0:(a>b?1:-1);
  979. };
  980. r=_100(r1[sn],r2[sn])*(so=="asc"?1:-1);
  981. if(r!=0){
  982. return r;
  983. }
  984. }
  985. return r;
  986. });
  987. for(var i=0;i<rows.length;i++){
  988. var _101=rows[i].children;
  989. if(_101&&_101.length){
  990. _ff(_101);
  991. }
  992. }
  993. };
  994. },transfer:function(_102,_103,data){
  995. var opts=$.data(_102,"treegrid").options;
  996. var rows=[];
  997. for(var i=0;i<data.length;i++){
  998. rows.push(data[i]);
  999. }
  1000. var _104=[];
  1001. for(var i=0;i<rows.length;i++){
  1002. var row=rows[i];
  1003. if(!_103){
  1004. if(!row._parentId){
  1005. _104.push(row);
  1006. rows.splice(i,1);
  1007. i--;
  1008. }
  1009. }else{
  1010. if(row._parentId==_103){
  1011. _104.push(row);
  1012. rows.splice(i,1);
  1013. i--;
  1014. }
  1015. }
  1016. }
  1017. var toDo=[];
  1018. for(var i=0;i<_104.length;i++){
  1019. toDo.push(_104[i]);
  1020. }
  1021. while(toDo.length){
  1022. var node=toDo.shift();
  1023. for(var i=0;i<rows.length;i++){
  1024. var row=rows[i];
  1025. if(row._parentId==node[opts.idField]){
  1026. if(node.children){
  1027. node.children.push(row);
  1028. }else{
  1029. node.children=[row];
  1030. }
  1031. toDo.push(row);
  1032. rows.splice(i,1);
  1033. i--;
  1034. }
  1035. }
  1036. }
  1037. return _104;
  1038. }});
  1039. $.fn.treegrid.defaults=$.extend({},$.fn.datagrid.defaults,{treeField:null,lines:false,animate:false,singleSelect:true,view:_bb,rowEvents:$.extend({},$.fn.datagrid.defaults.rowEvents,{mouseover:_22(true),mouseout:_22(false),click:_24}),loader:function(_105,_106,_107){
  1040. var opts=$(this).treegrid("options");
  1041. if(!opts.url){
  1042. return false;
  1043. }
  1044. $.ajax({type:opts.method,url:opts.url,data:_105,dataType:"json",success:function(data){
  1045. _106(data);
  1046. },error:function(){
  1047. _107.apply(this,arguments);
  1048. }});
  1049. },loadFilter:function(data,_108){
  1050. return data;
  1051. },finder:{getTr:function(_109,id,type,_10a){
  1052. type=type||"body";
  1053. _10a=_10a||0;
  1054. var dc=$.data(_109,"datagrid").dc;
  1055. if(_10a==0){
  1056. var opts=$.data(_109,"treegrid").options;
  1057. var tr1=opts.finder.getTr(_109,id,type,1);
  1058. var tr2=opts.finder.getTr(_109,id,type,2);
  1059. return tr1.add(tr2);
  1060. }else{
  1061. if(type=="body"){
  1062. var tr=$("#"+$.data(_109,"datagrid").rowIdPrefix+"-"+_10a+"-"+id);
  1063. if(!tr.length){
  1064. tr=(_10a==1?dc.body1:dc.body2).find("tr[node-id=\""+id+"\"]");
  1065. }
  1066. return tr;
  1067. }else{
  1068. if(type=="footer"){
  1069. return (_10a==1?dc.footer1:dc.footer2).find("tr[node-id=\""+id+"\"]");
  1070. }else{
  1071. if(type=="selected"){
  1072. return (_10a==1?dc.body1:dc.body2).find("tr.datagrid-row-selected");
  1073. }else{
  1074. if(type=="highlight"){
  1075. return (_10a==1?dc.body1:dc.body2).find("tr.datagrid-row-over");
  1076. }else{
  1077. if(type=="checked"){
  1078. return (_10a==1?dc.body1:dc.body2).find("tr.datagrid-row-checked");
  1079. }else{
  1080. if(type=="last"){
  1081. return (_10a==1?dc.body1:dc.body2).find("tr:last[node-id]");
  1082. }else{
  1083. if(type=="allbody"){
  1084. return (_10a==1?dc.body1:dc.body2).find("tr[node-id]");
  1085. }else{
  1086. if(type=="allfooter"){
  1087. return (_10a==1?dc.footer1:dc.footer2).find("tr[node-id]");
  1088. }
  1089. }
  1090. }
  1091. }
  1092. }
  1093. }
  1094. }
  1095. }
  1096. }
  1097. },getRow:function(_10b,p){
  1098. var id=(typeof p=="object")?p.attr("node-id"):p;
  1099. return $(_10b).treegrid("find",id);
  1100. },getRows:function(_10c){
  1101. return $(_10c).treegrid("getChildren");
  1102. }},onBeforeLoad:function(row,_10d){
  1103. },onLoadSuccess:function(row,data){
  1104. },onLoadError:function(){
  1105. },onBeforeCollapse:function(row){
  1106. },onCollapse:function(row){
  1107. },onBeforeExpand:function(row){
  1108. },onExpand:function(row){
  1109. },onClickRow:function(row){
  1110. },onDblClickRow:function(row){
  1111. },onClickCell:function(_10e,row){
  1112. },onDblClickCell:function(_10f,row){
  1113. },onContextMenu:function(e,row){
  1114. },onBeforeEdit:function(row){
  1115. },onAfterEdit:function(row,_110){
  1116. },onCancelEdit:function(row){
  1117. }});
  1118. })(jQuery);