b56a59ffb6d70c0a9fc1e3b5787f040d183eb05f.svn-base 25 KB

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