From e07aa52df930d5eaadd8ed5b1fe8cc51b4ab5bcc Mon Sep 17 00:00:00 2001 From: Max Guglielmi Date: Sun, 23 Nov 2014 21:31:55 +1100 Subject: [PATCH] Fixed grid layout bug with IE --- dist/TF_Modules/tfAdapter.sortabletable.js | 321 +++++++++++++++ dist/filtergrid.css | 2 +- dist/tablefilter.js | 4 +- src-es6/event.js | 14 +- src-es6/modules/gridLayout.js | 149 +++---- src/TF_Modules/tfAdapter.sortabletable.js | 321 +++++++++++++++ src/core.js | 372 ----------------- src/event.js | 8 +- src/event.js.map | 2 +- src/index.html | 3 +- src/modules/gridLayout.js | 166 ++++---- src/modules/gridLayout.js.map | 2 +- src/sortabletable.js | 438 +++++++++++++++++++++ 13 files changed, 1268 insertions(+), 534 deletions(-) create mode 100644 dist/TF_Modules/tfAdapter.sortabletable.js create mode 100644 src/TF_Modules/tfAdapter.sortabletable.js create mode 100644 src/sortabletable.js diff --git a/dist/TF_Modules/tfAdapter.sortabletable.js b/dist/TF_Modules/tfAdapter.sortabletable.js new file mode 100644 index 00000000..55eea305 --- /dev/null +++ b/dist/TF_Modules/tfAdapter.sortabletable.js @@ -0,0 +1,321 @@ +/*------------------------------------------------------------------------ + - HTML Table Filter Generator Sorting Feature + - TF Adapter v2.1 for WebFX Sortable Table 1.12 (Erik Arvidsson) + - By Max Guglielmi (tablefilter.free.fr) + - Licensed under the MIT License +-------------------------------------------------------------------------- +Copyright (c) 2009-2012 Max Guglielmi + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +------------------------------------------------------------------------ + - Changelog: + 1.1 [30-09-09] + When table is paged now the whole table is sorted and not + only the current page + 1.2 [05-12-09] + Added on_before_sort and on_after_sort callback functions + 1.3 [06-09-10] + Added IP adresses sort + 1.4 [22-01-11] + Added DDMMMYYYY date format support + 1.5 [20-02-11] + Image folder and sort icon can now be set in configuration + object + 1.6 [06-08-11] + Added on_sort_loaded callback function + 1.7 [20-08-11] + Added sort arrow css classes properties + Added sort custom key property allowing custom sorts + Added AddSortType public method + 1.8 [25-09-11] + Bug fix: sort did not take into account results per page changes + 1.9 [03-03-12] + Bug fix: custom value attribute value was read only by Firefox + 2.0 [08-04-12] + Bug fix: zebra rows background are no longer inverted after sort + 2.1 [25-08-12] + Bug fix: IE9 did not sort columns correctly +------------------------------------------------------------------------*/ + +TF.prototype.SetSortTable = function(){ + var o = this; //TF object + var f = o.fObj; //TF config object + var isTFPaged = false; + + //edit .sort-arrow.descending / .sort-arrow.ascending in filtergrid.css to reflect any path change + o.sortImgPath = f.sort_images_path != undefined ? f.sort_images_path : o.themesPath; + o.sortImgBlank = f.sort_image_blank != undefined ? f.sort_image_blank : 'blank.png'; + o.sortImgClassName = f.sort_image_class_name != undefined ? f.sort_image_class_name : 'sort-arrow'; + o.sortImgAscClassName = f.sort_image_asc_class_name != undefined ? f.sort_image_asc_class_name : 'ascending'; + o.sortImgDescClassName = f.sort_image_desc_class_name != undefined ? f.sort_image_desc_class_name : 'descending'; + o.sortCustomKey = f.sort_custom_key != undefined ? f.sort_custom_key : '_sortKey'; //cell attribute storing custom key + + /*** TF additional events ***/ + //additional paging events for alternating bg issue + o.Evt._Paging.nextEvt = function(){ if(o.sorted && o.alternateBgs) o.Filter(); } + o.Evt._Paging.prevEvt = o.Evt._Paging.nextEvt; + o.Evt._Paging.firstEvt = o.Evt._Paging.nextEvt; + o.Evt._Paging.lastEvt = o.Evt._Paging.nextEvt; + o.Evt._OnSlcPagesChangeEvt = o.Evt._Paging.nextEvt; + /*** ***/ + + /*** Extension events ***/ + //callback invoked after sort is loaded and instanciated + o.onSortLoaded = tf_IsFn(f.on_sort_loaded) ? f.on_sort_loaded : null; + //callback invoked before table is sorted + o.onBeforeSort = tf_IsFn(f.on_before_sort) ? f.on_before_sort : null; + //callback invoked after table is sorted + o.onAfterSort = tf_IsFn(f.on_after_sort) ? f.on_after_sort : null; + + /*** SortableTable ***/ + //in case SortableTable class is missing (sortabletable.js) + if((typeof SortableTable)=='undefined'){ return; } + + //overrides headerOnclick method in order to handle th + SortableTable.prototype.headerOnclick = function (e) { + if(!o.sort) return; // TF adaptation + var el = e.target || e.srcElement; // find Header element + + while (el.tagName != 'TD' && el.tagName != 'TH') // TF adaptation + el = el.parentNode; + + this.sort(SortableTable.msie ? SortableTable.getCellIndex(el) : el.cellIndex); + }; + + //overrides getCellIndex IE returns wrong cellIndex when columns are hidden + SortableTable.getCellIndex = function (oTd) { + var cells = oTd.parentNode.cells, + l = cells.length, i; + for (i = 0; cells[i] != oTd && i < l; i++) + ; + return i; + }; + + //overrides initHeader in order to handle filters row position + SortableTable.prototype.initHeader = function (oSortTypes) { + if (!this.tHead) return; + this.headersRow = o.headersRow; // TF adaptation + var cells = this.tHead.rows[this.headersRow].cells; // TF adaptation + var doc = this.tHead.ownerDocument || this.tHead.document; + this.sortTypes = oSortTypes || []; + var l = cells.length; + var img, c; + for (var i = 0; i < l; i++) { + c = cells[i]; + if (this.sortTypes[i] != null && this.sortTypes[i] != 'None') { + c.style.cursor = 'pointer'; + img = tf_CreateElm('img',['src', o.sortImgPath + o.sortImgBlank]); + c.appendChild(img); + if (this.sortTypes[i] != null) + c.setAttribute( '_sortType', this.sortTypes[i]); + tf_AddEvent(c, 'click', this._headerOnclick); + } else { + c.setAttribute( '_sortType', oSortTypes[i] ); + c._sortType = 'None'; + } + } + this.updateHeaderArrows(); + }; + + //overrides updateHeaderArrows in order to handle arrows + SortableTable.prototype.updateHeaderArrows = function () { + var cells, l, img; + if(o.sortConfig.asyncSort && o.sortConfig.triggerIds!=null){//external headers + var triggers = o.sortConfig.triggerIds; + cells = [], l = triggers.length; + for(var j=0; j val.length) val = '0'+val; + vals[x] = val; + } + val = vals.join('.'); + return val; +} + +function sortIP(a,b){ + var aa = ipAddress(a.value.tf_LCase()); + var bb = ipAddress(b.value.tf_LCase()); + if (aa==bb) return 0; + else if (aa0&&(a.splice(k-1,2),k-=2)}a=a.join("/")}else 0===a.indexOf("./")&&(a=a.substring(2));if((n||q)&&o){for(c=a.split("/"),k=c.length;k>0;k-=1){if(d=c.slice(0,k).join("/"),n)for(l=n.length;l>0;l-=1)if(e=o[n.slice(0,l).join("/")],e&&(e=e[d])){f=e,h=k;break}if(f)break;!i&&q&&q[d]&&(i=q[d],j=k)}!f&&i&&(f=i,h=j),f&&(c.splice(0,h,f),a=c.join("/"))}return a}function d(b,c){return function(){var d=s.call(arguments,0);return"string"!=typeof d[0]&&1===d.length&&d.push(null),k.apply(a,d.concat([b,c]))}}function e(a){return function(b){return c(b,a)}}function f(a){return function(b){n[a]=b}}function g(c){if(b(o,c)){var d=o[c];delete o[c],q[c]=!0,j.apply(a,d)}if(!b(n,c)&&!b(q,c))throw new Error("No "+c);return n[c]}function h(a){var b,c=a?a.indexOf("!"):-1;return c>-1&&(b=a.substring(0,c),a=a.substring(c+1,a.length)),[b,a]}function i(a){return function(){return p&&p.config&&p.config[a]||{}}}var j,k,l,m,n={},o={},p={},q={},r=Object.prototype.hasOwnProperty,s=[].slice,t=/\.js$/;l=function(a,b){var d,f=h(a),i=f[0];return a=f[1],i&&(i=c(i,b),d=g(i)),i?a=d&&d.normalize?d.normalize(a,e(b)):c(a,b):(a=c(a,b),f=h(a),i=f[0],a=f[1],i&&(d=g(i))),{f:i?i+"!"+a:a,n:a,pr:i,p:d}},m={require:function(a){return d(a)},exports:function(a){var b=n[a];return"undefined"!=typeof b?b:n[a]={}},module:function(a){return{id:a,uri:"",exports:n[a],config:i(a)}}},j=function(c,e,h,i){var j,k,p,r,s,t,u=[],v=typeof h;if(i=i||c,"undefined"===v||"function"===v){for(e=!e.length&&h.length?["require","exports","module"]:e,s=0;s]+>/g,"");return b=b.replace(/^\s+/,"").replace(/\s+$/,"")},c.create=function(a){if(a&&""!==a){var b=document.createElement(a),c=arguments;if(c.length>1)for(var d=0;d0){var d=document.cookie,e=d.indexOf(c);if(-1!==e){e+=c.length;var f=d.indexOf(";",e);-1===f&&(f=d.length),b=unescape(d.substring(e,f))}}return b},b.remove=function(a){this.write(a,"",-1)},b.valueToArray=function(a,b){b||(b=",");var c=this.read(a),d=c.split(b);return d},b.getValueByIndex=function(a,b,c){c||(c=",");var d=this.valueToArray(a,c);return d[b]},a.Cookie=b}),define("types",["exports"],function(a){var b={},c=void 0;b.isObj=function(a){var b=!1;return"string"==typeof a?window[a]&&"object"==typeof window[a]&&(b=!0):a&&"object"==typeof a&&(b=!0),b},b.isFn=function(a){return a&&a.constructor==Function},b.isArray=function(a){return a&&a.constructor==Array},b.isUndef=function(a){return a===c},a.Types=b}),define("array",["exports","string"],function(a,b){var c=b.Str,d={has:function(a,b,d){for(var e=void 0===d?!1:d,f=0;f2)return a;var b;return 99>=a&&a>50&&(b="19"+a),(50>a||"00"===a)&&(b="20"+a),b}function d(a){if(void 0===a)return 0;for(var b,c=["january","february","march","april","may","june","july","august","september","october","november","december","jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],d=0;d11||23>b)&&(b-=12),1>b||b>12?0:b}if(b||(b="DMY"),!a||""===a)return new Date(1001,0,1);var e,f;switch(b.toUpperCase()){case"DDMMMYYYY":f=a.replace(/[- \/.]/g," ").split(" "),e=new Date(c(f[2]),d(f[1])-1,f[0]);break;case"DMY":f=a.replace(/^(0?[1-9]|[12][0-9]|3[01])([- \/.])(0?[1-9]|1[012])([- \/.])((\d\d)?\d\d)$/,"$1 $3 $5").split(" "),e=new Date(c(f[2]),f[1]-1,f[0]);break;case"MDY":f=a.replace(/^(0?[1-9]|1[012])([- \/.])(0?[1-9]|[12][0-9]|3[01])([- \/.])((\d\d)?\d\d)$/,"$1 $3 $5").split(" "),e=new Date(c(f[2]),f[0]-1,f[1]);break;case"YMD":f=a.replace(/^((\d\d)?\d\d)([- \/.])(0?[1-9]|1[012])([- \/.])(0?[1-9]|[12][0-9]|3[01])$/,"$1 $4 $6").split(" "),e=new Date(c(f[0]),f[1]-1,f[2]);break;default:f=a.replace(/^(0?[1-9]|[12][0-9]|3[01])([- \/.])(0?[1-9]|1[012])([- \/.])((\d\d)?\d\d)$/,"$1 $3 $5").split(" "),e=new Date(c(f[2]),f[1]-1,f[0])}return e}};a.DateHelper=b}),define("modules/gridLayout",["exports","../dom","../types","../helpers","../event"],function(a,b,c,d,e){var f=function(a,b,c){b&&Object.defineProperties(a,b),c&&Object.defineProperties(a.prototype,c)},g=b.Dom,h=c.Types,i=d.Helpers,j=e.Event,k=function(){var a=function(a){var b=a.fObj;this.gridWidth=b.grid_width||null,this.gridHeight=b.grid_height||null,this.gridMainContCssClass=b.grid_cont_css_class||"grd_Cont",this.gridContCssClass=b.grid_tbl_cont_css_class||"grd_tblCont",this.gridHeadContCssClass=b.grid_tblHead_cont_css_class||"grd_headTblCont",this.gridInfDivCssClass=b.grid_inf_grid_css_class||"grd_inf",this.gridHeadRowIndex=b.grid_headers_row_index||0,this.gridHeadRows=b.grid_headers_rows||[0],this.gridEnableFilters=void 0!==b.grid_enable_default_filters?b.grid_enable_default_filters:!0,this.gridDefaultColWidth=b.grid_default_col_width||"100px",this.gridEnableColResizer=void 0!==b.grid_enable_cols_resizer?b.grid_enable_cols_resizer:!1,this.gridColResizerPath=b.grid_cont_col_resizer_path||this.basePath+"TFExt_ColsResizer/TFExt_ColsResizer.js",this.tf=a};return f(a,null,{init:{writable:!0,value:function(){var a=this.tf,b=a.fObj,c=a.tbl;if(a.isExternalFlt=!0,!a.hasColWidth){a.colWidth=[];for(var d=0;d0&&c.removeChild(z[0]),this.headTbl.style.width=c.style.width,this.headTbl.style.tableLayout="fixed",c.style.tableLayout="fixed",this.headTbl.cellPadding=c.cellPadding,this.headTbl.cellSpacing=c.cellSpacing,this.headTblCont.style.width=this.tblCont.clientWidth+"px",a.SetColWidths(),c.style.width="",i.isIE()&&(this.headTbl.style.width="");var A=this;if(j.add(this.tblCont,"scroll",function(){var a=this.scrollLeft;if(A.headTblCont.scrollLeft=a,!A.isPointerXOverwritten)try{A.Evt.pointerX=function(b){var c=b||global.event,d=tf_StandardBody().scrollLeft+a;return c.pageX+a||c.clientX+d},A.isPointerXOverwritten=!0}catch(b){A.isPointerXOverwritten=!1}}),b.sort!==!1&&(a.sort=!0,a.sortConfig.asyncSort=!0,a.sortConfig.triggerIds=p),this.gridEnableColResizer&&(a.hasExtensions?a.__containsStr("colsresizer",Str.lower(a.extensions.src.toString()))||(a.extensions.name.push("ColumnsResizer_"+a.id),a.extensions.src.push(a.gridColResizerPath),a.extensions.description.push("Columns Resizing"),a.extensions.initialize.push(function(a){a.SetColsResizer("ColumnsResizer_"+a.id)})):(a.extensions={name:["ColumnsResizer_"+a.id],src:[this.gridColResizerPath],description:["Columns Resizing"],initialize:[function(a){a.SetColsResizer("ColumnsResizer_"+a.id)}]},a.hasExtensions=!0)),b.col_resizer_cols_headers_table=this.headTbl.getAttribute("id"),b.col_resizer_cols_headers_index=this.gridHeadRowIndex,b.col_resizer_width_adjustment=0,b.col_enable_text_ellipsis=!1,A.tblHasColTag=g.tag(c,"col").length>0?!0:!1,!i.isIE()){var B=function(a){if(a){for(var b=a.nbCells-1;b>=0;b--){var d=g.create("col",["id",a.id+"_col_"+b]);c.firstChild.parentNode.insertBefore(d,c.firstChild),d.style.width=a.colWidth[b],a.gridColElms[b]=d}a.tblHasColTag=!0}};if(A.tblHasColTag)for(var C=g.tag(c,"col"),D=0;D0?F[0].insertRow(0):c.insertRow(0),E.style.height="0px";for(var G=0;G0?F[0].moveRow(a.leadColWidthsRow.rowIndex,0):c.moveRow(a.leadColWidthsRow.rowIndex,0)}J&&J.call(null,a,b)}}var K=h.isFn(b.on_after_col_resized)?b.on_after_col_resized:null;b.on_after_col_resized=function(a,b){if(b){var d=a.crWColsRow.cells[b].style.width,e=a.gridColElms[b];e.style.width=d;var f=a.crWColsRow.cells[b].clientWidth,g=a.crWRowDataTbl.cells[b].clientWidth;i.isIE()&&(c.style.width=a.headTbl.clientWidth+"px"),f!=g&&!i.isIE()&&(a.headTbl.style.width=c.clientWidth+"px"),K&&K.call(null,a,b)}},c.clientWidth!==this.headTbl.clientWidth&&(c.style.width=this.headTbl.clientWidth+"px"),a.refRow=i.isIE()?a.refRow+1:0}},destroy:{writable:!0,value:function(){var a=this.tf,b=a.tbl;if(a.gridLayout){var c=b.parentNode.removeChild(b);this.tblMainCont.parentNode.insertBefore(c,this.tblMainCont),this.tblMainCont.parentNode.removeChild(this.tblMainCont),this.tblMainCont=null,this.headTblCont=null,this.headTbl=null,this.tblCont=null,b.outerHTML=a.sourceTblHtml,b=g.id(a.id)}}}}),a}();a.GridLayout=k}),define("modules/loader",["exports","../dom","../types"],function(a,b,c){var d=function(a,b,c){b&&Object.defineProperties(a,b),c&&Object.defineProperties(a.prototype,c)},e=b.Dom,f=c.Types,g=window,h=function(){var a=function(a){var b=a.fObj;this.loaderTgtId=b.loader_target_id||null,this.loaderDiv=null,this.loaderText=b.loader_text||"Loading...",this.loaderHtml=b.loader_html||null,this.loaderCssClass=b.loader_css_class||"loader",this.loaderCloseDelay=200,this.onShowLoader=f.isFn(b.on_show_loader)?b.on_show_loader:null,this.onHideLoader=f.isFn(b.on_hide_loader)?b.on_hide_loader:null,this.tf=a;var c=e.create("div",["id",a.prfxLoader+a.id]);c.className=this.loaderCssClass;var d=this.loaderTgtId?e.id(this.loaderTgtId):a.tbl.parentNode;this.loaderTgtId?d.appendChild(c):d.insertBefore(c,a.tbl),this.loaderDiv=e.id(a.prfxLoader+a.id),this.loaderHtml?this.loaderDiv.innerHTML=this.loaderHtml:this.loaderDiv.appendChild(e.text(this.loaderText))};return d(a,null,{show:{writable:!0,value:function(a){var b=this;if(this.tf.loader&&this.loaderDiv&&this.loaderDiv.style.display!==a){var c=function(){b.loaderDiv&&(b.onShowLoader&&"none"!==a&&b.onShowLoader.call(null,b),b.loaderDiv.style.display=a,b.onHideLoader&&"none"===a&&b.onHideLoader.call(null,b))},d="none"===a?this.loaderCloseDelay:1;g.setTimeout(c,d)}}},remove:{writable:!0,value:function(){if(this.loaderDiv){var a=this.loaderTgtId?e.id(this.loaderTgtId):this.tf.gridLayout?this.tf.tblCont:this.tf.tbl.parentNode;a.removeChild(this.loaderDiv),this.loaderDiv=null}}}}),a}();a.Loader=h}),define("modules/rowsCounter",["exports","../dom","../types","../helpers"],function(a,b,c,d){var e=function(a,b,c){b&&Object.defineProperties(a,b),c&&Object.defineProperties(a.prototype,c)},f=b.Dom,g=c.Types,h=d.Helpers,i=function(){var a=function(a){var b=a.fObj;this.rowsCounterTgtId=b.rows_counter_target_id||null,this.rowsCounterDiv=null,this.rowsCounterSpan=null,this.rowsCounterText=b.rows_counter_text||"Rows: ",this.fromToTextSeparator=b.from_to_text_separator||"-",this.overText=b.over_text||" / ",this.totRowsCssClass=b.tot_rows_css_class||"tot",this.onBeforeRefreshCounter=g.isFn(b.on_before_refresh_counter)?b.on_before_refresh_counter:null,this.onAfterRefreshCounter=g.isFn(b.on_after_refresh_counter)?b.on_after_refresh_counter:null,this.tf=a};return e(a,null,{init:{writable:!0,value:function(){var a=this.tf;if((a.hasGrid||a.isFirstLoad)&&!this.rowsCounterSpan){var b=f.create("div",["id",a.prfxCounter+a.id]);b.className=this.totRowsCssClass;var c=f.create("span",["id",a.prfxTotRows+a.id]),d=f.create("span",["id",a.prfxTotRowsTxt+a.id]);d.appendChild(f.text(this.rowsCounterText)),this.rowsCounterTgtId||a.SetTopDiv();var e=this.rowsCounterTgtId?f.id(this.rowsCounterTgtId):a.lDiv;this.rowsCounterDiv&&h.isIE()&&(this.rowsCounterDiv.outerHTML=""),this.rowsCounterTgtId?(e.appendChild(d),e.appendChild(c)):(b.appendChild(d),b.appendChild(c),e.appendChild(b)),this.rowsCounterDiv=b,this.rowsCounterSpan=c,this.refresh()}}},refresh:{writable:!0,value:function(a){if(this.rowsCounterSpan){var b=this.tf;this.onBeforeRefreshCounter&&this.onBeforeRefreshCounter.call(null,b,this.rowsCounterSpan);var c;if(b.paging){var d=parseInt(b.startPagingRow,10)+(b.nbVisibleRows>0?1:0),e=d+b.pagingLength-1<=b.nbVisibleRows?d+b.pagingLength-1:b.nbVisibleRows;c=d+this.fromToTextSeparator+e+this.overText+b.nbVisibleRows}else c=a&&""!==a?a:b.nbFilterableRows-b.nbHiddenRows-(b.hasVisibleRows?b.visibleRows.length:0);this.rowsCounterSpan.innerHTML=c,this.onAfterRefreshCounter&&this.onAfterRefreshCounter.call(null,b,this.rowsCounterSpan,c)}}},destroy:{writable:!0,value:function(){var a=this.tf;a.hasGrid&&this.rowsCounterSpan&&(!this.rowsCounterTgtId&&this.rowsCounterDiv?h.isIE()?this.rowsCounterDiv.outerHTML="":this.rowsCounterDiv.parentNode.removeChild(this.rowsCounterDiv):f.id(this.rowsCounterTgtId).innerHTML="",this.rowsCounterSpan=null,this.rowsCounterDiv=null)}}}),a}();a.RowsCounter=i}),define("modules/alternateRows",["exports","../dom"],function(a,b){var c=function(a,b,c){b&&Object.defineProperties(a,b),c&&Object.defineProperties(a.prototype,c)},d=b.Dom,e=function(){var a=function(a){var b=a.fObj;this.evenCss=b.even_row_css_class||"even",this.oddCss=b.odd_row_css_class||"odd",this.tf=a};return c(a,null,{init:{writable:!0,value:function(){if(this.tf.hasGrid||this.tf.isFirstLoad)for(var a=(this.tf.tbl.rows,null===this.tf.validRowsIndex),b=a?this.tf.refRow:0,c=a?this.tf.nbFilterableRows+b:this.tf.validRowsIndex.length,d=0,e=b;c>e;e++){var f=a?e:this.tf.validRowsIndex[e];this.setRowBg(f,d),d++}}},setRowBg:{writable:!0,value:function(a,b){if(this.tf.alternateBgs&&!isNaN(a)){var c=this.tf.tbl.rows,e=b?b:a;this.removeRowBg(a),d.addClass(c[a],e%2?this.evenCss:this.oddCss)}}},removeRowBg:{writable:!0,value:function(a){if(!isNaN(a)){var b=this.tf.tbl.rows;d.removeClass(b[a],this.oddCss),d.removeClass(b[a],this.evenCss)}}},remove:{writable:!0,value:function(){if(this.tf.hasGrid){for(var a=(this.tf.tbl.rows,this.tf.refRow);a=jj;jj++)ucolIndex[jj]===colIndex[ii]&&(saved=1);0===saved&&(ucolMax++,ucolIndex[ucolMax]=colIndex[ii])}if("object"==Str.lower(typeof labelId)&&"object"==Str.lower(typeof colIndex)&&"object"==Str.lower(typeof operation))for(var row=this.tf.tbl.rows,colvalues=[],ucol=0;ucolMax>=ucol;ucol++){colvalues.push(this.tf.GetColValues(ucolIndex[ucol],!0,excludeRow));for(var result,nbvalues=0,temp,meanValue=0,sumValue=0,minValue=null,maxValue=null,q1Value=null,medValue=null,q3Value=null,meanFlag=0,sumFlag=0,minFlag=0,maxFlag=0,q1Flag=0,medFlag=0,q3Flag=0,theList=[],opsThisCol=[],decThisCol=[],labThisCol=[],oTypeThisCol=[],mThisCol=-1,k=0;kmaxValue?parseFloat(cvalue):maxValue))}if(1===meanFlag&&(meanValue=sumValue/nbvalues),1===medFlag){var aux=0;nbvalues%2===1?(aux=Math.floor(nbvalues/2),medValue=theList[aux]):medValue=(theList[nbvalues/2]+theList[nbvalues/2-1])/2}var posa;if(1===q1Flag&&(posa=0,posa=Math.floor(nbvalues/4),q1Value=4*posa==nbvalues?(theList[posa-1]+theList[posa])/2:theList[posa]),1===q3Flag){posa=0;var posb=0;posa=Math.floor(nbvalues/4),4*posa===nbvalues?(posb=3*posa,q3Value=(theList[posb]+theList[posb-1])/2):q3Value=theList[nbvalues-posa-1]}for(var i=0;mThisCol>=i;i++){switch(opsThisCol[i]){case"mean":result=meanValue;break;case"sum":result=sumValue;break;case"min":result=minValue;break;case"max":result=maxValue;break;case"median":result=medValue;break;case"q1":result=q1Value;break;case"q3":result=q3Value}var precision=isNaN(decThisCol[i])?2:decThisCol[i];if(oTypeThisCol&&result){if(result=result.toFixed(precision),Dom.id(labThisCol[i]))switch(Str.lower(oTypeThisCol)){case"innerhtml":Dom.id(labThisCol[i]).innerHTML=isNaN(result)||!isFinite(result)||0===nbvalues?".":result;break;case"setvalue":Dom.id(labThisCol[i]).value=result;break;case"createtextnode":var oldnode=Dom.id(labThisCol[i]).firstChild,txtnode=Dom.text(result);Dom.id(labThisCol[i]).replaceChild(txtnode,oldnode)}}else try{Dom.id(labThisCol[i]).innerHTML=isNaN(result)||!isFinite(result)||0===nbvalues?".":result.toFixed(precision)}catch(e){}}var totRow=totRowIndex&&totRowIndex[ucol]?row[totRowIndex[ucol]]:null;totRow&&(totRow.style.display="")}this.tf.onAfterOperation&&this.tf.onAfterOperation.call(null,this.tf)}}}}),ColOps}();exports.ColOps=ColOps}),define("core",["require","event","dom","string","cookie","types","array","helpers","date","modules/gridLayout","modules/loader","modules/rowsCounter","modules/alternateRows","modules/colOps"],function(a){function b(a){if(0!==arguments.length){if(this.id=a,this.version="3.0",this.year=(new Date).getFullYear(),this.tbl=m.id(a),this.startRow=null,this.refRow=null,this.headersRow=null,this.fObj=null,this.nbFilterableRows=null,this.nbRows=null,this.nbCells=null,this.hasGrid=!1,this.enableModules=!1,!this.tbl||"table"!==n.lower(this.tbl.nodeName)||0===this.GetRowsNb())throw new Error("Could not instantiate TF object: HTML table not found.");if(arguments.length>1)for(var b=0;b1?this.filtersRowIndex=this.headersRow+1:(this.filtersRowIndex=1,this.headersRow=0)),this.fltCellTag="th"!==e.filters_cell_tag||"td"!==e.filters_cell_tag?"td":e.filters_cell_tag,this.fltIds=[],this.fltElms=[],this.searchArgs=null,this.tblData=[],this.validRowsIndex=null,this.fltGridEl=null,this.isFirstLoad=!0,this.infDiv=null,this.lDiv=null,this.rDiv=null,this.mDiv=null,this.contDiv=null,this.infDivCssClass=e.inf_div_css_class||"inf",this.lDivCssClass=e.left_div_css_class||"ldiv",this.rDivCssClass=e.right_div_css_class||"rdiv",this.mDivCssClass=e.middle_div_css_class||"mdiv",this.contDivCssClass=e.content_div_css_class||"cont",this.stylesheet=e.stylesheet||this.basePath+"filtergrid.css",this.stylesheetId=this.id+"_style",this.fltsRowCssClass=e.flts_row_css_class||"fltrow",this.enableIcons=e.enable_icons===!1?!1:!0,this.alternateBgs=e.alternate_rows===!0?!0:!1,this.hasColWidth=e.col_width===!0?!0:!1,this.colWidth=this.hasColWidth?e.col_width:null,this.fixedHeaders=e.fixed_headers===!0?!0:!1,this.tBodyH=isNaN(e.tbody_height)?200:e.tbody_height,this.fltCssClass=e.flt_css_class||"flt",this.fltMultiCssClass=e.flt_multi_css_class||"flt_multi",this.fltSmallCssClass=e.flt_small_css_class||"flt_s",this.singleFltCssClass=e.single_flt_css_class||"single_flt",this.isStartBgAlternate=!0,this.enterKey=e.enter_key===!1?!1:!0,this.isModFilterFn=e.mod_filter_fn===!0?!0:!1,this.modFilterFn=this.isModFilterFn?e.mod_filter_fn:null,this.onBeforeFilter=p.isFn(e.on_before_filter)?e.on_before_filter:null,this.onAfterFilter=p.isFn(e.on_after_filter)?e.on_after_filter:null,this.matchCase=e.match_case===!0?!0:!1,this.exactMatch=e.exact_match===!0?!0:!1,this.refreshFilters=e.refresh_filters===!0?!0:!1,this.disableExcludedOptions=e.disable_excluded_options===!0?!0:!1,this.activeFlt=null,this.activeFilterId=null,this.hasColOperation=e.col_operation?!0:!1,this.colOperation=null,this.hasVisibleRows=e.rows_always_visible?!0:!1,this.visibleRows=this.hasVisibleRows?e.rows_always_visible:[],this.searchType=e.search_type||"include",this.isExternalFlt=e.external_flt_grid===!0?!0:!1,this.externalFltTgtIds=e.external_flt_grid_ids||null,this.externalFltEls=[],this.execDelay=isNaN(e.exec_delay)?100:parseInt(e.exec_delay,10),this.status=e.status===!0?!0:!1,this.onFiltersLoaded=p.isFn(e.on_filters_loaded)?e.on_filters_loaded:null,this.singleSearchFlt=e.single_search_filter===!0?!0:!1,this.onRowValidated=p.isFn(e.on_row_validated)?e.on_row_validated:null,this.customCellDataCols=e.custom_cell_data_cols?e.custom_cell_data_cols:[],this.customCellData=p.isFn(e.custom_cell_data)?e.custom_cell_data:null,this.inpWatermark=e.input_watermark||"",this.inpWatermarkCssClass=e.input_watermark_css_class||"fltWatermark",this.isInpWatermarkArray=p.isArray(e.input_watermark),this.toolBarTgtId=e.toolbar_target_id||null,this.helpInstructions=e.help_instructions||null,this.popUpFilters=e.popup_filters===!0?!0:!1,this.markActiveColumns=e.mark_active_columns===!0?!0:!1,this.activeColumnsCssClass=e.active_columns_css_class||"activeHeader",this.onBeforeActiveColumn=p.isFn(e.on_before_active_column)?e.on_before_active_column:null,this.onAfterActiveColumn=p.isFn(e.on_after_active_column)?e.on_after_active_column:null,this.displayAllText=e.display_all_text||"",this.enableSlcResetFilter=e.enable_slc_reset_filter===!1?!1:!0,this.enableEmptyOption=e.enable_empty_option===!0?!0:!1,this.emptyText=e.empty_text||"(Empty)",this.enableNonEmptyOption=e.enable_non_empty_option===!0?!0:!1,this.nonEmptyText=e.non_empty_text||"(Non empty)",this.onSlcChange=e.on_change===!1?!1:!0,this.sortSlc=e.sort_select===!1?!1:!0,this.isSortNumAsc=e.sort_num_asc===!0?!0:!1,this.sortNumAsc=this.isSortNumAsc?e.sort_num_asc:null,this.isSortNumDesc=e.sort_num_desc===!0?!0:!1,this.sortNumDesc=this.isSortNumDesc?e.sort_num_desc:null,this.slcFillingMethod=e.slc_filling_method||"createElement",this.fillSlcOnDemand=e.fill_slc_on_demand===!0?!0:!1,this.activateSlcTooltip=e.activate_slc_tooltip||"Click to activate",this.multipleSlcTooltip=e.multiple_slc_tooltip||"Use Ctrl key for multiple selections",this.hasCustomSlcOptions=p.isObj(e.custom_slc_options)?!0:!1,this.customSlcOptions=p.isArray(e.custom_slc_options)?e.custom_slc_options:null,this.onBeforeOperation=p.isFn(e.on_before_operation)?e.on_before_operation:null,this.onAfterOperation=p.isFn(e.on_after_operation)?e.on_after_operation:null,this.checkListDiv=[],this.checkListDivCssClass=e.div_checklist_css_class||"div_checklist",this.checkListCssClass=e.checklist_css_class||"flt_checklist",this.checkListItemCssClass=e.checklist_item_css_class||"flt_checklist_item",this.checkListSlcItemCssClass=e.checklist_selected_item_css_class||"flt_checklist_slc_item",this.activateCheckListTxt=e.activate_checklist_text||"Click to load filter data",this.checkListItemDisabledCssClass=e.checklist_item_disabled_css_class||"flt_checklist_item_disabled",this.enableCheckListResetFilter=e.enable_checklist_reset_filter===!1?!1:!0,this.rgxOperator=e.regexp_operator||"rgx:",this.emOperator=e.empty_operator||"[empty]",this.nmOperator=e.nonempty_operator||"[nonempty]",this.orOperator=e.or_operator||"||",this.anOperator=e.and_operator||"&&",this.grOperator=e.greater_operator||">",this.lwOperator=e.lower_operator||"<",this.leOperator=e.lower_equal_operator||"<=",this.geOperator=e.greater_equal_operator||">=",this.dfOperator=e.different_operator||"!",this.lkOperator=e.like_operator||"*",this.eqOperator=e.equal_operator||"=",this.stOperator=e.start_with_operator||"{",this.enOperator=e.end_with_operator||"}",this.curExp=e.cur_exp||"^[¥£€$]",this.separator=e.separator||",",this.rowsCounter=e.rows_counter===!0?!0:!1,this.statusBar=e.status_bar===!0?!0:!1,this.loader=e.loader===!0?!0:!1,this.displayBtn=e.btn===!0?!0:!1,this.btnText=e.btn_text||(this.enableIcons?"":"Go"),this.btnCssClass=e.btn_css_class||(this.enableIcons?"btnflt_icon":"btnflt"),this.btnReset=e.btn_reset===!0?!0:!1,this.btnResetCssClass=e.btn_reset_css_class||"reset",this.onBeforeReset=p.isFn(e.on_before_reset)?e.on_before_reset:null,this.onAfterReset=p.isFn(e.on_after_reset)?e.on_after_reset:null,this.paging=e.paging===!0?!0:!1,this.hasResultsPerPage=e.results_per_page===!0?!0:!1,this.btnPageCssClass=e.paging_btn_css_class||"pgInp",this.pagingSlc=null,this.resultsPerPage=null,this.resultsPerPageSlc=null,this.isPagingRemoved=!1,this.nbVisibleRows=0,this.nbHiddenRows=0,this.startPagingRow=0,this.nbPages=0,this.currentPageNb=1,this.sort=e.sort===!0?!0:!1,this.isSortEnabled=!1,this.sorted=!1,this.sortConfig=e.sort_config||{},this.sortConfig.name=void 0!==this.sortConfig.name?e.sort_config.name:"sortabletable",this.sortConfig.src=void 0!==this.sortConfig.src?e.sort_config.src:this.basePath+"sortabletable.js",this.sortConfig.adapterSrc=void 0!==this.sortConfig.adapter_src?e.sort_config.adapter_src:this.basePath+"tfAdapter.sortabletable.js",this.sortConfig.initialize=void 0!==this.sortConfig.initialize?e.sort_config.initialize:function(a){a.SetSortTable&&a.SetSortTable() +!function(a,b){"function"==typeof define&&define.amd?define(b):"object"==typeof exports?module.exports=b:a.TableFilter=b()}(this,function(){var requirejs,require,define;return function(a){function b(a,b){return r.call(a,b)}function c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n=b&&b.split("/"),o=p.map,q=o&&o["*"]||{};if(a&&"."===a.charAt(0))if(b){for(n=n.slice(0,n.length-1),a=a.split("/"),g=a.length-1,p.nodeIdCompat&&t.test(a[g])&&(a[g]=a[g].replace(t,"")),a=n.concat(a),k=0;k0&&(a.splice(k-1,2),k-=2)}a=a.join("/")}else 0===a.indexOf("./")&&(a=a.substring(2));if((n||q)&&o){for(c=a.split("/"),k=c.length;k>0;k-=1){if(d=c.slice(0,k).join("/"),n)for(l=n.length;l>0;l-=1)if(e=o[n.slice(0,l).join("/")],e&&(e=e[d])){f=e,h=k;break}if(f)break;!i&&q&&q[d]&&(i=q[d],j=k)}!f&&i&&(f=i,h=j),f&&(c.splice(0,h,f),a=c.join("/"))}return a}function d(b,c){return function(){var d=s.call(arguments,0);return"string"!=typeof d[0]&&1===d.length&&d.push(null),k.apply(a,d.concat([b,c]))}}function e(a){return function(b){return c(b,a)}}function f(a){return function(b){n[a]=b}}function g(c){if(b(o,c)){var d=o[c];delete o[c],q[c]=!0,j.apply(a,d)}if(!b(n,c)&&!b(q,c))throw new Error("No "+c);return n[c]}function h(a){var b,c=a?a.indexOf("!"):-1;return c>-1&&(b=a.substring(0,c),a=a.substring(c+1,a.length)),[b,a]}function i(a){return function(){return p&&p.config&&p.config[a]||{}}}var j,k,l,m,n={},o={},p={},q={},r=Object.prototype.hasOwnProperty,s=[].slice,t=/\.js$/;l=function(a,b){var d,f=h(a),i=f[0];return a=f[1],i&&(i=c(i,b),d=g(i)),i?a=d&&d.normalize?d.normalize(a,e(b)):c(a,b):(a=c(a,b),f=h(a),i=f[0],a=f[1],i&&(d=g(i))),{f:i?i+"!"+a:a,n:a,pr:i,p:d}},m={require:function(a){return d(a)},exports:function(a){var b=n[a];return"undefined"!=typeof b?b:n[a]={}},module:function(a){return{id:a,uri:"",exports:n[a],config:i(a)}}},j=function(c,e,h,i){var j,k,p,r,s,t,u=[],v=typeof h;if(i=i||c,"undefined"===v||"function"===v){for(e=!e.length&&h.length?["require","exports","module"]:e,s=0;s]+>/g,"");return b=b.replace(/^\s+/,"").replace(/\s+$/,"")},c.create=function(a){if(a&&""!==a){var b=document.createElement(a),c=arguments;if(c.length>1)for(var d=0;d0){var d=document.cookie,e=d.indexOf(c);if(-1!==e){e+=c.length;var f=d.indexOf(";",e);-1===f&&(f=d.length),b=unescape(d.substring(e,f))}}return b},b.remove=function(a){this.write(a,"",-1)},b.valueToArray=function(a,b){b||(b=",");var c=this.read(a),d=c.split(b);return d},b.getValueByIndex=function(a,b,c){c||(c=",");var d=this.valueToArray(a,c);return d[b]},a.Cookie=b}),define("types",["exports"],function(a){var b={},c=void 0;b.isObj=function(a){var b=!1;return"string"==typeof a?window[a]&&"object"==typeof window[a]&&(b=!0):a&&"object"==typeof a&&(b=!0),b},b.isFn=function(a){return a&&a.constructor==Function},b.isArray=function(a){return a&&a.constructor==Array},b.isUndef=function(a){return a===c},a.Types=b}),define("array",["exports","string"],function(a,b){var c=b.Str,d={has:function(a,b,d){for(var e=void 0===d?!1:d,f=0;f2)return a;var b;return 99>=a&&a>50&&(b="19"+a),(50>a||"00"===a)&&(b="20"+a),b}function d(a){if(void 0===a)return 0;for(var b,c=["january","february","march","april","may","june","july","august","september","october","november","december","jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"],d=0;d11||23>b)&&(b-=12),1>b||b>12?0:b}if(b||(b="DMY"),!a||""===a)return new Date(1001,0,1);var e,f;switch(b.toUpperCase()){case"DDMMMYYYY":f=a.replace(/[- \/.]/g," ").split(" "),e=new Date(c(f[2]),d(f[1])-1,f[0]);break;case"DMY":f=a.replace(/^(0?[1-9]|[12][0-9]|3[01])([- \/.])(0?[1-9]|1[012])([- \/.])((\d\d)?\d\d)$/,"$1 $3 $5").split(" "),e=new Date(c(f[2]),f[1]-1,f[0]);break;case"MDY":f=a.replace(/^(0?[1-9]|1[012])([- \/.])(0?[1-9]|[12][0-9]|3[01])([- \/.])((\d\d)?\d\d)$/,"$1 $3 $5").split(" "),e=new Date(c(f[2]),f[0]-1,f[1]);break;case"YMD":f=a.replace(/^((\d\d)?\d\d)([- \/.])(0?[1-9]|1[012])([- \/.])(0?[1-9]|[12][0-9]|3[01])$/,"$1 $4 $6").split(" "),e=new Date(c(f[0]),f[1]-1,f[2]);break;default:f=a.replace(/^(0?[1-9]|[12][0-9]|3[01])([- \/.])(0?[1-9]|1[012])([- \/.])((\d\d)?\d\d)$/,"$1 $3 $5").split(" "),e=new Date(c(f[2]),f[1]-1,f[0])}return e}};a.DateHelper=b}),define("modules/gridLayout",["exports","../dom","../types","../helpers","../event"],function(a,b,c,d,e){var f=function(a,b,c){b&&Object.defineProperties(a,b),c&&Object.defineProperties(a.prototype,c)},g=b.Dom,h=c.Types,i=(d.Helpers,e.Event),j=function(){var a=function(a){var b=a.fObj;this.gridWidth=b.grid_width||null,this.gridHeight=b.grid_height||null,this.gridMainContCssClass=b.grid_cont_css_class||"grd_Cont",this.gridContCssClass=b.grid_tbl_cont_css_class||"grd_tblCont",this.gridHeadContCssClass=b.grid_tblHead_cont_css_class||"grd_headTblCont",this.gridInfDivCssClass=b.grid_inf_grid_css_class||"grd_inf",this.gridHeadRowIndex=b.grid_headers_row_index||0,this.gridHeadRows=b.grid_headers_rows||[0],this.gridEnableFilters=void 0!==b.grid_enable_default_filters?b.grid_enable_default_filters:!0,this.gridDefaultColWidth=b.grid_default_col_width||"100px",this.gridEnableColResizer=void 0!==b.grid_enable_cols_resizer?b.grid_enable_cols_resizer:!1,this.gridColResizerPath=b.grid_cont_col_resizer_path||this.basePath+"TFExt_ColsResizer/TFExt_ColsResizer.js",this.gridColElms=[],this.tf=a};return f(a,null,{init:{writable:!0,value:function(){var a=this.tf,b=a.fObj,c=a.tbl;if(a.gridLayout){if(a.isExternalFlt=!0,!a.hasColWidth){a.colWidth=[];for(var d=0;d0&&c.removeChild(y[0]),this.headTbl.style.width=c.style.width,this.headTbl.style.tableLayout="fixed",c.style.tableLayout="fixed",this.headTbl.cellPadding=c.cellPadding,this.headTbl.cellSpacing=c.cellSpacing,a.SetColWidths(),this.headTblCont.style.width=this.tblCont.clientWidth+"px",c.style.width="";var z=this;i.add(this.tblCont,"scroll",function(){var a=this.scrollLeft;if(z.headTblCont.scrollLeft=a,!z.isPointerXOverwritten)try{z.Evt.pointerX=function(b){var c=b||global.event,d=tf_StandardBody().scrollLeft+a;return c.pageX+a||c.clientX+d},z.isPointerXOverwritten=!0}catch(b){z.isPointerXOverwritten=!1}}),b.sort!==!1&&(a.sort=!0,a.sortConfig.asyncSort=!0,a.sortConfig.triggerIds=o),this.gridEnableColResizer&&(a.hasExtensions?a.__containsStr("colsresizer",Str.lower(a.extensions.src.toString()))||(a.extensions.name.push("ColumnsResizer_"+a.id),a.extensions.src.push(a.gridColResizerPath),a.extensions.description.push("Columns Resizing"),a.extensions.initialize.push(function(a){a.SetColsResizer("ColumnsResizer_"+a.id)})):(a.extensions={name:["ColumnsResizer_"+a.id],src:[this.gridColResizerPath],description:["Columns Resizing"],initialize:[function(a){a.SetColsResizer("ColumnsResizer_"+a.id)}]},a.hasExtensions=!0)),b.col_resizer_cols_headers_table=this.headTbl.getAttribute("id"),b.col_resizer_cols_headers_index=this.gridHeadRowIndex,b.col_resizer_width_adjustment=0,b.col_enable_text_ellipsis=!1,z.tblHasColTag=g.tag(c,"col").length>0?!0:!1;var A=function(b){if(b){for(var d=a.nbCells-1;d>=0;d--){var e=g.create("col",["id",a.id+"_col_"+d]);c.firstChild.parentNode.insertBefore(e,c.firstChild),e.style.width=a.colWidth[d],b.gridColElms[d]=e}b.tblHasColTag=!0}};if(z.tblHasColTag)for(var B=g.tag(c,"col"),C=0;C0?1:0),e=d+b.pagingLength-1<=b.nbVisibleRows?d+b.pagingLength-1:b.nbVisibleRows;c=d+this.fromToTextSeparator+e+this.overText+b.nbVisibleRows}else c=a&&""!==a?a:b.nbFilterableRows-b.nbHiddenRows-(b.hasVisibleRows?b.visibleRows.length:0);this.rowsCounterSpan.innerHTML=c,this.onAfterRefreshCounter&&this.onAfterRefreshCounter.call(null,b,this.rowsCounterSpan,c)}}},destroy:{writable:!0,value:function(){var a=this.tf;a.hasGrid&&this.rowsCounterSpan&&(!this.rowsCounterTgtId&&this.rowsCounterDiv?h.isIE()?this.rowsCounterDiv.outerHTML="":this.rowsCounterDiv.parentNode.removeChild(this.rowsCounterDiv):f.id(this.rowsCounterTgtId).innerHTML="",this.rowsCounterSpan=null,this.rowsCounterDiv=null)}}}),a}();a.RowsCounter=i}),define("modules/alternateRows",["exports","../dom"],function(a,b){var c=function(a,b,c){b&&Object.defineProperties(a,b),c&&Object.defineProperties(a.prototype,c)},d=b.Dom,e=function(){var a=function(a){var b=a.fObj;this.evenCss=b.even_row_css_class||"even",this.oddCss=b.odd_row_css_class||"odd",this.tf=a};return c(a,null,{init:{writable:!0,value:function(){if(this.tf.hasGrid||this.tf.isFirstLoad)for(var a=(this.tf.tbl.rows,null===this.tf.validRowsIndex),b=a?this.tf.refRow:0,c=a?this.tf.nbFilterableRows+b:this.tf.validRowsIndex.length,d=0,e=b;c>e;e++){var f=a?e:this.tf.validRowsIndex[e];this.setRowBg(f,d),d++}}},setRowBg:{writable:!0,value:function(a,b){if(this.tf.alternateBgs&&!isNaN(a)){var c=this.tf.tbl.rows,e=b?b:a;this.removeRowBg(a),d.addClass(c[a],e%2?this.evenCss:this.oddCss)}}},removeRowBg:{writable:!0,value:function(a){if(!isNaN(a)){var b=this.tf.tbl.rows;d.removeClass(b[a],this.oddCss),d.removeClass(b[a],this.evenCss)}}},remove:{writable:!0,value:function(){if(this.tf.hasGrid){for(var a=(this.tf.tbl.rows,this.tf.refRow);a=jj;jj++)ucolIndex[jj]===colIndex[ii]&&(saved=1);0===saved&&(ucolMax++,ucolIndex[ucolMax]=colIndex[ii])}if("object"==Str.lower(typeof labelId)&&"object"==Str.lower(typeof colIndex)&&"object"==Str.lower(typeof operation))for(var row=this.tf.tbl.rows,colvalues=[],ucol=0;ucolMax>=ucol;ucol++){colvalues.push(this.tf.GetColValues(ucolIndex[ucol],!0,excludeRow));for(var result,nbvalues=0,temp,meanValue=0,sumValue=0,minValue=null,maxValue=null,q1Value=null,medValue=null,q3Value=null,meanFlag=0,sumFlag=0,minFlag=0,maxFlag=0,q1Flag=0,medFlag=0,q3Flag=0,theList=[],opsThisCol=[],decThisCol=[],labThisCol=[],oTypeThisCol=[],mThisCol=-1,k=0;kmaxValue?parseFloat(cvalue):maxValue))}if(1===meanFlag&&(meanValue=sumValue/nbvalues),1===medFlag){var aux=0;nbvalues%2===1?(aux=Math.floor(nbvalues/2),medValue=theList[aux]):medValue=(theList[nbvalues/2]+theList[nbvalues/2-1])/2}var posa;if(1===q1Flag&&(posa=0,posa=Math.floor(nbvalues/4),q1Value=4*posa==nbvalues?(theList[posa-1]+theList[posa])/2:theList[posa]),1===q3Flag){posa=0;var posb=0;posa=Math.floor(nbvalues/4),4*posa===nbvalues?(posb=3*posa,q3Value=(theList[posb]+theList[posb-1])/2):q3Value=theList[nbvalues-posa-1]}for(var i=0;mThisCol>=i;i++){switch(opsThisCol[i]){case"mean":result=meanValue;break;case"sum":result=sumValue;break;case"min":result=minValue;break;case"max":result=maxValue;break;case"median":result=medValue;break;case"q1":result=q1Value;break;case"q3":result=q3Value}var precision=isNaN(decThisCol[i])?2:decThisCol[i];if(oTypeThisCol&&result){if(result=result.toFixed(precision),Dom.id(labThisCol[i]))switch(Str.lower(oTypeThisCol)){case"innerhtml":Dom.id(labThisCol[i]).innerHTML=isNaN(result)||!isFinite(result)||0===nbvalues?".":result;break;case"setvalue":Dom.id(labThisCol[i]).value=result;break;case"createtextnode":var oldnode=Dom.id(labThisCol[i]).firstChild,txtnode=Dom.text(result);Dom.id(labThisCol[i]).replaceChild(txtnode,oldnode)}}else try{Dom.id(labThisCol[i]).innerHTML=isNaN(result)||!isFinite(result)||0===nbvalues?".":result.toFixed(precision)}catch(e){}}var totRow=totRowIndex&&totRowIndex[ucol]?row[totRowIndex[ucol]]:null;totRow&&(totRow.style.display="")}this.tf.onAfterOperation&&this.tf.onAfterOperation.call(null,this.tf)}}}}),ColOps}();exports.ColOps=ColOps}),define("core",["require","event","dom","string","cookie","types","array","helpers","date","modules/gridLayout","modules/loader","modules/rowsCounter","modules/alternateRows","modules/colOps"],function(a){function b(a){if(0!==arguments.length){if(this.id=a,this.version="3.0",this.year=(new Date).getFullYear(),this.tbl=m.id(a),this.startRow=null,this.refRow=null,this.headersRow=null,this.fObj=null,this.nbFilterableRows=null,this.nbRows=null,this.nbCells=null,this.hasGrid=!1,this.enableModules=!1,!this.tbl||"table"!==n.lower(this.tbl.nodeName)||0===this.GetRowsNb())throw new Error("Could not instantiate TF object: HTML table not found.");if(arguments.length>1)for(var b=0;b1?this.filtersRowIndex=this.headersRow+1:(this.filtersRowIndex=1,this.headersRow=0)),this.fltCellTag="th"!==e.filters_cell_tag||"td"!==e.filters_cell_tag?"td":e.filters_cell_tag,this.fltIds=[],this.fltElms=[],this.searchArgs=null,this.tblData=[],this.validRowsIndex=null,this.fltGridEl=null,this.isFirstLoad=!0,this.infDiv=null,this.lDiv=null,this.rDiv=null,this.mDiv=null,this.contDiv=null,this.infDivCssClass=e.inf_div_css_class||"inf",this.lDivCssClass=e.left_div_css_class||"ldiv",this.rDivCssClass=e.right_div_css_class||"rdiv",this.mDivCssClass=e.middle_div_css_class||"mdiv",this.contDivCssClass=e.content_div_css_class||"cont",this.stylesheet=e.stylesheet||this.basePath+"filtergrid.css",this.stylesheetId=this.id+"_style",this.fltsRowCssClass=e.flts_row_css_class||"fltrow",this.enableIcons=e.enable_icons===!1?!1:!0,this.alternateBgs=e.alternate_rows===!0?!0:!1,this.hasColWidth=e.col_width===!0?!0:!1,this.colWidth=this.hasColWidth?e.col_width:null,this.fixedHeaders=e.fixed_headers===!0?!0:!1,this.tBodyH=isNaN(e.tbody_height)?200:e.tbody_height,this.fltCssClass=e.flt_css_class||"flt",this.fltMultiCssClass=e.flt_multi_css_class||"flt_multi",this.fltSmallCssClass=e.flt_small_css_class||"flt_s",this.singleFltCssClass=e.single_flt_css_class||"single_flt",this.isStartBgAlternate=!0,this.enterKey=e.enter_key===!1?!1:!0,this.isModFilterFn=e.mod_filter_fn===!0?!0:!1,this.modFilterFn=this.isModFilterFn?e.mod_filter_fn:null,this.onBeforeFilter=p.isFn(e.on_before_filter)?e.on_before_filter:null,this.onAfterFilter=p.isFn(e.on_after_filter)?e.on_after_filter:null,this.matchCase=e.match_case===!0?!0:!1,this.exactMatch=e.exact_match===!0?!0:!1,this.refreshFilters=e.refresh_filters===!0?!0:!1,this.disableExcludedOptions=e.disable_excluded_options===!0?!0:!1,this.activeFlt=null,this.activeFilterId=null,this.hasColOperation=e.col_operation?!0:!1,this.colOperation=null,this.hasVisibleRows=e.rows_always_visible?!0:!1,this.visibleRows=this.hasVisibleRows?e.rows_always_visible:[],this.searchType=e.search_type||"include",this.isExternalFlt=e.external_flt_grid===!0?!0:!1,this.externalFltTgtIds=e.external_flt_grid_ids||null,this.externalFltEls=[],this.execDelay=isNaN(e.exec_delay)?100:parseInt(e.exec_delay,10),this.status=e.status===!0?!0:!1,this.onFiltersLoaded=p.isFn(e.on_filters_loaded)?e.on_filters_loaded:null,this.singleSearchFlt=e.single_search_filter===!0?!0:!1,this.onRowValidated=p.isFn(e.on_row_validated)?e.on_row_validated:null,this.customCellDataCols=e.custom_cell_data_cols?e.custom_cell_data_cols:[],this.customCellData=p.isFn(e.custom_cell_data)?e.custom_cell_data:null,this.inpWatermark=e.input_watermark||"",this.inpWatermarkCssClass=e.input_watermark_css_class||"fltWatermark",this.isInpWatermarkArray=p.isArray(e.input_watermark),this.toolBarTgtId=e.toolbar_target_id||null,this.helpInstructions=e.help_instructions||null,this.popUpFilters=e.popup_filters===!0?!0:!1,this.markActiveColumns=e.mark_active_columns===!0?!0:!1,this.activeColumnsCssClass=e.active_columns_css_class||"activeHeader",this.onBeforeActiveColumn=p.isFn(e.on_before_active_column)?e.on_before_active_column:null,this.onAfterActiveColumn=p.isFn(e.on_after_active_column)?e.on_after_active_column:null,this.displayAllText=e.display_all_text||"",this.enableSlcResetFilter=e.enable_slc_reset_filter===!1?!1:!0,this.enableEmptyOption=e.enable_empty_option===!0?!0:!1,this.emptyText=e.empty_text||"(Empty)",this.enableNonEmptyOption=e.enable_non_empty_option===!0?!0:!1,this.nonEmptyText=e.non_empty_text||"(Non empty)",this.onSlcChange=e.on_change===!1?!1:!0,this.sortSlc=e.sort_select===!1?!1:!0,this.isSortNumAsc=e.sort_num_asc===!0?!0:!1,this.sortNumAsc=this.isSortNumAsc?e.sort_num_asc:null,this.isSortNumDesc=e.sort_num_desc===!0?!0:!1,this.sortNumDesc=this.isSortNumDesc?e.sort_num_desc:null,this.slcFillingMethod=e.slc_filling_method||"createElement",this.fillSlcOnDemand=e.fill_slc_on_demand===!0?!0:!1,this.activateSlcTooltip=e.activate_slc_tooltip||"Click to activate",this.multipleSlcTooltip=e.multiple_slc_tooltip||"Use Ctrl key for multiple selections",this.hasCustomSlcOptions=p.isObj(e.custom_slc_options)?!0:!1,this.customSlcOptions=p.isArray(e.custom_slc_options)?e.custom_slc_options:null,this.onBeforeOperation=p.isFn(e.on_before_operation)?e.on_before_operation:null,this.onAfterOperation=p.isFn(e.on_after_operation)?e.on_after_operation:null,this.checkListDiv=[],this.checkListDivCssClass=e.div_checklist_css_class||"div_checklist",this.checkListCssClass=e.checklist_css_class||"flt_checklist",this.checkListItemCssClass=e.checklist_item_css_class||"flt_checklist_item",this.checkListSlcItemCssClass=e.checklist_selected_item_css_class||"flt_checklist_slc_item",this.activateCheckListTxt=e.activate_checklist_text||"Click to load filter data",this.checkListItemDisabledCssClass=e.checklist_item_disabled_css_class||"flt_checklist_item_disabled",this.enableCheckListResetFilter=e.enable_checklist_reset_filter===!1?!1:!0,this.rgxOperator=e.regexp_operator||"rgx:",this.emOperator=e.empty_operator||"[empty]",this.nmOperator=e.nonempty_operator||"[nonempty]",this.orOperator=e.or_operator||"||",this.anOperator=e.and_operator||"&&",this.grOperator=e.greater_operator||">",this.lwOperator=e.lower_operator||"<",this.leOperator=e.lower_equal_operator||"<=",this.geOperator=e.greater_equal_operator||">=",this.dfOperator=e.different_operator||"!",this.lkOperator=e.like_operator||"*",this.eqOperator=e.equal_operator||"=",this.stOperator=e.start_with_operator||"{",this.enOperator=e.end_with_operator||"}",this.curExp=e.cur_exp||"^[¥£€$]",this.separator=e.separator||",",this.rowsCounter=e.rows_counter===!0?!0:!1,this.statusBar=e.status_bar===!0?!0:!1,this.loader=e.loader===!0?!0:!1,this.displayBtn=e.btn===!0?!0:!1,this.btnText=e.btn_text||(this.enableIcons?"":"Go"),this.btnCssClass=e.btn_css_class||(this.enableIcons?"btnflt_icon":"btnflt"),this.btnReset=e.btn_reset===!0?!0:!1,this.btnResetCssClass=e.btn_reset_css_class||"reset",this.onBeforeReset=p.isFn(e.on_before_reset)?e.on_before_reset:null,this.onAfterReset=p.isFn(e.on_after_reset)?e.on_after_reset:null,this.paging=e.paging===!0?!0:!1,this.hasResultsPerPage=e.results_per_page===!0?!0:!1,this.btnPageCssClass=e.paging_btn_css_class||"pgInp",this.pagingSlc=null,this.resultsPerPage=null,this.resultsPerPageSlc=null,this.isPagingRemoved=!1,this.nbVisibleRows=0,this.nbHiddenRows=0,this.startPagingRow=0,this.nbPages=0,this.currentPageNb=1,this.sort=e.sort===!0?!0:!1,this.isSortEnabled=!1,this.sorted=!1,this.sortConfig=e.sort_config||{},this.sortConfig.name=void 0!==this.sortConfig.name?e.sort_config.name:"sortabletable",this.sortConfig.src=void 0!==this.sortConfig.src?e.sort_config.src:this.basePath+"sortabletable.js",this.sortConfig.adapterSrc=void 0!==this.sortConfig.adapter_src?e.sort_config.adapter_src:this.basePath+"tfAdapter.sortabletable.js",this.sortConfig.initialize=void 0!==this.sortConfig.initialize?e.sort_config.initialize:function(a){a.SetSortTable&&a.SetSortTable() },this.sortConfig.sortTypes=p.isArray(this.sortConfig.sort_types)?e.sort_config.sort_types:[],this.sortConfig.sortCol=void 0!==this.sortConfig.sort_col?e.sort_config.sort_col:null,this.sortConfig.asyncSort=this.sortConfig.async_sort===!0?!0:!1,this.sortConfig.triggerIds=p.isArray(this.sortConfig.sort_trigger_ids)?e.sort_config.sort_trigger_ids:[],this.selectable=e.selectable===!0?!0:!1,this.editable=e.editable===!0?!0:!1,this.ezEditTableConfig=e.ezEditTable_config||{},this.ezEditTableConfig.name=void 0!==this.ezEditTableConfig.name?e.ezEditTable_config.name:"ezedittable",this.ezEditTableConfig.src=void 0!==this.ezEditTableConfig.src?e.ezEditTable_config.src:this.basePath+"ezEditTable/ezEditTable.js",this.ezEditTableConfig.loadStylesheet=this.ezEditTableConfig.loadStylesheet===!0?!0:!1,this.ezEditTableConfig.stylesheet=this.ezEditTableConfig.stylesheet||this.basePath+"ezEditTable/ezEditTable.css",this.ezEditTableConfig.stylesheetName=void 0!==this.ezEditTableConfig.stylesheetName?e.ezEditTable_config.stylesheetName:"ezEditTableCss",this.ezEditTableConfig.err='Failed to instantiate EditTable object.\n"ezEditTable" module may not be available.',this.onKeyUp=e.on_keyup===!0?!0:!1,this.onKeyUpDelay=isNaN(e.on_keyup_delay)?900:e.on_keyup_delay,this.isUserTyping=null,this.onKeyUpTimer=void 0,this.highlightKeywords=e.highlight_keywords===!0?!0:!1,this.highlightCssClass=e.highlight_css_class||"keyword",this.highlightedNodes=[],this.defaultDateType=e.default_date_type||"DMY",this.thousandsSeparator=e.thousands_separator||",",this.decimalSeparator=e.decimal_separator||".",this.hasColNbFormat=e.col_number_format===!0?!0:!1,this.colNbFormat=p.isArray(this.hasColNbFormat)?e.col_number_format:null,this.hasColDateType=e.col_date_type===!0?!0:!1,this.colDateType=p.isArray(this.hasColDateType)?e.col_date_type:null,this.msgFilter=e.msg_filter||"Filtering data...",this.msgPopulate=e.msg_populate||"Populating filter...",this.msgPopulateCheckList=e.msg_populate_checklist||"Populating list...",this.msgChangePage=e.msg_change_page||"Collecting paging data...",this.msgClear=e.msg_clear||"Clearing filters...",this.msgChangeResults=e.msg_change_results||"Changing results per page...",this.msgResetValues=e.msg_reset_grid_values||"Re-setting filters values...",this.msgResetPage=e.msg_reset_page||"Re-setting page...",this.msgResetPageLength=e.msg_reset_page_length||"Re-setting page length...",this.msgSort=e.msg_sort||"Sorting data...",this.msgLoadExtensions=e.msg_load_extensions||"Loading extensions...",this.msgLoadThemes=e.msg_load_themes||"Loading theme(s)...",this.prfxTf="TF",this.prfxFlt="flt",this.prfxValButton="btn",this.prfxInfDiv="inf_",this.prfxLDiv="ldiv_",this.prfxRDiv="rdiv_",this.prfxMDiv="mdiv_",this.prfxContentDiv="cont_",this.prfxCheckListDiv="chkdiv_",this.prfxSlcPages="slcPages_",this.prfxSlcResults="slcResults_",this.prfxSlcResultsTxt="slcResultsTxt_",this.prfxBtnNextSpan="btnNextSpan_",this.prfxBtnPrevSpan="btnPrevSpan_",this.prfxBtnLastSpan="btnLastSpan_",this.prfxBtnFirstSpan="btnFirstSpan_",this.prfxBtnNext="btnNext_",this.prfxBtnPrev="btnPrev_",this.prfxBtnLast="btnLast_",this.prfxBtnFirst="btnFirst_",this.prfxPgSpan="pgspan_",this.prfxPgBeforeSpan="pgbeforespan_",this.prfxPgAfterSpan="pgafterspan_",this.prfxCounter="counter_",this.prfxTotRows="totrows_span_",this.prfxTotRowsTxt="totRowsTextSpan_",this.prfxResetSpan="resetspan_",this.prfxLoader="load_",this.prfxStatus="status_",this.prfxStatusSpan="statusSpan_",this.prfxStatusTxt="statusText_",this.prfxCookieFltsValues="tf_flts_",this.prfxCookiePageNb="tf_pgnb_",this.prfxCookiePageLen="tf_pglen_",this.prfxMainTblCont="gridCont_",this.prfxTblCont="tblCont_",this.prfxHeadTblCont="tblHeadCont_",this.prfxHeadTbl="tblHead_",this.prfxGridFltTd="_td_",this.prfxGridTh="tblHeadTh_",this.prfxHelpSpan="helpSpan_",this.prfxHelpDiv="helpDiv_",this.prfxPopUpSpan="popUpSpan_",this.prfxPopUpDiv="popUpDiv_",this.hasStoredValues=!1,this.rememberGridValues=e.remember_grid_values===!0?!0:!1,this.fltsValuesCookie=this.prfxCookieFltsValues+this.id,this.rememberPageNb=this.paging&&e.remember_page_number?!0:!1,this.pgNbCookie=this.prfxCookiePageNb+this.id,this.rememberPageLen=this.paging&&e.remember_page_length?!0:!1,this.pgLenCookie=this.prfxCookiePageLen+this.id,this.cookieDuration=isNaN(e.set_cookie_duration)?1e5:parseInt(e.set_cookie_duration,10),this.hasExtensions=e.extensions===!0?!0:!1,this.extensions=this.hasExtensions?e.extensions:null,this.enableDefaultTheme=e.enable_default_theme===!0?!0:!1,this.hasThemes=e.enable_default_theme||e.themes&&p.isObj(e.themes)?!0:!1,this.themes=this.hasThemes?e.themes:null,this.themesPath=e.themes_path||this.basePath+"TF_Themes/",this.Cpt={loader:null,alternateRows:null,colOps:null,rowsCounter:null,GridLayout:null};var o=this;this.Evt={name:{filter:"Filter",populateselect:"Populate",populatechecklist:"PopulateCheckList",changepage:"ChangePage",clear:"Clear",changeresultsperpage:"ChangeResults",resetvalues:"ResetValues",resetpage:"ResetPage",resetpagelength:"ResetPageLength",sort:"Sort",loadextensions:"LoadExtensions",loadthemes:"LoadThemes"},getKeyCode:function(a){return a.charCode?a.charCode:a.keyCode?a.keyCode:a.which?a.which:0},_DetectKey:function(a){if(o.enterKey){var b=a||k.event;if(b){var c=o.Evt.getKeyCode(b);13===c?(o._Filter(),l.cancel(b),l.stop(b)):(o.isUserTyping=!0,k.clearInterval(o.onKeyUpTimer),o.onKeyUpTimer=void 0)}}},_OnKeyUp:function(a){function b(){k.clearInterval(o.onKeyUpTimer),o.onKeyUpTimer=void 0,o.isUserTyping||(o.Filter(),o.isUserTyping=null)}if(o.onKeyUp){var c=a||k.event,d=o.Evt.getKeyCode(c);o.isUserTyping=!1,13!==d&&9!==d&&27!==d&&38!==d&&40!==d?void 0===o.onKeyUpTimer&&(o.onKeyUpTimer=k.setInterval(b,o.onKeyUpDelay)):(k.clearInterval(o.onKeyUpTimer),o.onKeyUpTimer=void 0)}},_OnKeyDown:function(){o.onKeyUp&&(o.isUserTyping=!0)},_OnInpBlur:function(){o.onKeyUp&&(o.isUserTyping=!1,k.clearInterval(o.onKeyUpTimer)),""===this.value&&""!==o.inpWatermark&&(this.value=o.isInpWatermarkArray?o.inpWatermark[this.getAttribute("ct")]:o.inpWatermark,m.addClass(this,o.inpWatermarkCssClass)),o.ezEditTable&&(o.editable&&o.ezEditTable.Editable.Set(),o.selectable&&o.ezEditTable.Selection.Set())},_OnInpFocus:function(a){var b=a||k.event;if(o.activeFilterId=this.getAttribute("id"),o.activeFlt=m.id(o.activeFilterId),o.isInpWatermarkArray){var c=o.inpWatermark[this.getAttribute("ct")];this.value===c&&""!==c&&(this.value="",m.removeClass(this,o.inpWatermarkCssClass))}else this.value===o.inpWatermark&&""!==o.inpWatermark&&(this.value="",m.removeClass(this,o.inpWatermarkCssClass));o.popUpFilters&&(l.cancel(b),l.stop(b)),o.ezEditTable&&(o.editable&&o.ezEditTable.Editable.Remove(),o.selectable&&o.ezEditTable.Selection.Remove())},_OnSlcFocus:function(a){var b=a||k.event;if(o.activeFilterId=this.getAttribute("id"),o.activeFlt=m.id(o.activeFilterId),o.fillSlcOnDemand&&"0"===this.getAttribute("filled")){var c=this.getAttribute("ct");o.PopulateSelect(c),r.isIE()||this.setAttribute("filled","1")}o.popUpFilters&&(l.cancel(b),l.stop(b))},_OnSlcChange:function(a){if(o.activeFlt){var b=o.activeFlt.getAttribute("colIndex");if(!o.activeFlt||!b||o["col"+b]!==o.fltTypeCheckList||o.Evt._OnSlcChange.caller){var c=a||k.event;o.popUpFilters&&l.stop(c),o.onSlcChange&&o.Filter()}}},_OnSlcBlur:function(){},_OnCheckListChange:function(a){o.Evt._OnCheckListChange.caller&&o.Evt._OnSlcChange(a)},_OnCheckListClick:function(){if(o.fillSlcOnDemand&&"0"===this.getAttribute("filled")){var a=this.getAttribute("ct");o.PopulateCheckList(a),o.checkListDiv[a].onclick=null,o.checkListDiv[a].title=""}},_OnCheckListFocus:function(){o.activeFilterId=this.firstChild.getAttribute("id"),o.activeFlt=m.id(o.activeFilterId)},_OnCheckListBlur:function(){},_OnBtnClick:function(){o.Filter()},_OnSlcPagesChangeEvt:null,_EnableSlc:function(){this.firstChild.disabled=!1,this.firstChild.focus(),this.onclick=null},_Clear:function(){o.ClearFilters()},_OnHelpBtnClick:function(){o._ToggleHelp()},_Paging:{nextEvt:null,prevEvt:null,lastEvt:null,firstEvt:null}}}}function c(a,b){return a-b}function d(a,b){return b-a}function e(a,b){var c=n.lower(a),d=n.lower(b);return d>c?-1:c>d?1:0}function f(a,b){if(a){b||(b="us");var c=a;return c="us"===n.lower(b)?+c.replace(/[^\d\.-]/g,""):+c.replace(/[^\d\,-]/g,"").replace(",",".")}}function g(a,b){for(var c=!1,d=b?b:"script",e="script"==d?"src":"href",f=m.tag(v,d),g=0;g0?h[0].insertRow(this.filtersRowIndex):this.tbl.insertRow(this.filtersRowIndex),this.headersRow>1&&this.filtersRowIndex<=this.headersRow&&!this.popUpFilters&&this.headersRow++,this.popUpFilters&&this.headersRow++,g.className=this.fltsRowCssClass,this.isExternalFlt&&(!this.gridLayout||this.popUpFilters)&&(g.style.display="none")}this.nbFilterableRows=this.GetRowsNb(),this.nbVisibleRows=this.nbFilterableRows,this.nbRows=this.tbl.rows.length;for(var i=0;d>i;i++){var j=m.create(this.fltCellTag),k=this["col"+i],l=this.isExternalFlt&&this.externalFltTgtIds?this.externalFltTgtIds[i]:null;if(this.singleSearchFlt&&(j.colSpan=this.nbCells),this.gridLayout||g.appendChild(j),b=i==d-1&&this.displayBtn?this.fltSmallCssClass:this.fltCssClass,this.popUpFilters&&this.SetPopupFilter(i),void 0===k&&(k=void 0===c["col_"+i]?this.fltTypeInp:n.lower(c["col_"+i])),this.singleSearchFlt&&(k=this.fltTypeInp,b=this.singleFltCssClass),k===this.fltTypeSlc||k===this.fltTypeMulti){var p=m.create(this.fltTypeSlc,["id",this.prfxFlt+i+"_"+this.id],["ct",i],["filled","0"]);if(k===this.fltTypeMulti&&(p.multiple=this.fltTypeMulti,p.title=this.multipleSlcTooltip),p.className=n.lower(k)===this.fltTypeSlc?b:this.fltMultiCssClass,l?(m.id(l).appendChild(p),this.externalFltEls.push(p)):j.appendChild(p),this.fltIds.push(this.prfxFlt+i+"_"+this.id),this.fillSlcOnDemand||this._PopulateSelect(i),p.onkeypress=this.Evt._DetectKey,p.onchange=this.Evt._OnSlcChange,p.onfocus=this.Evt._OnSlcFocus,p.onblur=this.Evt._OnSlcBlur,this.fillSlcOnDemand){var q=m.createOpt(this.displayAllText,"");p.appendChild(q)}}else if(k===this.fltTypeCheckList){var r=m.create("div",["id",this.prfxCheckListDiv+i+"_"+this.id],["ct",i],["filled","0"]);r.className=this.checkListDivCssClass,l?(m.id(l).appendChild(r),this.externalFltEls.push(r)):j.appendChild(r),this.checkListDiv[i]=r,this.fltIds.push(this.prfxFlt+i+"_"+this.id),this.fillSlcOnDemand||this._PopulateCheckList(i),r.onclick=this.Evt._OnCheckListFocus,this.fillSlcOnDemand&&(r.onclick=this.Evt._OnCheckListClick,r.appendChild(m.text(this.activateCheckListTxt)))}else{var s=k===this.fltTypeInp?"text":"hidden",t=m.create(this.fltTypeInp,["id",this.prfxFlt+i+"_"+this.id],["type",s],["ct",i]);if("hidden"!=s&&(t.value=this.isInpWatermarkArray?this.inpWatermark[i]:this.inpWatermark),t.className=b,""!==this.inpWatermark&&m.addClass(t,this.inpWatermarkCssClass),t.onfocus=this.Evt._OnInpFocus,l?(m.id(l).appendChild(t),this.externalFltEls.push(t)):j.appendChild(t),this.fltIds.push(this.prfxFlt+i+"_"+this.id),t.onkeypress=this.Evt._DetectKey,t.onkeydown=this.Evt._OnKeyDown,t.onkeyup=this.Evt._OnKeyUp,t.onblur=this.Evt._OnInpBlur,this.rememberGridValues){var u=o.read(this.fltsValuesCookie),v=new RegExp(this.separator,"g"),w=u.split(v);" "!=w[i]&&this.SetFilterValue(i,w[i],!1)}}if(i==d-1&&this.displayBtn){var x=m.create(this.fltTypeInp,["id",this.prfxValButton+i+"_"+this.id],["type","button"],["value",this.btnText]);x.className=this.btnCssClass,l?m.id(l).appendChild(x):j.appendChild(x),x.onclick=this.Evt._OnBtnClick}}}else this.__resetGrid();else this.refRow=this.refRow-1,this.gridLayout&&(this.refRow=0),this.nbFilterableRows=this.GetRowsNb(),this.nbVisibleRows=this.nbFilterableRows,this.nbRows=this.nbFilterableRows+this.refRow;if(this.rowsCounter){var y=a("modules/rowsCounter").RowsCounter;this.Cpt.rowsCounter=new y(this),this.Cpt.rowsCounter.init()}if(this.statusBar&&this.SetStatusBar(),this.paging&&this.SetPaging(),this.hasResultsPerPage&&this.paging&&this.SetResultsPerPage(),this.btnReset&&this.SetResetBtn(),this.helpInstructions&&this.SetHelpInstructions(),this.hasColWidth&&!this.gridLayout&&this.SetColWidths(),this.alternateBgs&&this.isStartBgAlternate){var z=a("modules/alternateRows").AlternateRows;this.Cpt.alternateRows=new z(this),this.Cpt.alternateRows.init()}if(this.hasColOperation){var A=a("modules/colOps").ColOps;this.Cpt.colOps=new A(this),this.Cpt.colOps.calc()}(this.sort||this.gridLayout)&&this.SetSort(),(this.selectable||this.editable)&&this.SetEditable(),this.isFirstLoad=!1,this.hasGrid=!0,(this.rememberGridValues||this.rememberPageLen||this.rememberPageNb)&&this.ResetValues(),this.gridLayout||m.addClass(this.tbl,this.prfxTf),this.loader&&this.Cpt.loader.show("none"),this.hasExtensions&&this.LoadExtensions(),this.onFiltersLoaded&&this.onFiltersLoaded.call(null,this)}},EvtManager:function(a,b){function c(){if(a){switch(a){case d.Evt.name.filter:d.isModFilterFn?d.modFilterFn.call(null,d):d._Filter();break;case d.Evt.name.populateselect:d.refreshFilters?d._PopulateSelect(e,!0):d._PopulateSelect(e,!1,f,g);break;case d.Evt.name.populatechecklist:d._PopulateCheckList(e,f,g);break;case d.Evt.name.changepage:d._ChangePage(h);break;case d.Evt.name.clear:d._ClearFilters(),d._Filter();break;case d.Evt.name.changeresultsperpage:d._ChangeResultsPerPage();break;case d.Evt.name.resetvalues:d._ResetValues(),d._Filter();break;case d.Evt.name.resetpage:d._ResetPage(d.pgNbCookie);break;case d.Evt.name.resetpagelength:d._ResetPageLength(d.pgLenCookie);break;case d.Evt.name.sort:break;case d.Evt.name.loadextensions:d._LoadExtensions();break;case d.Evt.name.loadthemes:d._LoadThemes();break;default:d["_"+a].call(null,d,b)}(d.status||d.statusBar)&&d.StatusMsg(""),d.loader&&d.Cpt.loader.show("none")}}var d=this,e=b&&void 0!==b.slcIndex?b.slcIndex:null,f=b&&void 0!==b.slcExternal?b.slcExternal:!1,g=b&&void 0!==b.slcId?b.slcId:null,h=b&&void 0!==b.pgIndex?b.pgIndex:null;if(this.loader||this.status||this.statusBar){try{this.Cpt.loader.show(""),this.StatusMsg(d["msg"+a])}catch(i){}k.setTimeout(c,this.execDelay)}else c()},ImportModule:function(a){a.path&&a.name&&this.IncludeFile(a.name,a.path,a.init)},LoadExtensions:function(){if(!this.Ext){var a=this;this.Ext={list:{},add:function(b,c,d,e){var f=d.split("/")[d.split("/").length-1],g=new RegExp(f),h=d.replace(g,"");a.Ext.list[b]={name:b,description:c,file:f,path:h,callback:e}}}}this.EvtManager(this.Evt.name.loadextensions)},_LoadExtensions:function(){if(this.hasExtensions&&p.isArray(this.extensions.name)&&p.isArray(this.extensions.src))for(var a=this.extensions,b=0;b',this.btnPrevPageHtml='',this.btnNextPageHtml='',this.btnFirstPageHtml='',this.btnLastPageHtml='',this.loader=!0,this.loaderHtml='
',this.loaderText=null}},RemoveGrid:function(){if(this.fltGrid&&this.hasGrid){var a=this.tbl.rows;this.paging&&this.RemovePaging(),this.statusBar&&this.RemoveStatusBar(),this.rowsCounter&&this.Cpt.rowsCounter.destroy(),this.btnReset&&this.RemoveResetBtn(),(this.helpInstructions||!this.helpInstructions)&&this.RemoveHelpInstructions(),this.paging&&this.RemoveResultsPerPage(),this.isExternalFlt&&!this.popUpFilters&&this.RemoveExternalFlts(),this.infDiv&&this.RemoveTopDiv(),this.highlightKeywords&&this.UnhighlightAll(),this.sort&&this.RemoveSort(),this.loader&&this.Cpt.loader.remove(),this.popUpFilters&&this.RemovePopupFilters(),this.markActiveColumns&&this.ClearActiveColumns(),(this.editable||this.selectable)&&this.RemoveEditable();for(var b=this.refRow;b0&&!c.startRow?void 0:c.startRow||a.refRow,c.scroll_into_view=c.scroll_into_view===!1?!1:!0,c.base_path=c.base_path||a.basePath+"ezEditTable/",c.editable=a.editable=a.fObj.editable,c.selection=a.selectable=a.fObj.selectable,a.selectable&&(c.default_selection=c.default_selection||"row"),c.active_cell_css=c.active_cell_css||"ezETSelectedCell",a._lastValidRowIndex=0,a._lastRowIndex=0,a.selectable){var e=function(b,c,d){if(a.validRowsIndex){var e,f=a.validRowsIndex,g=f.length,h="row"!==b.defaultSelection?c.parentNode:c,i="TD"===c.nodeName?c:null,j=void 0!==d?b.Event.GetKey(d):0,k=q.has(f,h.rowIndex),l=34===j||33===j?a.pagingLength||b.nbRowsPerPage:1;if(k)34!==j&&33!==j?(a._lastValidRowIndex=q.indexByValue(f,h.rowIndex),a._lastRowIndex=h.rowIndex):(e=34===j?a._lastValidRowIndex+l<=g-1?f[a._lastValidRowIndex+l]:[g-1]:a._lastValidRowIndex-l<=f[0]?f[0]:f[a._lastValidRowIndex-l],a._lastRowIndex=e,a._lastValidRowIndex=q.indexByValue(f,e),o(e));else{if(h.rowIndex>a._lastRowIndex)if(h.rowIndex>=f[g-1])e=f[g-1];else{var m=a._lastValidRowIndex+l;e=m>g-1?f[g-1]:f[m]}else if(h.rowIndex<=f[0])e=f[0];else{var n=f[a._lastValidRowIndex-l];e=n?n:f[0]}a._lastRowIndex=h.rowIndex,o(e)}var o=function(d){if("row"===b.defaultSelection)b.Selection.SelectRowByIndex(d);else{b.ClearSelections();var e=c.cellIndex,f=a.tbl.rows[d];"both"===b.defaultSelection&&b.Selection.SelectRowByIndex(d),f&&b.Selection.SelectCell(f.cells[e])}if(a.validRowsIndex.length!==a.GetRowsNb()){var g=a.tbl.rows[d];g&&g.scrollIntoView(!1),i&&(i.cellIndex===a.GetCellsNb()-1&&a.gridLayout?a.tblCont.scrollLeft=1e8:0===i.cellIndex&&a.gridLayout?a.tblCont.scrollLeft=0:i.scrollIntoView(!1))}}}},f=function(b,c){var d="row"!==b.defaultSelection?c.parentNode:c;if(a.paging&&a.nbPages>1){b.nbRowsPerPage=a.pagingLength;var e=a.validRowsIndex,f=e.length,g=parseInt(a.startPagingRow,10)+parseInt(a.pagingLength,10),h=d.rowIndex;h===e[f-1]&&a.currentPageNb!=a.nbPages?a.SetPage("last"):h==e[0]&&1!==a.currentPageNb?a.SetPage("first"):h>e[g-1]&&he[0]&&a.SetPage("previous")}};if(a.paging&&(a.onAfterChangePage=function(a){var b=a.ezEditTable,c=b.Selection.GetActiveRow();c&&c.scrollIntoView(!1);var d=b.Selection.GetActiveCell();d&&d.scrollIntoView(!1)}),"row"===c.default_selection){var g=c.on_before_selected_row;c.on_before_selected_row=function(){f(arguments[0],arguments[1],arguments[2]),g&&g.call(null,arguments[0],arguments[1],arguments[2])};var h=c.on_after_selected_row;c.on_after_selected_row=function(){e(arguments[0],arguments[1],arguments[2]),h&&h.call(null,arguments[0],arguments[1],arguments[2])}}else{var i=c.on_before_selected_cell;c.on_before_selected_cell=function(){f(arguments[0],arguments[1],arguments[2]),i&&i.call(null,arguments[0],arguments[1],arguments[2])};var j=c.on_after_selected_cell;c.on_after_selected_cell=function(){e(arguments[0],arguments[1],arguments[2]),j&&j.call(null,arguments[0],arguments[1],arguments[2])}}}if(a.editable){var k=c.on_added_dom_row;if(c.on_added_dom_row=function(){a.nbFilterableRows++,a.paging?(a.nbRows++,a.nbVisibleRows++,a.nbFilterableRows++,a.paging=!1,a.RemovePaging(),a.AddPaging(!1)):a.Cpt.rowsCounter.refresh(),a.alternateBgs&&a.Cpt.alternateRows.init(),k&&k.call(null,arguments[0],arguments[1],arguments[2])},c.actions&&c.actions["delete"]){var l=c.actions["delete"].on_after_submit;c.actions["delete"].on_after_submit=function(){a.nbFilterableRows--,a.paging?(a.nbRows--,a.nbVisibleRows--,a.nbFilterableRows--,a.paging=!1,a.RemovePaging(),a.AddPaging(!1)):a.Cpt.rowsCounter.refresh(),a.alternateBgs&&a.Cpt.alternateRows.init(),l&&l.call(null,arguments[0],arguments[1])}}}try{a.ezEditTable=new EditTable(a.id,c,b),a.ezEditTable.Init()}catch(n){console.log(c.err)}},SetPaging:function(){if((this.hasGrid||this.isFirstLoad)&&this.paging&&(this.isPagingRemoved||this.isFirstLoad)){var a=this.fObj;this.pagingTgtId=a.paging_target_id||null,this.pagingLength=isNaN(a.paging_length)?10:a.paging_length,this.resultsPerPageTgtId=a.results_per_page_target_id||null,this.pgSlcCssClass=a.paging_slc_css_class||"pgSlc",this.pgInpCssClass=a.paging_inp_css_class||"pgNbInp",this.resultsSlcCssClass=a.results_slc_css_class||"rspg",this.resultsSpanCssClass=a.results_span_css_class||"rspgSpan",this.nbVisibleRows=0,this.nbHiddenRows=0,this.startPagingRow=0,this.nbPages=0,this.btnNextPageText=a.btn_next_page_text||">",this.btnPrevPageText=a.btn_prev_page_text||"<",this.btnLastPageText=a.btn_last_page_text||">|",this.btnFirstPageText=a.btn_first_page_text||"|<",this.btnNextPageHtml=a.btn_next_page_html||(this.enableIcons?'':null),this.btnPrevPageHtml=a.btn_prev_page_html||(this.enableIcons?'':null),this.btnFirstPageHtml=a.btn_first_page_html||(this.enableIcons?'':null),this.btnLastPageHtml=a.btn_last_page_html||(this.enableIcons?'':null),this.pageText=a.page_text||" Page ",this.ofText=a.of_text||" of ",this.nbPgSpanCssClass=a.nb_pages_css_class||"nbpg",this.hasPagingBtns=a.paging_btns===!1?!1:!0,this.pagingBtnEvents=null,this.pageSelectorType=a.page_selector_type||this.fltTypeSlc,this.onBeforeChangePage=p.isFn(a.on_before_change_page)?a.on_before_change_page:null,this.onAfterChangePage=p.isFn(a.on_after_change_page)?a.on_after_change_page:null;var b=this.refRow,c=this.nbRows;if(this.nbPages=Math.ceil((c-b)/this.pagingLength),!this.Evt._Paging.next){var d=this;this.Evt._Paging={slcIndex:function(){return d.pageSelectorType===d.fltTypeSlc?d.pagingSlc.options.selectedIndex:parseInt(d.pagingSlc.value,10)-1},nbOpts:function(){return d.pageSelectorType===d.fltTypeSlc?parseInt(d.pagingSlc.options.length,10)-1:d.nbPages-1},next:function(){d.Evt._Paging.nextEvt&&d.Evt._Paging.nextEvt();var a=d.Evt._Paging.slcIndex()0?d.Evt._Paging.slcIndex()-1:d.Evt._Paging.nbOpts();d.ChangePage(a)},last:function(){d.Evt._Paging.lastEvt&&d.Evt._Paging.lastEvt(),d.ChangePage(d.Evt._Paging.nbOpts())},first:function(){d.Evt._Paging.firstEvt&&d.Evt._Paging.firstEvt(),d.ChangePage(0)},_detectKey:function(a){var b=a||k.event;if(b){var c=d.Evt.getKeyCode(a);13===c&&(d.sorted?(d.Filter(),d.ChangePage(d.Evt._Paging.slcIndex())):d.ChangePage(),this.blur())}},nextEvt:null,prevEvt:null,lastEvt:null,firstEvt:null}}this.Evt._OnSlcPagesChange||(this.Evt._OnSlcPagesChange=function(){d.Evt._Paging._OnSlcPagesChangeEvt&&d.Evt._Paging._OnSlcPagesChangeEvt(),d.ChangePage(),this.blur(),this.parentNode&&r.isIE()&&this.parentNode.focus()});var e;this.pageSelectorType===this.fltTypeSlc&&(e=m.create(this.fltTypeSlc,["id",this.prfxSlcPages+this.id]),e.className=this.pgSlcCssClass,e.onchange=this.Evt._OnSlcPagesChange),this.pageSelectorType===this.fltTypeInp&&(e=m.create(this.fltTypeInp,["id",this.prfxSlcPages+this.id],["value",this.currentPageNb]),e.className=this.pgInpCssClass,e.onkeypress=this.Evt._Paging._detectKey);var f=m.create("span",["id",this.prfxBtnNextSpan+this.id]),g=m.create("span",["id",this.prfxBtnPrevSpan+this.id]),h=m.create("span",["id",this.prfxBtnLastSpan+this.id]),i=m.create("span",["id",this.prfxBtnFirstSpan+this.id]);if(this.hasPagingBtns){if(this.btnNextPageHtml)f.innerHTML=this.btnNextPageHtml,f.onclick=this.Evt._Paging.next;else{var j=m.create(this.fltTypeInp,["id",this.prfxBtnNext+this.id],["type","button"],["value",this.btnNextPageText],["title","Next"]);j.className=this.btnPageCssClass,j.onclick=this.Evt._Paging.next,f.appendChild(j)}if(this.btnPrevPageHtml)g.innerHTML=this.btnPrevPageHtml,g.onclick=this.Evt._Paging.prev;else{var l=m.create(this.fltTypeInp,["id",this.prfxBtnPrev+this.id],["type","button"],["value",this.btnPrevPageText],["title","Previous"]);l.className=this.btnPageCssClass,l.onclick=this.Evt._Paging.prev,g.appendChild(l)}if(this.btnLastPageHtml)h.innerHTML=this.btnLastPageHtml,h.onclick=this.Evt._Paging.last;else{var n=m.create(this.fltTypeInp,["id",this.prfxBtnLast+this.id],["type","button"],["value",this.btnLastPageText],["title","Last"]);n.className=this.btnPageCssClass,n.onclick=this.Evt._Paging.last,h.appendChild(n)}if(this.btnFirstPageHtml)i.innerHTML=this.btnFirstPageHtml,i.onclick=this.Evt._Paging.first;else{var o=m.create(this.fltTypeInp,["id",this.prfxBtnFirst+this.id],["type","button"],["value",this.btnFirstPageText],["title","First"]);o.className=this.btnPageCssClass,o.onclick=this.Evt._Paging.first,i.appendChild(o)}}this.pagingTgtId||this.SetTopDiv();var q=this.pagingTgtId?m.id(this.pagingTgtId):this.mDiv;""!==q.innerHTML&&(q.innerHTML=""),q.appendChild(i),q.appendChild(g);var s=m.create("span",["id",this.prfxPgBeforeSpan+this.id]);s.appendChild(m.text(this.pageText)),s.className=this.nbPgSpanCssClass,q.appendChild(s),q.appendChild(e);var t=m.create("span",["id",this.prfxPgAfterSpan+this.id]);t.appendChild(m.text(this.ofText)),t.className=this.nbPgSpanCssClass,q.appendChild(t);var u=m.create("span",["id",this.prfxPgSpan+this.id]);u.className=this.nbPgSpanCssClass,u.appendChild(m.text(" "+this.nbPages+" ")),q.appendChild(u),q.appendChild(f),q.appendChild(h),this.pagingSlc=m.id(this.prfxSlcPages+this.id),(!this.rememberGridValues||this.isPagingRemoved)&&this.SetPagingInfo(),this.fltGrid||(this.ValidateAllRows(),this.SetPagingInfo(this.validRowsIndex)),this.pagingBtnEvents=this.Evt._Paging,this.isPagingRemoved=!1}},RemovePaging:function(){if(this.hasGrid&&this.pagingSlc){var a,b,c,d,e,f,g;a=m.id(this.prfxBtnNextSpan+this.id),b=m.id(this.prfxBtnPrevSpan+this.id),c=m.id(this.prfxBtnLastSpan+this.id),d=m.id(this.prfxBtnFirstSpan+this.id),e=m.id(this.prfxPgBeforeSpan+this.id),f=m.id(this.prfxPgAfterSpan+this.id),g=m.id(this.prfxPgSpan+this.id),this.pagingSlc.parentNode.removeChild(this.pagingSlc),a&&a.parentNode.removeChild(a),b&&b.parentNode.removeChild(b),c&&c.parentNode.removeChild(c),d&&d.parentNode.removeChild(d),e&&e.parentNode.removeChild(e),f&&f.parentNode.removeChild(f),g&&g.parentNode.removeChild(g),this.pagingBtnEvents=null,this.pagingSlc=null,this.isPagingRemoved=!0}},SetPagingInfo:function(a){var b=this.tbl.rows,c=this.pagingTgtId?m.id(this.pagingTgtId):this.mDiv,d=m.id(this.prfxPgSpan+this.id); if(a&&a.length>0)this.validRowsIndex=a;else{this.validRowsIndex=[];for(var e=this.refRow;e0)if(c.style.visibility="visible",this.pageSelectorType===this.fltTypeSlc)for(var h=0;h=this.startPagingRow&&c>d?("true"!==e.getAttribute("validRow")&&e.getAttribute("validRow")||(e.style.display=""),this.alternateBgs&&this.Cpt.alternateRows.setRowBg(this.validRowsIndex[d],d)):(e.style.display="none",this.alternateBgs&&this.Cpt.alternateRows.removeRowBg(this.validRowsIndex[d]))}this.nbVisibleRows=this.validRowsIndex.length,this.isStartBgAlternate=!1,this.ApplyGridProps()},SetPage:function(a){if(this.hasGrid&&this.paging){var b=this.pagingBtnEvents,c=typeof a;if("string"===c)switch(n.lower(a)){case"next":b.next();break;case"previous":b.prev();break;case"last":b.last();break;case"first":b.first();break;default:b.next()}"number"===c&&this.ChangePage(a-1)}},SetResultsPerPage:function(){if((this.hasGrid||this.isFirstLoad)&&!this.resultsPerPageSlc&&this.resultsPerPage){if(!this.Evt._OnSlcResultsChange){var a=this;this.Evt._OnSlcResultsChange=function(){a.ChangeResultsPerPage(),this.blur(),this.parentNode&&r.isIE()&&this.parentNode.focus()}}var b=m.create(this.fltTypeSlc,["id",this.prfxSlcResults+this.id]);b.className=this.resultsSlcCssClass;var c=this.resultsPerPage[0],d=this.resultsPerPage[1],e=m.create("span",["id",this.prfxSlcResultsTxt+this.id]);e.className=this.resultsSpanCssClass,this.resultsPerPageTgtId||this.SetTopDiv();var f=this.resultsPerPageTgtId?m.id(this.resultsPerPageTgtId):this.rDiv;e.appendChild(m.text(c)),f.appendChild(e),f.appendChild(b),this.resultsPerPageSlc=m.id(this.prfxSlcResults+this.id);for(var g=0;g<, <=, >, >=, =, *, !, {, }, ||,&&, [empty], [nonempty], rgx:
These operators are described here:
http://tablefilter.free.fr/#operators
',this.helpInstrHtml=a.help_instructions_html||null,this.helpInstrBtnText=a.help_instructions_btn_text||"?",this.helpInstrBtnHtml=a.help_instructions_btn_html||null,this.helpInstrBtnCssClass=a.help_instructions_btn_css_class||"helpBtn",this.helpInstrContCssClass=a.help_instructions_container_css_class||"helpCont",this.helpInstrBtnEl=null,this.helpInstrContEl=null,this.helpInstrDefaultHtml='

HTML Table Filter Generator v. '+this.version+'

http://tablefilter.free.fr
©2009-'+this.year+' Max Guglielmi.
";var b=m.create("span",["id",this.prfxHelpSpan+this.id]),c=m.create("div",["id",this.prfxHelpDiv+this.id]);this.helpInstrTgtId||this.SetTopDiv();var d=this.helpInstrTgtId?m.id(this.helpInstrTgtId):this.rDiv;d.appendChild(b);var e=this.helpInstrContTgtId?m.id(this.helpInstrContTgtId):b;if(this.helpInstrBtnHtml){b.innerHTML=this.helpInstrBtnHtml;var f=b.firstChild;f.onclick=this.Evt._OnHelpBtnClick,e.appendChild(c)}else{e.appendChild(c);var g=m.create("a",["href","javascript:void(0);"]);g.className=this.helpInstrBtnCssClass,g.appendChild(m.text(this.helpInstrBtnText)),b.appendChild(g),g.onclick=this.Evt._OnHelpBtnClick}this.helpInstrHtml?(this.helpInstrContTgtId&&e.appendChild(c),c.innerHTML=this.helpInstrHtml,this.helpInstrContTgtId||(c.className=this.helpInstrContCssClass,c.ondblclick=this.Evt._OnHelpBtnClick)):(c.innerHTML=this.helpInstrText,c.className=this.helpInstrContCssClass,c.ondblclick=this.Evt._OnHelpBtnClick),c.innerHTML+=this.helpInstrDefaultHtml,this.helpInstrContEl=c,this.helpInstrBtnEl=b}},RemoveHelpInstructions:function(){this.helpInstrBtnEl&&(this.helpInstrBtnEl.parentNode.removeChild(this.helpInstrBtnEl),this.helpInstrBtnEl=null,this.helpInstrContEl&&(this.helpInstrContEl.parentNode.removeChild(this.helpInstrContEl),this.helpInstrContEl=null))},_ToggleHelp:function(){if(this.helpInstrContEl){var a=this.helpInstrContEl.style.display;if(""===a||"none"===a){this.helpInstrContEl.style.display="block";var b=m.position(this.helpInstrBtnEl).left;this.helpInstrContTgtId||(this.helpInstrContEl.style.left=b-this.helpInstrContEl.clientWidth+25+"px")}else this.helpInstrContEl.style.display="none"}},ChangePage:function(a){this.EvtManager(this.Evt.name.changepage,{pgIndex:a})},_ChangePage:function(a){this.paging&&(a||(a=this.pageSelectorType===this.fltTypeSlc?this.pagingSlc.options.selectedIndex:this.pagingSlc.value-1),a>=0&&a<=this.nbPages-1&&(this.onBeforeChangePage&&this.onBeforeChangePage.call(null,this,a),this.currentPageNb=parseInt(a,10)+1,this.pageSelectorType===this.fltTypeSlc?this.pagingSlc.options[a].selected=!0:this.pagingSlc.value=this.currentPageNb,this.rememberPageNb&&this.RememberPageNb(this.pgNbCookie),this.startPagingRow=this.pageSelectorType===this.fltTypeSlc?this.pagingSlc.value:a*this.pagingLength,this.GroupByPage(),this.onAfterChangePage&&this.onAfterChangePage.call(null,this,a)))},ChangeResultsPerPage:function(){this.EvtManager(this.Evt.name.changeresultsperpage)},_ChangeResultsPerPage:function(){if(this.paging){var a=this.resultsPerPageSlc,b=this.pageSelectorType==this.fltTypeSlc?this.pagingSlc.selectedIndex:parseInt(this.pagingSlc.value-1,10);if(this.pagingLength=parseInt(a.options[a.selectedIndex].value,10),this.startPagingRow=this.pagingLength*b,!isNaN(this.pagingLength)){if(this.startPagingRow>=this.nbFilterableRows&&(this.startPagingRow=this.nbFilterableRows-this.pagingLength),this.SetPagingInfo(),this.pageSelectorType===this.fltTypeSlc){var c=this.pagingSlc.options.length-1<=b?this.pagingSlc.options.length-1:b;this.pagingSlc.options[c].selected=!0}this.rememberPageLen&&this.RememberPageLength(this.pgLenCookie)}}},ResetPage:function(){this.EvtManager(this.Evt.name.resetpage)},_ResetPage:function(a){var b=o.read(a);""!==b&&this.ChangePage(b-1)},ResetPageLength:function(){this.EvtManager(this.Evt.name.resetpagelength)},_ResetPageLength:function(a){if(this.paging){var b=o.read(a);""!==b&&(this.resultsPerPageSlc.options[b].selected=!0,this.ChangeResultsPerPage())}},AddPaging:function(a){this.hasGrid&&!this.paging&&(this.paging=!0,this.isPagingRemoved=!0,this.SetPaging(),this.ResetValues(),a&&this.Filter())},PopulateSelect:function(a,b,c){this.EvtManager(this.Evt.name.populateselect,{slcIndex:a,slcExternal:b,slcId:c})},_PopulateSelect:function(a,b,f,g){function h(){if("innerhtml"===t)v+='";else{var a=m.createOpt(p.enableSlcResetFilter?p.displayAllText:"","");if(p.enableSlcResetFilter||(a.style.display="none"),l.appendChild(a),p.enableEmptyOption){var b=m.createOpt(p.emptyText,p.emOperator);l.appendChild(b)}if(p.enableNonEmptyOption){var c=m.createOpt(p.nonEmptyText,p.nmOperator);l.appendChild(c)}}}function i(){var c=l.value;l.innerHTML="",h();for(var d=0;d"+f+""}else{var j;j=p.fillSlcOnDemand&&c==u[d]&&p["col"+a]===p.fltTypeSlc?m.createOpt(f,e,!0):p["col"+a]!=p.fltTypeMulti?m.createOpt(f,e," "!==y[a]&&e==y[a]?!0:!1):m.createOpt(f,e,q.has(z,n.matchCase(u[d],p.matchCase),p.matchCase)||-1!==z.toString().indexOf(e)?!0:!1),g&&(j.disabled=!0),l.appendChild(j)}}"innerhtml"===t&&(l.innerHTML+=v),l.setAttribute("filled","1")}f=void 0===f?!1:f;var j=this.fltIds[a];if((m.id(j)||f)&&(m.id(g)||!f)){var k,l=m.id(f?g:j),p=this,r=this.tbl.rows,s=this.matchCase,t=n.lower(this.slcFillingMethod),u=[],v="",w=this.hasCustomSlcOptions&&q.has(this.customSlcOptions.cols,a),x=[];b&&this.activeFilterId&&(k=this.activeFilterId.split("_")[0],k=k.split(this.prfxFlt)[1]);var y=[],z=[];this.rememberGridValues&&(y=o.valueToArray(this.fltsValuesCookie,this.separator),y&&!n.isEmpty(y.toString())&&(w?z.push(y[a]):z=y[a].split(" "+p.orOperator+" ")));var A=null,B=null;b&&this.disableExcludedOptions&&(A=[],B=[]);for(var C=this.refRow;CF;F++)if(a===F&&(!b||b&&this.disableExcludedOptions)||a==F&&b&&(""===r[C].style.display&&!this.paging||this.paging&&(!this.validRowsIndex||this.validRowsIndex&&q.has(this.validRowsIndex,C))&&(void 0===k||k==a||k!=a&&q.has(this.validRowsIndex,C)))){var G=this.GetCellData(F,D[F]),H=n.matchCase(G,s);if(q.has(u,H,s)||u.push(G),b&&this.disableExcludedOptions){var I=B[F];I||(I=this.GetFilteredDataCol(F)),!q.has(I,H,s)&&!q.has(A,H,s)&&!this.isFirstLoad&&A.push(G)}}}if(w){var J=this.__getCustomValues(a);u=J[0],x=J[1]}if(this.sortSlc&&!w&&(s?(u.sort(),A&&A.sort()):(u.sort(e),A&&A.sort(e))),this.sortNumAsc&&q.has(this.sortNumAsc,a))try{u.sort(c),A&&A.sort(c),w&&x.sort(c)}catch(K){u.sort(),A&&A.sort(),w&&x.sort()}if(this.sortNumDesc&&q.has(this.sortNumDesc,a))try{u.sort(d),A&&A.sort(d),w&&x.sort(d)}catch(K){u.sort(),A&&A.sort(),w&&x.sort()}i()}},__deferMultipleSelection:function(a,b,c){if("select"===n.lower(a.nodeName)){var d=void 0===c?!1:c,e=this;k.setTimeout(function(){a.options[0].selected=!1,""===a.options[b].value?a.options[b].selected=!1:(a.options[b].selected=!0,d&&e.Filter())},.1)}},__getCustomValues:function(a){if(a){var b=this.hasCustomSlcOptions&&q.has(this.customSlcOptions.cols,a);if(b){for(var c=[],d=[],e=q.indexByValue(this.customSlcOptions.cols,a),f=this.customSlcOptions.values[e],g=this.customSlcOptions.texts[e],h=this.customSlcOptions.sorts[e],i=0;i0&&(p.hasCustomSlcOptions&&q.has(p.customSlcOptions.cols,a)?e.push(f):e=f.split(" "+p.orOperator+" "));for(var h=0;hA;A++)if(a===A&&(!this.refreshFilters||this.refreshFilters&&this.disableExcludedOptions)||a===A&&this.refreshFilters&&(""===r[x].style.display&&!this.paging||this.paging&&(!l||l===a||l!=a&&q.has(this.validRowsIndex,x)))){var B=this.GetCellData(A,y[A]),C=n.matchCase(B,this.matchCase);q.has(s,C,this.matchCase)||s.push(B);var D=w[A];this.refreshFilters&&this.disableExcludedOptions&&(D||(w[A]=this.GetFilteredDataCol(A)),!q.has(D,C,this.matchCase)&&!q.has(v,C,this.matchCase)&&!this.isFirstLoad&&v.push(B))}}if(t){var E=this.__getCustomValues(a);s=E[0],u=E[1]}if(this.sortSlc&&!t&&(this.matchCase?(s.sort(),v&&v.sort()):(s.sort(e),v&&v.sort(e))),this.sortNumAsc&&q.has(this.sortNumAsc,a))try{s.sort(c),v&&v.sort(c),t&&u.sort(c)}catch(F){s.sort(),v&&v.sort(),t&&u.sort()}if(this.sortNumDesc&&q.has(this.sortNumDesc,a))try{s.sort(d),v&&v.sort(d),t&&u.sort(d)}catch(F){s.sort(),v&&v.sort(),t&&u.sort()}h(this.separator),this.fillSlcOnDemand&&(j.innerHTML=""),j.appendChild(k),j.setAttribute("filled","1")}},__setCheckListValues:function(a){if(a){for(var b=a.value,c=parseInt(a.id.split("_")[2],10),d="ul",e="li",f=a;n.lower(f.nodeName)!==d;)f=f.parentNode;var g=f.childNodes[c],h=f.getAttribute("colIndex"),i=f.getAttribute("value"),j=f.getAttribute("indexes");if(a.checked){if(""===b){if(j&&""!==j)for(var k=j.split(this.separator),l=0;l':null);var b=m.create("span",["id",this.prfxResetSpan+this.id]);this.btnResetTgtId||this.SetTopDiv();var c=this.btnResetTgtId?m.id(this.btnResetTgtId):this.rDiv;if(c.appendChild(b),this.btnResetHtml){b.innerHTML=this.btnResetHtml;var d=b.firstChild;d.onclick=this.Evt._Clear}else{var e=m.create("a",["href","javascript:void(0);"]);e.className=this.btnResetCssClass,e.appendChild(m.text(this.btnResetText)),b.appendChild(e),e.onclick=this.Evt._Clear}this.btnResetEl=m.id(this.prfxResetSpan+this.id).firstChild}},RemoveResetBtn:function(){if(this.hasGrid&&this.btnResetEl){var a=m.id(this.prfxResetSpan+this.id);a&&a.parentNode.removeChild(a),this.btnResetEl=null}},SetStatusBar:function(){if(this.hasGrid||this.isFirstLoad){var a=this.fObj;this.statusBarTgtId=a.status_bar_target_id||null,this.statusBarDiv=null,this.statusBarSpan=null,this.statusBarSpanText=null,this.statusBarText=a.status_bar_text||"",this.statusBarCssClass=a.status_bar_css_class||"status",this.statusBarCloseDelay=250;var b=m.create("div",["id",this.prfxStatus+this.id]);b.className=this.statusBarCssClass;var c=m.create("span",["id",this.prfxStatusSpan+this.id]),d=m.create("span",["id",this.prfxStatusTxt+this.id]);d.appendChild(m.text(this.statusBarText)),this.onBeforeShowMsg=p.isFn(a.on_before_show_msg)?a.on_before_show_msg:null,this.onAfterShowMsg=p.isFn(a.on_after_show_msg)?a.on_after_show_msg:null,this.statusBarTgtId||this.SetTopDiv();var e=this.statusBarTgtId?m.id(this.statusBarTgtId):this.lDiv;this.statusBarDiv&&r.isIE()&&(this.statusBarDiv.outerHTML=""),this.statusBarTgtId?(e.appendChild(d),e.appendChild(c)):(b.appendChild(d),b.appendChild(c),e.appendChild(b)),this.statusBarDiv=m.id(this.prfxStatus+this.id),this.statusBarSpan=m.id(this.prfxStatusSpan+this.id),this.statusBarSpanText=m.id(this.prfxStatusTxt+this.id)}},RemoveStatusBar:function(){(this.hasGrid||this.statusBarDiv)&&(this.statusBarDiv.innerHTML="",this.statusBarDiv.parentNode.removeChild(this.statusBarDiv),this.statusBarSpan=null,this.statusBarSpanText=null,this.statusBarDiv=null)},StatusMsg:function(a){a||this.StatusMsg(""),this.status&&this.WinStatusMsg(a),this.statusBar&&this.StatusBarMsg(a)},WinStatusMsg:function(a){this.status&&(this.onBeforeShowMsg&&this.onBeforeShowMsg.call(null,this,a),k.status=a,this.onAfterShowMsg&&this.onAfterShowMsg.call(null,this,a))},StatusBarMsg:function(a){function b(){c.statusBarSpan.innerHTML=a,c.onAfterShowMsg&&c.onAfterShowMsg.call(null,c,a)}if(this.statusBar&&this.statusBarSpan){this.onBeforeShowMsg&&this.onBeforeShowMsg.call(null,this,a);var c=this,d=""===a?this.statusBarCloseDelay:1;k.setTimeout(b,d)}},SetWatermark:function(a){if(this.fltGrid||""!==this.inpWatermark){a=void 0===a?!0:a;for(var b=0;b',this.popUpDivCssClass=b.popup_div_css_class||"popUpFilter",this.onBeforePopUpOpen=p.isFn(b.on_before_popup_filter_open)?b.on_before_popup_filter_open:null,this.onAfterPopUpOpen=p.isFn(b.on_after_popup_filter_open)?b.on_after_popup_filter_open:null,this.onBeforePopUpClose=p.isFn(b.on_before_popup_filter_close)?b.on_before_popup_filter_close:null,this.onAfterPopUpClose=p.isFn(b.on_after_popup_filter_close)?b.on_after_popup_filter_close:null,this.externalFltTgtIds=[],this.popUpFltSpans=[],this.popUpFltImgs=[],this.popUpFltElms=this.popUpFltElmCache||[],this.popUpFltAdjustToContainer=!0;for(var c=this,d=0;dm):P?(q=u(a.replace(j,""),J),e=q>=m):R?(q=u(a.replace(k,""),J),e=m>=q):Q?(q=u(a.replace(o,""),J),e=m>q):S?(q=u(a.replace(p,""),J),e=m.toString()!=q.toString()):T?(q=u(a.replace(s,""),J),e=m.toString()==q.toString()):r.test(a)?e=g.__containsStr(a.replace(r,""),b,null,!1):t(a,J)?(q=u(a,J),e=m.toString()==q.toString()):L?e=n.isEmpty(b):M&&(e=!n.isEmpty(b));else if(g.hasColNbFormat&&g.colNbFormat[c]?(h=f(b,g.colNbFormat[c]),i=g.colNbFormat[c]):","===g.thousandsSeparator&&"."===g.decimalSeparator?(h=f(b,"us"),i="us"):(h=f(b,"eu"),i="eu"),C)e=h<=f(a.replace(j,""),i);else if(E)e=h>=f(a.replace(k,""),i);else if(B)e=hf(a.replace(o,""),i);else if(F)e=g.__containsStr(a.replace(p,""),b)?!1:!0;else if(H)e=g.__containsStr(a.replace(r,""),b,null,!1);else if(G)e=g.__containsStr(a.replace(s,""),b,null,!0);else if(I)e=0===b.indexOf(a.replace(v,""))?!0:!1;else if(K){var U=a.replace(w,"");e=b.lastIndexOf(U,b.length-1)===b.length-1-(U.length-1)&&b.lastIndexOf(U,b.length-1)>-1?!0:!1}else if(L)e=n.isEmpty(b);else if(M)e=!n.isEmpty(b);else if(N)try{var V=a.replace(A,""),W=new RegExp(V);e=W.test(b)}catch(X){e=!1}else{var Y=d["col_"+c];e=g.__containsStr(a,b,Y?Y:this.fltTypeInp)}return e}if(this.fltGrid&&(this.hasGrid||this.isFirstLoad)){this.onBeforeFilter&&this.onBeforeFilter.call(null,this),""!==this.inpWatermark&&this.SetWatermark(!1);var c=this.tbl.rows,d=this.fObj||{},e=0;this.validRowsIndex=[];var g=this;this.highlightKeywords&&this.UnhighlightAll(),this.popUpFilters&&this.SetAllPopupFiltersIcon(),this.markActiveColumns&&this.ClearActiveColumns(),this.searchArgs=this.GetFiltersValue();for(var h,i,j=new RegExp(this.leOperator),k=new RegExp(this.geOperator),l=new RegExp(this.lwOperator),o=new RegExp(this.grOperator),p=new RegExp(this.dfOperator),r=new RegExp(n.rgxEsc(this.lkOperator)),s=new RegExp(this.eqOperator),v=new RegExp(this.stOperator),w=new RegExp(this.enOperator),x=new RegExp(this.anOperator),y=(new RegExp(this.curExp),this.emOperator),z=this.nmOperator,A=new RegExp(n.rgxEsc(this.rgxOperator)),B=this.refRow;BH;H++){var I=this.searchArgs[this.singleSearchFlt?0:H],J=this.hasColDateType?this.colDateType[H]:this.defaultDateType;if(""!==I){var K=n.matchCase(this.GetCellData(H,C[H]),this.matchCase),L=I.split(this.orOperator),M=L.length>1?!0:!1,N=I.split(this.anOperator),O=N.length>1?!0:!1;if(M||O){for(var P,Q=!1,R=M?L:N,S=0;Sk;k++)if(k===a&&""===d[g].style.display){var l=n.lower(this.GetCellData(k,i[k])),m=this.colNbFormat?this.colNbFormat[a]:null,o=b?f(l,m):l;e.push(o)}}return e}},GetFilterValue:function(a){if(this.fltGrid){var b,c=this.GetFilterElement(a);if(!c)return"";var d=this.fltCol[a];if(d!==this.fltTypeMulti&&d!==this.fltTypeCheckList)b=c.value;else if(d===this.fltTypeMulti){b="";for(var e=0;e 0 ? true : false; - if(!Helpers.isIE()){ + + // if(!Helpers.isIE()){ //Col elements are enough to keep column widths after sorting and //filtering var createColTags = function(o){ if(!o){ return; } - for(var k=(o.nbCells-1); k>=0; k--){ - var col = Dom.create( 'col', ['id', o.id+'_col_'+k]); + for(var k=(tf.nbCells-1); k>=0; k--){ + var col = Dom.create('col', ['id', tf.id+'_col_'+k]); tbl.firstChild.parentNode.insertBefore(col, tbl.firstChild); - col.style.width = o.colWidth[k]; + col.style.width = tf.colWidth[k]; o.gridColElms[k] = col; } o.tblHasColTag = true; @@ -262,63 +276,63 @@ export class GridLayout{ if(!o.tblHasColTag){ createColTags(o); } else { - var cols = Dom.tag(tbl,'col'); - for(var ii=0; ii0 ){ - r = tbody[0].insertRow(0); - } else{ - r = tbl.insertRow(0); - } - r.style.height = '0px'; - for(var x=0; x0 ){ + // r = tbody[0].insertRow(0); + // } else{ + // r = tbl.insertRow(0); + // } + // r.style.height = '0px'; + // for(var x=0; x0){ - tbody[0].moveRow(o.leadColWidthsRow.rowIndex, 0); - } else { - tbl.moveRow(o.leadColWidthsRow.rowIndex, 0); - } - } - if(afterSortFn){ - afterSortFn.call(null, o, colIndex); - } - }; - } + // var afterSortFn = Types.isFn(f.on_after_sort) ? + // f.on_after_sort : null; + // f.on_after_sort = function(o,colIndex){ + // if(o.leadColWidthsRow.rowIndex !== 0){ + // var r = o.leadColWidthsRow; + // if(tbody.length>0){ + // tbody[0].moveRow(o.leadColWidthsRow.rowIndex, 0); + // } else { + // tbl.moveRow(o.leadColWidthsRow.rowIndex, 0); + // } + // } + // if(afterSortFn){ + // afterSortFn.call(null, o, colIndex); + // } + // }; + // } var afterColResizedFn = Types.isFn(f.on_after_col_resized) ? f.on_after_col_resized : null; @@ -333,11 +347,11 @@ export class GridLayout{ var thCW = o.crWColsRow.cells[colIndex].clientWidth; var tdCW = o.crWRowDataTbl.cells[colIndex].clientWidth; - if(Helpers.isIE()){ - tbl.style.width = o.headTbl.clientWidth+'px'; - } + // if(Helpers.isIE()){ + // tbl.style.width = o.headTbl.clientWidth+'px'; + // } - if(thCW != tdCW && !Helpers.isIE()){ + if(thCW != tdCW /*&& !Helpers.isIE()*/){ o.headTbl.style.width = tbl.clientWidth+'px'; } @@ -351,9 +365,12 @@ export class GridLayout{ } // Re-adjust reference row - tf.refRow = Helpers.isIE() ? (tf.refRow+1) : 0; + //tf.refRow = Helpers.isIE() ? (tf.refRow+1) : 0; } + /** + * Removes the grid layout + */ destroy(){ var tf = this.tf; var tbl = tf.tbl; diff --git a/src/TF_Modules/tfAdapter.sortabletable.js b/src/TF_Modules/tfAdapter.sortabletable.js new file mode 100644 index 00000000..55eea305 --- /dev/null +++ b/src/TF_Modules/tfAdapter.sortabletable.js @@ -0,0 +1,321 @@ +/*------------------------------------------------------------------------ + - HTML Table Filter Generator Sorting Feature + - TF Adapter v2.1 for WebFX Sortable Table 1.12 (Erik Arvidsson) + - By Max Guglielmi (tablefilter.free.fr) + - Licensed under the MIT License +-------------------------------------------------------------------------- +Copyright (c) 2009-2012 Max Guglielmi + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +------------------------------------------------------------------------ + - Changelog: + 1.1 [30-09-09] + When table is paged now the whole table is sorted and not + only the current page + 1.2 [05-12-09] + Added on_before_sort and on_after_sort callback functions + 1.3 [06-09-10] + Added IP adresses sort + 1.4 [22-01-11] + Added DDMMMYYYY date format support + 1.5 [20-02-11] + Image folder and sort icon can now be set in configuration + object + 1.6 [06-08-11] + Added on_sort_loaded callback function + 1.7 [20-08-11] + Added sort arrow css classes properties + Added sort custom key property allowing custom sorts + Added AddSortType public method + 1.8 [25-09-11] + Bug fix: sort did not take into account results per page changes + 1.9 [03-03-12] + Bug fix: custom value attribute value was read only by Firefox + 2.0 [08-04-12] + Bug fix: zebra rows background are no longer inverted after sort + 2.1 [25-08-12] + Bug fix: IE9 did not sort columns correctly +------------------------------------------------------------------------*/ + +TF.prototype.SetSortTable = function(){ + var o = this; //TF object + var f = o.fObj; //TF config object + var isTFPaged = false; + + //edit .sort-arrow.descending / .sort-arrow.ascending in filtergrid.css to reflect any path change + o.sortImgPath = f.sort_images_path != undefined ? f.sort_images_path : o.themesPath; + o.sortImgBlank = f.sort_image_blank != undefined ? f.sort_image_blank : 'blank.png'; + o.sortImgClassName = f.sort_image_class_name != undefined ? f.sort_image_class_name : 'sort-arrow'; + o.sortImgAscClassName = f.sort_image_asc_class_name != undefined ? f.sort_image_asc_class_name : 'ascending'; + o.sortImgDescClassName = f.sort_image_desc_class_name != undefined ? f.sort_image_desc_class_name : 'descending'; + o.sortCustomKey = f.sort_custom_key != undefined ? f.sort_custom_key : '_sortKey'; //cell attribute storing custom key + + /*** TF additional events ***/ + //additional paging events for alternating bg issue + o.Evt._Paging.nextEvt = function(){ if(o.sorted && o.alternateBgs) o.Filter(); } + o.Evt._Paging.prevEvt = o.Evt._Paging.nextEvt; + o.Evt._Paging.firstEvt = o.Evt._Paging.nextEvt; + o.Evt._Paging.lastEvt = o.Evt._Paging.nextEvt; + o.Evt._OnSlcPagesChangeEvt = o.Evt._Paging.nextEvt; + /*** ***/ + + /*** Extension events ***/ + //callback invoked after sort is loaded and instanciated + o.onSortLoaded = tf_IsFn(f.on_sort_loaded) ? f.on_sort_loaded : null; + //callback invoked before table is sorted + o.onBeforeSort = tf_IsFn(f.on_before_sort) ? f.on_before_sort : null; + //callback invoked after table is sorted + o.onAfterSort = tf_IsFn(f.on_after_sort) ? f.on_after_sort : null; + + /*** SortableTable ***/ + //in case SortableTable class is missing (sortabletable.js) + if((typeof SortableTable)=='undefined'){ return; } + + //overrides headerOnclick method in order to handle th + SortableTable.prototype.headerOnclick = function (e) { + if(!o.sort) return; // TF adaptation + var el = e.target || e.srcElement; // find Header element + + while (el.tagName != 'TD' && el.tagName != 'TH') // TF adaptation + el = el.parentNode; + + this.sort(SortableTable.msie ? SortableTable.getCellIndex(el) : el.cellIndex); + }; + + //overrides getCellIndex IE returns wrong cellIndex when columns are hidden + SortableTable.getCellIndex = function (oTd) { + var cells = oTd.parentNode.cells, + l = cells.length, i; + for (i = 0; cells[i] != oTd && i < l; i++) + ; + return i; + }; + + //overrides initHeader in order to handle filters row position + SortableTable.prototype.initHeader = function (oSortTypes) { + if (!this.tHead) return; + this.headersRow = o.headersRow; // TF adaptation + var cells = this.tHead.rows[this.headersRow].cells; // TF adaptation + var doc = this.tHead.ownerDocument || this.tHead.document; + this.sortTypes = oSortTypes || []; + var l = cells.length; + var img, c; + for (var i = 0; i < l; i++) { + c = cells[i]; + if (this.sortTypes[i] != null && this.sortTypes[i] != 'None') { + c.style.cursor = 'pointer'; + img = tf_CreateElm('img',['src', o.sortImgPath + o.sortImgBlank]); + c.appendChild(img); + if (this.sortTypes[i] != null) + c.setAttribute( '_sortType', this.sortTypes[i]); + tf_AddEvent(c, 'click', this._headerOnclick); + } else { + c.setAttribute( '_sortType', oSortTypes[i] ); + c._sortType = 'None'; + } + } + this.updateHeaderArrows(); + }; + + //overrides updateHeaderArrows in order to handle arrows + SortableTable.prototype.updateHeaderArrows = function () { + var cells, l, img; + if(o.sortConfig.asyncSort && o.sortConfig.triggerIds!=null){//external headers + var triggers = o.sortConfig.triggerIds; + cells = [], l = triggers.length; + for(var j=0; j val.length) val = '0'+val; + vals[x] = val; + } + val = vals.join('.'); + return val; +} + +function sortIP(a,b){ + var aa = ipAddress(a.value.tf_LCase()); + var bb = ipAddress(b.value.tf_LCase()); + if (aa==bb) return 0; + else if (aa0){ - // this.tbl.removeChild(thead[0]); - // } - - // //Headers table style - // 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; - - // //Headers container width - // this.headTblCont.style.width = this.tblCont.clientWidth+'px'; - - // //content table without headers needs col widths to be reset - // this.SetColWidths(); - - // this.tbl.style.width = ''; - // if(hlp.isIE()){ - // this.headTbl.style.width = ''; - // } - - // //scroll synchronisation - // var o = this; //TF object - // this.tblCont.onscroll = function(){ - // o.headTblCont.scrollLeft = this.scrollLeft; - // var _o = this; //this = scroll element - // //New pointerX calc taking into account scrollLeft - // if(!o.isPointerXOverwritten){ - // try{ - // o.Evt.pointerX = function(e){ - // e = e || global.event; - // var scrollLeft = tf_StandardBody().scrollLeft + - // _o.scrollLeft; - // return (e.pageX + _o.scrollLeft) || - // (e.clientX + scrollLeft); - // }; - // o.isPointerXOverwritten = true; - // } catch(err) { - // o.isPointerXOverwritten = false; - // } - // } - // }; - - // //Sort is enabled if not specified in config object - // if(f.sort !== false){ - // this.sort = true; - // this.sortConfig.asyncSort = true; - // this.sortConfig.triggerIds = sortTriggers; - // } - - // if(this.gridEnableColResizer){ - // if(!this.hasExtensions){ - // this.extensions = { - // name:['ColumnsResizer_'+this.id], - // src:[this.gridColResizerPath], - // description:['Columns Resizing'], - // initialize:[function(o){ - // o.SetColsResizer('ColumnsResizer_'+o.id);}] - // }; - // this.hasExtensions = true; - // } else { - // if(!this.__containsStr( - // 'colsresizer', - // str.lower(this.extensions.src.toString())) ){ - // this.extensions.name.push('ColumnsResizer_'+this.id); - // this.extensions.src.push(this.gridColResizerPath); - // this.extensions.description.push('Columns Resizing'); - // this.extensions.initialize.push(function(o){ - // o.SetColsResizer('ColumnsResizer_'+o.id);}); - // } - // } - // } - - // //Default columns resizer properties for grid layout - // f.col_resizer_cols_headers_table = this.headTbl.getAttribute('id'); - // f.col_resizer_cols_headers_index = this.gridHeadRowIndex; - // f.col_resizer_width_adjustment = 0; - // f.col_enable_text_ellipsis = false; - - // //Cols generation for all browsers excepted IE<=7 - // o.tblHasColTag = dom.tag(o.tbl,'col').length > 0 ? true : false; - // if(!hlp.isIE()){ - // //Col elements are enough to keep column widths after sorting and - // //filtering - // var createColTags = function(o){ - // if(!o){ - // return; - // } - // for(var k=(o.nbCells-1); k>=0; k--){ - // var col = dom.create( 'col', ['id', o.id+'_col_'+k]); - // o.tbl.firstChild.parentNode.insertBefore( - // col,o.tbl.firstChild); - // col.style.width = o.colWidth[k]; - // o.gridColElms[k] = col; - // } - // o.tblHasColTag = true; - // }; - // if(!o.tblHasColTag){ - // createColTags(o); - // } else { - // var cols = dom.tag(o.tbl,'col'); - // for(var ii=0; ii0 ){ - // r = tbody[0].insertRow(0); - // } else{ - // r = o.tbl.insertRow(0); - // } - // r.style.height = '0px'; - // for(var x=0; x0){ - // tbody[0].moveRow(o.leadColWidthsRow.rowIndex, 0); - // } else { - // o.tbl.moveRow(o.leadColWidthsRow.rowIndex, 0); - // } - // } - // if(afterSortFn){ - // afterSortFn.call(null,o,colIndex); - // } - // }; - // } - - // var afterColResizedFn = types.isFn(f.on_after_col_resized) ? - // f.on_after_col_resized : null; - // f.on_after_col_resized = function(o,colIndex){ - // if(!colIndex){ - // return; - // } - // var w = o.crWColsRow.cells[colIndex].style.width; - // var col = o.gridColElms[colIndex]; - // col.style.width = w; - - // var thCW = o.crWColsRow.cells[colIndex].clientWidth; - // var tdCW = o.crWRowDataTbl.cells[colIndex].clientWidth; - - // if(hlp.isIE()){ - // o.tbl.style.width = o.headTbl.clientWidth+'px'; - // } - - // if(thCW != tdCW && !hlp.isIE()){ - // o.headTbl.style.width = o.tbl.clientWidth+'px'; - // } - - // if(afterColResizedFn){ - // afterColResizedFn.call(null,o,colIndex); - // } - // }; - - // if(this.tbl.clientWidth !== this.headTbl.clientWidth){ - // this.tbl.style.width = this.headTbl.clientWidth+'px'; - // } - - // }, - - /*==================================================== - - removes the grid layout - =====================================================*/ - // RemoveGridLayout: function(){ - // if(!this.gridLayout){ - // return; - // } - // var t = this.tbl.parentNode.removeChild(this.tbl); - // this.tblMainCont.parentNode.insertBefore(t, 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 = dom.id(this.id); //needed to keep reference - // }, - /*==================================================== - generates popup filters div =====================================================*/ diff --git a/src/event.js b/src/event.js index 38609e26..ab15ba31 100644 --- a/src/event.js +++ b/src/event.js @@ -7,10 +7,10 @@ define(["exports"], function (exports) { var Event = { add: function (obj, type, func, capture) { - if (obj.attachEvent) { + if (obj.addEventListener) { + obj.addEventListener(type, func, capture); + } else if (obj.attachEvent) { obj.attachEvent("on" + type, func); - } else if (obj.addEventListener) { - obj.addEventListener(type, func, (capture === undefined ? false : capture)); } else { obj["on" + type] = func; } @@ -19,7 +19,7 @@ define(["exports"], function (exports) { if (obj.detachEvent) { obj.detachEvent("on" + type, func); } else if (obj.removeEventListener) { - obj.removeEventListener(type, func, (capture === undefined ? false : capture)); + obj.removeEventListener(type, func, capture); } else { obj["on" + type] = null; } diff --git a/src/event.js.map b/src/event.js.map index 4503b6b8..27d1abf4 100644 --- a/src/event.js.map +++ b/src/event.js.map @@ -1 +1 @@ -{"version":3,"sources":["src-es6/event.js"],"names":[],"mappings":";;;;;;;AAIA,MAAI,KAAK,GAAG;AACR,OAAG,EAAE,UAAS,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAC;AACnC,UAAG,GAAG,CAAC,WAAW,EAAC;AACf,WAAG,CAAC,WAAW,CAAC,IAAI,GAAC,IAAI,EAAE,IAAI,CAAC,CAAC;OACpC,MACI,IAAG,GAAG,CAAC,gBAAgB,EAAC;AACzB,WAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAC3B,CAAC,OAAO,KAAG,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC;OAChD,MAAK;AACF,WAAG,CAAC,IAAI,GAAC,IAAI,CAAC,GAAG,IAAI,CAAC;OACzB;KACJ;AACD,UAAM,EAAE,UAAS,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAC;AACtC,UAAG,GAAG,CAAC,WAAW,EAAC;AACf,WAAG,CAAC,WAAW,CAAC,IAAI,GAAC,IAAI,EAAC,IAAI,CAAC,CAAC;OACnC,UACO,GAAG,CAAC,mBAAmB,EAAC;AAC5B,WAAG,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAC9B,CAAC,OAAO,KAAG,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC;OAChD,MAAM;AACH,WAAG,CAAC,IAAI,GAAC,IAAI,CAAC,GAAG,IAAI,CAAC;OACzB;KACJ;AACD,QAAI,EAAE,UAAS,GAAG,EAAC;AACf,UAAG,CAAC,GAAG,EAAC;AACJ,WAAG,GAAG,MAAM,CAAC,KAAK,CAAC;OACtB;AACD,UAAG,GAAG,CAAC,eAAe,EAAC;AACnB,WAAG,CAAC,eAAe,EAAE,CAAC;OACzB,MAAM;AACH,WAAG,CAAC,YAAY,GAAG,IAAI,CAAC;OAC3B;KACJ;AACD,UAAM,EAAE,UAAS,GAAG,EAAC;AACjB,UAAG,CAAC,GAAG,EAAC;AACJ,WAAG,GAAG,MAAM,CAAC,KAAK,CAAC;OACtB;AACD,UAAG,GAAG,CAAC,cAAc,EAAE;AACnB,WAAG,CAAC,cAAc,EAAE,CAAC;OACxB,MAAM;AACH,WAAG,CAAC,WAAW,GAAG,KAAK,CAAC;OAC3B;KACJ;GACJ,CAAC;;AAEF,SAAO,CAAC,KAAK,GAAG,KAAK,CAAC","file":"src-es6/event.js","sourcesContent":["/**\r\n * DOM event utilities\r\n */\r\n\r\nvar Event = {\r\n add: function(obj, type, func, capture){\r\n if(obj.attachEvent){\r\n obj.attachEvent('on'+type, func);\r\n }\r\n else if(obj.addEventListener){\r\n obj.addEventListener(type, func,\r\n (capture===undefined ? false : capture));\r\n } else{\r\n obj['on'+type] = func;\r\n }\r\n },\r\n remove: function(obj, type, func, capture){\r\n if(obj.detachEvent){\r\n obj.detachEvent('on'+type,func);\r\n }\r\n else if(obj.removeEventListener){\r\n obj.removeEventListener(type, func,\r\n (capture===undefined ? false : capture));\r\n } else {\r\n obj['on'+type] = null;\r\n }\r\n },\r\n stop: function(evt){\r\n if(!evt){\r\n evt = window.event;\r\n }\r\n if(evt.stopPropagation){\r\n evt.stopPropagation();\r\n } else {\r\n evt.cancelBubble = true;\r\n }\r\n },\r\n cancel: function(evt){\r\n if(!evt){\r\n evt = window.event;\r\n }\r\n if(evt.preventDefault) {\r\n evt.preventDefault();\r\n } else {\r\n evt.returnValue = false;\r\n }\r\n }\r\n};\r\n\r\nexports.Event = Event;\r\n"]} \ No newline at end of file +{"version":3,"sources":["src-es6/event.js"],"names":[],"mappings":";;;;;;;AAIA,MAAI,KAAK,GAAG;AACR,OAAG,EAAE,UAAS,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAC;AACnC,UAAG,GAAG,CAAC,gBAAgB,EAAC;AACpB,WAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;OAC7C,MACI,IAAG,GAAG,CAAC,WAAW,EAAC;AACpB,WAAG,CAAC,WAAW,CAAC,IAAI,GAAC,IAAI,EAAE,IAAI,CAAC,CAAC;OACpC,MAAM;AACH,WAAG,CAAC,IAAI,GAAC,IAAI,CAAC,GAAG,IAAI,CAAC;OACzB;KACJ;AACD,UAAM,EAAE,UAAS,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAC;AACtC,UAAG,GAAG,CAAC,WAAW,EAAC;AACf,WAAG,CAAC,WAAW,CAAC,IAAI,GAAC,IAAI,EAAC,IAAI,CAAC,CAAC;OACnC,MACI,IAAG,GAAG,CAAC,mBAAmB,EAAC;AAC5B,WAAG,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;OAChD,MAAM;AACH,WAAG,CAAC,IAAI,GAAC,IAAI,CAAC,GAAG,IAAI,CAAC;OACzB;KACJ;AACD,QAAI,EAAE,UAAS,GAAG,EAAC;AACf,UAAG,CAAC,GAAG,EAAC;AACJ,WAAG,GAAG,MAAM,CAAC,KAAK,CAAC;OACtB;AACD,UAAG,GAAG,CAAC,eAAe,EAAC;AACnB,WAAG,CAAC,eAAe,EAAE,CAAC;OACzB,MAAM;AACH,WAAG,CAAC,YAAY,GAAG,IAAI,CAAC;OAC3B;KACJ;AACD,UAAM,EAAE,UAAS,GAAG,EAAC;AACjB,UAAG,CAAC,GAAG,EAAC;AACJ,WAAG,GAAG,MAAM,CAAC,KAAK,CAAC;OACtB;AACD,UAAG,GAAG,CAAC,cAAc,EAAE;AACnB,WAAG,CAAC,cAAc,EAAE,CAAC;OACxB,MAAM;AACH,WAAG,CAAC,WAAW,GAAG,KAAK,CAAC;OAC3B;KACJ;GACJ,CAAC;;AAEF,SAAO,CAAC,KAAK,GAAG,KAAK,CAAC","file":"src-es6/event.js","sourcesContent":["/**\r\n * DOM event utilities\r\n */\r\n\r\nvar Event = {\r\n add: function(obj, type, func, capture){\r\n if(obj.addEventListener){\r\n obj.addEventListener(type, func, capture);\r\n }\r\n else if(obj.attachEvent){\r\n obj.attachEvent('on'+type, func);\r\n } else {\r\n obj['on'+type] = func;\r\n }\r\n },\r\n remove: function(obj, type, func, capture){\r\n if(obj.detachEvent){\r\n obj.detachEvent('on'+type,func);\r\n }\r\n else if(obj.removeEventListener){\r\n obj.removeEventListener(type, func, capture);\r\n } else {\r\n obj['on'+type] = null;\r\n }\r\n },\r\n stop: function(evt){\r\n if(!evt){\r\n evt = window.event;\r\n }\r\n if(evt.stopPropagation){\r\n evt.stopPropagation();\r\n } else {\r\n evt.cancelBubble = true;\r\n }\r\n },\r\n cancel: function(evt){\r\n if(!evt){\r\n evt = window.event;\r\n }\r\n if(evt.preventDefault) {\r\n evt.preventDefault();\r\n } else {\r\n evt.returnValue = false;\r\n }\r\n }\r\n};\r\n\r\nexports.Event = Event;\r\n"]} \ No newline at end of file diff --git a/src/index.html b/src/index.html index ded40907..5189f005 100644 --- a/src/index.html +++ b/src/index.html @@ -2,6 +2,7 @@ HTML Table Filter Generator + @@ -12,7 +13,7 @@ Destination Road Distance (km) By Air (hrs) - By Rail (hrs) + By Rail (hrs) Sydney diff --git a/src/modules/gridLayout.js b/src/modules/gridLayout.js index e07f862b..7f6c39b6 100644 --- a/src/modules/gridLayout.js +++ b/src/modules/gridLayout.js @@ -39,6 +39,8 @@ define(["exports", "../dom", "../types", "../helpers", "../event"], function (ex //defines col resizer script path this.gridColResizerPath = f.grid_cont_col_resizer_path || this.basePath + "TFExt_ColsResizer/TFExt_ColsResizer.js"; + this.gridColElms = []; + this.tf = tf; }; @@ -50,6 +52,10 @@ define(["exports", "../dom", "../types", "../helpers", "../event"], function (ex var f = tf.fObj; var tbl = tf.tbl; + if (!tf.gridLayout) { + return; + } + tf.isExternalFlt = true; // default width of 100px if column widths not set @@ -172,21 +178,21 @@ define(["exports", "../dom", "../types", "../helpers", "../event"], function (ex this.headTbl.cellPadding = tbl.cellPadding; this.headTbl.cellSpacing = tbl.cellSpacing; - //Headers container width - this.headTblCont.style.width = this.tblCont.clientWidth + "px"; - //content table without headers needs col widths to be reset tf.SetColWidths(); + //Headers container width + this.headTblCont.style.width = this.tblCont.clientWidth + "px"; + tbl.style.width = ""; - if (Helpers.isIE()) { - this.headTbl.style.width = ""; - } + // if(Helpers.isIE()){ + // this.headTbl.style.width = ''; + // } //scroll synchronisation - var o = this; //TF object + var o = this; - Event.add(this.tblCont, "scroll", function () { + Event.add(this.tblCont, "scroll", function (evt) { //this = scroll element var scrollLeft = this.scrollLeft; o.headTblCont.scrollLeft = scrollLeft; @@ -243,78 +249,82 @@ define(["exports", "../dom", "../types", "../helpers", "../event"], function (ex //Cols generation for all browsers excepted IE<=7 o.tblHasColTag = Dom.tag(tbl, "col").length > 0 ? true : false; - if (!Helpers.isIE()) { - //Col elements are enough to keep column widths after sorting and - //filtering - var createColTags = function (o) { - if (!o) { - return; - } - for (var k = (o.nbCells - 1); k >= 0; k--) { - var col = Dom.create("col", ["id", o.id + "_col_" + k]); - tbl.firstChild.parentNode.insertBefore(col, tbl.firstChild); - col.style.width = o.colWidth[k]; - o.gridColElms[k] = col; - } - o.tblHasColTag = true; - }; - if (!o.tblHasColTag) { - createColTags(o); - } else { - var cols = Dom.tag(tbl, "col"); - for (var ii = 0; ii < o.nbCells; ii++) { - cols[ii].setAttribute("id", o.id + "_col_" + ii); - cols[ii].style.width = o.colWidth[ii]; - o.gridColElms.push(cols[ii]); - } + + // if(!Helpers.isIE()){ + //Col elements are enough to keep column widths after sorting and + //filtering + var createColTags = function (o) { + if (!o) { + return; + } + for (var k = (tf.nbCells - 1); k >= 0; k--) { + var col = Dom.create("col", ["id", tf.id + "_col_" + k]); + tbl.firstChild.parentNode.insertBefore(col, tbl.firstChild); + col.style.width = tf.colWidth[k]; + o.gridColElms[k] = col; + } + o.tblHasColTag = true; + }; + if (!o.tblHasColTag) { + createColTags(o); + } else { + var cols = Dom.tag(tbl, "col"); + for (var ii = 0; ii < tf.nbCells; ii++) { + cols[ii].setAttribute("id", tf.id + "_col_" + ii); + cols[ii].style.width = tf.colWidth[ii]; + o.gridColElms.push(cols[ii]); } } + // } //IE <= 7 needs an additional row for widths as col element width is //not enough... - if (Helpers.isIE()) { - var tbody = Dom.tag(tbl, "tbody"), r; - if (tbody.length > 0) { - r = tbody[0].insertRow(0); - } else { - r = tbl.insertRow(0); - } - r.style.height = "0px"; - for (var x = 0; x < o.nbCells; x++) { - var col = Dom.create("td", ["id", o.id + "_col_" + x]); - col.style.width = o.colWidth[x]; - tbl.rows[1].cells[x].style.width = ""; - r.appendChild(col); - o.gridColElms.push(col); - } - this.hasGridWidthsRow = true; - //Data table row with widths expressed - o.leadColWidthsRow = tbl.rows[0]; - o.leadColWidthsRow.setAttribute("validRow", "false"); + // if(Helpers.isIE()){ + // var tbody = Dom.tag(tbl,'tbody'), + // r; + // if( tbody.length>0 ){ + // r = tbody[0].insertRow(0); + // } else{ + // r = tbl.insertRow(0); + // } + // r.style.height = '0px'; + // for(var x=0; x 0) { - tbody[0].moveRow(o.leadColWidthsRow.rowIndex, 0); - } else { - tbl.moveRow(o.leadColWidthsRow.rowIndex, 0); - } - } - if (afterSortFn) { - afterSortFn.call(null, o, colIndex); - } - }; - } + // var afterSortFn = Types.isFn(f.on_after_sort) ? + // f.on_after_sort : null; + // f.on_after_sort = function(o,colIndex){ + // if(o.leadColWidthsRow.rowIndex !== 0){ + // var r = o.leadColWidthsRow; + // if(tbody.length>0){ + // tbody[0].moveRow(o.leadColWidthsRow.rowIndex, 0); + // } else { + // tbl.moveRow(o.leadColWidthsRow.rowIndex, 0); + // } + // } + // if(afterSortFn){ + // afterSortFn.call(null, o, colIndex); + // } + // }; + // } var afterColResizedFn = Types.isFn(f.on_after_col_resized) ? f.on_after_col_resized : null; f.on_after_col_resized = function (o, colIndex) { @@ -328,11 +338,11 @@ define(["exports", "../dom", "../types", "../helpers", "../event"], function (ex var thCW = o.crWColsRow.cells[colIndex].clientWidth; var tdCW = o.crWRowDataTbl.cells[colIndex].clientWidth; - if (Helpers.isIE()) { - tbl.style.width = o.headTbl.clientWidth + "px"; - } + // if(Helpers.isIE()){ + // tbl.style.width = o.headTbl.clientWidth+'px'; + // } - if (thCW != tdCW && !Helpers.isIE()) { + if (thCW != tdCW /*&& !Helpers.isIE()*/) { o.headTbl.style.width = tbl.clientWidth + "px"; } @@ -346,7 +356,7 @@ define(["exports", "../dom", "../types", "../helpers", "../event"], function (ex } // Re-adjust reference row - tf.refRow = Helpers.isIE() ? (tf.refRow + 1) : 0; + //tf.refRow = Helpers.isIE() ? (tf.refRow+1) : 0; } }, destroy: { diff --git a/src/modules/gridLayout.js.map b/src/modules/gridLayout.js.map index 2fe41121..ff6b5814 100644 --- a/src/modules/gridLayout.js.map +++ b/src/modules/gridLayout.js.map @@ -1 +1 @@ -{"version":3,"sources":["src-es6/modules/gridLayout.js"],"names":[],"mappings":"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","file":"src-es6/modules/gridLayout.js","sourcesContent":["import {Dom} from '../dom';\r\nimport {Types} from '../types';\r\nimport {Helpers} from '../helpers';\r\nimport {Event} from '../event';\r\n\r\nexport class GridLayout{\r\n\r\n constructor(tf) {\r\n var f = tf.fObj;\r\n\r\n //defines grid width\r\n this.gridWidth = f.grid_width || null;\r\n //defines grid height\r\n this.gridHeight = f.grid_height || null;\r\n //defines css class for main container\r\n this.gridMainContCssClass = f.grid_cont_css_class || 'grd_Cont';\r\n //defines css class for div containing table\r\n this.gridContCssClass = f.grid_tbl_cont_css_class || 'grd_tblCont';\r\n //defines css class for div containing headers' table\r\n this.gridHeadContCssClass = f.grid_tblHead_cont_css_class ||\r\n 'grd_headTblCont';\r\n //defines css class for div containing rows counter, paging etc.\r\n this.gridInfDivCssClass = f.grid_inf_grid_css_class || 'grd_inf';\r\n //defines which row contains column headers\r\n this.gridHeadRowIndex = f.grid_headers_row_index || 0;\r\n //array of headers row indexes to be placed in header table\r\n this.gridHeadRows = f.grid_headers_rows || [0];\r\n //generate filters in table headers\r\n this.gridEnableFilters = f.grid_enable_default_filters!==undefined ?\r\n f.grid_enable_default_filters : true;\r\n //default col width\r\n this.gridDefaultColWidth = f.grid_default_col_width || '100px';\r\n //enables/disables columns resizer\r\n this.gridEnableColResizer = f.grid_enable_cols_resizer!==undefined ?\r\n f.grid_enable_cols_resizer : false;\r\n //defines col resizer script path\r\n this.gridColResizerPath = f.grid_cont_col_resizer_path ||\r\n this.basePath+'TFExt_ColsResizer/TFExt_ColsResizer.js';\r\n\r\n this.tf = tf;\r\n }\r\n\r\n init(){\r\n var tf = this.tf;\r\n var f = tf.fObj;\r\n var tbl = tf.tbl;\r\n\r\n tf.isExternalFlt = true;\r\n\r\n // default width of 100px if column widths not set\r\n if(!tf.hasColWidth){\r\n tf.colWidth = [];\r\n for(var k=0; k0){\r\n tbl.removeChild(thead[0]);\r\n }\r\n\r\n //Headers table style\r\n this.headTbl.style.width = tbl.style.width;\r\n this.headTbl.style.tableLayout = 'fixed';\r\n tbl.style.tableLayout = 'fixed';\r\n this.headTbl.cellPadding = tbl.cellPadding;\r\n this.headTbl.cellSpacing = tbl.cellSpacing;\r\n\r\n //Headers container width\r\n this.headTblCont.style.width = this.tblCont.clientWidth+'px';\r\n\r\n //content table without headers needs col widths to be reset\r\n tf.SetColWidths();\r\n\r\n tbl.style.width = '';\r\n if(Helpers.isIE()){\r\n this.headTbl.style.width = '';\r\n }\r\n\r\n //scroll synchronisation\r\n var o = this; //TF object\r\n\r\n Event.add(this.tblCont, 'scroll', function(){\r\n //this = scroll element\r\n var scrollLeft = this.scrollLeft;\r\n o.headTblCont.scrollLeft = scrollLeft;\r\n //New pointerX calc taking into account scrollLeft\r\n if(!o.isPointerXOverwritten){\r\n try{\r\n o.Evt.pointerX = function(evt){\r\n var e = evt || global.event;\r\n var bdScrollLeft = tf_StandardBody().scrollLeft +\r\n scrollLeft;\r\n return (e.pageX + scrollLeft) ||\r\n (e.clientX + bdScrollLeft);\r\n };\r\n o.isPointerXOverwritten = true;\r\n } catch(err) {\r\n o.isPointerXOverwritten = false;\r\n }\r\n }\r\n });\r\n\r\n //Sort is enabled if not specified in config object\r\n if(f.sort !== false){\r\n tf.sort = true;\r\n tf.sortConfig.asyncSort = true;\r\n tf.sortConfig.triggerIds = sortTriggers;\r\n }\r\n\r\n if(this.gridEnableColResizer){\r\n if(!tf.hasExtensions){\r\n tf.extensions = {\r\n name:['ColumnsResizer_'+tf.id],\r\n src:[this.gridColResizerPath],\r\n description:['Columns Resizing'],\r\n initialize:[function(o){\r\n o.SetColsResizer('ColumnsResizer_'+o.id);}]\r\n };\r\n tf.hasExtensions = true;\r\n } else {\r\n if(!tf.__containsStr(\r\n 'colsresizer',\r\n Str.lower(tf.extensions.src.toString())) ){\r\n tf.extensions.name.push('ColumnsResizer_'+tf.id);\r\n tf.extensions.src.push(tf.gridColResizerPath);\r\n tf.extensions.description.push('Columns Resizing');\r\n tf.extensions.initialize.push(function(o){\r\n o.SetColsResizer('ColumnsResizer_'+o.id);});\r\n }\r\n }\r\n }\r\n\r\n //Default columns resizer properties for grid layout\r\n f.col_resizer_cols_headers_table = this.headTbl.getAttribute('id');\r\n f.col_resizer_cols_headers_index = this.gridHeadRowIndex;\r\n f.col_resizer_width_adjustment = 0;\r\n f.col_enable_text_ellipsis = false;\r\n\r\n //Cols generation for all browsers excepted IE<=7\r\n o.tblHasColTag = Dom.tag(tbl, 'col').length > 0 ? true : false;\r\n if(!Helpers.isIE()){\r\n //Col elements are enough to keep column widths after sorting and\r\n //filtering\r\n var createColTags = function(o){\r\n if(!o){\r\n return;\r\n }\r\n for(var k=(o.nbCells-1); k>=0; k--){\r\n var col = Dom.create( 'col', ['id', o.id+'_col_'+k]);\r\n tbl.firstChild.parentNode.insertBefore(col, tbl.firstChild);\r\n col.style.width = o.colWidth[k];\r\n o.gridColElms[k] = col;\r\n }\r\n o.tblHasColTag = true;\r\n };\r\n if(!o.tblHasColTag){\r\n createColTags(o);\r\n } else {\r\n var cols = Dom.tag(tbl,'col');\r\n for(var ii=0; ii0 ){\r\n r = tbody[0].insertRow(0);\r\n } else{\r\n r = tbl.insertRow(0);\r\n }\r\n r.style.height = '0px';\r\n for(var x=0; x0){\r\n tbody[0].moveRow(o.leadColWidthsRow.rowIndex, 0);\r\n } else {\r\n tbl.moveRow(o.leadColWidthsRow.rowIndex, 0);\r\n }\r\n }\r\n if(afterSortFn){\r\n afterSortFn.call(null, o, colIndex);\r\n }\r\n };\r\n }\r\n\r\n var afterColResizedFn = Types.isFn(f.on_after_col_resized) ?\r\n f.on_after_col_resized : null;\r\n f.on_after_col_resized = function(o,colIndex){\r\n if(!colIndex){\r\n return;\r\n }\r\n var w = o.crWColsRow.cells[colIndex].style.width;\r\n var col = o.gridColElms[colIndex];\r\n col.style.width = w;\r\n\r\n var thCW = o.crWColsRow.cells[colIndex].clientWidth;\r\n var tdCW = o.crWRowDataTbl.cells[colIndex].clientWidth;\r\n\r\n if(Helpers.isIE()){\r\n tbl.style.width = o.headTbl.clientWidth+'px';\r\n }\r\n\r\n if(thCW != tdCW && !Helpers.isIE()){\r\n o.headTbl.style.width = tbl.clientWidth+'px';\r\n }\r\n\r\n if(afterColResizedFn){\r\n afterColResizedFn.call(null,o,colIndex);\r\n }\r\n };\r\n\r\n if(tbl.clientWidth !== this.headTbl.clientWidth){\r\n tbl.style.width = this.headTbl.clientWidth+'px';\r\n }\r\n\r\n // Re-adjust reference row\r\n tf.refRow = Helpers.isIE() ? (tf.refRow+1) : 0;\r\n }\r\n\r\n destroy(){\r\n var tf = this.tf;\r\n var tbl = tf.tbl;\r\n\r\n if(!tf.gridLayout){\r\n return;\r\n }\r\n var t = tbl.parentNode.removeChild(tbl);\r\n this.tblMainCont.parentNode.insertBefore(t, this.tblMainCont);\r\n this.tblMainCont.parentNode.removeChild(this.tblMainCont);\r\n\r\n this.tblMainCont = null;\r\n this.headTblCont = null;\r\n this.headTbl = null;\r\n this.tblCont = null;\r\n\r\n tbl.outerHTML = tf.sourceTblHtml;\r\n //needed to keep reference of table element\r\n tbl = Dom.id(tf.id);\r\n }\r\n}"]} \ No newline at end of file +{"version":3,"sources":["src-es6/modules/gridLayout.js"],"names":[],"mappings":"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","file":"src-es6/modules/gridLayout.js","sourcesContent":["import {Dom} from '../dom';\r\nimport {Types} from '../types';\r\nimport {Helpers} from '../helpers';\r\nimport {Event} from '../event';\r\n\r\nexport class GridLayout{\r\n\r\n /**\r\n * Grid layout, table with fixed headers\r\n * @param {Object} tf TableFilter instance\r\n */\r\n constructor(tf) {\r\n var f = tf.fObj;\r\n\r\n //defines grid width\r\n this.gridWidth = f.grid_width || null;\r\n //defines grid height\r\n this.gridHeight = f.grid_height || null;\r\n //defines css class for main container\r\n this.gridMainContCssClass = f.grid_cont_css_class || 'grd_Cont';\r\n //defines css class for div containing table\r\n this.gridContCssClass = f.grid_tbl_cont_css_class || 'grd_tblCont';\r\n //defines css class for div containing headers' table\r\n this.gridHeadContCssClass = f.grid_tblHead_cont_css_class ||\r\n 'grd_headTblCont';\r\n //defines css class for div containing rows counter, paging etc.\r\n this.gridInfDivCssClass = f.grid_inf_grid_css_class || 'grd_inf';\r\n //defines which row contains column headers\r\n this.gridHeadRowIndex = f.grid_headers_row_index || 0;\r\n //array of headers row indexes to be placed in header table\r\n this.gridHeadRows = f.grid_headers_rows || [0];\r\n //generate filters in table headers\r\n this.gridEnableFilters = f.grid_enable_default_filters!==undefined ?\r\n f.grid_enable_default_filters : true;\r\n //default col width\r\n this.gridDefaultColWidth = f.grid_default_col_width || '100px';\r\n //enables/disables columns resizer\r\n this.gridEnableColResizer = f.grid_enable_cols_resizer!==undefined ?\r\n f.grid_enable_cols_resizer : false;\r\n //defines col resizer script path\r\n this.gridColResizerPath = f.grid_cont_col_resizer_path ||\r\n this.basePath+'TFExt_ColsResizer/TFExt_ColsResizer.js';\r\n\r\n this.gridColElms = [];\r\n\r\n this.tf = tf;\r\n }\r\n\r\n /**\r\n * Generates a grid with fixed headers\r\n */\r\n init(){\r\n var tf = this.tf;\r\n var f = tf.fObj;\r\n var tbl = tf.tbl;\r\n\r\n if(!tf.gridLayout){\r\n return;\r\n }\r\n\r\n tf.isExternalFlt = true;\r\n\r\n // default width of 100px if column widths not set\r\n if(!tf.hasColWidth){\r\n tf.colWidth = [];\r\n for(var k=0; k0){\r\n tbl.removeChild(thead[0]);\r\n }\r\n\r\n //Headers table style\r\n this.headTbl.style.width = tbl.style.width;\r\n this.headTbl.style.tableLayout = 'fixed';\r\n tbl.style.tableLayout = 'fixed';\r\n this.headTbl.cellPadding = tbl.cellPadding;\r\n this.headTbl.cellSpacing = tbl.cellSpacing;\r\n\r\n //content table without headers needs col widths to be reset\r\n tf.SetColWidths();\r\n\r\n //Headers container width\r\n this.headTblCont.style.width = this.tblCont.clientWidth+'px';\r\n\r\n tbl.style.width = '';\r\n // if(Helpers.isIE()){\r\n // this.headTbl.style.width = '';\r\n // }\r\n\r\n //scroll synchronisation\r\n var o = this;\r\n\r\n Event.add(this.tblCont, 'scroll', function(evt){\r\n //this = scroll element\r\n var scrollLeft = this.scrollLeft;\r\n o.headTblCont.scrollLeft = scrollLeft;\r\n //New pointerX calc taking into account scrollLeft\r\n if(!o.isPointerXOverwritten){\r\n try{\r\n o.Evt.pointerX = function(evt){\r\n var e = evt || global.event;\r\n var bdScrollLeft = tf_StandardBody().scrollLeft +\r\n scrollLeft;\r\n return (e.pageX + scrollLeft) ||\r\n (e.clientX + bdScrollLeft);\r\n };\r\n o.isPointerXOverwritten = true;\r\n } catch(err) {\r\n o.isPointerXOverwritten = false;\r\n }\r\n }\r\n });\r\n\r\n //Sort is enabled if not specified in config object\r\n if(f.sort !== false){\r\n tf.sort = true;\r\n tf.sortConfig.asyncSort = true;\r\n tf.sortConfig.triggerIds = sortTriggers;\r\n }\r\n\r\n if(this.gridEnableColResizer){\r\n if(!tf.hasExtensions){\r\n tf.extensions = {\r\n name:['ColumnsResizer_'+tf.id],\r\n src:[this.gridColResizerPath],\r\n description:['Columns Resizing'],\r\n initialize:[function(o){\r\n o.SetColsResizer('ColumnsResizer_'+o.id);}]\r\n };\r\n tf.hasExtensions = true;\r\n } else {\r\n if(!tf.__containsStr(\r\n 'colsresizer',\r\n Str.lower(tf.extensions.src.toString())) ){\r\n tf.extensions.name.push('ColumnsResizer_'+tf.id);\r\n tf.extensions.src.push(tf.gridColResizerPath);\r\n tf.extensions.description.push('Columns Resizing');\r\n tf.extensions.initialize.push(function(o){\r\n o.SetColsResizer('ColumnsResizer_'+o.id);});\r\n }\r\n }\r\n }\r\n\r\n //Default columns resizer properties for grid layout\r\n f.col_resizer_cols_headers_table = this.headTbl.getAttribute('id');\r\n f.col_resizer_cols_headers_index = this.gridHeadRowIndex;\r\n f.col_resizer_width_adjustment = 0;\r\n f.col_enable_text_ellipsis = false;\r\n\r\n //Cols generation for all browsers excepted IE<=7\r\n o.tblHasColTag = Dom.tag(tbl, 'col').length > 0 ? true : false;\r\n\r\n // if(!Helpers.isIE()){\r\n //Col elements are enough to keep column widths after sorting and\r\n //filtering\r\n var createColTags = function(o){\r\n if(!o){\r\n return;\r\n }\r\n for(var k=(tf.nbCells-1); k>=0; k--){\r\n var col = Dom.create('col', ['id', tf.id+'_col_'+k]);\r\n tbl.firstChild.parentNode.insertBefore(col, tbl.firstChild);\r\n col.style.width = tf.colWidth[k];\r\n o.gridColElms[k] = col;\r\n }\r\n o.tblHasColTag = true;\r\n };\r\n if(!o.tblHasColTag){\r\n createColTags(o);\r\n } else {\r\n var cols = Dom.tag(tbl, 'col');\r\n for(var ii=0; ii0 ){\r\n // r = tbody[0].insertRow(0);\r\n // } else{\r\n // r = tbl.insertRow(0);\r\n // }\r\n // r.style.height = '0px';\r\n // for(var x=0; x0){\r\n // tbody[0].moveRow(o.leadColWidthsRow.rowIndex, 0);\r\n // } else {\r\n // tbl.moveRow(o.leadColWidthsRow.rowIndex, 0);\r\n // }\r\n // }\r\n // if(afterSortFn){\r\n // afterSortFn.call(null, o, colIndex);\r\n // }\r\n // };\r\n // }\r\n\r\n var afterColResizedFn = Types.isFn(f.on_after_col_resized) ?\r\n f.on_after_col_resized : null;\r\n f.on_after_col_resized = function(o,colIndex){\r\n if(!colIndex){\r\n return;\r\n }\r\n var w = o.crWColsRow.cells[colIndex].style.width;\r\n var col = o.gridColElms[colIndex];\r\n col.style.width = w;\r\n\r\n var thCW = o.crWColsRow.cells[colIndex].clientWidth;\r\n var tdCW = o.crWRowDataTbl.cells[colIndex].clientWidth;\r\n\r\n // if(Helpers.isIE()){\r\n // tbl.style.width = o.headTbl.clientWidth+'px';\r\n // }\r\n\r\n if(thCW != tdCW /*&& !Helpers.isIE()*/){\r\n o.headTbl.style.width = tbl.clientWidth+'px';\r\n }\r\n\r\n if(afterColResizedFn){\r\n afterColResizedFn.call(null,o,colIndex);\r\n }\r\n };\r\n\r\n if(tbl.clientWidth !== this.headTbl.clientWidth){\r\n tbl.style.width = this.headTbl.clientWidth+'px';\r\n }\r\n\r\n // Re-adjust reference row\r\n //tf.refRow = Helpers.isIE() ? (tf.refRow+1) : 0;\r\n }\r\n\r\n /**\r\n * Removes the grid layout\r\n */\r\n destroy(){\r\n var tf = this.tf;\r\n var tbl = tf.tbl;\r\n\r\n if(!tf.gridLayout){\r\n return;\r\n }\r\n var t = tbl.parentNode.removeChild(tbl);\r\n this.tblMainCont.parentNode.insertBefore(t, this.tblMainCont);\r\n this.tblMainCont.parentNode.removeChild(this.tblMainCont);\r\n\r\n this.tblMainCont = null;\r\n this.headTblCont = null;\r\n this.headTbl = null;\r\n this.tblCont = null;\r\n\r\n tbl.outerHTML = tf.sourceTblHtml;\r\n //needed to keep reference of table element\r\n tbl = Dom.id(tf.id);\r\n }\r\n}"]} \ No newline at end of file diff --git a/src/sortabletable.js b/src/sortabletable.js new file mode 100644 index 00000000..21d97474 --- /dev/null +++ b/src/sortabletable.js @@ -0,0 +1,438 @@ +/*----------------------------------------------------------------------------\ +| Sortable Table 1.12 | +|-----------------------------------------------------------------------------| +| Created by Erik Arvidsson | +| (http://webfx.eae.net/contact.html#erik) | +| For WebFX (http://webfx.eae.net/) | +|-----------------------------------------------------------------------------| +| A DOM 1 based script that allows an ordinary HTML table to be sortable. | +|-----------------------------------------------------------------------------| +| Copyright (c) 1998 - 2006 Erik Arvidsson | +|-----------------------------------------------------------------------------| +| Licensed under the Apache License, Version 2.0 (the "License"); you may not | +| use this file except in compliance with the License. You may obtain a copy | +| of the License at http://www.apache.org/licenses/LICENSE-2.0 | +| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | +| Unless required by applicable law or agreed to in writing, software | +| distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | +| WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | +| License for the specific language governing permissions and limitations | +| under the License. | +|-----------------------------------------------------------------------------| +| 2003-01-10 | First version | +| 2003-01-19 | Minor changes to the date parsing | +| 2003-01-28 | JScript 5.0 fixes (no support for 'in' operator) | +| 2003-02-01 | Sloppy typo like error fixed in getInnerText | +| 2003-07-04 | Added workaround for IE cellIndex bug. | +| 2003-11-09 | The bDescending argument to sort was not correctly working | +| | Using onclick DOM0 event if no support for addEventListener | +| | or attachEvent | +| 2004-01-13 | Adding addSortType and removeSortType which makes it a lot | +| | easier to add new, custom sort types. | +| 2004-01-27 | Switch to use descending = false as the default sort order. | +| | Change defaultDescending to suit your needs. | +| 2004-03-14 | Improved sort type None look and feel a bit | +| 2004-08-26 | Made the handling of tBody and tHead more flexible. Now you | +| | can use another tHead or no tHead, and you can chose some | +| | other tBody. | +| 2006-04-25 | Changed license to Apache Software License 2.0 | +|-----------------------------------------------------------------------------| +| Created 2003-01-10 | All changes are in the log above. | Updated 2006-04-25 | +\----------------------------------------------------------------------------*/ + + +function SortableTable(oTable, oSortTypes) { + + this.sortTypes = oSortTypes || []; + + this.sortColumn = null; + this.descending = null; + + var oThis = this; + this._headerOnclick = function (e) { + oThis.headerOnclick(e); + }; + + if (oTable) { + this.setTable( oTable ); + this.document = oTable.ownerDocument || oTable.document; + } + else { + this.document = document; + } + + + // only IE needs this + var win = this.document.defaultView || this.document.parentWindow; + this._onunload = function () { + oThis.destroy(); + }; + if (win && typeof win.attachEvent != "undefined") { + win.attachEvent("onunload", this._onunload); + } +} + +SortableTable.gecko = navigator.product == "Gecko"; +SortableTable.msie = /msie/i.test(navigator.userAgent); +// Mozilla is faster when doing the DOM manipulations on +// an orphaned element. MSIE is not +SortableTable.removeBeforeSort = SortableTable.gecko; + +SortableTable.prototype.onsort = function () {}; + +// default sort order. true -> descending, false -> ascending +SortableTable.prototype.defaultDescending = false; + +// shared between all instances. This is intentional to allow external files +// to modify the prototype +SortableTable.prototype._sortTypeInfo = {}; + +SortableTable.prototype.setTable = function (oTable) { + if ( this.tHead ) + this.uninitHeader(); + this.element = oTable; + this.setTHead( oTable.tHead ); + this.setTBody( oTable.tBodies[0] ); +}; + +SortableTable.prototype.setTHead = function (oTHead) { + if (this.tHead && this.tHead != oTHead ) + this.uninitHeader(); + this.tHead = oTHead; + this.initHeader( this.sortTypes ); +}; + +SortableTable.prototype.setTBody = function (oTBody) { + this.tBody = oTBody; +}; + +SortableTable.prototype.setSortTypes = function ( oSortTypes ) { + if ( this.tHead ) + this.uninitHeader(); + this.sortTypes = oSortTypes || []; + if ( this.tHead ) + this.initHeader( this.sortTypes ); +}; + +// adds arrow containers and events +// also binds sort type to the header cells so that reordering columns does +// not break the sort types +SortableTable.prototype.initHeader = function (oSortTypes) { + if (!this.tHead) return; + var cells = this.tHead.rows[0].cells; + var doc = this.tHead.ownerDocument || this.tHead.document; + this.sortTypes = oSortTypes || []; + var l = cells.length; + var img, c; + for (var i = 0; i < l; i++) { + c = cells[i]; + if (this.sortTypes[i] != null && this.sortTypes[i] != "None") { + img = doc.createElement("IMG"); + img.src = "images/blank.png"; + c.appendChild(img); + if (this.sortTypes[i] != null) + c._sortType = this.sortTypes[i]; + if (typeof c.addEventListener != "undefined") + c.addEventListener("click", this._headerOnclick, false); + else if (typeof c.attachEvent != "undefined") + c.attachEvent("onclick", this._headerOnclick); + else + c.onclick = this._headerOnclick; + } + else + { + c.setAttribute( "_sortType", oSortTypes[i] ); + c._sortType = "None"; + } + } + this.updateHeaderArrows(); +}; + +// remove arrows and events +SortableTable.prototype.uninitHeader = function () { + if (!this.tHead) return; + var cells = this.tHead.rows[0].cells; + var l = cells.length; + var c; + for (var i = 0; i < l; i++) { + c = cells[i]; + if (c._sortType != null && c._sortType != "None") { + c.removeChild(c.lastChild); + if (typeof c.removeEventListener != "undefined") + c.removeEventListener("click", this._headerOnclick, false); + else if (typeof c.detachEvent != "undefined") + c.detachEvent("onclick", this._headerOnclick); + c._sortType = null; + c.removeAttribute( "_sortType" ); + } + } +}; + +SortableTable.prototype.updateHeaderArrows = function () { + if (!this.tHead) return; + var cells = this.tHead.rows[0].cells; + var l = cells.length; + var img; + for (var i = 0; i < l; i++) { + if (cells[i]._sortType != null && cells[i]._sortType != "None") { + img = cells[i].lastChild; + if (i == this.sortColumn) + img.className = "sort-arrow " + (this.descending ? "descending" : "ascending"); + else + img.className = "sort-arrow"; + } + } +}; + +SortableTable.prototype.headerOnclick = function (e) { + // find TD element + var el = e.target || e.srcElement; + while (el.tagName != "TD") + el = el.parentNode; + + this.sort(SortableTable.msie ? SortableTable.getCellIndex(el) : el.cellIndex); +}; + +// IE returns wrong cellIndex when columns are hidden +SortableTable.getCellIndex = function (oTd) { + var cells = oTd.parentNode.childNodes + var l = cells.length; + var i; + for (i = 0; cells[i] != oTd && i < l; i++) + ; + return i; +}; + +SortableTable.prototype.getSortType = function (nColumn) { + return this.sortTypes[nColumn] || "String"; +}; + +// only nColumn is required +// if bDescending is left out the old value is taken into account +// if sSortType is left out the sort type is found from the sortTypes array + +SortableTable.prototype.sort = function (nColumn, bDescending, sSortType) { + if (!this.tBody) return; + if (sSortType == null) + sSortType = this.getSortType(nColumn); + + // exit if None + if (sSortType == "None") + return; + + if (bDescending == null) { + if (this.sortColumn != nColumn) + this.descending = this.defaultDescending; + else + this.descending = !this.descending; + } + else + this.descending = bDescending; + + this.sortColumn = nColumn; + + if (typeof this.onbeforesort == "function") + this.onbeforesort(); + + var f = this.getSortFunction(sSortType, nColumn); + var a = this.getCache(sSortType, nColumn); + var tBody = this.tBody; + + a.sort(f); + + if (this.descending) + a.reverse(); + + if (SortableTable.removeBeforeSort) { + // remove from doc + var nextSibling = tBody.nextSibling; + var p = tBody.parentNode; + p.removeChild(tBody); + } + + // insert in the new order + var l = a.length; + for (var i = 0; i < l; i++) + tBody.appendChild(a[i].element); + + if (SortableTable.removeBeforeSort) { + // insert into doc + p.insertBefore(tBody, nextSibling); + } + + this.updateHeaderArrows(); + + this.destroyCache(a); + + if (typeof this.onsort == "function") + this.onsort(); +}; + +SortableTable.prototype.asyncSort = function (nColumn, bDescending, sSortType) { + var oThis = this; + this._asyncsort = function () { + oThis.sort(nColumn, bDescending, sSortType); + }; + window.setTimeout(this._asyncsort, 1); +}; + +SortableTable.prototype.getCache = function (sType, nColumn) { + if (!this.tBody) return []; + var rows = this.tBody.rows; + var l = rows.length; + var a = new Array(l); + var r; + for (var i = 0; i < l; i++) { + r = rows[i]; + a[i] = { + value: this.getRowValue(r, sType, nColumn), + element: r + }; + }; + return a; +}; + +SortableTable.prototype.destroyCache = function (oArray) { + var l = oArray.length; + for (var i = 0; i < l; i++) { + oArray[i].value = null; + oArray[i].element = null; + oArray[i] = null; + } +}; + +SortableTable.prototype.getRowValue = function (oRow, sType, nColumn) { + // if we have defined a custom getRowValue use that + if (this._sortTypeInfo[sType] && this._sortTypeInfo[sType].getRowValue) + return this._sortTypeInfo[sType].getRowValue(oRow, nColumn); + + var s; + var c = oRow.cells[nColumn]; + if (typeof c.innerText != "undefined") + s = c.innerText; + else + s = SortableTable.getInnerText(c); + return this.getValueFromString(s, sType); +}; + +SortableTable.getInnerText = function (oNode) { + var s = ""; + var cs = oNode.childNodes; + var l = cs.length; + for (var i = 0; i < l; i++) { + switch (cs[i].nodeType) { + case 1: //ELEMENT_NODE + s += SortableTable.getInnerText(cs[i]); + break; + case 3: //TEXT_NODE + s += cs[i].nodeValue; + break; + } + } + return s; +}; + +SortableTable.prototype.getValueFromString = function (sText, sType) { + if (this._sortTypeInfo[sType]) + return this._sortTypeInfo[sType].getValueFromString( sText ); + return sText; + /* + switch (sType) { + case "Number": + return Number(sText); + case "CaseInsensitiveString": + return sText.toUpperCase(); + case "Date": + var parts = sText.split("-"); + var d = new Date(0); + d.setFullYear(parts[0]); + d.setDate(parts[2]); + d.setMonth(parts[1] - 1); + return d.valueOf(); + } + return sText; + */ + }; + +SortableTable.prototype.getSortFunction = function (sType, nColumn) { + if (this._sortTypeInfo[sType]) + return this._sortTypeInfo[sType].compare; + return SortableTable.basicCompare; +}; + +SortableTable.prototype.destroy = function () { + this.uninitHeader(); + var win = this.document.parentWindow; + if (win && typeof win.detachEvent != "undefined") { // only IE needs this + win.detachEvent("onunload", this._onunload); + } + this._onunload = null; + this.element = null; + this.tHead = null; + this.tBody = null; + this.document = null; + this._headerOnclick = null; + this.sortTypes = null; + this._asyncsort = null; + this.onsort = null; +}; + +// Adds a sort type to all instance of SortableTable +// sType : String - the identifier of the sort type +// fGetValueFromString : function ( s : string ) : T - A function that takes a +// string and casts it to a desired format. If left out the string is just +// returned +// fCompareFunction : function ( n1 : T, n2 : T ) : Number - A normal JS sort +// compare function. Takes two values and compares them. If left out less than, +// <, compare is used +// fGetRowValue : function( oRow : HTMLTRElement, nColumn : int ) : T - A function +// that takes the row and the column index and returns the value used to compare. +// If left out then the innerText is first taken for the cell and then the +// fGetValueFromString is used to convert that string the desired value and type + +SortableTable.prototype.addSortType = function (sType, fGetValueFromString, fCompareFunction, fGetRowValue) { + this._sortTypeInfo[sType] = { + type: sType, + getValueFromString: fGetValueFromString || SortableTable.idFunction, + compare: fCompareFunction || SortableTable.basicCompare, + getRowValue: fGetRowValue + }; +}; + +// this removes the sort type from all instances of SortableTable +SortableTable.prototype.removeSortType = function (sType) { + delete this._sortTypeInfo[sType]; +}; + +SortableTable.basicCompare = function compare(n1, n2) { + if (n1.value < n2.value) + return -1; + if (n2.value < n1.value) + return 1; + return 0; +}; + +SortableTable.idFunction = function (x) { + return x; +}; + +SortableTable.toUpperCase = function (s) { + return s.toUpperCase(); +}; + +SortableTable.toDate = function (s) { + var parts = s.split("-"); + var d = new Date(0); + d.setFullYear(parts[0]); + d.setDate(parts[2]); + d.setMonth(parts[1] - 1); + return d.valueOf(); +}; + + +// add sort types +SortableTable.prototype.addSortType("Number", Number); +SortableTable.prototype.addSortType("CaseInsensitiveString", SortableTable.toUpperCase); +SortableTable.prototype.addSortType("Date", SortableTable.toDate); +SortableTable.prototype.addSortType("String"); +// None is a special case