1
0
Fork 0
mirror of https://github.com/koalyptus/TableFilter.git synced 2024-06-26 01:10:14 +02:00
TableFilter/dist/TF_Modules/tf_gridLayout.js
2015-03-06 19:49:30 +11:00

1 line
7.2 KiB
JavaScript

TF.prototype.SetGridLayout=function(){if(!this.gridLayout)return;var e=this.fObj;this.gridWidth=e.grid_width!=undefined?e.grid_width:null,this.gridHeight=e.grid_height!=undefined?e.grid_height:null,this.gridMainContCssClass=e.grid_cont_css_class!=undefined?e.grid_cont_css_class:"grd_Cont",this.gridContCssClass=e.grid_tbl_cont_css_class!=undefined?e.grid_tbl_cont_css_class:"grd_tblCont",this.gridHeadContCssClass=e.grid_tblHead_cont_css_class!=undefined?e.grid_tblHead_cont_css_class:"grd_headTblCont",this.gridInfDivCssClass=e.grid_inf_grid_css_class!=undefined?e.grid_inf_grid_css_class:"grd_inf",this.gridHeadRowIndex=e.grid_headers_row_index!=undefined?e.grid_headers_row_index:0,this.gridHeadRows=e.grid_headers_rows!=undefined?e.grid_headers_rows:[0],this.gridEnableFilters=e.grid_enable_default_filters!=undefined?e.grid_enable_default_filters:!0,this.gridDefaultColWidth=e.grid_default_col_width!=undefined?e.grid_default_col_width:"100px",this.gridEnableColResizer=e.grid_enable_cols_resizer!=undefined?e.grid_enable_cols_resizer:!0,this.gridColResizerPath=e.grid_cont_col_resizer_path!=undefined?e.grid_cont_col_resizer_path:this.basePath+"TFExt_ColsResizer/TFExt_ColsResizer.js";if(!this.hasColWidth){this.colWidth=[];for(var t=0;t<this.nbCells;t++){var n,r=this.tbl.rows[this.gridHeadRowIndex].cells[t];r.width!=""?n=r.width:r.style.width!=""?n=parseInt(r.style.width):n=this.gridDefaultColWidth,this.colWidth[t]=n}this.hasColWidth=!0}this.SetColWidths(this.gridHeadRowIndex);var i;this.tbl.width!=""?i=this.tbl.width:this.tbl.style.width!=""?i=parseInt(this.tbl.style.width):i=this.tbl.clientWidth,this.tblMainCont=tf_CreateElm("div",["id",this.prfxMainTblCont+this.id]),this.tblMainCont.className=this.gridMainContCssClass,this.gridWidth&&(this.tblMainCont.style.width=this.gridWidth),this.tbl.parentNode.insertBefore(this.tblMainCont,this.tbl),this.tblCont=tf_CreateElm("div",["id",this.prfxTblCont+this.id]),this.tblCont.className=this.gridContCssClass,this.gridWidth&&(this.tblCont.style.width=this.gridWidth),this.gridHeight&&(this.tblCont.style.height=this.gridHeight),this.tbl.parentNode.insertBefore(this.tblCont,this.tbl);var s=this.tbl.parentNode.removeChild(this.tbl);this.tblCont.appendChild(s),this.tbl.style.width==""&&(this.tbl.style.width=(this.__containsStr("%",i)?this.tbl.clientWidth:i)+"px");var o=this.tblCont.parentNode.removeChild(this.tblCont);this.tblMainCont.appendChild(o),this.headTblCont=tf_CreateElm("div",["id",this.prfxHeadTblCont+this.id]),this.headTblCont.className=this.gridHeadContCssClass,this.gridWidth&&(this.headTblCont.style.width=this.gridWidth),this.headTbl=tf_CreateElm("table",["id",this.prfxHeadTbl+this.id]);var u=tf_CreateElm("tHead"),a=this.tbl.rows[this.gridHeadRowIndex],f=[];for(var l=0;l<this.nbCells;l++){var r=a.cells[l],c=r.getAttribute("id");if(!c||c=="")c=this.prfxGridTh+l+"_"+this.id,r.setAttribute("id",c);f.push(c)}var h=tf_CreateElm("tr");if(this.gridEnableFilters&&this.fltGrid){this.externalFltTgtIds=[];for(var p=0;p<this.nbCells;p++){var d=this.prfxFlt+p+this.prfxGridFltTd+this.id,v=tf_CreateElm(this.fltCellTag,["id",d]);h.appendChild(v),this.externalFltTgtIds[p]=d}}for(var m=0;m<this.gridHeadRows.length;m++){var g=this.tbl.rows[this.gridHeadRows[0]];u.appendChild(g)}this.headTbl.appendChild(u),this.filtersRowIndex==0?u.insertBefore(h,a):u.appendChild(h),this.headTblCont.appendChild(this.headTbl),this.tblCont.parentNode.insertBefore(this.headTblCont,this.tblCont);var y=tf_Tag(this.tbl,"thead");y.length>0&&this.tbl.removeChild(y[0]),this.headTbl.style.width=this.tbl.style.width,this.headTbl.style.tableLayout="fixed",this.tbl.style.tableLayout="fixed",this.headTbl.cellPadding=this.tbl.cellPadding,this.headTbl.cellSpacing=this.tbl.cellSpacing,this.headTblCont.style.width=this.tblCont.clientWidth+"px",this.SetColWidths(),this.tbl.style.width="";if(tf_isIE||tf_isIE7)this.headTbl.style.width="";var b=this;this.tblCont.onscroll=function(){b.headTblCont.scrollLeft=this.scrollLeft;var e=this;if(!b.isPointerXOverwritten)try{TF.Evt.pointerX=function(t){t=t||window.event;var n=tf_StandardBody().scrollLeft+e.scrollLeft;return t.pageX+e.scrollLeft||t.clientX+n},b.isPointerXOverwritten=!0}catch(t){b.isPointerXOverwritten=!1}};var e=this.fObj==undefined?{}:this.fObj;e.sort!=0&&(this.sort=!0,this.sortConfig.asyncSort=!0,this.sortConfig.triggerIds=f),this.gridEnableColResizer&&(this.hasExtensions?this.__containsStr("colsresizer",this.extensions.src.toString().tf_LCase())||(this.extensions.name.push("ColumnsResizer_"+this.id),this.extensions.src.push(this.gridColResizerPath),this.extensions.description.push("Columns Resizing"),this.extensions.initialize.push(function(e){e.SetColsResizer("ColumnsResizer_"+e.id)})):(this.extensions={name:["ColumnsResizer_"+this.id],src:[this.gridColResizerPath],description:["Columns Resizing"],initialize:[function(e){e.SetColsResizer("ColumnsResizer_"+e.id)}]},this.hasExtensions=!0)),e.col_resizer_cols_headers_table=this.headTbl.getAttribute("id"),e.col_resizer_cols_headers_index=this.gridHeadRowIndex,e.col_resizer_width_adjustment=0,e.col_enable_text_ellipsis=!1,b.tblHasColTag=tf_Tag(b.tbl,"col").length>0?!0:!1;if(!tf_isIE&&!tf_isIE7){function w(e){if(!e)return;for(var t=e.nbCells-1;t>=0;t--){var n=tf_CreateElm("col",["id",e.id+"_col_"+t]);e.tbl.firstChild.parentNode.insertBefore(n,e.tbl.firstChild),n.style.width=e.colWidth[t],e.gridColElms[t]=n}e.tblHasColTag=!0}if(!b.tblHasColTag)w(b);else{var E=tf_Tag(b.tbl,"col");for(var m=0;m<b.nbCells;m++)E[m].setAttribute("id",b.id+"_col_"+m),E[m].style.width=b.colWidth[m],b.gridColElms.push(E[m])}}if(tf_isIE||tf_isIE7){var S=tf_Tag(b.tbl,"tbody"),x;S.length>0?x=S[0].insertRow(0):x=b.tbl.insertRow(0),x.style.height="0px";for(var m=0;m<b.nbCells;m++){var T=tf_CreateElm("td",["id",b.id+"_col_"+m]);T.style.width=b.colWidth[m],b.tbl.rows[1].cells[m].style.width="",x.appendChild(T),b.gridColElms.push(T)}this.hasGridWidthsRow=!0,b.leadColWidthsRow=b.tbl.rows[0],b.leadColWidthsRow.setAttribute("validRow","false");var N=tf_IsFn(e.on_before_sort)?e.on_before_sort:null;e.on_before_sort=function(e,t){e.leadColWidthsRow.setAttribute("validRow","false"),N!=null&&N.call(null,e,t)};var C=tf_IsFn(e.on_after_sort)?e.on_after_sort:null;e.on_after_sort=function(e,t){if(e.leadColWidthsRow.rowIndex!=0){var n=e.leadColWidthsRow;S.length>0?S[0].moveRow(e.leadColWidthsRow.rowIndex,0):e.tbl.moveRow(e.leadColWidthsRow.rowIndex,0)}C!=null&&C.call(null,e,t)}}var k=tf_IsFn(e.on_after_col_resized)?e.on_after_col_resized:null;e.on_after_col_resized=function(e,t){if(t==undefined)return;var n=e.crWColsRow.cells[t].style.width,r=e.gridColElms[t];r.style.width=n;var i=e.crWColsRow.cells[t].clientWidth,s=e.crWRowDataTbl.cells[t].clientWidth;if(tf_isIE||tf_isIE7)e.tbl.style.width=e.headTbl.clientWidth+"px";i!=s&&!tf_isIE&&!tf_isIE7&&(e.headTbl.style.width=e.tbl.clientWidth+"px"),k!=null&&k.call(null,e,t)},this.tbl.clientWidth!=this.headTbl.clientWidth&&(this.tbl.style.width=this.headTbl.clientWidth+"px")},TF.prototype.RemoveGridLayout=function(){if(!this.gridLayout)return;var e=this.tbl.parentNode.removeChild(this.tbl);this.tblMainCont.parentNode.insertBefore(e,this.tblMainCont),this.tblMainCont.parentNode.removeChild(this.tblMainCont),this.tblMainCont=null,this.headTblCont=null,this.headTbl=null,this.tblCont=null,this.tbl.outerHTML=this.sourceTblHtml,this.tbl=tf_Id(this.id)};