1
0
Fork 0
mirror of https://github.com/koalyptus/TableFilter.git synced 2024-05-23 16:52:26 +02:00
TableFilter/dist/TF_Modules/tf_ezEditTable.js
2015-03-06 19:49:30 +11:00

1 line
6.4 KiB
JavaScript

TF.prototype.SetEditable=function(){if(!this.selectable&&!this.editable)return;var e=this.fObj;this.ezEditTableConfig=e.ezEditTable_config!=undefined?e.ezEditTable_config:{},this.ezEditTableConfig.name=this.ezEditTableConfig["name"]!=undefined?e.ezEditTable_config.name:"ezedittable",this.ezEditTableConfig.src=this.ezEditTableConfig["src"]!=undefined?e.ezEditTable_config.src:this.basePath+"ezEditTable/ezEditTable.js",this.ezEditTableConfig.loadStylesheet=this.ezEditTableConfig["loadStylesheet"]!=undefined?e.ezEditTable_config.loadStylesheet:!1,this.ezEditTableConfig.stylesheet=this.ezEditTableConfig["stylesheet"]!=undefined?e.ezEditTable_config.stylesheet:this.basePath+"ezEditTable/ezEditTable.css",this.ezEditTableConfig.stylesheetName=this.ezEditTableConfig["stylesheetName"]!=undefined?e.ezEditTable_config.stylesheetName:"ezEditTableCss",this.ezEditTableConfig.err='Failed to instantiate EditTable object.\n"ezEditTable" module may not be available.',tf_IsImported(this.ezEditTableConfig.src)?this._EnableEditable():this.IncludeFile(this.ezEditTableConfig.name,this.ezEditTableConfig.src,this._EnableEditable),this.ezEditTableConfig.loadStylesheet&&!tf_IsImported(this.ezEditTableConfig.stylesheet,"link")&&this.IncludeFile(this.ezEditTableConfig.stylesheetName,this.ezEditTableConfig.stylesheet,null,"link")},TF.prototype.RemoveEditable=function(){this.ezEditTable&&(this.selectable&&(this.ezEditTable.Selection.ClearSelections(),this.ezEditTable.Selection.Remove()),this.editable&&this.ezEditTable.Editable.Remove())},TF.prototype.ResetEditable=function(){this.ezEditTable&&(this.selectable&&this.ezEditTable.Selection.Set(),this.editable&&this.ezEditTable.Editable.Set())},TF.prototype._EnableEditable=function(e){e||(e=this);var t,n=tf_Tag(e.tbl,"thead");n.length>0&&!e.ezEditTableConfig.startRow?t=undefined:t=e.ezEditTableConfig.startRow||e.refRow,e.ezEditTableConfig.scroll_into_view=e.ezEditTableConfig.scroll_into_view!=undefined?e.ezEditTableConfig.scroll_into_view:!0,e.ezEditTableConfig.base_path=e.ezEditTableConfig.base_path!=undefined?e.ezEditTableConfig.base_path:e.basePath+"ezEditTable/",e.ezEditTableConfig.editable=e.editable,e.ezEditTableConfig.selection=e.selectable,e.selectable&&(e.ezEditTableConfig.default_selection=e.ezEditTableConfig.default_selection!=undefined?e.ezEditTableConfig.default_selection:"row"),e.ezEditTableConfig.active_cell_css=e.ezEditTableConfig.active_cell_css!=undefined?e.ezEditTableConfig.active_cell_css:"ezETSelectedCell",e._lastValidRowIndex=0,e._lastRowIndex=0;if(e.selectable){function r(t,n,r){function h(r){if(t.defaultSelection=="row")t.Selection.SelectRowByIndex(r);else{t.ClearSelections();var i=n.cellIndex,o=e.tbl.rows[r];t.defaultSelection=="both"&&t.Selection.SelectRowByIndex(r),o&&t.Selection.SelectCell(o.cells[i])}if(e.validRowsIndex.length!=e.GetRowsNb()){var o=e.tbl.rows[r];o&&o.scrollIntoView(!1),s&&(s.cellIndex==e.GetCellsNb()-1&&e.gridLayout?e.tblCont.scrollLeft=1e8:s.cellIndex==0&&e.gridLayout?e.tblCont.scrollLeft=0:s.scrollIntoView(!1))}}if(!e.validRowsIndex)return;var i=t.defaultSelection!="row"?n.parentNode:n,s=n.nodeName=="TD"?n:null,o=r!=undefined?t.Event.GetKey(r):0,u=e.validRowsIndex.tf_Has(i.rowIndex),a,f=o==34||o==33?e.pagingLength||t.nbRowsPerPage:1;if(!u){if(i.rowIndex>e._lastRowIndex)if(i.rowIndex>=e.validRowsIndex[e.validRowsIndex.length-1])a=e.validRowsIndex[e.validRowsIndex.length-1];else{var l=e._lastValidRowIndex+f;l>e.validRowsIndex.length-1?a=e.validRowsIndex[e.validRowsIndex.length-1]:a=e.validRowsIndex[l]}else if(i.rowIndex<e.validRowsIndex[0])a=e.validRowsIndex[0];else{var c=e.validRowsIndex[e._lastValidRowIndex-f];a=c?c:e.validRowsIndex[0]}e._lastRowIndex=i.rowIndex,h(a)}else o!=34&&o!=33?(e._lastValidRowIndex=e.validRowsIndex.tf_IndexByValue(i.rowIndex),e._lastRowIndex=i.rowIndex):(o==34?e._lastValidRowIndex+f<=e.validRowsIndex.length-1?a=e.validRowsIndex[e._lastValidRowIndex+f]:a=e.validRowsIndex[e.validRowsIndex.length-1]:e._lastValidRowIndex-f<e.validRowsIndex[0]?a=e.validRowsIndex[0]:a=e.validRowsIndex[e._lastValidRowIndex-f],e._lastRowIndex=a,e._lastValidRowIndex=e.validRowsIndex.tf_IndexByValue(a),h(a))}function i(t,n,r){var i=t.defaultSelection!="row"?n.parentNode:n;if(e.paging&&e.nbPages>1){t.nbRowsPerPage=e.pagingLength;var s=parseInt(e.startPagingRow)+parseInt(e.pagingLength),o=i.rowIndex;o==e.validRowsIndex[e.validRowsIndex.length-1]&&e.currentPageNb!=e.nbPages?e.SetPage("last"):o==e.validRowsIndex[0]&&e.currentPageNb!=1?e.SetPage("first"):o>e.validRowsIndex[s-1]&&o<e.validRowsIndex[e.validRowsIndex.length-1]?e.SetPage("next"):o<e.validRowsIndex[e.startPagingRow]&&o>e.validRowsIndex[0]&&e.SetPage("previous")}}e.paging&&(e.onAfterChangePage=function(e,t){var n=e.ezEditTable.Selection.GetActiveRow();n&&n.scrollIntoView(!1);var r=e.ezEditTable.Selection.GetActiveCell();r&&r.scrollIntoView(!1)});if(e.ezEditTableConfig.default_selection=="row"){var s=e.ezEditTableConfig.on_before_selected_row;e.ezEditTableConfig.on_before_selected_row=function(){i(arguments[0],arguments[1],arguments[2]),s&&s.call(null,arguments[0],arguments[1],arguments[2])};var o=e.ezEditTableConfig.on_after_selected_row;e.ezEditTableConfig.on_after_selected_row=function(){r(arguments[0],arguments[1],arguments[2]),o&&o.call(null,arguments[0],arguments[1],arguments[2])}}else{var s=e.ezEditTableConfig.on_before_selected_cell;e.ezEditTableConfig.on_before_selected_cell=function(){i(arguments[0],arguments[1],arguments[2]),s&&s.call(null,arguments[0],arguments[1],arguments[2])};var o=e.ezEditTableConfig.on_after_selected_cell;e.ezEditTableConfig.on_after_selected_cell=function(){r(arguments[0],arguments[1],arguments[2]),o&&o.call(null,arguments[0],arguments[1],arguments[2])}}}if(e.editable){var u=e.ezEditTableConfig.on_added_dom_row;e.ezEditTableConfig.on_added_dom_row=function(){e.nbFilterableRows++,e.paging?(e.nbRows++,e.nbVisibleRows++,e.nbFilterableRows++,e.paging=!1,e.RemovePaging(),e.AddPaging(!1)):e.RefreshNbRows(),e.alternateBgs&&e.SetAlternateRows(),u&&u.call(null,arguments[0],arguments[1],arguments[2])};if(e.ezEditTableConfig.actions&&e.ezEditTableConfig.actions["delete"]){var a=e.ezEditTableConfig.actions["delete"].on_after_submit;e.ezEditTableConfig.actions["delete"].on_after_submit=function(){e.nbFilterableRows--,e.paging?(e.nbRows--,e.nbVisibleRows--,e.nbFilterableRows--,e.paging=!1,e.RemovePaging(),e.AddPaging(!1)):e.RefreshNbRows(),e.alternateBgs&&e.SetAlternateRows(),a&&a.call(null,arguments[0],arguments[1])}}}try{e.ezEditTable=new EditTable(e.id,e.ezEditTableConfig,t),e.ezEditTable.Init()}catch(f){alert(e.ezEditTableConfig.err)}};