EVOLUTION-NINJA
Edit File: grid.subgrid.js
!function(i){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.base"],i):i(jQuery)}(function(i){"use strict";i.jgrid.extend({setSubGrid:function(){return this.each(function(){var e,s,d=this,r=i.jgrid.styleUI[d.p.styleUI||"jQueryUI"].subgrid,t={plusicon:r.icon_plus,minusicon:r.icon_minus,openicon:r.icon_open,expandOnLoad:!1,delayOnLoad:50,selectOnExpand:!1,selectOnCollapse:!1,reloadOnExpand:!0};if(d.p.subGridOptions=i.extend(t,d.p.subGridOptions||{}),d.p.colNames.unshift(""),d.p.colModel.unshift({name:"subgrid",width:i.jgrid.cell_width?d.p.subGridWidth+d.p.cellLayout:d.p.subGridWidth,sortable:!1,resizable:!1,hidedlg:!0,search:!1,fixed:!0}),(e=d.p.subGridModel)[0])for(e[0].align=i.extend([],e[0].align||[]),s=0;s<e[0].name.length;s++)e[0].align[s]=e[0].align[s]||"left"})},addSubGridCell:function(e,s){var d,r,t,n="";return this.each(function(){n=this.formatCol(e,s),r=this.p.id,d=this.p.subGridOptions.plusicon,t=i.jgrid.styleUI[this.p.styleUI||"jQueryUI"].common}),'<td role="gridcell" aria-describedby="'+r+'_subgrid" class="ui-sgcollapsed sgcollapsed" '+n+"><a style='cursor:pointer;' class='ui-sghref'><span class='"+t.icon_base+" "+d+"'></span></a></td>"},addSubGrid:function(e,s){return this.each(function(){var d=this;if(d.grid){var r,t,n,a,l,o=i.jgrid.styleUI[d.p.styleUI||"jQueryUI"].base,p=i.jgrid.styleUI[d.p.styleUI||"jQueryUI"].common,u=function(e,s,r){var t=i("<td align='"+d.p.subGridModel[0].align[r]+"'></td>").html(s);i(e).append(t)},c=function(e,s){var r,t,n,a=i("<table class='"+o.rowTable+" ui-common-table'><tbody></tbody></table>"),l=i("<tr></tr>");for(t=0;t<d.p.subGridModel[0].name.length;t++)r=i("<th class='"+o.headerBox+" ui-th-subgrid ui-th-column ui-th-"+d.p.direction+"'></th>"),i(r).html(d.p.subGridModel[0].name[t]),i(r).width(d.p.subGridModel[0].width[t]),i(l).append(r);i(a).append(l),e&&(n=d.p.xmlReader.subgrid,i(n.root+" "+n.row,e).each(function(){if(l=i("<tr class='"+p.content+" ui-subtblcell'></tr>"),!0===n.repeatitems)i(n.cell,this).each(function(e){u(l,i(this).text()||" ",e)});else{var e=d.p.subGridModel[0].mapping||d.p.subGridModel[0].name;if(e)for(t=0;t<e.length;t++)u(l,i(e[t],this).text()||" ",t)}i(a).append(l)}));var c=i("table:first",d.grid.bDiv).attr("id")+"_";return i("#"+i.jgrid.jqID(c+s)).append(a),d.grid.hDiv.loading=!1,i("#load_"+i.jgrid.jqID(d.p.id)).hide(),!1},g=function(e,s){var r,t,n,a,l,c,g=i("<table class='"+o.rowTable+" ui-common-table'><tbody></tbody></table>"),b=i("<tr></tr>");for(n=0;n<d.p.subGridModel[0].name.length;n++)r=i("<th class='"+o.headerBox+" ui-th-subgrid ui-th-column ui-th-"+d.p.direction+"'></th>"),i(r).html(d.p.subGridModel[0].name[n]),i(r).width(d.p.subGridModel[0].width[n]),i(b).append(r);if(i(g).append(b),e&&(l=d.p.jsonReader.subgrid,void 0!==(t=i.jgrid.getAccessor(e,l.root))))for(n=0;n<t.length;n++){if(a=t[n],b=i("<tr class='"+p.content+" ui-subtblcell'></tr>"),!0===l.repeatitems)for(l.cell&&(a=a[l.cell]),c=0;c<a.length;c++)u(b,a[c]||" ",c);else{var h=d.p.subGridModel[0].mapping||d.p.subGridModel[0].name;if(h.length)for(c=0;c<h.length;c++)u(b,a[h[c]]||" ",c)}i(g).append(b)}var f=i("table:first",d.grid.bDiv).attr("id")+"_";return i("#"+i.jgrid.jqID(f+s)).append(g),d.grid.hDiv.loading=!1,i("#load_"+i.jgrid.jqID(d.p.id)).hide(),!1},b=function(e){var s,r,t,n;if(s=i(e).attr("id"),(r={nd_:(new Date).getTime()})[d.p.prmNames.subgridid]=s,!d.p.subGridModel[0])return!1;if(d.p.subGridModel[0].params)for(n=0;n<d.p.subGridModel[0].params.length;n++)for(t=0;t<d.p.colModel.length;t++)d.p.colModel[t].name===d.p.subGridModel[0].params[n]&&(r[d.p.colModel[t].name]=i("td:eq("+t+")",e).text().replace(/\ \;/gi,""));if(!d.grid.hDiv.loading)switch(d.grid.hDiv.loading=!0,i("#load_"+i.jgrid.jqID(d.p.id)).show(),d.p.subgridtype||(d.p.subgridtype=d.p.datatype),i.isFunction(d.p.subgridtype)?d.p.subgridtype.call(d,r):d.p.subgridtype=d.p.subgridtype.toLowerCase(),d.p.subgridtype){case"xml":case"json":i.ajax(i.extend({type:d.p.mtype,url:i.isFunction(d.p.subGridUrl)?d.p.subGridUrl.call(d,r):d.p.subGridUrl,dataType:d.p.subgridtype,data:i.isFunction(d.p.serializeSubGridData)?d.p.serializeSubGridData.call(d,r):r,complete:function(e){"xml"===d.p.subgridtype?c(e.responseXML,s):g(i.jgrid.parse(e.responseText),s),e=null}},i.jgrid.ajaxOptions,d.p.ajaxSubgridOptions||{}))}return!1},h=0;i.each(d.p.colModel,function(){!0!==this.hidden&&"rn"!==this.name&&"cb"!==this.name||h++});var f=d.rows.length,G=1,m=i.isFunction(d.p.isHasSubGrid);for(void 0!==s&&s>0&&(G=s,f=s+1);G<f;){if(i(d.rows[G]).hasClass("jqgrow")){if(d.p.scroll&&i(d.rows[G].cells[e]).unbind("click"),x=null,m)var x=d.p.isHasSubGrid.call(d,d.rows[G].id);!1===x?d.rows[G].cells[e].innerHTML="":i(d.rows[G].cells[e]).bind("click",function(){var s=i(this).parent("tr")[0];if(t=d.p.id,r=s.id,l=i("#"+t+"_"+r+"_expandedContent"),i(this).hasClass("sgcollapsed")){if((a=!1!==(a=i(d).triggerHandler("jqGridSubGridBeforeExpand",[t+"_"+r,r]))&&"stop"!==a)&&i.isFunction(d.p.subGridBeforeExpand)&&(a=d.p.subGridBeforeExpand.call(d,t+"_"+r,r)),!1===a)return!1;!0===d.p.subGridOptions.reloadOnExpand||!1===d.p.subGridOptions.reloadOnExpand&&!l.hasClass("ui-subgrid")?(n=e>=1?"<td colspan='"+e+"'> </td>":"",i(s).after("<tr role='row' id='"+t+"_"+r+"_expandedContent' class='ui-subgrid ui-sg-expanded'>"+n+"<td class='"+p.content+" subgrid-cell'><span class='"+p.icon_base+" "+d.p.subGridOptions.openicon+"'></span></td><td colspan='"+parseInt(d.p.colNames.length-1-h,10)+"' class='"+p.content+" subgrid-data'><div id="+t+"_"+r+" class='tablediv'></div></td></tr>"),i(d).triggerHandler("jqGridSubGridRowExpanded",[t+"_"+r,r]),i.isFunction(d.p.subGridRowExpanded)?d.p.subGridRowExpanded.call(d,t+"_"+r,r):b(s)):l.show().removeClass("ui-sg-collapsed").addClass("ui-sg-expanded"),i(this).html("<a style='cursor:pointer;' class='ui-sghref'><span class='"+p.icon_base+" "+d.p.subGridOptions.minusicon+"'></span></a>").removeClass("sgcollapsed").addClass("sgexpanded"),d.p.subGridOptions.selectOnExpand&&i(d).jqGrid("setSelection",r)}else if(i(this).hasClass("sgexpanded")){if((a=!1!==(a=i(d).triggerHandler("jqGridSubGridRowColapsed",[t+"_"+r,r]))&&"stop"!==a)&&i.isFunction(d.p.subGridRowColapsed)&&(a=d.p.subGridRowColapsed.call(d,t+"_"+r,r)),!1===a)return!1;!0===d.p.subGridOptions.reloadOnExpand?l.remove(".ui-subgrid"):l.hasClass("ui-subgrid")&&l.hide().addClass("ui-sg-collapsed").removeClass("ui-sg-expanded"),i(this).html("<a style='cursor:pointer;' class='ui-sghref'><span class='"+p.icon_base+" "+d.p.subGridOptions.plusicon+"'></span></a>").removeClass("sgexpanded").addClass("sgcollapsed"),d.p.subGridOptions.selectOnCollapse&&i(d).jqGrid("setSelection",r)}return!1})}G++}!0===d.p.subGridOptions.expandOnLoad&&i(d.rows).filter(".jqgrow").each(function(e,s){i(s.cells[0]).click()}),d.subGridXml=function(i,e){c(i,e)},d.subGridJson=function(i,e){g(i,e)}}})},expandSubGridRow:function(e){return this.each(function(){if((this.grid||e)&&!0===this.p.subGrid){var s=i(this).jqGrid("getInd",e,!0);if(s){var d=i("td.sgcollapsed",s)[0];d&&i(d).trigger("click")}}})},collapseSubGridRow:function(e){return this.each(function(){if((this.grid||e)&&!0===this.p.subGrid){var s=i(this).jqGrid("getInd",e,!0);if(s){var d=i("td.sgexpanded",s)[0];d&&i(d).trigger("click")}}})},toggleSubGridRow:function(e){return this.each(function(){if((this.grid||e)&&!0===this.p.subGrid){var s=i(this).jqGrid("getInd",e,!0);if(s){var d=i("td.sgcollapsed",s)[0];d?i(d).trigger("click"):(d=i("td.sgexpanded",s)[0])&&i(d).trigger("click")}}})}})});