mirror of
https://github.com/koalyptus/TableFilter.git
synced 2024-06-06 16:02:39 +02:00
Continued paging module
This commit is contained in:
parent
b134e70a52
commit
d064bd3504
2
dist/filtergrid.css
vendored
2
dist/filtergrid.css
vendored
|
@ -1,6 +1,6 @@
|
||||||
/*------------------------------------------------------------------------
|
/*------------------------------------------------------------------------
|
||||||
- TableFilter stylesheet by Max Guglielmi
|
- TableFilter stylesheet by Max Guglielmi
|
||||||
- (build date: Tue Dec 16 2014 03:26:44)
|
- (build date: Sun Jan 11 2015 20:01:16)
|
||||||
- Edit below for your projects' needs
|
- Edit below for your projects' needs
|
||||||
------------------------------------------------------------------------*/
|
------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
|
|
@ -191,9 +191,6 @@ export class GridLayout{
|
||||||
this.headTblCont.style.width = this.tblCont.clientWidth+'px';
|
this.headTblCont.style.width = this.tblCont.clientWidth+'px';
|
||||||
|
|
||||||
tbl.style.width = '';
|
tbl.style.width = '';
|
||||||
// if(Helpers.isIE()){
|
|
||||||
// this.headTbl.style.width = '';
|
|
||||||
// }
|
|
||||||
|
|
||||||
//scroll synchronisation
|
//scroll synchronisation
|
||||||
var o = this;
|
var o = this;
|
||||||
|
@ -258,81 +255,30 @@ export class GridLayout{
|
||||||
//Cols generation for all browsers excepted IE<=7
|
//Cols generation for all browsers excepted IE<=7
|
||||||
o.tblHasColTag = Dom.tag(tbl, 'col').length > 0 ? true : false;
|
o.tblHasColTag = Dom.tag(tbl, 'col').length > 0 ? true : false;
|
||||||
|
|
||||||
// if(!Helpers.isIE()){
|
//Col elements are enough to keep column widths after sorting and
|
||||||
//Col elements are enough to keep column widths after sorting and
|
//filtering
|
||||||
//filtering
|
var createColTags = function(o){
|
||||||
var createColTags = function(o){
|
if(!o){
|
||||||
if(!o){
|
return;
|
||||||
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]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// }
|
for(var k=(tf.nbCells-1); k>=0; k--){
|
||||||
|
var col = Dom.create('col', ['id', tf.id+'_col_'+k]);
|
||||||
//IE <= 7 needs an additional row for widths as col element width is
|
tbl.firstChild.parentNode.insertBefore(col, tbl.firstChild);
|
||||||
//not enough...
|
col.style.width = tf.colWidth[k];
|
||||||
// if(Helpers.isIE()){
|
o.gridColElms[k] = col;
|
||||||
// var tbody = Dom.tag(tbl,'tbody'),
|
}
|
||||||
// r;
|
o.tblHasColTag = true;
|
||||||
// if( tbody.length>0 ){
|
};
|
||||||
// r = tbody[0].insertRow(0);
|
if(!o.tblHasColTag){
|
||||||
// } else{
|
createColTags(o);
|
||||||
// r = tbl.insertRow(0);
|
} else {
|
||||||
// }
|
var cols = Dom.tag(tbl, 'col');
|
||||||
// r.style.height = '0px';
|
for(var ii=0; ii<tf.nbCells; ii++){
|
||||||
// for(var x=0; x<o.nbCells; x++){
|
cols[ii].setAttribute('id', tf.id+'_col_'+ii);
|
||||||
// var col = Dom.create('td', ['id', o.id+'_col_'+x]);
|
cols[ii].style.width = tf.colWidth[ii];
|
||||||
// col.style.width = o.colWidth[x];
|
o.gridColElms.push(cols[ii]);
|
||||||
// tbl.rows[1].cells[x].style.width = '';
|
}
|
||||||
// r.appendChild(col);
|
}
|
||||||
// o.gridColElms.push(col);
|
|
||||||
// }
|
|
||||||
// tf.hasGridWidthsRow = true;
|
|
||||||
// //Data table row with widths expressed
|
|
||||||
// o.leadColWidthsRow = tbl.rows[0];
|
|
||||||
// o.leadColWidthsRow.setAttribute('validRow', 'false');
|
|
||||||
|
|
||||||
// var beforeSortFn = Types.isFn(f.on_before_sort) ?
|
|
||||||
// f.on_before_sort : null;
|
|
||||||
// f.on_before_sort = function(o, colIndex){
|
|
||||||
// o.leadColWidthsRow.setAttribute('validRow', 'false');
|
|
||||||
// if(beforeSortFn){
|
|
||||||
// beforeSortFn.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) ?
|
var afterColResizedFn = Types.isFn(f.on_after_col_resized) ?
|
||||||
f.on_after_col_resized : null;
|
f.on_after_col_resized : null;
|
||||||
|
@ -347,10 +293,6 @@ export class GridLayout{
|
||||||
var thCW = o.crWColsRow.cells[colIndex].clientWidth;
|
var thCW = o.crWColsRow.cells[colIndex].clientWidth;
|
||||||
var tdCW = o.crWRowDataTbl.cells[colIndex].clientWidth;
|
var tdCW = o.crWRowDataTbl.cells[colIndex].clientWidth;
|
||||||
|
|
||||||
// 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';
|
o.headTbl.style.width = tbl.clientWidth+'px';
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
import {Dom} from '../dom';
|
import {Dom} from '../dom';
|
||||||
|
import {Types} from '../types';
|
||||||
|
import {Str} from '../string';
|
||||||
import {Helpers} from '../helpers';
|
import {Helpers} from '../helpers';
|
||||||
|
|
||||||
export class Paging{
|
export class Paging{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pagination component
|
* Pagination component
|
||||||
* @param {Object} tf TableFilter instance
|
* @param {Object} tf TableFilter instance
|
||||||
|
@ -10,7 +12,7 @@ export class Paging{
|
||||||
constructor(tf){
|
constructor(tf){
|
||||||
// TableFilter configuration
|
// TableFilter configuration
|
||||||
var f = tf.fObj;
|
var f = tf.fObj;
|
||||||
|
|
||||||
//id of container element
|
//id of container element
|
||||||
this.pagingTgtId = f.paging_target_id || null;
|
this.pagingTgtId = f.paging_target_id || null;
|
||||||
//defines table paging length
|
//defines table paging length
|
||||||
|
@ -72,72 +74,72 @@ export class Paging{
|
||||||
//stores paging buttons events
|
//stores paging buttons events
|
||||||
this.pagingBtnEvents = null;
|
this.pagingBtnEvents = null;
|
||||||
//defines previous page button html
|
//defines previous page button html
|
||||||
this.pageSelectorType = f.page_selector_type || this.fltTypeSlc;
|
this.pageSelectorType = f.page_selector_type || tf.fltTypeSlc;
|
||||||
//calls function before page is changed
|
//calls function before page is changed
|
||||||
this.onBeforeChangePage = types.isFn(f.on_before_change_page) ?
|
this.onBeforeChangePage = Types.isFn(f.on_before_change_page) ?
|
||||||
f.on_before_change_page : null;
|
f.on_before_change_page : null;
|
||||||
//calls function before page is changed
|
//calls function before page is changed
|
||||||
this.onAfterChangePage = types.isFn(f.on_after_change_page) ?
|
this.onAfterChangePage = Types.isFn(f.on_after_change_page) ?
|
||||||
f.on_after_change_page : null;
|
f.on_after_change_page : null;
|
||||||
var start_row = this.refRow;
|
var start_row = this.refRow;
|
||||||
var nrows = this.nbRows;
|
var nrows = this.nbRows;
|
||||||
//calculates page nb
|
//calculates page nb
|
||||||
this.nbPages = Math.ceil((nrows-start_row)/this.pagingLength);
|
this.nbPages = Math.ceil((nrows-start_row)/this.pagingLength);
|
||||||
|
|
||||||
var evt = tf.Evt;
|
var evt = tf.Evt;
|
||||||
//Paging elements events
|
//Paging elements events
|
||||||
if(!evt._Paging.next){
|
if(!evt._Paging.next){
|
||||||
var o = tf;
|
var o = this;
|
||||||
evt._Paging = {// paging buttons events
|
evt._Paging = {// paging buttons events
|
||||||
slcIndex: function(){
|
slcIndex: function(){
|
||||||
return (o.pageSelectorType===o.fltTypeSlc) ?
|
return (o.pageSelectorType===tf.fltTypeSlc) ?
|
||||||
o.pagingSlc.options.selectedIndex :
|
o.pagingSlc.options.selectedIndex :
|
||||||
parseInt(o.pagingSlc.value,10)-1;
|
parseInt(o.pagingSlc.value, 10)-1;
|
||||||
},
|
},
|
||||||
nbOpts: function(){
|
nbOpts: function(){
|
||||||
return (o.pageSelectorType===o.fltTypeSlc) ?
|
return (o.pageSelectorType===tf.fltTypeSlc) ?
|
||||||
parseInt(o.pagingSlc.options.length,10)-1 :
|
parseInt(o.pagingSlc.options.length, 10)-1 :
|
||||||
(o.nbPages-1);
|
(o.nbPages-1);
|
||||||
},
|
},
|
||||||
next: function(){
|
next: function(){
|
||||||
if(o.Evt._Paging.nextEvt){
|
if(evt._Paging.nextEvt){
|
||||||
o.Evt._Paging.nextEvt();
|
evt._Paging.nextEvt();
|
||||||
}
|
}
|
||||||
var nextIndex =
|
var nextIndex =
|
||||||
o.Evt._Paging.slcIndex()<o.Evt._Paging.nbOpts() ?
|
evt._Paging.slcIndex() < evt._Paging.nbOpts() ?
|
||||||
o.Evt._Paging.slcIndex()+1 : 0;
|
evt._Paging.slcIndex()+1 : 0;
|
||||||
o.ChangePage(nextIndex);
|
o.changePage(nextIndex);
|
||||||
},
|
},
|
||||||
prev: function(){
|
prev: function(){
|
||||||
if(o.Evt._Paging.prevEvt){
|
if(evt._Paging.prevEvt){
|
||||||
o.Evt._Paging.prevEvt();
|
evt._Paging.prevEvt();
|
||||||
}
|
}
|
||||||
var prevIndex = o.Evt._Paging.slcIndex()>0 ?
|
var prevIndex = evt._Paging.slcIndex()>0 ?
|
||||||
o.Evt._Paging.slcIndex()-1 : o.Evt._Paging.nbOpts();
|
evt._Paging.slcIndex()-1 : evt._Paging.nbOpts();
|
||||||
o.ChangePage(prevIndex);
|
o.changePage(prevIndex);
|
||||||
},
|
},
|
||||||
last: function(){
|
last: function(){
|
||||||
if(o.Evt._Paging.lastEvt){
|
if(evt._Paging.lastEvt){
|
||||||
o.Evt._Paging.lastEvt();
|
evt._Paging.lastEvt();
|
||||||
}
|
}
|
||||||
o.ChangePage(o.Evt._Paging.nbOpts());
|
o.changePage(evt._Paging.nbOpts());
|
||||||
},
|
},
|
||||||
first: function(){
|
first: function(){
|
||||||
if(o.Evt._Paging.firstEvt){
|
if(evt._Paging.firstEvt){
|
||||||
o.Evt._Paging.firstEvt();
|
evt._Paging.firstEvt();
|
||||||
}
|
}
|
||||||
o.ChangePage(0);
|
o.changePage(0);
|
||||||
},
|
},
|
||||||
_detectKey: function(e){
|
_detectKey: function(e){
|
||||||
var evt = e || global.event;
|
var evt = e || global.event;
|
||||||
if(evt){
|
if(evt){
|
||||||
var key = o.Evt.getKeyCode(e);
|
var key = evt.getKeyCode(e);
|
||||||
if(key===13){
|
if(key===13){
|
||||||
if(o.sorted){
|
if(tf.sorted){
|
||||||
o.Filter();
|
tf.Filter();
|
||||||
o.ChangePage(o.Evt._Paging.slcIndex());
|
o.changePage(evt._Paging.slcIndex());
|
||||||
} else{
|
} else{
|
||||||
o.ChangePage();
|
o.changePage();
|
||||||
}
|
}
|
||||||
this.blur();
|
this.blur();
|
||||||
}
|
}
|
||||||
|
@ -148,28 +150,29 @@ export class Paging{
|
||||||
lastEvt: null,
|
lastEvt: null,
|
||||||
firstEvt: null
|
firstEvt: null
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
this.tf = tf;
|
this.tf = tf;
|
||||||
}
|
}
|
||||||
|
|
||||||
buildUI(){
|
init(){
|
||||||
|
|
||||||
var slcPages;
|
var slcPages;
|
||||||
var tf = this.tf;
|
var tf = this.tf;
|
||||||
var evt = tf.Evt;
|
var evt = tf.Evt;
|
||||||
|
|
||||||
// Paging drop-down list selector
|
// Paging drop-down list selector
|
||||||
if(this.pageSelectorType === tf.fltTypeSlc){
|
if(this.pageSelectorType === tf.fltTypeSlc){
|
||||||
slcPages = dom.create(
|
slcPages = Dom.create(
|
||||||
tf.fltTypeSlc, ['id', tf.prfxSlcPages+tf.id]);
|
tf.fltTypeSlc, ['id', tf.prfxSlcPages+tf.id]);
|
||||||
slcPages.className = this.pgSlcCssClass;
|
slcPages.className = this.pgSlcCssClass;
|
||||||
|
console.log(evt);
|
||||||
slcPages.onchange = evt._OnSlcPagesChange;
|
slcPages.onchange = evt._OnSlcPagesChange;
|
||||||
|
//slcPages.onchange = function(){ alert('hello'); }
|
||||||
}
|
}
|
||||||
|
|
||||||
// Paging input selector
|
// Paging input selector
|
||||||
if(this.pageSelectorType === tf.fltTypeInp){
|
if(this.pageSelectorType === tf.fltTypeInp){
|
||||||
slcPages = dom.create(
|
slcPages = Dom.create(
|
||||||
tf.fltTypeInp,
|
tf.fltTypeInp,
|
||||||
['id', tf.prfxSlcPages+tf.id],
|
['id', tf.prfxSlcPages+tf.id],
|
||||||
['value', tf.currentPageNb]
|
['value', tf.currentPageNb]
|
||||||
|
@ -179,23 +182,24 @@ export class Paging{
|
||||||
}
|
}
|
||||||
|
|
||||||
// btns containers
|
// btns containers
|
||||||
var btnNextSpan = dom.create(
|
var btnNextSpan = Dom.create(
|
||||||
'span',['id',this.prfxBtnNextSpan+tf.id]);
|
'span',['id', tf.prfxBtnNextSpan+tf.id]);
|
||||||
var btnPrevSpan = dom.create(
|
var btnPrevSpan = Dom.create(
|
||||||
'span',['id',this.prfxBtnPrevSpan+tf.id]);
|
'span',['id', tf.prfxBtnPrevSpan+tf.id]);
|
||||||
var btnLastSpan = dom.create(
|
var btnLastSpan = Dom.create(
|
||||||
'span',['id',this.prfxBtnLastSpan+tf.id]);
|
'span',['id', tf.prfxBtnLastSpan+tf.id]);
|
||||||
var btnFirstSpan = dom.create(
|
var btnFirstSpan = Dom.create(
|
||||||
'span',['id',this.prfxBtnFirstSpan+tf.id]);
|
'span',['id', tf.prfxBtnFirstSpan+tf.id]);
|
||||||
|
|
||||||
if(this.hasPagingBtns){
|
if(this.hasPagingBtns){
|
||||||
// Next button
|
// Next button
|
||||||
if(!this.btnNextPageHtml){
|
if(!this.btnNextPageHtml){
|
||||||
var btn_next = dom.create(
|
var btn_next = Dom.create(
|
||||||
tf.fltTypeInp,['id',tf.prfxBtnNext+tf.id],
|
tf.fltTypeInp,
|
||||||
['type','button'],
|
['id', tf.prfxBtnNext+tf.id],
|
||||||
['value',this.btnNextPageText],
|
['type', 'button'],
|
||||||
['title','Next']
|
['value', this.btnNextPageText],
|
||||||
|
['title', 'Next']
|
||||||
);
|
);
|
||||||
btn_next.className = this.btnPageCssClass;
|
btn_next.className = this.btnPageCssClass;
|
||||||
btn_next.onclick = evt._Paging.next;
|
btn_next.onclick = evt._Paging.next;
|
||||||
|
@ -206,7 +210,7 @@ export class Paging{
|
||||||
}
|
}
|
||||||
// Previous button
|
// Previous button
|
||||||
if(!this.btnPrevPageHtml){
|
if(!this.btnPrevPageHtml){
|
||||||
var btn_prev = dom.create(
|
var btn_prev = Dom.create(
|
||||||
tf.fltTypeInp,
|
tf.fltTypeInp,
|
||||||
['id',tf.prfxBtnPrev+tf.id],
|
['id',tf.prfxBtnPrev+tf.id],
|
||||||
['type','button'],
|
['type','button'],
|
||||||
|
@ -222,7 +226,7 @@ export class Paging{
|
||||||
}
|
}
|
||||||
// Last button
|
// Last button
|
||||||
if(!this.btnLastPageHtml){
|
if(!this.btnLastPageHtml){
|
||||||
var btn_last = dom.create(
|
var btn_last = Dom.create(
|
||||||
tf.fltTypeInp,
|
tf.fltTypeInp,
|
||||||
['id',tf.prfxBtnLast+tf.id],
|
['id',tf.prfxBtnLast+tf.id],
|
||||||
['type','button'],
|
['type','button'],
|
||||||
|
@ -238,7 +242,7 @@ export class Paging{
|
||||||
}
|
}
|
||||||
// First button
|
// First button
|
||||||
if(!this.btnFirstPageHtml){
|
if(!this.btnFirstPageHtml){
|
||||||
var btn_first = dom.create(
|
var btn_first = Dom.create(
|
||||||
tf.fltTypeInp,
|
tf.fltTypeInp,
|
||||||
['id',tf.prfxBtnFirst+tf.id],
|
['id',tf.prfxBtnFirst+tf.id],
|
||||||
['type','button'],
|
['type','button'],
|
||||||
|
@ -258,7 +262,7 @@ export class Paging{
|
||||||
if(!this.pagingTgtId){
|
if(!this.pagingTgtId){
|
||||||
tf.SetTopDiv();
|
tf.SetTopDiv();
|
||||||
}
|
}
|
||||||
var targetEl = !this.pagingTgtId ? tf.mDiv : dom.id(this.pagingTgtId);
|
var targetEl = !this.pagingTgtId ? tf.mDiv : Dom.id(this.pagingTgtId);
|
||||||
|
|
||||||
/***
|
/***
|
||||||
if paging previously removed this prevents IE memory leak with
|
if paging previously removed this prevents IE memory leak with
|
||||||
|
@ -273,34 +277,212 @@ export class Paging{
|
||||||
targetEl.appendChild(btnFirstSpan);
|
targetEl.appendChild(btnFirstSpan);
|
||||||
targetEl.appendChild(btnPrevSpan);
|
targetEl.appendChild(btnPrevSpan);
|
||||||
|
|
||||||
var pgBeforeSpan = dom.create(
|
var pgBeforeSpan = Dom.create(
|
||||||
'span',['id', tf.prfxPgBeforeSpan+tf.id] );
|
'span',['id', tf.prfxPgBeforeSpan+tf.id] );
|
||||||
pgBeforeSpan.appendChild( dom.text(this.pageText) );
|
pgBeforeSpan.appendChild( Dom.text(this.pageText) );
|
||||||
pgBeforeSpan.className = this.nbPgSpanCssClass;
|
pgBeforeSpan.className = this.nbPgSpanCssClass;
|
||||||
targetEl.appendChild(pgBeforeSpan);
|
targetEl.appendChild(pgBeforeSpan);
|
||||||
targetEl.appendChild(slcPages);
|
targetEl.appendChild(slcPages);
|
||||||
var pgAfterSpan = dom.create(
|
var pgAfterSpan = Dom.create(
|
||||||
'span',['id', tf.prfxPgAfterSpan+tf.id]);
|
'span',['id', tf.prfxPgAfterSpan+tf.id]);
|
||||||
pgAfterSpan.appendChild( dom.text(this.ofText) );
|
pgAfterSpan.appendChild( Dom.text(this.ofText) );
|
||||||
pgAfterSpan.className = this.nbPgSpanCssClass;
|
pgAfterSpan.className = this.nbPgSpanCssClass;
|
||||||
targetEl.appendChild(pgAfterSpan);
|
targetEl.appendChild(pgAfterSpan);
|
||||||
var pgspan = dom.create( 'span',['id', tf.prfxPgSpan+tf.id] );
|
var pgspan = Dom.create( 'span',['id', tf.prfxPgSpan+tf.id] );
|
||||||
pgspan.className = this.nbPgSpanCssClass;
|
pgspan.className = this.nbPgSpanCssClass;
|
||||||
pgspan.appendChild( dom.text(' '+this.nbPages+' ') );
|
pgspan.appendChild( Dom.text(' '+this.nbPages+' ') );
|
||||||
targetEl.appendChild(pgspan);
|
targetEl.appendChild(pgspan);
|
||||||
targetEl.appendChild(btnNextSpan);
|
targetEl.appendChild(btnNextSpan);
|
||||||
targetEl.appendChild(btnLastSpan);
|
targetEl.appendChild(btnLastSpan);
|
||||||
this.pagingSlc = dom.id(tf.prfxSlcPages+tf.id);
|
this.pagingSlc = Dom.id(tf.prfxSlcPages+tf.id);
|
||||||
|
|
||||||
/*====================================================
|
/*====================================================
|
||||||
- onchange event for paging select
|
- onchange event for paging select
|
||||||
=====================================================*/
|
=====================================================*/
|
||||||
if(!evt._OnSlcPagesChange){
|
var o = this;
|
||||||
evt._OnSlcPagesChange = function(){
|
evt._OnSlcPagesChange = function(){
|
||||||
if(evt._Paging._OnSlcPagesChangeEvt){
|
if(evt._Paging._OnSlcPagesChangeEvt){
|
||||||
evt._Paging._OnSlcPagesChangeEvt();
|
evt._Paging._OnSlcPagesChangeEvt();
|
||||||
|
}
|
||||||
|
o.changePage();
|
||||||
|
this.blur();
|
||||||
|
//ie only: blur is not enough...
|
||||||
|
if(this.parentNode && Helpers.isIE()){
|
||||||
|
this.parentNode.focus();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// if this.rememberGridValues==true this.SetPagingInfo() is called
|
||||||
|
// in ResetGridValues() method
|
||||||
|
if(!tf.rememberGridValues || tf.isPagingRemoved){
|
||||||
|
this.setPagingInfo();
|
||||||
|
}
|
||||||
|
if(!tf.fltGrid){
|
||||||
|
tf.ValidateAllRows();
|
||||||
|
this.setPagingInfo(tf.validRowsIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.pagingBtnEvents = evt._Paging;
|
||||||
|
tf.isPagingRemoved = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
addPaging(filterTable){
|
||||||
|
var tf = this.tf;
|
||||||
|
if(!tf.hasGrid || tf.paging){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
tf.paging = true;
|
||||||
|
tf.isPagingRemoved = true;
|
||||||
|
this.init();
|
||||||
|
tf.ResetValues();
|
||||||
|
if(filterTable){
|
||||||
|
tf.Filter();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
setPagingInfo(validRows){
|
||||||
|
var tf = this.tf;
|
||||||
|
var rows = tf.tbl.rows;
|
||||||
|
var mdiv = !this.pagingTgtId ? tf.mDiv : Dom.id(this.pagingTgtId);
|
||||||
|
var pgspan = Dom.id(tf.prfxPgSpan+tf.id);
|
||||||
|
//stores valid rows indexes
|
||||||
|
if(validRows && validRows.length>0){
|
||||||
|
tf.validRowsIndex = validRows;
|
||||||
|
} else {
|
||||||
|
//re-sets valid rows indexes array
|
||||||
|
tf.validRowsIndex = [];
|
||||||
|
|
||||||
|
//counts rows to be grouped
|
||||||
|
for(var j=tf.refRow; j<tf.nbRows; j++){
|
||||||
|
var row = rows[j];
|
||||||
|
if(!row){
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
tf.ChangePage();
|
var isRowValid = row.getAttribute('validRow');
|
||||||
|
if(isRowValid==='true' || !isRowValid){
|
||||||
|
tf.validRowsIndex.push(j);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//calculate nb of pages
|
||||||
|
this.nbPages = Math.ceil(tf.validRowsIndex.length/this.pagingLength);
|
||||||
|
//refresh page nb span
|
||||||
|
pgspan.innerHTML = this.nbPages;
|
||||||
|
//select clearing shortcut
|
||||||
|
if(this.pageSelectorType === tf.fltTypeSlc){
|
||||||
|
this.pagingSlc.innerHTML = '';
|
||||||
|
}
|
||||||
|
|
||||||
|
if(this.nbPages>0){
|
||||||
|
mdiv.style.visibility = 'visible';
|
||||||
|
if(this.pageSelectorType === tf.fltTypeSlc){
|
||||||
|
for(var z=0; z<this.nbPages; z++){
|
||||||
|
var currOpt = new Option(
|
||||||
|
(z+1),
|
||||||
|
z*this.pagingLength,
|
||||||
|
false,
|
||||||
|
false
|
||||||
|
);
|
||||||
|
this.pagingSlc.options[z] = currOpt;
|
||||||
|
}
|
||||||
|
} else{
|
||||||
|
//input type
|
||||||
|
this.pagingSlc.value = this.currentPageNb;
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
/*** if no results paging select and buttons are hidden ***/
|
||||||
|
mdiv.style.visibility = 'hidden';
|
||||||
|
}
|
||||||
|
this.groupByPage(tf.validRowsIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
groupByPage(validRows){
|
||||||
|
var tf = this.tf;
|
||||||
|
var rows = tf.tbl.rows;
|
||||||
|
var paging_end_row = parseInt(this.startPagingRow, 10) +
|
||||||
|
parseInt(this.pagingLength, 10);
|
||||||
|
|
||||||
|
//store valid rows indexes
|
||||||
|
if(validRows){
|
||||||
|
tf.validRowsIndex = validRows;
|
||||||
|
}
|
||||||
|
|
||||||
|
//this loop shows valid rows of current page
|
||||||
|
for(var h=0; h<tf.validRowsIndex.length; h++){
|
||||||
|
var r = rows[tf.validRowsIndex[h]];
|
||||||
|
if(h>=this.startPagingRow && h<paging_end_row){
|
||||||
|
if(r.getAttribute('validRow')==='true' ||
|
||||||
|
!r.getAttribute('validRow')){
|
||||||
|
r.style.display = '';
|
||||||
|
}
|
||||||
|
if(tf.alternateBgs && tf.Cpt.alternateRows){
|
||||||
|
tf.Cpt.alternateRows.setRowBg(tf.validRowsIndex[h], h);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
r.style.display = 'none';
|
||||||
|
if(tf.alternateBgs && tf.Cpt.alternateRows){
|
||||||
|
tf.Cpt.alternateRows.removeRowBg(tf.validRowsIndex[h]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tf.nbVisibleRows = tf.validRowsIndex.length;
|
||||||
|
tf.isStartBgAlternate = false;
|
||||||
|
//re-applies filter behaviours after filtering process
|
||||||
|
tf.ApplyGridProps();
|
||||||
|
}
|
||||||
|
|
||||||
|
setPage(cmd){
|
||||||
|
var tf = this.tf;
|
||||||
|
if(!tf.hasGrid || !this.paging){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var btnEvt = this.pagingBtnEvents,
|
||||||
|
cmdtype = typeof cmd;
|
||||||
|
if(cmdtype==='string'){
|
||||||
|
switch(Str.lower(cmd)){
|
||||||
|
case 'next':
|
||||||
|
btnEvt.next();
|
||||||
|
break;
|
||||||
|
case 'previous':
|
||||||
|
btnEvt.prev();
|
||||||
|
break;
|
||||||
|
case 'last':
|
||||||
|
btnEvt.last();
|
||||||
|
break;
|
||||||
|
case 'first':
|
||||||
|
btnEvt.first();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
btnEvt.next();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(cmdtype==='number'){
|
||||||
|
this.changePage(cmd-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
setResultsPerPage(){
|
||||||
|
var tf = this.tf;
|
||||||
|
var evt = tf.Evt;
|
||||||
|
|
||||||
|
if(!tf.hasGrid && !tf.isFirstLoad){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(this.resultsPerPageSlc || !this.resultsPerPage){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Change nb results per page event
|
||||||
|
if(!evt._OnSlcResultsChange){
|
||||||
|
/*====================================================
|
||||||
|
- onchange event for results per page select
|
||||||
|
=====================================================*/
|
||||||
|
evt._OnSlcResultsChange = function(){
|
||||||
|
this.changeResultsPerPage();
|
||||||
this.blur();
|
this.blur();
|
||||||
//ie only: blur is not enough...
|
//ie only: blur is not enough...
|
||||||
if(this.parentNode && Helpers.isIE()){
|
if(this.parentNode && Helpers.isIE()){
|
||||||
|
@ -308,5 +490,215 @@ export class Paging{
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var slcR = Dom.create(
|
||||||
|
tf.fltTypeSlc, ['id', tf.prfxSlcResults+tf.id]);
|
||||||
|
slcR.className = tf.resultsSlcCssClass;
|
||||||
|
var slcRText = this.resultsPerPage[0],
|
||||||
|
slcROpts = this.resultsPerPage[1];
|
||||||
|
var slcRSpan = Dom.create(
|
||||||
|
'span',['id', tf.prfxSlcResultsTxt+tf.id]);
|
||||||
|
slcRSpan.className = this.resultsSpanCssClass;
|
||||||
|
|
||||||
|
// results per page select is added to external element
|
||||||
|
if(!this.resultsPerPageTgtId){
|
||||||
|
tf.SetTopDiv();
|
||||||
|
}
|
||||||
|
var targetEl = !this.resultsPerPageTgtId ?
|
||||||
|
tf.rDiv : Dom.id(this.resultsPerPageTgtId);
|
||||||
|
slcRSpan.appendChild(Dom.text(slcRText));
|
||||||
|
targetEl.appendChild(slcRSpan);
|
||||||
|
targetEl.appendChild(slcR);
|
||||||
|
|
||||||
|
this.resultsPerPageSlc = Dom.id(tf.prfxSlcResults+tf.id);
|
||||||
|
|
||||||
|
for(var r=0; r<slcROpts.length; r++){
|
||||||
|
var currOpt = new Option(slcROpts[r], slcROpts[r], false, false);
|
||||||
|
this.resultsPerPageSlc.options[r] = currOpt;
|
||||||
|
}
|
||||||
|
slcR.onchange = evt._OnSlcResultsChange;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
removeResultsPerPage(){
|
||||||
|
var tf = this.tf;
|
||||||
|
if(!tf.hasGrid || !this.resultsPerPageSlc || !this.resultsPerPage){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var slcR = this.resultsPerPageSlc,
|
||||||
|
slcRSpan = Dom.id(tf.prfxSlcResultsTxt+tf.id);
|
||||||
|
if(slcR){
|
||||||
|
slcR.parentNode.removeChild(slcR);
|
||||||
|
}
|
||||||
|
if(slcRSpan){
|
||||||
|
slcRSpan.parentNode.removeChild(slcRSpan);
|
||||||
|
}
|
||||||
|
this.resultsPerPageSlc = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
changePage(index){
|
||||||
|
var tf = this.tf;
|
||||||
|
var evt = tf.Evt;
|
||||||
|
tf.EvtManager(evt.name.changepage, { pgIndex:index });
|
||||||
|
}
|
||||||
|
|
||||||
|
changeResultsPerPage(){
|
||||||
|
var tf = this.tf;
|
||||||
|
var evt = tf.Evt;
|
||||||
|
tf.EvtManager(evt.name.changeresultsperpage);
|
||||||
|
}
|
||||||
|
|
||||||
|
resetPage(){
|
||||||
|
var tf = this.tf;
|
||||||
|
var evt = tf.Evt;
|
||||||
|
tf.EvtManager(evt.name.resetpage);
|
||||||
|
}
|
||||||
|
|
||||||
|
resetPageLength(){
|
||||||
|
var tf = this.tf;
|
||||||
|
var evt = tf.Evt;
|
||||||
|
tf.EvtManager(evt.name.resetpagelength);
|
||||||
|
}
|
||||||
|
|
||||||
|
_changePage(index){
|
||||||
|
var tf = this.tf;
|
||||||
|
|
||||||
|
if(!tf.paging){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(index === undefined){
|
||||||
|
index = this.pageSelectorType===tf.fltTypeSlc ?
|
||||||
|
this.pagingSlc.options.selectedIndex : (this.pagingSlc.value-1);
|
||||||
|
}
|
||||||
|
if( index>=0 && index<=(this.nbPages-1) ){
|
||||||
|
if(this.onBeforeChangePage){
|
||||||
|
this.onBeforeChangePage.call(null, this, index);
|
||||||
|
}
|
||||||
|
this.currentPageNb = parseInt(index, 10)+1;
|
||||||
|
if(this.pageSelectorType===tf.fltTypeSlc){
|
||||||
|
this.pagingSlc.options[index].selected = true;
|
||||||
|
} else {
|
||||||
|
this.pagingSlc.value = this.currentPageNb;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(tf.rememberPageNb){
|
||||||
|
tf.Cpt.store.savePageNb(this.pgNbCookie);
|
||||||
|
}
|
||||||
|
this.startPagingRow = (this.pageSelectorType===tf.fltTypeSlc) ?
|
||||||
|
this.pagingSlc.value : (index*this.pagingLength);
|
||||||
|
|
||||||
|
this.groupByPage();
|
||||||
|
|
||||||
|
if(this.onAfterChangePage){
|
||||||
|
this.onAfterChangePage.call(null, this, index);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_changeResultsPerPage(){
|
||||||
|
var tf = this.tf;
|
||||||
|
|
||||||
|
if(!tf.paging){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var slcR = this.resultsPerPageSlc;
|
||||||
|
var slcPagesSelIndex = (this.pageSelectorType===tf.fltTypeSlc) ?
|
||||||
|
this.pagingSlc.selectedIndex :
|
||||||
|
parseInt(this.pagingSlc.value-1, 10);
|
||||||
|
this.pagingLength = parseInt(slcR.options[slcR.selectedIndex].value,10);
|
||||||
|
this.startPagingRow = this.pagingLength*slcPagesSelIndex;
|
||||||
|
|
||||||
|
if(!isNaN(this.pagingLength)){
|
||||||
|
if(this.startPagingRow >= tf.nbFilterableRows){
|
||||||
|
this.startPagingRow = (tf.nbFilterableRows-this.pagingLength);
|
||||||
|
}
|
||||||
|
this.setPagingInfo();
|
||||||
|
|
||||||
|
if(this.pageSelectorType===tf.fltTypeSlc){
|
||||||
|
var slcIndex =
|
||||||
|
(this.pagingSlc.options.length-1<=slcPagesSelIndex ) ?
|
||||||
|
(this.pagingSlc.options.length-1) : slcPagesSelIndex;
|
||||||
|
this.pagingSlc.options[slcIndex].selected = true;
|
||||||
|
}
|
||||||
|
if(tf.rememberPageLen){
|
||||||
|
tf.Cpt.store.savePageLength(tf.pgLenCookie);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_resetPage(name){
|
||||||
|
var tf = this.tf;
|
||||||
|
var pgnb = tf.Cpt.store.getPageNb(name);
|
||||||
|
if(pgnb!==''){
|
||||||
|
this.changePage((pgnb-1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_resetPageLength(name){
|
||||||
|
var tf = this.tf;
|
||||||
|
if(!tf.paging){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var pglenIndex = tf.Cpt.store.getPageLength(name);
|
||||||
|
|
||||||
|
if(pglenIndex!==''){
|
||||||
|
this.resultsPerPageSlc.options[pglenIndex].selected = true;
|
||||||
|
this.changeResultsPerPage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
destroy(){
|
||||||
|
var tf = this.tf;
|
||||||
|
|
||||||
|
if(!tf.hasGrid || this.pagingSlc){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// btns containers
|
||||||
|
var btnNextSpan, btnPrevSpan, btnLastSpan, btnFirstSpan;
|
||||||
|
var pgBeforeSpan, pgAfterSpan, pgspan;
|
||||||
|
btnNextSpan = Dom.id(tf.prfxBtnNextSpan+tf.id);
|
||||||
|
btnPrevSpan = Dom.id(tf.prfxBtnPrevSpan+tf.id);
|
||||||
|
btnLastSpan = Dom.id(tf.prfxBtnLastSpan+tf.id);
|
||||||
|
btnFirstSpan = Dom.id(tf.prfxBtnFirstSpan+tf.id);
|
||||||
|
//span containing 'Page' text
|
||||||
|
pgBeforeSpan = Dom.id(tf.prfxPgBeforeSpan+tf.id);
|
||||||
|
//span containing 'of' text
|
||||||
|
pgAfterSpan = Dom.id(tf.prfxPgAfterSpan+tf.id);
|
||||||
|
//span containing nb of pages
|
||||||
|
pgspan = Dom.id(tf.prfxPgSpan+tf.id);
|
||||||
|
|
||||||
|
this.pagingSlc.parentNode.removeChild(this.pagingSlc);
|
||||||
|
|
||||||
|
if(btnNextSpan){
|
||||||
|
btnNextSpan.parentNode.removeChild(btnNextSpan);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(btnPrevSpan){
|
||||||
|
btnPrevSpan.parentNode.removeChild(btnPrevSpan);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(btnLastSpan){
|
||||||
|
btnLastSpan.parentNode.removeChild(btnLastSpan);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(btnFirstSpan){
|
||||||
|
btnFirstSpan.parentNode.removeChild(btnFirstSpan);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(pgBeforeSpan){
|
||||||
|
pgBeforeSpan.parentNode.removeChild(pgBeforeSpan);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(pgAfterSpan){
|
||||||
|
pgAfterSpan.parentNode.removeChild(pgAfterSpan);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(pgspan){
|
||||||
|
pgspan.parentNode.removeChild(pgspan);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.pagingBtnEvents = null;
|
||||||
|
this.pagingSlc = null;
|
||||||
|
tf.isPagingRemoved = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
{"version":3,"sources":["src-es6/array.js"],"names":[],"mappings":";;;MAIQ,GAAG,WAAH,GAAG;;;MAEP,GAAG,GAAG;AACN,mBAAc,GAAG,EAAE,GAAG,EAAE,aAAa,EAAC;AAClC,UAAI,KAAK,GAAG,aAAa;AACzB,WAAK,IAAI,CAAC,UAAM,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;AAC5B,YAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,IAAI,GAAG,EAAC;AAC9C,iBAAO,IAAI,CAAC;SACf;OACJ;AACD,aAAO,KAAK,CAAC;;AAEjB,4BAAuB,GAAG,EAAE,GAAG,EAAE,aAAa,EAAC;AAC3C,UAAI,KAAK,GAAG,aAAa;AACzB,WAAK,IAAI,CAAC,UAAM,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;AAC5B,YAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,IAAI,GAAG,EAAC;AAC9C,iBAAO,CAAC,CAAC;SACZ;OACJ;AACD,aAAO,CAAC,CAAC,CAAC;;GAEjB,CAAC;;SAEK,CAAC,GAAG,GAAG,GAAG,CAAC","file":"src-es6/array.js","sourcesContent":["/**\n * Array utilities\n */\n\nimport {Str} from 'string';\n\nvar Arr = {\n has: function(arr, val, caseSensitive){\n var sCase = caseSensitive===undefined ? false : caseSensitive;\n for (var i=0; i<arr.length; i++){\n if(Str.matchCase(arr[i].toString(), sCase) == val){\n return true;\n }\n }\n return false;\n },\n indexByValue: function(arr, val, caseSensitive){\n var sCase = caseSensitive===undefined ? false : caseSensitive;\n for (var i=0; i<arr.length; i++){\n if(Str.matchCase(arr[i].toString(), sCase) == val){\n return i;\n }\n }\n return -1;\n }\n};\n\nexports.Arr = Arr;\n"]}
|
{"version":3,"sources":["src-es6/array.js"],"names":[],"mappings":";;;MAIQ,GAAG,WAAH,GAAG;;;MAEP,GAAG,GAAG;AACN,mBAAc,GAAG,EAAE,GAAG,EAAE,aAAa,EAAC;AAClC,UAAI,KAAK,GAAG,aAAa;AACzB,WAAK,IAAI,CAAC,UAAM,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;AAC5B,YAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,IAAI,GAAG,EAAC;AAC9C,iBAAO,IAAI,CAAC;SACf;OACJ;AACD,aAAO,KAAK,CAAC;;AAEjB,4BAAuB,GAAG,EAAE,GAAG,EAAE,aAAa,EAAC;AAC3C,UAAI,KAAK,GAAG,aAAa;AACzB,WAAK,IAAI,CAAC,UAAM,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;AAC5B,YAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,IAAI,GAAG,EAAC;AAC9C,iBAAO,CAAC,CAAC;SACZ;OACJ;AACD,aAAO,CAAC,CAAC,CAAC;;GAEjB,CAAC;;SAEK,CAAC,GAAG,GAAG,GAAG,CAAC","file":"src-es6/array.js","sourcesContent":["/**\r\n * Array utilities\r\n */\r\n\r\nimport {Str} from 'string';\r\n\r\nvar Arr = {\r\n has: function(arr, val, caseSensitive){\r\n var sCase = caseSensitive===undefined ? false : caseSensitive;\r\n for (var i=0; i<arr.length; i++){\r\n if(Str.matchCase(arr[i].toString(), sCase) == val){\r\n return true;\r\n }\r\n }\r\n return false;\r\n },\r\n indexByValue: function(arr, val, caseSensitive){\r\n var sCase = caseSensitive===undefined ? false : caseSensitive;\r\n for (var i=0; i<arr.length; i++){\r\n if(Str.matchCase(arr[i].toString(), sCase) == val){\r\n return i;\r\n }\r\n }\r\n return -1;\r\n }\r\n};\r\n\r\nexports.Arr = Arr;\r\n"]}
|
|
@ -1 +1 @@
|
||||||
{"version":3,"sources":["src-es6/cookie.js"],"names":[],"mappings":";;;;;;;AAIA,MAAI,MAAM,GAAG,EAAE,CAAC;;AAEhB,QAAM,CAAC,KAAK,GAAG,UAAS,IAAI,EAAE,KAAK,EAAE,KAAK,EAAC;AACvC,QAAI,MAAM,GAAG,EAAE,CAAC;AAChB,QAAG,KAAK,EAAC;AACL,YAAM,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,KAAK,GAAG,OAAO,CAAC,CAAC;AAC5D,YAAM,GAAG,YAAY,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;KAChD;AACD,YAAQ,CAAC,MAAM,GAAG,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;GACzD,CAAC;;AAEF,QAAM,CAAC,IAAI,GAAG,UAAS,IAAI,EAAC;AACxB,QAAI,WAAW,GAAG,EAAE,EAChB,MAAM,GAAG,IAAI,GAAG,GAAG,CAAC;AACxB,QAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAC;AAC1B,UAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,EACxB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACpC,UAAG,MAAM,KAAK,CAAC,CAAC,EAAC;AACb,cAAM,IAAI,MAAM,CAAC,MAAM,CAAC;AACxB,YAAI,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACtC,YAAG,GAAG,KAAK,CAAC,CAAC,EAAC;AACV,aAAG,GAAG,MAAM,CAAC,MAAM,CAAC;SACvB;AACD,mBAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;OACzD;KACJ;AACD,WAAO,WAAW,CAAC;GACtB,CAAC;;AAEF,QAAM,CAAC,MAAM,GAAG,UAAS,IAAI,EAAC;AAC1B,QAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;GAC5B,CAAC;;AAEF,QAAM,CAAC,YAAY,GAAG,UAAS,IAAI,EAAE,SAAS,EAAC;AAC3C,QAAG,CAAC,SAAS,EAAC;AACV,eAAS,GAAG,GAAG,CAAC;KACnB;;AAED,QAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;AAE1B,QAAI,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC/B,WAAO,GAAG,CAAC;GACd,CAAC;;AAEF,QAAM,CAAC,eAAe,GAAG,UAAS,IAAI,EAAE,KAAK,EAAE,SAAS,EAAC;AACrD,QAAG,CAAC,SAAS,EAAC;AACV,eAAS,GAAG,GAAG,CAAC;KACnB;;AAED,QAAI,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC7C,WAAO,GAAG,CAAC,KAAK,CAAC,CAAC;GACrB,CAAC;;AAEF,SAAO,CAAC,MAAM,GAAG,MAAM,CAAC","file":"src-es6/cookie.js","sourcesContent":["/**\n * Cookie utilities\n */\n\nvar Cookie = {};\n\nCookie.write = function(name, value, hours){\n var expire = '';\n if(hours){\n expire = new Date((new Date()).getTime() + hours * 3600000);\n expire = '; expires=' + expire.toGMTString();\n }\n document.cookie = name + '=' + escape(value) + expire;\n};\n\nCookie.read = function(name){\n var cookieValue = '',\n search = name + '=';\n if(document.cookie.length > 0){\n var cookie = document.cookie,\n offset = cookie.indexOf(search);\n if(offset !== -1){\n offset += search.length;\n var end = cookie.indexOf(';', offset);\n if(end === -1){\n end = cookie.length;\n }\n cookieValue = unescape(cookie.substring(offset, end));\n }\n }\n return cookieValue;\n};\n\nCookie.remove = function(name){\n this.write(name, '', -1);\n};\n\nCookie.valueToArray = function(name, separator){\n if(!separator){\n separator = ',';\n }\n //reads the cookie\n var val = this.read(name);\n //creates an array with filters' values\n var arr = val.split(separator);\n return arr;\n};\n\nCookie.getValueByIndex = function(name, index, separator){\n if(!separator){\n separator = ',';\n }\n //reads the cookie\n var val = this.valueToArray(name, separator);\n return val[index];\n};\n\nexports.Cookie = Cookie;\n"]}
|
{"version":3,"sources":["src-es6/cookie.js"],"names":[],"mappings":";;;;;;;AAIA,MAAI,MAAM,GAAG,EAAE,CAAC;;AAEhB,QAAM,CAAC,KAAK,GAAG,UAAS,IAAI,EAAE,KAAK,EAAE,KAAK,EAAC;AACvC,QAAI,MAAM,GAAG,EAAE,CAAC;AAChB,QAAG,KAAK,EAAC;AACL,YAAM,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,KAAK,GAAG,OAAO,CAAC,CAAC;AAC5D,YAAM,GAAG,YAAY,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;KAChD;AACD,YAAQ,CAAC,MAAM,GAAG,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;GACzD,CAAC;;AAEF,QAAM,CAAC,IAAI,GAAG,UAAS,IAAI,EAAC;AACxB,QAAI,WAAW,GAAG,EAAE,EAChB,MAAM,GAAG,IAAI,GAAG,GAAG,CAAC;AACxB,QAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAC;AAC1B,UAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,EACxB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACpC,UAAG,MAAM,KAAK,CAAC,CAAC,EAAC;AACb,cAAM,IAAI,MAAM,CAAC,MAAM,CAAC;AACxB,YAAI,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACtC,YAAG,GAAG,KAAK,CAAC,CAAC,EAAC;AACV,aAAG,GAAG,MAAM,CAAC,MAAM,CAAC;SACvB;AACD,mBAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;OACzD;KACJ;AACD,WAAO,WAAW,CAAC;GACtB,CAAC;;AAEF,QAAM,CAAC,MAAM,GAAG,UAAS,IAAI,EAAC;AAC1B,QAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;GAC5B,CAAC;;AAEF,QAAM,CAAC,YAAY,GAAG,UAAS,IAAI,EAAE,SAAS,EAAC;AAC3C,QAAG,CAAC,SAAS,EAAC;AACV,eAAS,GAAG,GAAG,CAAC;KACnB;;AAED,QAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;AAE1B,QAAI,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC/B,WAAO,GAAG,CAAC;GACd,CAAC;;AAEF,QAAM,CAAC,eAAe,GAAG,UAAS,IAAI,EAAE,KAAK,EAAE,SAAS,EAAC;AACrD,QAAG,CAAC,SAAS,EAAC;AACV,eAAS,GAAG,GAAG,CAAC;KACnB;;AAED,QAAI,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC7C,WAAO,GAAG,CAAC,KAAK,CAAC,CAAC;GACrB,CAAC;;AAEF,SAAO,CAAC,MAAM,GAAG,MAAM,CAAC","file":"src-es6/cookie.js","sourcesContent":["/**\r\n * Cookie utilities\r\n */\r\n\r\nvar Cookie = {};\r\n\r\nCookie.write = function(name, value, hours){\r\n var expire = '';\r\n if(hours){\r\n expire = new Date((new Date()).getTime() + hours * 3600000);\r\n expire = '; expires=' + expire.toGMTString();\r\n }\r\n document.cookie = name + '=' + escape(value) + expire;\r\n};\r\n\r\nCookie.read = function(name){\r\n var cookieValue = '',\r\n search = name + '=';\r\n if(document.cookie.length > 0){\r\n var cookie = document.cookie,\r\n offset = cookie.indexOf(search);\r\n if(offset !== -1){\r\n offset += search.length;\r\n var end = cookie.indexOf(';', offset);\r\n if(end === -1){\r\n end = cookie.length;\r\n }\r\n cookieValue = unescape(cookie.substring(offset, end));\r\n }\r\n }\r\n return cookieValue;\r\n};\r\n\r\nCookie.remove = function(name){\r\n this.write(name, '', -1);\r\n};\r\n\r\nCookie.valueToArray = function(name, separator){\r\n if(!separator){\r\n separator = ',';\r\n }\r\n //reads the cookie\r\n var val = this.read(name);\r\n //creates an array with filters' values\r\n var arr = val.split(separator);\r\n return arr;\r\n};\r\n\r\nCookie.getValueByIndex = function(name, index, separator){\r\n if(!separator){\r\n separator = ',';\r\n }\r\n //reads the cookie\r\n var val = this.valueToArray(name, separator);\r\n return val[index];\r\n};\r\n\r\nexports.Cookie = Cookie;\r\n"]}
|
1299
src/core.js
1299
src/core.js
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
4
src/end.frag
Normal file
4
src/end.frag
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
|
||||||
|
return require('core');
|
||||||
|
|
||||||
|
});
|
|
@ -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,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":["/**\n * DOM event utilities\n */\n\nvar Event = {\n add: function(obj, type, func, capture){\n if(obj.addEventListener){\n obj.addEventListener(type, func, capture);\n }\n else if(obj.attachEvent){\n obj.attachEvent('on'+type, func);\n } else {\n obj['on'+type] = func;\n }\n },\n remove: function(obj, type, func, capture){\n if(obj.detachEvent){\n obj.detachEvent('on'+type,func);\n }\n else if(obj.removeEventListener){\n obj.removeEventListener(type, func, capture);\n } else {\n obj['on'+type] = null;\n }\n },\n stop: function(evt){\n if(!evt){\n evt = window.event;\n }\n if(evt.stopPropagation){\n evt.stopPropagation();\n } else {\n evt.cancelBubble = true;\n }\n },\n cancel: function(evt){\n if(!evt){\n evt = window.event;\n }\n if(evt.preventDefault) {\n evt.preventDefault();\n } else {\n evt.returnValue = false;\n }\n }\n};\n\nexports.Event = Event;\n"]}
|
{"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"]}
|
|
@ -1 +1 @@
|
||||||
{"version":3,"sources":["src-es6/helpers.js"],"names":[],"mappings":";;;;;;;AAIA,MAAI,OAAO,GAAG;AACV,QAAI,EAAE,YAAU;AACZ,aAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;KAClD;GACJ,CAAC;;AAEF,SAAO,CAAC,OAAO,GAAG,OAAO,CAAC","file":"src-es6/helpers.js","sourcesContent":["/**\n * Misc helpers\n */\n\nvar Helpers = {\n isIE: function(){\n return (/msie|MSIE/).test(navigator.userAgent);\n }\n};\n\nexports.Helpers = Helpers;\n"]}
|
{"version":3,"sources":["src-es6/helpers.js"],"names":[],"mappings":";;;;;;;AAIA,MAAI,OAAO,GAAG;AACV,QAAI,EAAE,YAAU;AACZ,aAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;KAClD;GACJ,CAAC;;AAEF,SAAO,CAAC,OAAO,GAAG,OAAO,CAAC","file":"src-es6/helpers.js","sourcesContent":["/**\r\n * Misc helpers\r\n */\r\n\r\nvar Helpers = {\r\n isIE: function(){\r\n return (/msie|MSIE/).test(navigator.userAgent);\r\n }\r\n};\r\n\r\nexports.Helpers = Helpers;\r\n"]}
|
|
@ -77,8 +77,8 @@
|
||||||
loader: false,
|
loader: false,
|
||||||
rows_counter: true,
|
rows_counter: true,
|
||||||
enable_default_theme: true,
|
enable_default_theme: true,
|
||||||
// paging: true,
|
paging: true,
|
||||||
// paging_length: 2,
|
paging_length: 2,
|
||||||
// results_per_page: ['Results per page', [2,4,6]],
|
// results_per_page: ['Results per page', [2,4,6]],
|
||||||
// remember_grid_values: true,
|
// remember_grid_values: true,
|
||||||
// remember_page_number: true,
|
// remember_page_number: true,
|
||||||
|
|
|
@ -1,15 +1,14 @@
|
||||||
define(["exports", "../dom"], function (exports, _dom) {
|
define(["exports", "../dom"], function (exports, _dom) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
|
var _classProps = function (child, staticProps, instanceProps) {
|
||||||
|
if (staticProps) Object.defineProperties(child, staticProps);
|
||||||
|
if (instanceProps) Object.defineProperties(child.prototype, instanceProps);
|
||||||
|
};
|
||||||
|
|
||||||
var Dom = _dom.Dom;
|
var Dom = _dom.Dom;
|
||||||
var AlternateRows = (function () {
|
var AlternateRows = (function () {
|
||||||
var AlternateRows =
|
var AlternateRows = function AlternateRows(tf) {
|
||||||
|
|
||||||
/**
|
|
||||||
* Alternating rows color
|
|
||||||
* @param {Object} tf TableFilter instance
|
|
||||||
*/
|
|
||||||
function AlternateRows(tf) {
|
|
||||||
var f = tf.fObj;
|
var f = tf.fObj;
|
||||||
//defines css class for even rows
|
//defines css class for even rows
|
||||||
this.evenCss = f.even_row_css_class || "even";
|
this.evenCss = f.even_row_css_class || "even";
|
||||||
|
@ -19,63 +18,78 @@ define(["exports", "../dom"], function (exports, _dom) {
|
||||||
this.tf = tf;
|
this.tf = tf;
|
||||||
};
|
};
|
||||||
|
|
||||||
AlternateRows.prototype.init = function () {
|
_classProps(AlternateRows, null, {
|
||||||
if (!this.tf.hasGrid && !this.tf.isFirstLoad) {
|
init: {
|
||||||
return;
|
writable: true,
|
||||||
}
|
value: function () {
|
||||||
var rows = this.tf.tbl.rows;
|
if (!this.tf.hasGrid && !this.tf.isFirstLoad) {
|
||||||
var noValidRowsIndex = this.tf.validRowsIndex === null;
|
return;
|
||||||
//1st index
|
}
|
||||||
var beginIndex = noValidRowsIndex ? this.tf.refRow : 0;
|
var rows = this.tf.tbl.rows;
|
||||||
// nb indexes
|
var noValidRowsIndex = this.tf.validRowsIndex === null;
|
||||||
var indexLen = noValidRowsIndex ? this.tf.nbFilterableRows + beginIndex : this.tf.validRowsIndex.length;
|
//1st index
|
||||||
var idx = 0;
|
var beginIndex = noValidRowsIndex ? this.tf.refRow : 0;
|
||||||
|
// nb indexes
|
||||||
|
var indexLen = noValidRowsIndex ? this.tf.nbFilterableRows + beginIndex : this.tf.validRowsIndex.length;
|
||||||
|
var idx = 0;
|
||||||
|
|
||||||
//alternates bg color
|
//alternates bg color
|
||||||
for (var j = beginIndex; j < indexLen; j++) {
|
for (var j = beginIndex; j < indexLen; j++) {
|
||||||
var rowIdx = noValidRowsIndex ? j : this.tf.validRowsIndex[j];
|
var rowIdx = noValidRowsIndex ? j : this.tf.validRowsIndex[j];
|
||||||
this.setRowBg(rowIdx, idx);
|
this.setRowBg(rowIdx, idx);
|
||||||
idx++;
|
idx++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
setRowBg: {
|
||||||
|
writable: true,
|
||||||
|
value: function (rowIdx, idx) {
|
||||||
|
if (!this.tf.alternateBgs || isNaN(rowIdx)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var rows = this.tf.tbl.rows;
|
||||||
|
var i = !idx ? rowIdx : idx;
|
||||||
|
this.removeRowBg(rowIdx);
|
||||||
|
Dom.addClass(rows[rowIdx], (i % 2) ? this.evenCss : this.oddCss);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
removeRowBg: {
|
||||||
|
writable: true,
|
||||||
|
value: function (idx) {
|
||||||
|
if (isNaN(idx)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var rows = this.tf.tbl.rows;
|
||||||
|
Dom.removeClass(rows[idx], this.oddCss);
|
||||||
|
Dom.removeClass(rows[idx], this.evenCss);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
remove: {
|
||||||
|
writable: true,
|
||||||
|
value: function () {
|
||||||
|
if (!this.tf.hasGrid) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var row = this.tf.tbl.rows;
|
||||||
|
for (var i = this.tf.refRow; i < this.tf.nbRows; i++) {
|
||||||
|
this.removeRowBg(i);
|
||||||
|
}
|
||||||
|
this.tf.isStartBgAlternate = true;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
enable: {
|
||||||
|
writable: true,
|
||||||
|
value: function () {
|
||||||
|
this.tf.alternateBgs = true;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
disable: {
|
||||||
|
writable: true,
|
||||||
|
value: function () {
|
||||||
|
this.tf.alternateBgs = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
});
|
||||||
|
|
||||||
AlternateRows.prototype.setRowBg = function (rowIdx, idx) {
|
|
||||||
if (!this.tf.alternateBgs || isNaN(rowIdx)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var rows = this.tf.tbl.rows;
|
|
||||||
var i = !idx ? rowIdx : idx;
|
|
||||||
this.removeRowBg(rowIdx);
|
|
||||||
Dom.addClass(rows[rowIdx], (i % 2) ? this.evenCss : this.oddCss);
|
|
||||||
};
|
|
||||||
|
|
||||||
AlternateRows.prototype.removeRowBg = function (idx) {
|
|
||||||
if (isNaN(idx)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var rows = this.tf.tbl.rows;
|
|
||||||
Dom.removeClass(rows[idx], this.oddCss);
|
|
||||||
Dom.removeClass(rows[idx], this.evenCss);
|
|
||||||
};
|
|
||||||
|
|
||||||
AlternateRows.prototype.remove = function () {
|
|
||||||
if (!this.tf.hasGrid) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var row = this.tf.tbl.rows;
|
|
||||||
for (var i = this.tf.refRow; i < this.tf.nbRows; i++) {
|
|
||||||
this.removeRowBg(i);
|
|
||||||
}
|
|
||||||
this.tf.isStartBgAlternate = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
AlternateRows.prototype.enable = function () {
|
|
||||||
this.tf.alternateBgs = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
AlternateRows.prototype.disable = function () {
|
|
||||||
this.tf.alternateBgs = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
return AlternateRows;
|
return AlternateRows;
|
||||||
})();
|
})();
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
{"version":3,"sources":["src-es6/modules/alternateRows.js"],"names":[],"mappings":";;;MAAQ,GAAG,QAAH,GAAG;MAEE,aAAa;QAAb,aAAa;;;;;;AAMX,aANF,aAAa,CAMV,EAAE,EAAE;AACZ,UAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;;AAEhB,UAAI,CAAC,OAAO,GAAG,CAAC,CAAC,kBAAkB,IAAI,MAAM,CAAC;;AAE9C,UAAI,CAAC,MAAM,GAAG,CAAC,CAAC,iBAAiB,IAAI,KAAK,CAAC;;AAE3C,UAAI,CAAC,EAAE,GAAG,EAAE,CAAC;KAChB;;AAdQ,iBAAa,WAmBtB,IAAI,GAAA,YAAG;AACH,UAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW;AACvC,eAAO;OACV;AACD,UAAI,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5B,UAAI,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,cAAc;;AAE7C,UAAI,UAAU,GAAG,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;;AAEvD,UAAI,QAAQ,GAAG,gBAAgB,GACvB,IAAI,CAAC,EAAE,CAAC,gBAAgB,GAAC,UAAU,GACnC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC;AACtC,UAAI,GAAG,GAAG,CAAC,CAAC;;;AAGZ,WAAI,IAAI,CAAC,GAAC,UAAU,EAAE,CAAC,GAAC,QAAQ,EAAE,CAAC,EAAE,EAAC;AAClC,YAAI,MAAM,GAAG,gBAAgB,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AAC9D,YAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC3B,WAAG,EAAE,CAAC;OACT;KACJ;;AAvCQ,iBAAa,WA+CtB,QAAQ,GAAA,UAAC,MAAM,EAAE,GAAG,EAAE;AAClB,UAAG,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,IAAI,KAAK,CAAC,MAAM,CAAC,EAAC;AACtC,eAAO;OACV;AACD,UAAI,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5B,UAAI,CAAC,GAAG,CAAC,GAAG,GAAG,MAAM,GAAG,GAAG,CAAC;AAC5B,UAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACzB,SAAG,CAAC,QAAQ,CACR,IAAI,CAAC,MAAM,CAAC,EACZ,CAAC,CAAC,GAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CACrC,CAAC;KACL;;AA1DQ,iBAAa,WAgEtB,WAAW,GAAA,UAAC,GAAG,EAAE;AACb,UAAG,KAAK,CAAC,GAAG,CAAC,EAAC;AACV,eAAO;OACV;AACD,UAAI,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5B,SAAG,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACxC,SAAG,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;KAC5C;;AAvEQ,iBAAa,WA4EtB,MAAM,GAAA,YAAG;AACL,UAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAC;AAChB,eAAO;OACV;AACD,UAAI,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;AAC3B,WAAI,IAAI,CAAC,GAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,GAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;AAC5C,YAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;OACvB;AACD,UAAI,CAAC,EAAE,CAAC,kBAAkB,GAAG,IAAI,CAAC;KACrC;;AArFQ,iBAAa,WAuFtB,MAAM,GAAA,YAAG;AACL,UAAI,CAAC,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC;KAC/B;;AAzFQ,iBAAa,WA2FtB,OAAO,GAAA,YAAG;AACN,UAAI,CAAC,EAAE,CAAC,YAAY,GAAG,KAAK,CAAC;KAChC;;WA7FQ,aAAa;;;UAAb,aAAa,GAAb,aAAa","file":"src-es6/modules/alternateRows.js","sourcesContent":["import {Dom} from '../dom';\n\nexport class AlternateRows{\n\n /**\n * Alternating rows color\n * @param {Object} tf TableFilter instance\n */\n constructor(tf) {\n var f = tf.fObj;\n //defines css class for even rows\n this.evenCss = f.even_row_css_class || 'even';\n //defines css class for odd rows\n this.oddCss = f.odd_row_css_class || 'odd';\n\n this.tf = tf;\n }\n\n /**\n * Sets alternating rows color\n */\n init() {\n if(!this.tf.hasGrid && !this.tf.isFirstLoad){\n return;\n }\n var rows = this.tf.tbl.rows;\n var noValidRowsIndex = this.tf.validRowsIndex===null;\n //1st index\n var beginIndex = noValidRowsIndex ? this.tf.refRow : 0;\n // nb indexes\n var indexLen = noValidRowsIndex ?\n this.tf.nbFilterableRows+beginIndex :\n this.tf.validRowsIndex.length;\n var idx = 0;\n\n //alternates bg color\n for(var j=beginIndex; j<indexLen; j++){\n var rowIdx = noValidRowsIndex ? j : this.tf.validRowsIndex[j];\n this.setRowBg(rowIdx, idx);\n idx++;\n }\n }\n\n /**\n * Sets row background color\n * @param {Number} rowIdx Row index\n * @param {Number} idx Valid rows collection index needed to calculate bg\n * color\n */\n setRowBg(rowIdx, idx) {\n if(!this.tf.alternateBgs || isNaN(rowIdx)){\n return;\n }\n var rows = this.tf.tbl.rows;\n var i = !idx ? rowIdx : idx;\n this.removeRowBg(rowIdx);\n Dom.addClass(\n rows[rowIdx],\n (i%2) ? this.evenCss : this.oddCss\n );\n }\n\n /**\n * Removes row background color\n * @param {Number} idx Row index\n */\n removeRowBg(idx) {\n if(isNaN(idx)){\n return;\n }\n var rows = this.tf.tbl.rows;\n Dom.removeClass(rows[idx], this.oddCss);\n Dom.removeClass(rows[idx], this.evenCss);\n }\n\n /**\n * Removes all row background color\n */\n remove() {\n if(!this.tf.hasGrid){\n return;\n }\n var row = this.tf.tbl.rows;\n for(var i=this.tf.refRow; i<this.tf.nbRows; i++){\n this.removeRowBg(i);\n }\n this.tf.isStartBgAlternate = true;\n }\n\n enable() {\n this.tf.alternateBgs = true;\n }\n\n disable() {\n this.tf.alternateBgs = false;\n }\n\n}\n\n"]}
|
{"version":3,"sources":["src-es6/modules/alternateRows.js"],"names":[],"mappings":";;;;;;;;MAAQ,GAAG,QAAH,GAAG;MAEE,aAAa;QAAb,aAAa,GAMX,SANF,aAAa,CAMV,EAAE,EAAE;AACZ,UAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;;AAEhB,UAAI,CAAC,OAAO,GAAG,CAAC,CAAC,kBAAkB,IAAI,MAAM,CAAC;;AAE9C,UAAI,CAAC,MAAM,GAAG,CAAC,CAAC,iBAAiB,IAAI,KAAK,CAAC;;AAE3C,UAAI,CAAC,EAAE,GAAG,EAAE,CAAC;KAChB;;gBAdQ,aAAa;AAmBtB,UAAI;;eAAA,YAAG;AACH,cAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,EAAC;AACxC,mBAAO;WACV;AACD,cAAI,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5B,cAAI,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,cAAc,KAAG,IAAI,CAAC;;AAErD,cAAI,UAAU,GAAG,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;;AAEvD,cAAI,QAAQ,GAAG,gBAAgB,GACvB,IAAI,CAAC,EAAE,CAAC,gBAAgB,GAAC,UAAU,GACnC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC;AACtC,cAAI,GAAG,GAAG,CAAC,CAAC;;;AAGZ,eAAI,IAAI,CAAC,GAAC,UAAU,EAAE,CAAC,GAAC,QAAQ,EAAE,CAAC,EAAE,EAAC;AAClC;AACA;AACA;WACH;SACJ;;AAQD,cAAQ;;eAAA,UAAC,MAAM,EAAE,GAAG,EAAE;AAClB,cAAG,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,IAAI,KAAK,CAAC,MAAM,CAAC,EAAC;AACtC,mBAAO;WACV;AACD,cAAI,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5B,cAAI,CAAC,GAAG,CAAC,GAAG,GAAG,MAAM,GAAG,GAAG,CAAC;AAC5B,cAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACzB,aAAG,CAAC,QAAQ,CACR,IAAI,CAAC,MAAM,CAAC,EACZ,CAAC,CAAC,GAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CACrC,CAAC;SACL;;AAMD,iBAAW;;eAAA,UAAC,GAAG,EAAE;AACb,cAAG,KAAK,CAAC,GAAG,CAAC,EAAC;AACV,mBAAO;WACV;AACD,cAAI,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;AAC5B,aAAG,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACxC,aAAG,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAC5C;;AAKD,YAAM;;eAAA,YAAG;AACL,cAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAC;AAChB,mBAAO;WACV;AACD,cAAI,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;AAC3B,eAAI,IAAI,CAAC,GAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,GAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;AAC5C,gBAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;WACvB;AACD,cAAI,CAAC,EAAE,CAAC,kBAAkB,GAAG,IAAI,CAAC;SACrC;;AAED,YAAM;;eAAA,YAAG;AACL,cAAI,CAAC,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC;SAC/B;;AAED,aAAO;;eAAA,YAAG;AACN,cAAI,CAAC,EAAE,CAAC,YAAY,GAAG,KAAK,CAAC;SAChC;;;;WA7FQ,aAAa;;;UAAb,aAAa,GAAb,aAAa","file":"src-es6/modules/alternateRows.js","sourcesContent":["import {Dom} from '../dom';\r\n\r\nexport class AlternateRows{\r\n\r\n /**\r\n * Alternating rows color\r\n * @param {Object} tf TableFilter instance\r\n */\r\n constructor(tf) {\r\n var f = tf.fObj;\r\n //defines css class for even rows\r\n this.evenCss = f.even_row_css_class || 'even';\r\n //defines css class for odd rows\r\n this.oddCss = f.odd_row_css_class || 'odd';\r\n\r\n this.tf = tf;\r\n }\r\n\r\n /**\r\n * Sets alternating rows color\r\n */\r\n init() {\r\n if(!this.tf.hasGrid && !this.tf.isFirstLoad){\r\n return;\r\n }\r\n var rows = this.tf.tbl.rows;\r\n var noValidRowsIndex = this.tf.validRowsIndex===null;\r\n //1st index\r\n var beginIndex = noValidRowsIndex ? this.tf.refRow : 0;\r\n // nb indexes\r\n var indexLen = noValidRowsIndex ?\r\n this.tf.nbFilterableRows+beginIndex :\r\n this.tf.validRowsIndex.length;\r\n var idx = 0;\r\n\r\n //alternates bg color\r\n for(var j=beginIndex; j<indexLen; j++){\r\n var rowIdx = noValidRowsIndex ? j : this.tf.validRowsIndex[j];\r\n this.setRowBg(rowIdx, idx);\r\n idx++;\r\n }\r\n }\r\n\r\n /**\r\n * Sets row background color\r\n * @param {Number} rowIdx Row index\r\n * @param {Number} idx Valid rows collection index needed to calculate bg\r\n * color\r\n */\r\n setRowBg(rowIdx, idx) {\r\n if(!this.tf.alternateBgs || isNaN(rowIdx)){\r\n return;\r\n }\r\n var rows = this.tf.tbl.rows;\r\n var i = !idx ? rowIdx : idx;\r\n this.removeRowBg(rowIdx);\r\n Dom.addClass(\r\n rows[rowIdx],\r\n (i%2) ? this.evenCss : this.oddCss\r\n );\r\n }\r\n\r\n /**\r\n * Removes row background color\r\n * @param {Number} idx Row index\r\n */\r\n removeRowBg(idx) {\r\n if(isNaN(idx)){\r\n return;\r\n }\r\n var rows = this.tf.tbl.rows;\r\n Dom.removeClass(rows[idx], this.oddCss);\r\n Dom.removeClass(rows[idx], this.evenCss);\r\n }\r\n\r\n /**\r\n * Removes all row background color\r\n */\r\n remove() {\r\n if(!this.tf.hasGrid){\r\n return;\r\n }\r\n var row = this.tf.tbl.rows;\r\n for(var i=this.tf.refRow; i<this.tf.nbRows; i++){\r\n this.removeRowBg(i);\r\n }\r\n this.tf.isStartBgAlternate = true;\r\n }\r\n\r\n enable() {\r\n this.tf.alternateBgs = true;\r\n }\r\n\r\n disable() {\r\n this.tf.alternateBgs = false;\r\n }\r\n\r\n}\r\n\r\n"]}
|
|
@ -1,242 +1,246 @@
|
||||||
define(["exports", "../dom", "../string"], function (exports, _dom, _string) {
|
define(["exports", "../dom", "../string"], function (exports, _dom, _string) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
|
var _classProps = function (child, staticProps, instanceProps) {
|
||||||
|
if (staticProps) Object.defineProperties(child, staticProps);
|
||||||
|
if (instanceProps) Object.defineProperties(child.prototype, instanceProps);
|
||||||
|
};
|
||||||
|
|
||||||
var Dom = _dom.Dom;
|
var Dom = _dom.Dom;
|
||||||
var Str = _string.Str;
|
var Str = _string.Str;
|
||||||
var ColOps = (function () {
|
var ColOps = (function () {
|
||||||
var ColOps =
|
var ColOps = function ColOps(tf) {
|
||||||
|
|
||||||
/**
|
|
||||||
* Column calculations
|
|
||||||
* @param {Object} tf TableFilter instance
|
|
||||||
*/
|
|
||||||
function ColOps(tf) {
|
|
||||||
var f = tf.fObj;
|
var f = tf.fObj;
|
||||||
this.colOperation = f.col_operation;
|
this.colOperation = f.col_operation;
|
||||||
|
|
||||||
this.tf = tf;
|
this.tf = tf;
|
||||||
};
|
};
|
||||||
|
|
||||||
ColOps.prototype.calc = function () {
|
_classProps(ColOps, null, {
|
||||||
if (!this.tf.isFirstLoad && !this.tf.hasGrid) {
|
calc: {
|
||||||
return;
|
writable: true,
|
||||||
}
|
value: function () {
|
||||||
|
if (!this.tf.isFirstLoad && !this.tf.hasGrid) {
|
||||||
if (this.tf.onBeforeOperation) {
|
return;
|
||||||
this.tf.onBeforeOperation.call(null, this.tf);
|
|
||||||
}
|
|
||||||
|
|
||||||
var colOperation = this.colOperation, labelId = colOperation.id, colIndex = colOperation.col, operation = colOperation.operation, outputType = colOperation.write_method, totRowIndex = colOperation.tot_row_index, excludeRow = colOperation.exclude_row, decimalPrecision = colOperation.decimal_precision !== undefined ? colOperation.decimal_precision : 2;
|
|
||||||
|
|
||||||
//nuovella: determine unique list of columns to operate on
|
|
||||||
var ucolIndex = [], ucolMax = 0;
|
|
||||||
ucolIndex[ucolMax] = colIndex[0];
|
|
||||||
|
|
||||||
for (var ii = 1; ii < colIndex.length; ii++) {
|
|
||||||
var saved = 0;
|
|
||||||
//see if colIndex[ii] is already in the list of unique indexes
|
|
||||||
for (var jj = 0; jj <= ucolMax; jj++) {
|
|
||||||
if (ucolIndex[jj] === colIndex[ii]) {
|
|
||||||
saved = 1;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
//if not saved then, save the index;
|
|
||||||
if (saved === 0) {
|
|
||||||
ucolMax++;
|
|
||||||
ucolIndex[ucolMax] = colIndex[ii];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Str.lower(typeof labelId) == "object" && Str.lower(typeof colIndex) == "object" && Str.lower(typeof operation) == "object") {
|
if (this.tf.onBeforeOperation) {
|
||||||
var row = this.tf.tbl.rows, colvalues = [];
|
this.tf.onBeforeOperation.call(null, this.tf);
|
||||||
|
}
|
||||||
|
|
||||||
for (var ucol = 0; ucol <= ucolMax; ucol++) {
|
var colOperation = this.colOperation, labelId = colOperation.id, colIndex = colOperation.col, operation = colOperation.operation, outputType = colOperation.write_method, totRowIndex = colOperation.tot_row_index, excludeRow = colOperation.exclude_row, decimalPrecision = colOperation.decimal_precision !== undefined ? colOperation.decimal_precision : 2;
|
||||||
//this retrieves col values
|
|
||||||
//use ucolIndex because we only want to pass through this loop
|
|
||||||
//once for each column get the values in this unique column
|
|
||||||
colvalues.push(this.tf.GetColValues(ucolIndex[ucol], true, excludeRow));
|
|
||||||
|
|
||||||
//next: calculate all operations for this column
|
//nuovella: determine unique list of columns to operate on
|
||||||
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;
|
var ucolIndex = [], ucolMax = 0;
|
||||||
|
ucolIndex[ucolMax] = colIndex[0];
|
||||||
|
|
||||||
for (var k = 0; k < colIndex.length; k++) {
|
for (var ii = 1; ii < colIndex.length; ii++) {
|
||||||
if (colIndex[k] === ucolIndex[ucol]) {
|
var saved = 0;
|
||||||
mThisCol++;
|
//see if colIndex[ii] is already in the list of unique indexes
|
||||||
opsThisCol[mThisCol] = Str.lower(operation[k]);
|
for (var jj = 0; jj <= ucolMax; jj++) {
|
||||||
decThisCol[mThisCol] = decimalPrecision[k];
|
if (ucolIndex[jj] === colIndex[ii]) {
|
||||||
labThisCol[mThisCol] = labelId[k];
|
saved = 1;
|
||||||
oTypeThisCol = outputType !== undefined && Str.lower(typeof outputType) === "object" ? outputType[k] : null;
|
|
||||||
|
|
||||||
switch (opsThisCol[mThisCol]) {
|
|
||||||
case "mean":
|
|
||||||
meanFlag = 1;
|
|
||||||
break;
|
|
||||||
case "sum":
|
|
||||||
sumFlag = 1;
|
|
||||||
break;
|
|
||||||
case "min":
|
|
||||||
minFlag = 1;
|
|
||||||
break;
|
|
||||||
case "max":
|
|
||||||
maxFlag = 1;
|
|
||||||
break;
|
|
||||||
case "median":
|
|
||||||
medFlag = 1;
|
|
||||||
break;
|
|
||||||
case "q1":
|
|
||||||
q1Flag = 1;
|
|
||||||
break;
|
|
||||||
case "q3":
|
|
||||||
q3Flag = 1;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//if not saved then, save the index;
|
||||||
|
if (saved === 0) {
|
||||||
|
ucolMax++;
|
||||||
|
ucolIndex[ucolMax] = colIndex[ii];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var j = 0; j < colvalues[ucol].length; j++) {
|
if (Str.lower(typeof labelId) == "object" && Str.lower(typeof colIndex) == "object" && Str.lower(typeof operation) == "object") {
|
||||||
//sort the list for calculation of median and quartiles
|
var row = this.tf.tbl.rows, colvalues = [];
|
||||||
if ((q1Flag == 1) || (q3Flag == 1) || (medFlag == 1)) {
|
|
||||||
if (j < colvalues[ucol].length - 1) {
|
for (var ucol = 0; ucol <= ucolMax; ucol++) {
|
||||||
for (k = j + 1; k < colvalues[ucol].length; k++) {
|
//this retrieves col values
|
||||||
if (eval(colvalues[ucol][k]) < eval(colvalues[ucol][j])) {
|
//use ucolIndex because we only want to pass through this loop
|
||||||
temp = colvalues[ucol][j];
|
//once for each column get the values in this unique column
|
||||||
colvalues[ucol][j] = colvalues[ucol][k];
|
colvalues.push(this.tf.GetColValues(ucolIndex[ucol], true, excludeRow));
|
||||||
colvalues[ucol][k] = temp;
|
|
||||||
|
//next: calculate all operations for this column
|
||||||
|
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;
|
||||||
|
|
||||||
|
for (var k = 0; k < colIndex.length; k++) {
|
||||||
|
if (colIndex[k] === ucolIndex[ucol]) {
|
||||||
|
mThisCol++;
|
||||||
|
opsThisCol[mThisCol] = Str.lower(operation[k]);
|
||||||
|
decThisCol[mThisCol] = decimalPrecision[k];
|
||||||
|
labThisCol[mThisCol] = labelId[k];
|
||||||
|
oTypeThisCol = outputType !== undefined && Str.lower(typeof outputType) === "object" ? outputType[k] : null;
|
||||||
|
|
||||||
|
switch (opsThisCol[mThisCol]) {
|
||||||
|
case "mean":
|
||||||
|
meanFlag = 1;
|
||||||
|
break;
|
||||||
|
case "sum":
|
||||||
|
sumFlag = 1;
|
||||||
|
break;
|
||||||
|
case "min":
|
||||||
|
minFlag = 1;
|
||||||
|
break;
|
||||||
|
case "max":
|
||||||
|
maxFlag = 1;
|
||||||
|
break;
|
||||||
|
case "median":
|
||||||
|
medFlag = 1;
|
||||||
|
break;
|
||||||
|
case "q1":
|
||||||
|
q1Flag = 1;
|
||||||
|
break;
|
||||||
|
case "q3":
|
||||||
|
q3Flag = 1;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
var cvalue = parseFloat(colvalues[ucol][j]);
|
|
||||||
theList[j] = parseFloat(cvalue);
|
|
||||||
|
|
||||||
if (!isNaN(cvalue)) {
|
for (var j = 0; j < colvalues[ucol].length; j++) {
|
||||||
nbvalues++;
|
//sort the list for calculation of median and quartiles
|
||||||
if (sumFlag === 1 || meanFlag === 1) {
|
if ((q1Flag == 1) || (q3Flag == 1) || (medFlag == 1)) {
|
||||||
sumValue += parseFloat(cvalue);
|
if (j < colvalues[ucol].length - 1) {
|
||||||
|
for (k = j + 1; k < colvalues[ucol].length; k++) {
|
||||||
|
if (eval(colvalues[ucol][k]) < eval(colvalues[ucol][j])) {
|
||||||
|
temp = colvalues[ucol][j];
|
||||||
|
colvalues[ucol][j] = colvalues[ucol][k];
|
||||||
|
colvalues[ucol][k] = temp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var cvalue = parseFloat(colvalues[ucol][j]);
|
||||||
|
theList[j] = parseFloat(cvalue);
|
||||||
|
|
||||||
|
if (!isNaN(cvalue)) {
|
||||||
|
nbvalues++;
|
||||||
|
if (sumFlag === 1 || meanFlag === 1) {
|
||||||
|
sumValue += parseFloat(cvalue);
|
||||||
|
}
|
||||||
|
if (minFlag === 1) {
|
||||||
|
if (minValue === null) {
|
||||||
|
minValue = parseFloat(cvalue);
|
||||||
|
} else {
|
||||||
|
minValue = parseFloat(cvalue) < minValue ? parseFloat(cvalue) : minValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (maxFlag === 1) {
|
||||||
|
if (maxValue === null) {
|
||||||
|
maxValue = parseFloat(cvalue);
|
||||||
|
} else {
|
||||||
|
maxValue = parseFloat(cvalue) > maxValue ? parseFloat(cvalue) : maxValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} //for j
|
||||||
|
if (meanFlag === 1) {
|
||||||
|
meanValue = sumValue / nbvalues;
|
||||||
}
|
}
|
||||||
if (minFlag === 1) {
|
if (medFlag === 1) {
|
||||||
if (minValue === null) {
|
var aux = 0;
|
||||||
minValue = parseFloat(cvalue);
|
if (nbvalues % 2 === 1) {
|
||||||
|
aux = Math.floor(nbvalues / 2);
|
||||||
|
medValue = theList[aux];
|
||||||
} else {
|
} else {
|
||||||
minValue = parseFloat(cvalue) < minValue ? parseFloat(cvalue) : minValue;
|
medValue = (theList[nbvalues / 2] + theList[((nbvalues / 2) - 1)]) / 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (maxFlag === 1) {
|
var posa;
|
||||||
if (maxValue === null) {
|
if (q1Flag === 1) {
|
||||||
maxValue = parseFloat(cvalue);
|
posa = 0;
|
||||||
|
posa = Math.floor(nbvalues / 4);
|
||||||
|
if (4 * posa == nbvalues) {
|
||||||
|
q1Value = (theList[posa - 1] + theList[posa]) / 2;
|
||||||
} else {
|
} else {
|
||||||
maxValue = parseFloat(cvalue) > maxValue ? parseFloat(cvalue) : maxValue;
|
q1Value = theList[posa];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (q3Flag === 1) {
|
||||||
|
posa = 0;
|
||||||
|
var posb = 0;
|
||||||
|
posa = Math.floor(nbvalues / 4);
|
||||||
|
if (4 * posa === nbvalues) {
|
||||||
|
posb = 3 * posa;
|
||||||
|
q3Value = (theList[posb] + theList[posb - 1]) / 2;
|
||||||
|
} else {
|
||||||
|
q3Value = theList[nbvalues - posa - 1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
} //for j
|
|
||||||
if (meanFlag === 1) {
|
|
||||||
meanValue = sumValue / nbvalues;
|
|
||||||
}
|
|
||||||
if (medFlag === 1) {
|
|
||||||
var aux = 0;
|
|
||||||
if (nbvalues % 2 === 1) {
|
|
||||||
aux = Math.floor(nbvalues / 2);
|
|
||||||
medValue = theList[aux];
|
|
||||||
} else {
|
|
||||||
medValue = (theList[nbvalues / 2] + theList[((nbvalues / 2) - 1)]) / 2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
var posa;
|
|
||||||
if (q1Flag === 1) {
|
|
||||||
posa = 0;
|
|
||||||
posa = Math.floor(nbvalues / 4);
|
|
||||||
if (4 * posa == nbvalues) {
|
|
||||||
q1Value = (theList[posa - 1] + theList[posa]) / 2;
|
|
||||||
} else {
|
|
||||||
q1Value = theList[posa];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (q3Flag === 1) {
|
|
||||||
posa = 0;
|
|
||||||
var posb = 0;
|
|
||||||
posa = Math.floor(nbvalues / 4);
|
|
||||||
if (4 * posa === nbvalues) {
|
|
||||||
posb = 3 * posa;
|
|
||||||
q3Value = (theList[posb] + theList[posb - 1]) / 2;
|
|
||||||
} else {
|
|
||||||
q3Value = theList[nbvalues - posa - 1];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (var i = 0; i <= mThisCol; i++) {
|
for (var i = 0; i <= mThisCol; i++) {
|
||||||
switch (opsThisCol[i]) {
|
switch (opsThisCol[i]) {
|
||||||
case "mean":
|
case "mean":
|
||||||
result = meanValue;
|
result = meanValue;
|
||||||
break;
|
break;
|
||||||
case "sum":
|
case "sum":
|
||||||
result = sumValue;
|
result = sumValue;
|
||||||
break;
|
break;
|
||||||
case "min":
|
case "min":
|
||||||
result = minValue;
|
result = minValue;
|
||||||
break;
|
break;
|
||||||
case "max":
|
case "max":
|
||||||
result = maxValue;
|
result = maxValue;
|
||||||
break;
|
break;
|
||||||
case "median":
|
case "median":
|
||||||
result = medValue;
|
result = medValue;
|
||||||
break;
|
break;
|
||||||
case "q1":
|
case "q1":
|
||||||
result = q1Value;
|
result = q1Value;
|
||||||
break;
|
break;
|
||||||
case "q3":
|
case "q3":
|
||||||
result = q3Value;
|
result = q3Value;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
var precision = !isNaN(decThisCol[i]) ? decThisCol[i] : 2;
|
var precision = !isNaN(decThisCol[i]) ? decThisCol[i] : 2;
|
||||||
|
|
||||||
//if outputType is defined
|
//if outputType is defined
|
||||||
if (oTypeThisCol && result) {
|
if (oTypeThisCol && result) {
|
||||||
result = result.toFixed(precision);
|
result = result.toFixed(precision);
|
||||||
|
|
||||||
if (Dom.id(labThisCol[i])) {
|
if (Dom.id(labThisCol[i])) {
|
||||||
switch (Str.lower(oTypeThisCol)) {
|
switch (Str.lower(oTypeThisCol)) {
|
||||||
case "innerhtml":
|
case "innerhtml":
|
||||||
|
if (isNaN(result) || !isFinite(result) || nbvalues === 0) {
|
||||||
|
Dom.id(labThisCol[i]).innerHTML = ".";
|
||||||
|
} else {
|
||||||
|
Dom.id(labThisCol[i]).innerHTML = result;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "setvalue":
|
||||||
|
Dom.id(labThisCol[i]).value = result;
|
||||||
|
break;
|
||||||
|
case "createtextnode":
|
||||||
|
var oldnode = Dom.id(labThisCol[i]).firstChild;
|
||||||
|
var txtnode = Dom.text(result);
|
||||||
|
Dom.id(labThisCol[i]).replaceChild(txtnode, oldnode);
|
||||||
|
break;
|
||||||
|
} //switch
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
if (isNaN(result) || !isFinite(result) || nbvalues === 0) {
|
if (isNaN(result) || !isFinite(result) || nbvalues === 0) {
|
||||||
Dom.id(labThisCol[i]).innerHTML = ".";
|
Dom.id(labThisCol[i]).innerHTML = ".";
|
||||||
} else {
|
} else {
|
||||||
Dom.id(labThisCol[i]).innerHTML = result;
|
Dom.id(labThisCol[i]).innerHTML = result.toFixed(precision);
|
||||||
}
|
}
|
||||||
break;
|
} catch (e) {} //catch
|
||||||
case "setvalue":
|
} //else
|
||||||
Dom.id(labThisCol[i]).value = result;
|
} //for i
|
||||||
break;
|
|
||||||
case "createtextnode":
|
// row(s) with result are always visible
|
||||||
var oldnode = Dom.id(labThisCol[i]).firstChild;
|
var totRow = totRowIndex && totRowIndex[ucol] ? row[totRowIndex[ucol]] : null;
|
||||||
var txtnode = Dom.text(result);
|
if (totRow) {
|
||||||
Dom.id(labThisCol[i]).replaceChild(txtnode, oldnode);
|
totRow.style.display = "";
|
||||||
break;
|
|
||||||
} //switch
|
|
||||||
}
|
}
|
||||||
} else {
|
} //for ucol
|
||||||
try {
|
} //if typeof
|
||||||
if (isNaN(result) || !isFinite(result) || nbvalues === 0) {
|
|
||||||
Dom.id(labThisCol[i]).innerHTML = ".";
|
|
||||||
} else {
|
|
||||||
Dom.id(labThisCol[i]).innerHTML = result.toFixed(precision);
|
|
||||||
}
|
|
||||||
} catch (e) {} //catch
|
|
||||||
} //else
|
|
||||||
} //for i
|
|
||||||
|
|
||||||
// row(s) with result are always visible
|
if (this.tf.onAfterOperation) {
|
||||||
var totRow = totRowIndex && totRowIndex[ucol] ? row[totRowIndex[ucol]] : null;
|
this.tf.onAfterOperation.call(null, this.tf);
|
||||||
if (totRow) {
|
|
||||||
totRow.style.display = "";
|
|
||||||
}
|
}
|
||||||
} //for ucol
|
}
|
||||||
} //if typeof
|
|
||||||
|
|
||||||
if (this.tf.onAfterOperation) {
|
|
||||||
this.tf.onAfterOperation.call(null, this.tf);
|
|
||||||
}
|
}
|
||||||
};
|
});
|
||||||
|
|
||||||
return ColOps;
|
return ColOps;
|
||||||
})();
|
})();
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,18 +1,17 @@
|
||||||
define(["exports", "../dom", "../types", "../helpers", "../event"], function (exports, _dom, _types, _helpers, _event) {
|
define(["exports", "../dom", "../types", "../helpers", "../event"], function (exports, _dom, _types, _helpers, _event) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
|
var _classProps = function (child, staticProps, instanceProps) {
|
||||||
|
if (staticProps) Object.defineProperties(child, staticProps);
|
||||||
|
if (instanceProps) Object.defineProperties(child.prototype, instanceProps);
|
||||||
|
};
|
||||||
|
|
||||||
var Dom = _dom.Dom;
|
var Dom = _dom.Dom;
|
||||||
var Types = _types.Types;
|
var Types = _types.Types;
|
||||||
var Helpers = _helpers.Helpers;
|
var Helpers = _helpers.Helpers;
|
||||||
var Event = _event.Event;
|
var Event = _event.Event;
|
||||||
var GridLayout = (function () {
|
var GridLayout = (function () {
|
||||||
var GridLayout =
|
var GridLayout = function GridLayout(tf) {
|
||||||
|
|
||||||
/**
|
|
||||||
* Grid layout, table with fixed headers
|
|
||||||
* @param {Object} tf TableFilter instance
|
|
||||||
*/
|
|
||||||
function GridLayout(tf) {
|
|
||||||
var f = tf.fObj;
|
var f = tf.fObj;
|
||||||
|
|
||||||
//defines grid width
|
//defines grid width
|
||||||
|
@ -45,338 +44,287 @@ define(["exports", "../dom", "../types", "../helpers", "../event"], function (ex
|
||||||
this.tf = tf;
|
this.tf = tf;
|
||||||
};
|
};
|
||||||
|
|
||||||
GridLayout.prototype.init = function () {
|
_classProps(GridLayout, null, {
|
||||||
var tf = this.tf;
|
init: {
|
||||||
var f = tf.fObj;
|
writable: true,
|
||||||
var tbl = tf.tbl;
|
value: function () {
|
||||||
|
var tf = this.tf;
|
||||||
|
var f = tf.fObj;
|
||||||
|
var tbl = tf.tbl;
|
||||||
|
|
||||||
if (!tf.gridLayout) {
|
if (!tf.gridLayout) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
tf.isExternalFlt = true;
|
tf.isExternalFlt = true;
|
||||||
|
|
||||||
// default width of 100px if column widths not set
|
// default width of 100px if column widths not set
|
||||||
if (!tf.hasColWidth) {
|
if (!tf.hasColWidth) {
|
||||||
tf.colWidth = [];
|
tf.colWidth = [];
|
||||||
for (var k = 0; k < tf.nbCells; k++) {
|
for (var k = 0; k < tf.nbCells; k++) {
|
||||||
var colW, cell = tbl.rows[this.gridHeadRowIndex].cells[k];
|
var colW, cell = tbl.rows[this.gridHeadRowIndex].cells[k];
|
||||||
if (cell.width !== "") {
|
if (cell.width !== "") {
|
||||||
colW = cell.width;
|
colW = cell.width;
|
||||||
} else if (cell.style.width !== "") {
|
} else if (cell.style.width !== "") {
|
||||||
colW = parseInt(cell.style.width, 10);
|
colW = parseInt(cell.style.width, 10);
|
||||||
|
} else {
|
||||||
|
colW = this.gridDefaultColWidth;
|
||||||
|
}
|
||||||
|
tf.colWidth[k] = colW;
|
||||||
|
}
|
||||||
|
tf.hasColWidth = true;
|
||||||
|
}
|
||||||
|
tf.SetColWidths(this.gridHeadRowIndex);
|
||||||
|
|
||||||
|
var tblW; //initial table width
|
||||||
|
if (tbl.width !== "") {
|
||||||
|
tblW = tbl.width;
|
||||||
|
} else if (tbl.style.width !== "") {
|
||||||
|
tblW = parseInt(tbl.style.width, 10);
|
||||||
} else {
|
} else {
|
||||||
colW = this.gridDefaultColWidth;
|
tblW = tbl.clientWidth;
|
||||||
}
|
}
|
||||||
tf.colWidth[k] = colW;
|
|
||||||
}
|
|
||||||
tf.hasColWidth = true;
|
|
||||||
}
|
|
||||||
tf.SetColWidths(this.gridHeadRowIndex);
|
|
||||||
|
|
||||||
var tblW; //initial table width
|
//Main container: it will contain all the elements
|
||||||
if (tbl.width !== "") {
|
this.tblMainCont = Dom.create("div", ["id", tf.prfxMainTblCont + tf.id]);
|
||||||
tblW = tbl.width;
|
this.tblMainCont.className = this.gridMainContCssClass;
|
||||||
} else if (tbl.style.width !== "") {
|
if (this.gridWidth) {
|
||||||
tblW = parseInt(tbl.style.width, 10);
|
this.tblMainCont.style.width = this.gridWidth;
|
||||||
} else {
|
|
||||||
tblW = tbl.clientWidth;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Main container: it will contain all the elements
|
|
||||||
this.tblMainCont = Dom.create("div", ["id", tf.prfxMainTblCont + tf.id]);
|
|
||||||
this.tblMainCont.className = this.gridMainContCssClass;
|
|
||||||
if (this.gridWidth) {
|
|
||||||
this.tblMainCont.style.width = this.gridWidth;
|
|
||||||
}
|
|
||||||
tbl.parentNode.insertBefore(this.tblMainCont, tbl);
|
|
||||||
|
|
||||||
//Table container: div wrapping content table
|
|
||||||
this.tblCont = Dom.create("div", ["id", tf.prfxTblCont + tf.id]);
|
|
||||||
this.tblCont.className = this.gridContCssClass;
|
|
||||||
if (this.gridWidth) {
|
|
||||||
this.tblCont.style.width = this.gridWidth;
|
|
||||||
}
|
|
||||||
if (this.gridHeight) {
|
|
||||||
this.tblCont.style.height = this.gridHeight;
|
|
||||||
}
|
|
||||||
tbl.parentNode.insertBefore(this.tblCont, tbl);
|
|
||||||
var t = tbl.parentNode.removeChild(tbl);
|
|
||||||
this.tblCont.appendChild(t);
|
|
||||||
|
|
||||||
//In case table width is expressed in %
|
|
||||||
if (tbl.style.width === "") {
|
|
||||||
tbl.style.width = (tf.__containsStr("%", tblW) ? tbl.clientWidth : tblW) + "px";
|
|
||||||
}
|
|
||||||
|
|
||||||
var d = this.tblCont.parentNode.removeChild(this.tblCont);
|
|
||||||
this.tblMainCont.appendChild(d);
|
|
||||||
|
|
||||||
//Headers table container: div wrapping headers table
|
|
||||||
this.headTblCont = Dom.create("div", ["id", tf.prfxHeadTblCont + tf.id]);
|
|
||||||
this.headTblCont.className = this.gridHeadContCssClass;
|
|
||||||
if (this.gridWidth) {
|
|
||||||
this.headTblCont.style.width = this.gridWidth;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Headers table
|
|
||||||
this.headTbl = Dom.create("table", ["id", tf.prfxHeadTbl + tf.id]);
|
|
||||||
var tH = Dom.create("tHead"); //IE<7 needs it
|
|
||||||
|
|
||||||
//1st row should be headers row, ids are added if not set
|
|
||||||
//Those ids are used by the sort feature
|
|
||||||
var hRow = tbl.rows[this.gridHeadRowIndex];
|
|
||||||
var sortTriggers = [];
|
|
||||||
for (var n = 0; n < tf.nbCells; n++) {
|
|
||||||
var c = hRow.cells[n];
|
|
||||||
var thId = c.getAttribute("id");
|
|
||||||
if (!thId || thId === "") {
|
|
||||||
thId = tf.prfxGridTh + n + "_" + tf.id;
|
|
||||||
c.setAttribute("id", thId);
|
|
||||||
}
|
|
||||||
sortTriggers.push(thId);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Filters row is created
|
|
||||||
var filtersRow = Dom.create("tr");
|
|
||||||
if (this.gridEnableFilters && tf.fltGrid) {
|
|
||||||
tf.externalFltTgtIds = [];
|
|
||||||
for (var j = 0; j < tf.nbCells; j++) {
|
|
||||||
var fltTdId = tf.prfxFlt + j + tf.prfxGridFltTd + tf.id;
|
|
||||||
var cl = Dom.create(tf.fltCellTag, ["id", fltTdId]);
|
|
||||||
filtersRow.appendChild(cl);
|
|
||||||
tf.externalFltTgtIds[j] = fltTdId;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//Headers row are moved from content table to headers table
|
|
||||||
for (var i = 0; i < this.gridHeadRows.length; i++) {
|
|
||||||
var headRow = tbl.rows[this.gridHeadRows[0]];
|
|
||||||
tH.appendChild(headRow);
|
|
||||||
}
|
|
||||||
this.headTbl.appendChild(tH);
|
|
||||||
if (tf.filtersRowIndex === 0) {
|
|
||||||
tH.insertBefore(filtersRow, hRow);
|
|
||||||
} else {
|
|
||||||
tH.appendChild(filtersRow);
|
|
||||||
}
|
|
||||||
|
|
||||||
this.headTblCont.appendChild(this.headTbl);
|
|
||||||
this.tblCont.parentNode.insertBefore(this.headTblCont, this.tblCont);
|
|
||||||
|
|
||||||
//THead needs to be removed in content table for sort feature
|
|
||||||
var thead = Dom.tag(tbl, "thead");
|
|
||||||
if (thead.length > 0) {
|
|
||||||
tbl.removeChild(thead[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Headers table style
|
|
||||||
this.headTbl.style.width = tbl.style.width;
|
|
||||||
this.headTbl.style.tableLayout = "fixed";
|
|
||||||
tbl.style.tableLayout = "fixed";
|
|
||||||
this.headTbl.cellPadding = tbl.cellPadding;
|
|
||||||
this.headTbl.cellSpacing = tbl.cellSpacing;
|
|
||||||
|
|
||||||
//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 = '';
|
|
||||||
// }
|
|
||||||
|
|
||||||
//scroll synchronisation
|
|
||||||
var o = this;
|
|
||||||
|
|
||||||
Event.add(this.tblCont, "scroll", function (evt) {
|
|
||||||
//this = scroll element
|
|
||||||
var scrollLeft = this.scrollLeft;
|
|
||||||
o.headTblCont.scrollLeft = scrollLeft;
|
|
||||||
//New pointerX calc taking into account scrollLeft
|
|
||||||
if (!o.isPointerXOverwritten) {
|
|
||||||
try {
|
|
||||||
o.Evt.pointerX = function (evt) {
|
|
||||||
var e = evt || global.event;
|
|
||||||
var bdScrollLeft = tf_StandardBody().scrollLeft + scrollLeft;
|
|
||||||
return (e.pageX + scrollLeft) || (e.clientX + bdScrollLeft);
|
|
||||||
};
|
|
||||||
o.isPointerXOverwritten = true;
|
|
||||||
} catch (err) {
|
|
||||||
o.isPointerXOverwritten = false;
|
|
||||||
}
|
}
|
||||||
}
|
tbl.parentNode.insertBefore(this.tblMainCont, tbl);
|
||||||
});
|
|
||||||
|
|
||||||
//Sort is enabled if not specified in config object
|
//Table container: div wrapping content table
|
||||||
if (f.sort !== false) {
|
this.tblCont = Dom.create("div", ["id", tf.prfxTblCont + tf.id]);
|
||||||
tf.sort = true;
|
this.tblCont.className = this.gridContCssClass;
|
||||||
tf.sortConfig.asyncSort = true;
|
if (this.gridWidth) {
|
||||||
tf.sortConfig.triggerIds = sortTriggers;
|
this.tblCont.style.width = this.gridWidth;
|
||||||
}
|
}
|
||||||
|
if (this.gridHeight) {
|
||||||
|
this.tblCont.style.height = this.gridHeight;
|
||||||
|
}
|
||||||
|
tbl.parentNode.insertBefore(this.tblCont, tbl);
|
||||||
|
var t = tbl.parentNode.removeChild(tbl);
|
||||||
|
this.tblCont.appendChild(t);
|
||||||
|
|
||||||
if (this.gridEnableColResizer) {
|
//In case table width is expressed in %
|
||||||
if (!tf.hasExtensions) {
|
if (tbl.style.width === "") {
|
||||||
tf.extensions = {
|
tbl.style.width = (tf.__containsStr("%", tblW) ? tbl.clientWidth : tblW) + "px";
|
||||||
name: ["ColumnsResizer_" + tf.id],
|
}
|
||||||
src: [this.gridColResizerPath],
|
|
||||||
description: ["Columns Resizing"],
|
var d = this.tblCont.parentNode.removeChild(this.tblCont);
|
||||||
initialize: [function (o) {
|
this.tblMainCont.appendChild(d);
|
||||||
o.SetColsResizer("ColumnsResizer_" + o.id);
|
|
||||||
}]
|
//Headers table container: div wrapping headers table
|
||||||
|
this.headTblCont = Dom.create("div", ["id", tf.prfxHeadTblCont + tf.id]);
|
||||||
|
this.headTblCont.className = this.gridHeadContCssClass;
|
||||||
|
if (this.gridWidth) {
|
||||||
|
this.headTblCont.style.width = this.gridWidth;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Headers table
|
||||||
|
this.headTbl = Dom.create("table", ["id", tf.prfxHeadTbl + tf.id]);
|
||||||
|
var tH = Dom.create("tHead"); //IE<7 needs it
|
||||||
|
|
||||||
|
//1st row should be headers row, ids are added if not set
|
||||||
|
//Those ids are used by the sort feature
|
||||||
|
var hRow = tbl.rows[this.gridHeadRowIndex];
|
||||||
|
var sortTriggers = [];
|
||||||
|
for (var n = 0; n < tf.nbCells; n++) {
|
||||||
|
var c = hRow.cells[n];
|
||||||
|
var thId = c.getAttribute("id");
|
||||||
|
if (!thId || thId === "") {
|
||||||
|
thId = tf.prfxGridTh + n + "_" + tf.id;
|
||||||
|
c.setAttribute("id", thId);
|
||||||
|
}
|
||||||
|
sortTriggers.push(thId);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Filters row is created
|
||||||
|
var filtersRow = Dom.create("tr");
|
||||||
|
if (this.gridEnableFilters && tf.fltGrid) {
|
||||||
|
tf.externalFltTgtIds = [];
|
||||||
|
for (var j = 0; j < tf.nbCells; j++) {
|
||||||
|
var fltTdId = tf.prfxFlt + j + tf.prfxGridFltTd + tf.id;
|
||||||
|
var cl = Dom.create(tf.fltCellTag, ["id", fltTdId]);
|
||||||
|
filtersRow.appendChild(cl);
|
||||||
|
tf.externalFltTgtIds[j] = fltTdId;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Headers row are moved from content table to headers table
|
||||||
|
for (var i = 0; i < this.gridHeadRows.length; i++) {
|
||||||
|
var headRow = tbl.rows[this.gridHeadRows[0]];
|
||||||
|
tH.appendChild(headRow);
|
||||||
|
}
|
||||||
|
this.headTbl.appendChild(tH);
|
||||||
|
if (tf.filtersRowIndex === 0) {
|
||||||
|
tH.insertBefore(filtersRow, hRow);
|
||||||
|
} else {
|
||||||
|
tH.appendChild(filtersRow);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.headTblCont.appendChild(this.headTbl);
|
||||||
|
this.tblCont.parentNode.insertBefore(this.headTblCont, this.tblCont);
|
||||||
|
|
||||||
|
//THead needs to be removed in content table for sort feature
|
||||||
|
var thead = Dom.tag(tbl, "thead");
|
||||||
|
if (thead.length > 0) {
|
||||||
|
tbl.removeChild(thead[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Headers table style
|
||||||
|
this.headTbl.style.width = tbl.style.width;
|
||||||
|
this.headTbl.style.tableLayout = "fixed";
|
||||||
|
tbl.style.tableLayout = "fixed";
|
||||||
|
this.headTbl.cellPadding = tbl.cellPadding;
|
||||||
|
this.headTbl.cellSpacing = tbl.cellSpacing;
|
||||||
|
|
||||||
|
//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 = "";
|
||||||
|
|
||||||
|
//scroll synchronisation
|
||||||
|
var o = this;
|
||||||
|
|
||||||
|
Event.add(this.tblCont, "scroll", function (evt) {
|
||||||
|
//this = scroll element
|
||||||
|
var scrollLeft = this.scrollLeft;
|
||||||
|
o.headTblCont.scrollLeft = scrollLeft;
|
||||||
|
//New pointerX calc taking into account scrollLeft
|
||||||
|
if (!o.isPointerXOverwritten) {
|
||||||
|
try {
|
||||||
|
o.Evt.pointerX = function (evt) {
|
||||||
|
var e = evt || global.event;
|
||||||
|
var bdScrollLeft = tf_StandardBody().scrollLeft + scrollLeft;
|
||||||
|
return (e.pageX + scrollLeft) || (e.clientX + bdScrollLeft);
|
||||||
|
};
|
||||||
|
o.isPointerXOverwritten = true;
|
||||||
|
} catch (err) {
|
||||||
|
o.isPointerXOverwritten = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
//Sort is enabled if not specified in config object
|
||||||
|
if (f.sort !== false) {
|
||||||
|
tf.sort = true;
|
||||||
|
tf.sortConfig.asyncSort = true;
|
||||||
|
tf.sortConfig.triggerIds = sortTriggers;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.gridEnableColResizer) {
|
||||||
|
if (!tf.hasExtensions) {
|
||||||
|
tf.extensions = {
|
||||||
|
name: ["ColumnsResizer_" + tf.id],
|
||||||
|
src: [this.gridColResizerPath],
|
||||||
|
description: ["Columns Resizing"],
|
||||||
|
initialize: [function (o) {
|
||||||
|
o.SetColsResizer("ColumnsResizer_" + o.id);
|
||||||
|
}]
|
||||||
|
};
|
||||||
|
tf.hasExtensions = true;
|
||||||
|
} else {
|
||||||
|
if (!tf.__containsStr("colsresizer", Str.lower(tf.extensions.src.toString()))) {
|
||||||
|
tf.extensions.name.push("ColumnsResizer_" + tf.id);
|
||||||
|
tf.extensions.src.push(tf.gridColResizerPath);
|
||||||
|
tf.extensions.description.push("Columns Resizing");
|
||||||
|
tf.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(tbl, "col").length > 0 ? true : false;
|
||||||
|
|
||||||
|
//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;
|
||||||
};
|
};
|
||||||
tf.hasExtensions = true;
|
if (!o.tblHasColTag) {
|
||||||
} else {
|
createColTags(o);
|
||||||
if (!tf.__containsStr("colsresizer", Str.lower(tf.extensions.src.toString()))) {
|
} else {
|
||||||
tf.extensions.name.push("ColumnsResizer_" + tf.id);
|
var cols = Dom.tag(tbl, "col");
|
||||||
tf.extensions.src.push(tf.gridColResizerPath);
|
for (var ii = 0; ii < tf.nbCells; ii++) {
|
||||||
tf.extensions.description.push("Columns Resizing");
|
cols[ii].setAttribute("id", tf.id + "_col_" + ii);
|
||||||
tf.extensions.initialize.push(function (o) {
|
cols[ii].style.width = tf.colWidth[ii];
|
||||||
o.SetColsResizer("ColumnsResizer_" + o.id);
|
o.gridColElms.push(cols[ii]);
|
||||||
});
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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 (thCW != tdCW /*&& !Helpers.isIE()*/) {
|
||||||
|
o.headTbl.style.width = tbl.clientWidth + "px";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (afterColResizedFn) {
|
||||||
|
afterColResizedFn.call(null, o, colIndex);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
if (tbl.clientWidth !== this.headTbl.clientWidth) {
|
||||||
|
tbl.style.width = this.headTbl.clientWidth + "px";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Re-adjust reference row
|
||||||
|
//tf.refRow = Helpers.isIE() ? (tf.refRow+1) : 0;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
destroy: {
|
||||||
|
writable: true,
|
||||||
|
value: function () {
|
||||||
|
var tf = this.tf;
|
||||||
|
var tbl = tf.tbl;
|
||||||
|
|
||||||
|
if (!tf.gridLayout) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var t = tbl.parentNode.removeChild(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;
|
||||||
|
|
||||||
|
tbl.outerHTML = tf.sourceTblHtml;
|
||||||
|
//needed to keep reference of table element
|
||||||
|
tbl = Dom.id(tf.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(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 = (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);
|
|
||||||
// }
|
|
||||||
// tf.hasGridWidthsRow = true;
|
|
||||||
// //Data table row with widths expressed
|
|
||||||
// o.leadColWidthsRow = tbl.rows[0];
|
|
||||||
// o.leadColWidthsRow.setAttribute('validRow', 'false');
|
|
||||||
|
|
||||||
// var beforeSortFn = Types.isFn(f.on_before_sort) ?
|
|
||||||
// f.on_before_sort : null;
|
|
||||||
// f.on_before_sort = function(o, colIndex){
|
|
||||||
// o.leadColWidthsRow.setAttribute('validRow', 'false');
|
|
||||||
// if(beforeSortFn){
|
|
||||||
// beforeSortFn.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) {
|
|
||||||
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(Helpers.isIE()){
|
|
||||||
// tbl.style.width = o.headTbl.clientWidth+'px';
|
|
||||||
// }
|
|
||||||
|
|
||||||
if (thCW != tdCW /*&& !Helpers.isIE()*/) {
|
|
||||||
o.headTbl.style.width = tbl.clientWidth + "px";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (afterColResizedFn) {
|
|
||||||
afterColResizedFn.call(null, o, colIndex);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
if (tbl.clientWidth !== this.headTbl.clientWidth) {
|
|
||||||
tbl.style.width = this.headTbl.clientWidth + "px";
|
|
||||||
}
|
|
||||||
|
|
||||||
// Re-adjust reference row
|
|
||||||
//tf.refRow = Helpers.isIE() ? (tf.refRow+1) : 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
GridLayout.prototype.destroy = function () {
|
|
||||||
var tf = this.tf;
|
|
||||||
var tbl = tf.tbl;
|
|
||||||
|
|
||||||
if (!tf.gridLayout) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var t = tbl.parentNode.removeChild(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;
|
|
||||||
|
|
||||||
tbl.outerHTML = tf.sourceTblHtml;
|
|
||||||
//needed to keep reference of table element
|
|
||||||
tbl = Dom.id(tf.id);
|
|
||||||
};
|
|
||||||
|
|
||||||
return GridLayout;
|
return GridLayout;
|
||||||
})();
|
})();
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,16 +1,15 @@
|
||||||
define(["exports", "../dom", "../string"], function (exports, _dom, _string) {
|
define(["exports", "../dom", "../string"], function (exports, _dom, _string) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
|
var _classProps = function (child, staticProps, instanceProps) {
|
||||||
|
if (staticProps) Object.defineProperties(child, staticProps);
|
||||||
|
if (instanceProps) Object.defineProperties(child.prototype, instanceProps);
|
||||||
|
};
|
||||||
|
|
||||||
var Dom = _dom.Dom;
|
var Dom = _dom.Dom;
|
||||||
var Str = _string.Str;
|
var Str = _string.Str;
|
||||||
var HighlightKeyword = (function () {
|
var HighlightKeyword = (function () {
|
||||||
var HighlightKeyword =
|
var HighlightKeyword = function HighlightKeyword(tf) {
|
||||||
|
|
||||||
/**
|
|
||||||
* HighlightKeyword, highlight matched keyword
|
|
||||||
* @param {Object} tf TableFilter instance
|
|
||||||
*/
|
|
||||||
function HighlightKeyword(tf) {
|
|
||||||
var f = tf.fObj;
|
var f = tf.fObj;
|
||||||
//defines css class for highlighting
|
//defines css class for highlighting
|
||||||
this.highlightCssClass = f.highlight_css_class || "keyword";
|
this.highlightCssClass = f.highlight_css_class || "keyword";
|
||||||
|
@ -19,74 +18,83 @@ define(["exports", "../dom", "../string"], function (exports, _dom, _string) {
|
||||||
this.tf = tf;
|
this.tf = tf;
|
||||||
};
|
};
|
||||||
|
|
||||||
HighlightKeyword.prototype.highlight = function (node, word, cssClass) {
|
_classProps(HighlightKeyword, null, {
|
||||||
// Iterate into this nodes childNodes
|
highlight: {
|
||||||
if (node.hasChildNodes) {
|
writable: true,
|
||||||
var children = node.childNodes;
|
value: function (node, word, cssClass) {
|
||||||
for (var i = 0; i < children.length; i++) {
|
// Iterate into this nodes childNodes
|
||||||
this.highlight(children[i], word, cssClass);
|
if (node.hasChildNodes) {
|
||||||
}
|
var children = node.childNodes;
|
||||||
}
|
for (var i = 0; i < children.length; i++) {
|
||||||
|
this.highlight(children[i], word, cssClass);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (node.nodeType === 3) {
|
if (node.nodeType === 3) {
|
||||||
var tempNodeVal = Str.lower(node.nodeValue);
|
var tempNodeVal = Str.lower(node.nodeValue);
|
||||||
var tempWordVal = Str.lower(word);
|
var tempWordVal = Str.lower(word);
|
||||||
if (tempNodeVal.indexOf(tempWordVal) != -1) {
|
if (tempNodeVal.indexOf(tempWordVal) != -1) {
|
||||||
var pn = node.parentNode;
|
var pn = node.parentNode;
|
||||||
if (pn && pn.className != cssClass) {
|
if (pn && pn.className != cssClass) {
|
||||||
// word not highlighted yet
|
// word not highlighted yet
|
||||||
var nv = node.nodeValue, ni = tempNodeVal.indexOf(tempWordVal),
|
var nv = node.nodeValue, ni = tempNodeVal.indexOf(tempWordVal),
|
||||||
// Create a load of replacement nodes
|
// Create a load of replacement nodes
|
||||||
before = Dom.text(nv.substr(0, ni)), docWordVal = nv.substr(ni, word.length), after = Dom.text(nv.substr(ni + word.length)), hiwordtext = Dom.text(docWordVal), hiword = Dom.create("span");
|
before = Dom.text(nv.substr(0, ni)), docWordVal = nv.substr(ni, word.length), after = Dom.text(nv.substr(ni + word.length)), hiwordtext = Dom.text(docWordVal), hiword = Dom.create("span");
|
||||||
hiword.className = cssClass;
|
hiword.className = cssClass;
|
||||||
hiword.appendChild(hiwordtext);
|
hiword.appendChild(hiwordtext);
|
||||||
pn.insertBefore(before, node);
|
pn.insertBefore(before, node);
|
||||||
pn.insertBefore(hiword, node);
|
pn.insertBefore(hiword, node);
|
||||||
pn.insertBefore(after, node);
|
pn.insertBefore(after, node);
|
||||||
pn.removeChild(node);
|
pn.removeChild(node);
|
||||||
this.highlightedNodes.push(hiword.firstChild);
|
this.highlightedNodes.push(hiword.firstChild);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
};
|
unhighlight: {
|
||||||
|
writable: true,
|
||||||
HighlightKeyword.prototype.unhighlight = function (word, cssClass) {
|
value: function (word, cssClass) {
|
||||||
var arrRemove = [];
|
var arrRemove = [];
|
||||||
var highlightedNodes = this.highlightedNodes;
|
var highlightedNodes = this.highlightedNodes;
|
||||||
for (var i = 0; i < highlightedNodes.length; i++) {
|
for (var i = 0; i < highlightedNodes.length; i++) {
|
||||||
var n = highlightedNodes[i];
|
var n = highlightedNodes[i];
|
||||||
if (!n) {
|
if (!n) {
|
||||||
continue;
|
|
||||||
}
|
|
||||||
var tempNodeVal = Str.lower(n.nodeValue), tempWordVal = Str.lower(word);
|
|
||||||
if (tempNodeVal.indexOf(tempWordVal) !== -1) {
|
|
||||||
var pn = n.parentNode;
|
|
||||||
if (pn && pn.className === cssClass) {
|
|
||||||
var prevSib = pn.previousSibling, nextSib = pn.nextSibling;
|
|
||||||
if (!prevSib || !nextSib) {
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
nextSib.nodeValue = prevSib.nodeValue + n.nodeValue + nextSib.nodeValue;
|
var tempNodeVal = Str.lower(n.nodeValue), tempWordVal = Str.lower(word);
|
||||||
prevSib.nodeValue = "";
|
if (tempNodeVal.indexOf(tempWordVal) !== -1) {
|
||||||
n.nodeValue = "";
|
var pn = n.parentNode;
|
||||||
arrRemove.push(i);
|
if (pn && pn.className === cssClass) {
|
||||||
|
var prevSib = pn.previousSibling, nextSib = pn.nextSibling;
|
||||||
|
if (!prevSib || !nextSib) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
nextSib.nodeValue = prevSib.nodeValue + n.nodeValue + nextSib.nodeValue;
|
||||||
|
prevSib.nodeValue = "";
|
||||||
|
n.nodeValue = "";
|
||||||
|
arrRemove.push(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (var k = 0; k < arrRemove.length; k++) {
|
||||||
|
highlightedNodes.splice(arrRemove[k], 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
unhighlightAll: {
|
||||||
|
writable: true,
|
||||||
|
value: function () {
|
||||||
|
if (!this.tf.highlightKeywords || !this.tf.searchArgs) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for (var y = 0; y < this.tf.searchArgs.length; y++) {
|
||||||
|
this.unhighlight(this.tf.searchArgs[y], this.highlightCssClass);
|
||||||
|
}
|
||||||
|
this.highlightedNodes = [];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
for (var k = 0; k < arrRemove.length; k++) {
|
});
|
||||||
highlightedNodes.splice(arrRemove[k], 1);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
HighlightKeyword.prototype.unhighlightAll = function () {
|
|
||||||
if (!this.tf.highlightKeywords || !this.tf.searchArgs) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
for (var y = 0; y < this.tf.searchArgs.length; y++) {
|
|
||||||
this.unhighlight(this.tf.searchArgs[y], this.highlightCssClass);
|
|
||||||
}
|
|
||||||
this.highlightedNodes = [];
|
|
||||||
};
|
|
||||||
|
|
||||||
return HighlightKeyword;
|
return HighlightKeyword;
|
||||||
})();
|
})();
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,6 +1,11 @@
|
||||||
define(["exports", "../dom", "../types"], function (exports, _dom, _types) {
|
define(["exports", "../dom", "../types"], function (exports, _dom, _types) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
|
var _classProps = function (child, staticProps, instanceProps) {
|
||||||
|
if (staticProps) Object.defineProperties(child, staticProps);
|
||||||
|
if (instanceProps) Object.defineProperties(child.prototype, instanceProps);
|
||||||
|
};
|
||||||
|
|
||||||
var Dom = _dom.Dom;
|
var Dom = _dom.Dom;
|
||||||
var Types = _types.Types;
|
var Types = _types.Types;
|
||||||
|
|
||||||
|
@ -47,37 +52,44 @@ define(["exports", "../dom", "../types"], function (exports, _dom, _types) {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
Loader.prototype.show = function (p) {
|
_classProps(Loader, null, {
|
||||||
var _this = this;
|
show: {
|
||||||
if (!this.tf.loader || !this.loaderDiv || this.loaderDiv.style.display === p) {
|
writable: true,
|
||||||
return;
|
value: function (p) {
|
||||||
|
var _this = this;
|
||||||
|
if (!this.tf.loader || !this.loaderDiv || this.loaderDiv.style.display === p) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var displayLoader = function () {
|
||||||
|
if (!_this.loaderDiv) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (_this.onShowLoader && p !== "none") {
|
||||||
|
_this.onShowLoader.call(null, _this);
|
||||||
|
}
|
||||||
|
_this.loaderDiv.style.display = p;
|
||||||
|
if (_this.onHideLoader && p === "none") {
|
||||||
|
_this.onHideLoader.call(null, _this);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
var t = p === "none" ? this.loaderCloseDelay : 1;
|
||||||
|
global.setTimeout(displayLoader, t);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
remove: {
|
||||||
|
writable: true,
|
||||||
|
value: function () {
|
||||||
|
if (!this.loaderDiv) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var targetEl = !this.loaderTgtId ? (this.tf.gridLayout ? this.tf.tblCont : this.tf.tbl.parentNode) : Dom.id(this.loaderTgtId);
|
||||||
|
targetEl.removeChild(this.loaderDiv);
|
||||||
|
this.loaderDiv = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
});
|
||||||
var displayLoader = function () {
|
|
||||||
if (!_this.loaderDiv) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (_this.onShowLoader && p !== "none") {
|
|
||||||
_this.onShowLoader.call(null, _this);
|
|
||||||
}
|
|
||||||
_this.loaderDiv.style.display = p;
|
|
||||||
if (_this.onHideLoader && p === "none") {
|
|
||||||
_this.onHideLoader.call(null, _this);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
var t = p === "none" ? this.loaderCloseDelay : 1;
|
|
||||||
global.setTimeout(displayLoader, t);
|
|
||||||
};
|
|
||||||
|
|
||||||
Loader.prototype.remove = function () {
|
|
||||||
if (!this.loaderDiv) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var targetEl = !this.loaderTgtId ? (this.tf.gridLayout ? this.tf.tblCont : this.tf.tbl.parentNode) : Dom.id(this.loaderTgtId);
|
|
||||||
targetEl.removeChild(this.loaderDiv);
|
|
||||||
this.loaderDiv = null;
|
|
||||||
};
|
|
||||||
|
|
||||||
return Loader;
|
return Loader;
|
||||||
})();
|
})();
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,16 +1,17 @@
|
||||||
define(["exports", "../dom", "../helpers"], function (exports, _dom, _helpers) {
|
define(["exports", "../dom", "../types", "../string", "../helpers"], function (exports, _dom, _types, _string, _helpers) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
|
var _classProps = function (child, staticProps, instanceProps) {
|
||||||
|
if (staticProps) Object.defineProperties(child, staticProps);
|
||||||
|
if (instanceProps) Object.defineProperties(child.prototype, instanceProps);
|
||||||
|
};
|
||||||
|
|
||||||
var Dom = _dom.Dom;
|
var Dom = _dom.Dom;
|
||||||
|
var Types = _types.Types;
|
||||||
|
var Str = _string.Str;
|
||||||
var Helpers = _helpers.Helpers;
|
var Helpers = _helpers.Helpers;
|
||||||
var Paging = (function () {
|
var Paging = (function () {
|
||||||
var Paging =
|
var Paging = function Paging(tf) {
|
||||||
|
|
||||||
/**
|
|
||||||
* Pagination component
|
|
||||||
* @param {Object} tf TableFilter instance
|
|
||||||
*/
|
|
||||||
function Paging(tf) {
|
|
||||||
// TableFilter configuration
|
// TableFilter configuration
|
||||||
var f = tf.fObj;
|
var f = tf.fObj;
|
||||||
|
|
||||||
|
@ -63,11 +64,11 @@ define(["exports", "../dom", "../helpers"], function (exports, _dom, _helpers) {
|
||||||
//stores paging buttons events
|
//stores paging buttons events
|
||||||
this.pagingBtnEvents = null;
|
this.pagingBtnEvents = null;
|
||||||
//defines previous page button html
|
//defines previous page button html
|
||||||
this.pageSelectorType = f.page_selector_type || this.fltTypeSlc;
|
this.pageSelectorType = f.page_selector_type || tf.fltTypeSlc;
|
||||||
//calls function before page is changed
|
//calls function before page is changed
|
||||||
this.onBeforeChangePage = types.isFn(f.on_before_change_page) ? f.on_before_change_page : null;
|
this.onBeforeChangePage = Types.isFn(f.on_before_change_page) ? f.on_before_change_page : null;
|
||||||
//calls function before page is changed
|
//calls function before page is changed
|
||||||
this.onAfterChangePage = types.isFn(f.on_after_change_page) ? f.on_after_change_page : null;
|
this.onAfterChangePage = Types.isFn(f.on_after_change_page) ? f.on_after_change_page : null;
|
||||||
var start_row = this.refRow;
|
var start_row = this.refRow;
|
||||||
var nrows = this.nbRows;
|
var nrows = this.nbRows;
|
||||||
//calculates page nb
|
//calculates page nb
|
||||||
|
@ -76,50 +77,50 @@ define(["exports", "../dom", "../helpers"], function (exports, _dom, _helpers) {
|
||||||
var evt = tf.Evt;
|
var evt = tf.Evt;
|
||||||
//Paging elements events
|
//Paging elements events
|
||||||
if (!evt._Paging.next) {
|
if (!evt._Paging.next) {
|
||||||
var o = tf;
|
var o = this;
|
||||||
evt._Paging = { // paging buttons events
|
evt._Paging = { // paging buttons events
|
||||||
slcIndex: function () {
|
slcIndex: function () {
|
||||||
return (o.pageSelectorType === o.fltTypeSlc) ? o.pagingSlc.options.selectedIndex : parseInt(o.pagingSlc.value, 10) - 1;
|
return (o.pageSelectorType === tf.fltTypeSlc) ? o.pagingSlc.options.selectedIndex : parseInt(o.pagingSlc.value, 10) - 1;
|
||||||
},
|
},
|
||||||
nbOpts: function () {
|
nbOpts: function () {
|
||||||
return (o.pageSelectorType === o.fltTypeSlc) ? parseInt(o.pagingSlc.options.length, 10) - 1 : (o.nbPages - 1);
|
return (o.pageSelectorType === tf.fltTypeSlc) ? parseInt(o.pagingSlc.options.length, 10) - 1 : (o.nbPages - 1);
|
||||||
},
|
},
|
||||||
next: function () {
|
next: function () {
|
||||||
if (o.Evt._Paging.nextEvt) {
|
if (evt._Paging.nextEvt) {
|
||||||
o.Evt._Paging.nextEvt();
|
evt._Paging.nextEvt();
|
||||||
}
|
}
|
||||||
var nextIndex = o.Evt._Paging.slcIndex() < o.Evt._Paging.nbOpts() ? o.Evt._Paging.slcIndex() + 1 : 0;
|
var nextIndex = evt._Paging.slcIndex() < evt._Paging.nbOpts() ? evt._Paging.slcIndex() + 1 : 0;
|
||||||
o.ChangePage(nextIndex);
|
o.changePage(nextIndex);
|
||||||
},
|
},
|
||||||
prev: function () {
|
prev: function () {
|
||||||
if (o.Evt._Paging.prevEvt) {
|
if (evt._Paging.prevEvt) {
|
||||||
o.Evt._Paging.prevEvt();
|
evt._Paging.prevEvt();
|
||||||
}
|
}
|
||||||
var prevIndex = o.Evt._Paging.slcIndex() > 0 ? o.Evt._Paging.slcIndex() - 1 : o.Evt._Paging.nbOpts();
|
var prevIndex = evt._Paging.slcIndex() > 0 ? evt._Paging.slcIndex() - 1 : evt._Paging.nbOpts();
|
||||||
o.ChangePage(prevIndex);
|
o.changePage(prevIndex);
|
||||||
},
|
},
|
||||||
last: function () {
|
last: function () {
|
||||||
if (o.Evt._Paging.lastEvt) {
|
if (evt._Paging.lastEvt) {
|
||||||
o.Evt._Paging.lastEvt();
|
evt._Paging.lastEvt();
|
||||||
}
|
}
|
||||||
o.ChangePage(o.Evt._Paging.nbOpts());
|
o.changePage(evt._Paging.nbOpts());
|
||||||
},
|
},
|
||||||
first: function () {
|
first: function () {
|
||||||
if (o.Evt._Paging.firstEvt) {
|
if (evt._Paging.firstEvt) {
|
||||||
o.Evt._Paging.firstEvt();
|
evt._Paging.firstEvt();
|
||||||
}
|
}
|
||||||
o.ChangePage(0);
|
o.changePage(0);
|
||||||
},
|
},
|
||||||
_detectKey: function (e) {
|
_detectKey: function (e) {
|
||||||
var evt = e || global.event;
|
var evt = e || global.event;
|
||||||
if (evt) {
|
if (evt) {
|
||||||
var key = o.Evt.getKeyCode(e);
|
var key = evt.getKeyCode(e);
|
||||||
if (key === 13) {
|
if (key === 13) {
|
||||||
if (o.sorted) {
|
if (tf.sorted) {
|
||||||
o.Filter();
|
tf.Filter();
|
||||||
o.ChangePage(o.Evt._Paging.slcIndex());
|
o.changePage(evt._Paging.slcIndex());
|
||||||
} else {
|
} else {
|
||||||
o.ChangePage();
|
o.changePage();
|
||||||
}
|
}
|
||||||
this.blur();
|
this.blur();
|
||||||
}
|
}
|
||||||
|
@ -135,127 +136,531 @@ define(["exports", "../dom", "../helpers"], function (exports, _dom, _helpers) {
|
||||||
this.tf = tf;
|
this.tf = tf;
|
||||||
};
|
};
|
||||||
|
|
||||||
Paging.prototype.buildUI = function () {
|
_classProps(Paging, null, {
|
||||||
var slcPages;
|
init: {
|
||||||
var tf = this.tf;
|
writable: true,
|
||||||
var evt = tf.Evt;
|
value: function () {
|
||||||
|
var slcPages;
|
||||||
|
var tf = this.tf;
|
||||||
|
var evt = tf.Evt;
|
||||||
|
|
||||||
// Paging drop-down list selector
|
// Paging drop-down list selector
|
||||||
if (this.pageSelectorType === tf.fltTypeSlc) {
|
if (this.pageSelectorType === tf.fltTypeSlc) {
|
||||||
slcPages = dom.create(tf.fltTypeSlc, ["id", tf.prfxSlcPages + tf.id]);
|
slcPages = Dom.create(tf.fltTypeSlc, ["id", tf.prfxSlcPages + tf.id]);
|
||||||
slcPages.className = this.pgSlcCssClass;
|
slcPages.className = this.pgSlcCssClass;
|
||||||
slcPages.onchange = evt._OnSlcPagesChange;
|
console.log(evt);
|
||||||
}
|
slcPages.onchange = evt._OnSlcPagesChange;
|
||||||
|
//slcPages.onchange = function(){ alert('hello'); }
|
||||||
// Paging input selector
|
|
||||||
if (this.pageSelectorType === tf.fltTypeInp) {
|
|
||||||
slcPages = dom.create(tf.fltTypeInp, ["id", tf.prfxSlcPages + tf.id], ["value", tf.currentPageNb]);
|
|
||||||
slcPages.className = this.pgInpCssClass;
|
|
||||||
slcPages.onkeypress = evt._Paging._detectKey;
|
|
||||||
}
|
|
||||||
|
|
||||||
// btns containers
|
|
||||||
var btnNextSpan = dom.create("span", ["id", this.prfxBtnNextSpan + tf.id]);
|
|
||||||
var btnPrevSpan = dom.create("span", ["id", this.prfxBtnPrevSpan + tf.id]);
|
|
||||||
var btnLastSpan = dom.create("span", ["id", this.prfxBtnLastSpan + tf.id]);
|
|
||||||
var btnFirstSpan = dom.create("span", ["id", this.prfxBtnFirstSpan + tf.id]);
|
|
||||||
|
|
||||||
if (this.hasPagingBtns) {
|
|
||||||
// Next button
|
|
||||||
if (!this.btnNextPageHtml) {
|
|
||||||
var btn_next = dom.create(tf.fltTypeInp, ["id", tf.prfxBtnNext + tf.id], ["type", "button"], ["value", this.btnNextPageText], ["title", "Next"]);
|
|
||||||
btn_next.className = this.btnPageCssClass;
|
|
||||||
btn_next.onclick = evt._Paging.next;
|
|
||||||
btnNextSpan.appendChild(btn_next);
|
|
||||||
} else {
|
|
||||||
btnNextSpan.innerHTML = this.btnNextPageHtml;
|
|
||||||
btnNextSpan.onclick = evt._Paging.next;
|
|
||||||
}
|
|
||||||
// Previous button
|
|
||||||
if (!this.btnPrevPageHtml) {
|
|
||||||
var btn_prev = dom.create(tf.fltTypeInp, ["id", tf.prfxBtnPrev + tf.id], ["type", "button"], ["value", this.btnPrevPageText], ["title", "Previous"]);
|
|
||||||
btn_prev.className = this.btnPageCssClass;
|
|
||||||
btn_prev.onclick = evt._Paging.prev;
|
|
||||||
btnPrevSpan.appendChild(btn_prev);
|
|
||||||
} else {
|
|
||||||
btnPrevSpan.innerHTML = this.btnPrevPageHtml;
|
|
||||||
btnPrevSpan.onclick = evt._Paging.prev;
|
|
||||||
}
|
|
||||||
// Last button
|
|
||||||
if (!this.btnLastPageHtml) {
|
|
||||||
var btn_last = dom.create(tf.fltTypeInp, ["id", tf.prfxBtnLast + tf.id], ["type", "button"], ["value", this.btnLastPageText], ["title", "Last"]);
|
|
||||||
btn_last.className = this.btnPageCssClass;
|
|
||||||
btn_last.onclick = evt._Paging.last;
|
|
||||||
btnLastSpan.appendChild(btn_last);
|
|
||||||
} else {
|
|
||||||
btnLastSpan.innerHTML = this.btnLastPageHtml;
|
|
||||||
btnLastSpan.onclick = evt._Paging.last;
|
|
||||||
}
|
|
||||||
// First button
|
|
||||||
if (!this.btnFirstPageHtml) {
|
|
||||||
var btn_first = dom.create(tf.fltTypeInp, ["id", tf.prfxBtnFirst + tf.id], ["type", "button"], ["value", this.btnFirstPageText], ["title", "First"]);
|
|
||||||
btn_first.className = this.btnPageCssClass;
|
|
||||||
btn_first.onclick = evt._Paging.first;
|
|
||||||
btnFirstSpan.appendChild(btn_first);
|
|
||||||
} else {
|
|
||||||
btnFirstSpan.innerHTML = this.btnFirstPageHtml;
|
|
||||||
btnFirstSpan.onclick = evt._Paging.first;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// paging elements (buttons+drop-down list) are added to defined element
|
|
||||||
if (!this.pagingTgtId) {
|
|
||||||
tf.SetTopDiv();
|
|
||||||
}
|
|
||||||
var targetEl = !this.pagingTgtId ? tf.mDiv : dom.id(this.pagingTgtId);
|
|
||||||
|
|
||||||
/***
|
|
||||||
if paging previously removed this prevents IE memory leak with
|
|
||||||
removeChild used in RemovePaging method. For more info refer to
|
|
||||||
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2840253&SiteID=1
|
|
||||||
***/
|
|
||||||
if (targetEl.innerHTML !== "") {
|
|
||||||
targetEl.innerHTML = "";
|
|
||||||
}
|
|
||||||
/*** ***/
|
|
||||||
|
|
||||||
targetEl.appendChild(btnFirstSpan);
|
|
||||||
targetEl.appendChild(btnPrevSpan);
|
|
||||||
|
|
||||||
var pgBeforeSpan = dom.create("span", ["id", tf.prfxPgBeforeSpan + tf.id]);
|
|
||||||
pgBeforeSpan.appendChild(dom.text(this.pageText));
|
|
||||||
pgBeforeSpan.className = this.nbPgSpanCssClass;
|
|
||||||
targetEl.appendChild(pgBeforeSpan);
|
|
||||||
targetEl.appendChild(slcPages);
|
|
||||||
var pgAfterSpan = dom.create("span", ["id", tf.prfxPgAfterSpan + tf.id]);
|
|
||||||
pgAfterSpan.appendChild(dom.text(this.ofText));
|
|
||||||
pgAfterSpan.className = this.nbPgSpanCssClass;
|
|
||||||
targetEl.appendChild(pgAfterSpan);
|
|
||||||
var pgspan = dom.create("span", ["id", tf.prfxPgSpan + tf.id]);
|
|
||||||
pgspan.className = this.nbPgSpanCssClass;
|
|
||||||
pgspan.appendChild(dom.text(" " + this.nbPages + " "));
|
|
||||||
targetEl.appendChild(pgspan);
|
|
||||||
targetEl.appendChild(btnNextSpan);
|
|
||||||
targetEl.appendChild(btnLastSpan);
|
|
||||||
this.pagingSlc = dom.id(tf.prfxSlcPages + tf.id);
|
|
||||||
|
|
||||||
/*====================================================
|
|
||||||
- onchange event for paging select
|
|
||||||
=====================================================*/
|
|
||||||
if (!evt._OnSlcPagesChange) {
|
|
||||||
evt._OnSlcPagesChange = function () {
|
|
||||||
if (evt._Paging._OnSlcPagesChangeEvt) {
|
|
||||||
evt._Paging._OnSlcPagesChangeEvt();
|
|
||||||
}
|
}
|
||||||
tf.ChangePage();
|
|
||||||
this.blur();
|
// Paging input selector
|
||||||
//ie only: blur is not enough...
|
if (this.pageSelectorType === tf.fltTypeInp) {
|
||||||
if (this.parentNode && Helpers.isIE()) {
|
slcPages = Dom.create(tf.fltTypeInp, ["id", tf.prfxSlcPages + tf.id], ["value", tf.currentPageNb]);
|
||||||
this.parentNode.focus();
|
slcPages.className = this.pgInpCssClass;
|
||||||
|
slcPages.onkeypress = evt._Paging._detectKey;
|
||||||
}
|
}
|
||||||
};
|
|
||||||
|
// btns containers
|
||||||
|
var btnNextSpan = Dom.create("span", ["id", tf.prfxBtnNextSpan + tf.id]);
|
||||||
|
var btnPrevSpan = Dom.create("span", ["id", tf.prfxBtnPrevSpan + tf.id]);
|
||||||
|
var btnLastSpan = Dom.create("span", ["id", tf.prfxBtnLastSpan + tf.id]);
|
||||||
|
var btnFirstSpan = Dom.create("span", ["id", tf.prfxBtnFirstSpan + tf.id]);
|
||||||
|
|
||||||
|
if (this.hasPagingBtns) {
|
||||||
|
// Next button
|
||||||
|
if (!this.btnNextPageHtml) {
|
||||||
|
var btn_next = Dom.create(tf.fltTypeInp, ["id", tf.prfxBtnNext + tf.id], ["type", "button"], ["value", this.btnNextPageText], ["title", "Next"]);
|
||||||
|
btn_next.className = this.btnPageCssClass;
|
||||||
|
btn_next.onclick = evt._Paging.next;
|
||||||
|
btnNextSpan.appendChild(btn_next);
|
||||||
|
} else {
|
||||||
|
btnNextSpan.innerHTML = this.btnNextPageHtml;
|
||||||
|
btnNextSpan.onclick = evt._Paging.next;
|
||||||
|
}
|
||||||
|
// Previous button
|
||||||
|
if (!this.btnPrevPageHtml) {
|
||||||
|
var btn_prev = Dom.create(tf.fltTypeInp, ["id", tf.prfxBtnPrev + tf.id], ["type", "button"], ["value", this.btnPrevPageText], ["title", "Previous"]);
|
||||||
|
btn_prev.className = this.btnPageCssClass;
|
||||||
|
btn_prev.onclick = evt._Paging.prev;
|
||||||
|
btnPrevSpan.appendChild(btn_prev);
|
||||||
|
} else {
|
||||||
|
btnPrevSpan.innerHTML = this.btnPrevPageHtml;
|
||||||
|
btnPrevSpan.onclick = evt._Paging.prev;
|
||||||
|
}
|
||||||
|
// Last button
|
||||||
|
if (!this.btnLastPageHtml) {
|
||||||
|
var btn_last = Dom.create(tf.fltTypeInp, ["id", tf.prfxBtnLast + tf.id], ["type", "button"], ["value", this.btnLastPageText], ["title", "Last"]);
|
||||||
|
btn_last.className = this.btnPageCssClass;
|
||||||
|
btn_last.onclick = evt._Paging.last;
|
||||||
|
btnLastSpan.appendChild(btn_last);
|
||||||
|
} else {
|
||||||
|
btnLastSpan.innerHTML = this.btnLastPageHtml;
|
||||||
|
btnLastSpan.onclick = evt._Paging.last;
|
||||||
|
}
|
||||||
|
// First button
|
||||||
|
if (!this.btnFirstPageHtml) {
|
||||||
|
var btn_first = Dom.create(tf.fltTypeInp, ["id", tf.prfxBtnFirst + tf.id], ["type", "button"], ["value", this.btnFirstPageText], ["title", "First"]);
|
||||||
|
btn_first.className = this.btnPageCssClass;
|
||||||
|
btn_first.onclick = evt._Paging.first;
|
||||||
|
btnFirstSpan.appendChild(btn_first);
|
||||||
|
} else {
|
||||||
|
btnFirstSpan.innerHTML = this.btnFirstPageHtml;
|
||||||
|
btnFirstSpan.onclick = evt._Paging.first;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// paging elements (buttons+drop-down list) are added to defined element
|
||||||
|
if (!this.pagingTgtId) {
|
||||||
|
tf.SetTopDiv();
|
||||||
|
}
|
||||||
|
var targetEl = !this.pagingTgtId ? tf.mDiv : Dom.id(this.pagingTgtId);
|
||||||
|
|
||||||
|
/***
|
||||||
|
if paging previously removed this prevents IE memory leak with
|
||||||
|
removeChild used in RemovePaging method. For more info refer to
|
||||||
|
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2840253&SiteID=1
|
||||||
|
***/
|
||||||
|
if (targetEl.innerHTML !== "") {
|
||||||
|
targetEl.innerHTML = "";
|
||||||
|
}
|
||||||
|
/*** ***/
|
||||||
|
|
||||||
|
targetEl.appendChild(btnFirstSpan);
|
||||||
|
targetEl.appendChild(btnPrevSpan);
|
||||||
|
|
||||||
|
var pgBeforeSpan = Dom.create("span", ["id", tf.prfxPgBeforeSpan + tf.id]);
|
||||||
|
pgBeforeSpan.appendChild(Dom.text(this.pageText));
|
||||||
|
pgBeforeSpan.className = this.nbPgSpanCssClass;
|
||||||
|
targetEl.appendChild(pgBeforeSpan);
|
||||||
|
targetEl.appendChild(slcPages);
|
||||||
|
var pgAfterSpan = Dom.create("span", ["id", tf.prfxPgAfterSpan + tf.id]);
|
||||||
|
pgAfterSpan.appendChild(Dom.text(this.ofText));
|
||||||
|
pgAfterSpan.className = this.nbPgSpanCssClass;
|
||||||
|
targetEl.appendChild(pgAfterSpan);
|
||||||
|
var pgspan = Dom.create("span", ["id", tf.prfxPgSpan + tf.id]);
|
||||||
|
pgspan.className = this.nbPgSpanCssClass;
|
||||||
|
pgspan.appendChild(Dom.text(" " + this.nbPages + " "));
|
||||||
|
targetEl.appendChild(pgspan);
|
||||||
|
targetEl.appendChild(btnNextSpan);
|
||||||
|
targetEl.appendChild(btnLastSpan);
|
||||||
|
this.pagingSlc = Dom.id(tf.prfxSlcPages + tf.id);
|
||||||
|
|
||||||
|
/*====================================================
|
||||||
|
- onchange event for paging select
|
||||||
|
=====================================================*/
|
||||||
|
var o = this;
|
||||||
|
evt._OnSlcPagesChange = function () {
|
||||||
|
if (evt._Paging._OnSlcPagesChangeEvt) {
|
||||||
|
evt._Paging._OnSlcPagesChangeEvt();
|
||||||
|
}
|
||||||
|
o.changePage();
|
||||||
|
this.blur();
|
||||||
|
//ie only: blur is not enough...
|
||||||
|
if (this.parentNode && Helpers.isIE()) {
|
||||||
|
this.parentNode.focus();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// if this.rememberGridValues==true this.SetPagingInfo() is called
|
||||||
|
// in ResetGridValues() method
|
||||||
|
if (!tf.rememberGridValues || tf.isPagingRemoved) {
|
||||||
|
this.setPagingInfo();
|
||||||
|
}
|
||||||
|
if (!tf.fltGrid) {
|
||||||
|
tf.ValidateAllRows();
|
||||||
|
this.setPagingInfo(tf.validRowsIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.pagingBtnEvents = evt._Paging;
|
||||||
|
tf.isPagingRemoved = false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
addPaging: {
|
||||||
|
writable: true,
|
||||||
|
value: function (filterTable) {
|
||||||
|
var tf = this.tf;
|
||||||
|
if (!tf.hasGrid || tf.paging) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
tf.paging = true;
|
||||||
|
tf.isPagingRemoved = true;
|
||||||
|
this.init();
|
||||||
|
tf.ResetValues();
|
||||||
|
if (filterTable) {
|
||||||
|
tf.Filter();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
setPagingInfo: {
|
||||||
|
writable: true,
|
||||||
|
value: function (validRows) {
|
||||||
|
var tf = this.tf;
|
||||||
|
var rows = tf.tbl.rows;
|
||||||
|
var mdiv = !this.pagingTgtId ? tf.mDiv : Dom.id(this.pagingTgtId);
|
||||||
|
var pgspan = Dom.id(tf.prfxPgSpan + tf.id);
|
||||||
|
//stores valid rows indexes
|
||||||
|
if (validRows && validRows.length > 0) {
|
||||||
|
tf.validRowsIndex = validRows;
|
||||||
|
} else {
|
||||||
|
//re-sets valid rows indexes array
|
||||||
|
tf.validRowsIndex = [];
|
||||||
|
|
||||||
|
//counts rows to be grouped
|
||||||
|
for (var j = tf.refRow; j < tf.nbRows; j++) {
|
||||||
|
var row = rows[j];
|
||||||
|
if (!row) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
var isRowValid = row.getAttribute("validRow");
|
||||||
|
if (isRowValid === "true" || !isRowValid) {
|
||||||
|
tf.validRowsIndex.push(j);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//calculate nb of pages
|
||||||
|
this.nbPages = Math.ceil(tf.validRowsIndex.length / this.pagingLength);
|
||||||
|
//refresh page nb span
|
||||||
|
pgspan.innerHTML = this.nbPages;
|
||||||
|
//select clearing shortcut
|
||||||
|
if (this.pageSelectorType === tf.fltTypeSlc) {
|
||||||
|
this.pagingSlc.innerHTML = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.nbPages > 0) {
|
||||||
|
mdiv.style.visibility = "visible";
|
||||||
|
if (this.pageSelectorType === tf.fltTypeSlc) {
|
||||||
|
for (var z = 0; z < this.nbPages; z++) {
|
||||||
|
var currOpt = new Option((z + 1), z * this.pagingLength, false, false);
|
||||||
|
this.pagingSlc.options[z] = currOpt;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//input type
|
||||||
|
this.pagingSlc.value = this.currentPageNb;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
/*** if no results paging select and buttons are hidden ***/
|
||||||
|
mdiv.style.visibility = "hidden";
|
||||||
|
}
|
||||||
|
this.groupByPage(tf.validRowsIndex);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
groupByPage: {
|
||||||
|
writable: true,
|
||||||
|
value: function (validRows) {
|
||||||
|
var tf = this.tf;
|
||||||
|
var rows = tf.tbl.rows;
|
||||||
|
var paging_end_row = parseInt(this.startPagingRow, 10) + parseInt(this.pagingLength, 10);
|
||||||
|
|
||||||
|
//store valid rows indexes
|
||||||
|
if (validRows) {
|
||||||
|
tf.validRowsIndex = validRows;
|
||||||
|
}
|
||||||
|
|
||||||
|
//this loop shows valid rows of current page
|
||||||
|
for (var h = 0; h < tf.validRowsIndex.length; h++) {
|
||||||
|
var r = rows[tf.validRowsIndex[h]];
|
||||||
|
if (h >= this.startPagingRow && h < paging_end_row) {
|
||||||
|
if (r.getAttribute("validRow") === "true" || !r.getAttribute("validRow")) {
|
||||||
|
r.style.display = "";
|
||||||
|
}
|
||||||
|
if (tf.alternateBgs && tf.Cpt.alternateRows) {
|
||||||
|
tf.Cpt.alternateRows.setRowBg(tf.validRowsIndex[h], h);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
r.style.display = "none";
|
||||||
|
if (tf.alternateBgs && tf.Cpt.alternateRows) {
|
||||||
|
tf.Cpt.alternateRows.removeRowBg(tf.validRowsIndex[h]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tf.nbVisibleRows = tf.validRowsIndex.length;
|
||||||
|
tf.isStartBgAlternate = false;
|
||||||
|
//re-applies filter behaviours after filtering process
|
||||||
|
tf.ApplyGridProps();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
setPage: {
|
||||||
|
writable: true,
|
||||||
|
value: function (cmd) {
|
||||||
|
var tf = this.tf;
|
||||||
|
if (!tf.hasGrid || !this.paging) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var btnEvt = this.pagingBtnEvents, cmdtype = typeof cmd;
|
||||||
|
if (cmdtype === "string") {
|
||||||
|
switch (Str.lower(cmd)) {
|
||||||
|
case "next":
|
||||||
|
btnEvt.next();
|
||||||
|
break;
|
||||||
|
case "previous":
|
||||||
|
btnEvt.prev();
|
||||||
|
break;
|
||||||
|
case "last":
|
||||||
|
btnEvt.last();
|
||||||
|
break;
|
||||||
|
case "first":
|
||||||
|
btnEvt.first();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
btnEvt.next();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (cmdtype === "number") {
|
||||||
|
this.changePage(cmd - 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
setResultsPerPage: {
|
||||||
|
writable: true,
|
||||||
|
value: function () {
|
||||||
|
var tf = this.tf;
|
||||||
|
var evt = tf.Evt;
|
||||||
|
|
||||||
|
if (!tf.hasGrid && !tf.isFirstLoad) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (this.resultsPerPageSlc || !this.resultsPerPage) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Change nb results per page event
|
||||||
|
if (!evt._OnSlcResultsChange) {
|
||||||
|
/*====================================================
|
||||||
|
- onchange event for results per page select
|
||||||
|
=====================================================*/
|
||||||
|
evt._OnSlcResultsChange = function () {
|
||||||
|
this.changeResultsPerPage();
|
||||||
|
this.blur();
|
||||||
|
//ie only: blur is not enough...
|
||||||
|
if (this.parentNode && Helpers.isIE()) {
|
||||||
|
this.parentNode.focus();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
var slcR = Dom.create(tf.fltTypeSlc, ["id", tf.prfxSlcResults + tf.id]);
|
||||||
|
slcR.className = tf.resultsSlcCssClass;
|
||||||
|
var slcRText = this.resultsPerPage[0], slcROpts = this.resultsPerPage[1];
|
||||||
|
var slcRSpan = Dom.create("span", ["id", tf.prfxSlcResultsTxt + tf.id]);
|
||||||
|
slcRSpan.className = this.resultsSpanCssClass;
|
||||||
|
|
||||||
|
// results per page select is added to external element
|
||||||
|
if (!this.resultsPerPageTgtId) {
|
||||||
|
tf.SetTopDiv();
|
||||||
|
}
|
||||||
|
var targetEl = !this.resultsPerPageTgtId ? tf.rDiv : Dom.id(this.resultsPerPageTgtId);
|
||||||
|
slcRSpan.appendChild(Dom.text(slcRText));
|
||||||
|
targetEl.appendChild(slcRSpan);
|
||||||
|
targetEl.appendChild(slcR);
|
||||||
|
|
||||||
|
this.resultsPerPageSlc = Dom.id(tf.prfxSlcResults + tf.id);
|
||||||
|
|
||||||
|
for (var r = 0; r < slcROpts.length; r++) {
|
||||||
|
var currOpt = new Option(slcROpts[r], slcROpts[r], false, false);
|
||||||
|
this.resultsPerPageSlc.options[r] = currOpt;
|
||||||
|
}
|
||||||
|
slcR.onchange = evt._OnSlcResultsChange;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
removeResultsPerPage: {
|
||||||
|
writable: true,
|
||||||
|
value: function () {
|
||||||
|
var tf = this.tf;
|
||||||
|
if (!tf.hasGrid || !this.resultsPerPageSlc || !this.resultsPerPage) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var slcR = this.resultsPerPageSlc, slcRSpan = Dom.id(tf.prfxSlcResultsTxt + tf.id);
|
||||||
|
if (slcR) {
|
||||||
|
slcR.parentNode.removeChild(slcR);
|
||||||
|
}
|
||||||
|
if (slcRSpan) {
|
||||||
|
slcRSpan.parentNode.removeChild(slcRSpan);
|
||||||
|
}
|
||||||
|
this.resultsPerPageSlc = null;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
changePage: {
|
||||||
|
writable: true,
|
||||||
|
value: function (index) {
|
||||||
|
var tf = this.tf;
|
||||||
|
var evt = tf.Evt;
|
||||||
|
tf.EvtManager(evt.name.changepage, { pgIndex: index });
|
||||||
|
}
|
||||||
|
},
|
||||||
|
changeResultsPerPage: {
|
||||||
|
writable: true,
|
||||||
|
value: function () {
|
||||||
|
var tf = this.tf;
|
||||||
|
var evt = tf.Evt;
|
||||||
|
tf.EvtManager(evt.name.changeresultsperpage);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
resetPage: {
|
||||||
|
writable: true,
|
||||||
|
value: function () {
|
||||||
|
var tf = this.tf;
|
||||||
|
var evt = tf.Evt;
|
||||||
|
tf.EvtManager(evt.name.resetpage);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
resetPageLength: {
|
||||||
|
writable: true,
|
||||||
|
value: function () {
|
||||||
|
var tf = this.tf;
|
||||||
|
var evt = tf.Evt;
|
||||||
|
tf.EvtManager(evt.name.resetpagelength);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
_changePage: {
|
||||||
|
writable: true,
|
||||||
|
value: function (index) {
|
||||||
|
var tf = this.tf;
|
||||||
|
|
||||||
|
if (!tf.paging) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (index === undefined) {
|
||||||
|
index = this.pageSelectorType === tf.fltTypeSlc ? this.pagingSlc.options.selectedIndex : (this.pagingSlc.value - 1);
|
||||||
|
}
|
||||||
|
if (index >= 0 && index <= (this.nbPages - 1)) {
|
||||||
|
if (this.onBeforeChangePage) {
|
||||||
|
this.onBeforeChangePage.call(null, this, index);
|
||||||
|
}
|
||||||
|
this.currentPageNb = parseInt(index, 10) + 1;
|
||||||
|
if (this.pageSelectorType === tf.fltTypeSlc) {
|
||||||
|
this.pagingSlc.options[index].selected = true;
|
||||||
|
} else {
|
||||||
|
this.pagingSlc.value = this.currentPageNb;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (tf.rememberPageNb) {
|
||||||
|
tf.Cpt.store.savePageNb(this.pgNbCookie);
|
||||||
|
}
|
||||||
|
this.startPagingRow = (this.pageSelectorType === tf.fltTypeSlc) ? this.pagingSlc.value : (index * this.pagingLength);
|
||||||
|
|
||||||
|
this.groupByPage();
|
||||||
|
|
||||||
|
if (this.onAfterChangePage) {
|
||||||
|
this.onAfterChangePage.call(null, this, index);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
_changeResultsPerPage: {
|
||||||
|
writable: true,
|
||||||
|
value: function () {
|
||||||
|
var tf = this.tf;
|
||||||
|
|
||||||
|
if (!tf.paging) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var slcR = this.resultsPerPageSlc;
|
||||||
|
var slcPagesSelIndex = (this.pageSelectorType === tf.fltTypeSlc) ? this.pagingSlc.selectedIndex : parseInt(this.pagingSlc.value - 1, 10);
|
||||||
|
this.pagingLength = parseInt(slcR.options[slcR.selectedIndex].value, 10);
|
||||||
|
this.startPagingRow = this.pagingLength * slcPagesSelIndex;
|
||||||
|
|
||||||
|
if (!isNaN(this.pagingLength)) {
|
||||||
|
if (this.startPagingRow >= tf.nbFilterableRows) {
|
||||||
|
this.startPagingRow = (tf.nbFilterableRows - this.pagingLength);
|
||||||
|
}
|
||||||
|
this.setPagingInfo();
|
||||||
|
|
||||||
|
if (this.pageSelectorType === tf.fltTypeSlc) {
|
||||||
|
var slcIndex = (this.pagingSlc.options.length - 1 <= slcPagesSelIndex) ? (this.pagingSlc.options.length - 1) : slcPagesSelIndex;
|
||||||
|
this.pagingSlc.options[slcIndex].selected = true;
|
||||||
|
}
|
||||||
|
if (tf.rememberPageLen) {
|
||||||
|
tf.Cpt.store.savePageLength(tf.pgLenCookie);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
_resetPage: {
|
||||||
|
writable: true,
|
||||||
|
value: function (name) {
|
||||||
|
var tf = this.tf;
|
||||||
|
var pgnb = tf.Cpt.store.getPageNb(name);
|
||||||
|
if (pgnb !== "") {
|
||||||
|
this.changePage((pgnb - 1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
_resetPageLength: {
|
||||||
|
writable: true,
|
||||||
|
value: function (name) {
|
||||||
|
var tf = this.tf;
|
||||||
|
if (!tf.paging) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var pglenIndex = tf.Cpt.store.getPageLength(name);
|
||||||
|
|
||||||
|
if (pglenIndex !== "") {
|
||||||
|
this.resultsPerPageSlc.options[pglenIndex].selected = true;
|
||||||
|
this.changeResultsPerPage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
destroy: {
|
||||||
|
writable: true,
|
||||||
|
value: function () {
|
||||||
|
var tf = this.tf;
|
||||||
|
|
||||||
|
if (!tf.hasGrid || this.pagingSlc) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// btns containers
|
||||||
|
var btnNextSpan, btnPrevSpan, btnLastSpan, btnFirstSpan;
|
||||||
|
var pgBeforeSpan, pgAfterSpan, pgspan;
|
||||||
|
btnNextSpan = Dom.id(tf.prfxBtnNextSpan + tf.id);
|
||||||
|
btnPrevSpan = Dom.id(tf.prfxBtnPrevSpan + tf.id);
|
||||||
|
btnLastSpan = Dom.id(tf.prfxBtnLastSpan + tf.id);
|
||||||
|
btnFirstSpan = Dom.id(tf.prfxBtnFirstSpan + tf.id);
|
||||||
|
//span containing 'Page' text
|
||||||
|
pgBeforeSpan = Dom.id(tf.prfxPgBeforeSpan + tf.id);
|
||||||
|
//span containing 'of' text
|
||||||
|
pgAfterSpan = Dom.id(tf.prfxPgAfterSpan + tf.id);
|
||||||
|
//span containing nb of pages
|
||||||
|
pgspan = Dom.id(tf.prfxPgSpan + tf.id);
|
||||||
|
|
||||||
|
this.pagingSlc.parentNode.removeChild(this.pagingSlc);
|
||||||
|
|
||||||
|
if (btnNextSpan) {
|
||||||
|
btnNextSpan.parentNode.removeChild(btnNextSpan);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (btnPrevSpan) {
|
||||||
|
btnPrevSpan.parentNode.removeChild(btnPrevSpan);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (btnLastSpan) {
|
||||||
|
btnLastSpan.parentNode.removeChild(btnLastSpan);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (btnFirstSpan) {
|
||||||
|
btnFirstSpan.parentNode.removeChild(btnFirstSpan);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pgBeforeSpan) {
|
||||||
|
pgBeforeSpan.parentNode.removeChild(pgBeforeSpan);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pgAfterSpan) {
|
||||||
|
pgAfterSpan.parentNode.removeChild(pgAfterSpan);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pgspan) {
|
||||||
|
pgspan.parentNode.removeChild(pgspan);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.pagingBtnEvents = null;
|
||||||
|
this.pagingSlc = null;
|
||||||
|
tf.isPagingRemoved = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
});
|
||||||
|
|
||||||
return Paging;
|
return Paging;
|
||||||
})();
|
})();
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,17 +1,16 @@
|
||||||
define(["exports", "../dom", "../types", "../helpers"], function (exports, _dom, _types, _helpers) {
|
define(["exports", "../dom", "../types", "../helpers"], function (exports, _dom, _types, _helpers) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
|
var _classProps = function (child, staticProps, instanceProps) {
|
||||||
|
if (staticProps) Object.defineProperties(child, staticProps);
|
||||||
|
if (instanceProps) Object.defineProperties(child.prototype, instanceProps);
|
||||||
|
};
|
||||||
|
|
||||||
var Dom = _dom.Dom;
|
var Dom = _dom.Dom;
|
||||||
var Types = _types.Types;
|
var Types = _types.Types;
|
||||||
var Helpers = _helpers.Helpers;
|
var Helpers = _helpers.Helpers;
|
||||||
var RowsCounter = (function () {
|
var RowsCounter = (function () {
|
||||||
var RowsCounter =
|
var RowsCounter = function RowsCounter(tf) {
|
||||||
|
|
||||||
/**
|
|
||||||
* Rows counter
|
|
||||||
* @param {Object} tf TableFilter instance
|
|
||||||
*/
|
|
||||||
function RowsCounter(tf) {
|
|
||||||
// TableFilter configuration
|
// TableFilter configuration
|
||||||
var f = tf.fObj;
|
var f = tf.fObj;
|
||||||
|
|
||||||
|
@ -35,99 +34,108 @@ define(["exports", "../dom", "../types", "../helpers"], function (exports, _dom,
|
||||||
this.tf = tf;
|
this.tf = tf;
|
||||||
};
|
};
|
||||||
|
|
||||||
RowsCounter.prototype.init = function () {
|
_classProps(RowsCounter, null, {
|
||||||
var tf = this.tf;
|
init: {
|
||||||
|
writable: true,
|
||||||
|
value: function () {
|
||||||
|
var tf = this.tf;
|
||||||
|
|
||||||
if ((!tf.hasGrid && !tf.isFirstLoad) || this.rowsCounterSpan) {
|
if ((!tf.hasGrid && !tf.isFirstLoad) || this.rowsCounterSpan) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
//rows counter container
|
//rows counter container
|
||||||
var countDiv = Dom.create("div", ["id", tf.prfxCounter + tf.id]);
|
var countDiv = Dom.create("div", ["id", tf.prfxCounter + tf.id]);
|
||||||
countDiv.className = this.totRowsCssClass;
|
countDiv.className = this.totRowsCssClass;
|
||||||
//rows counter label
|
//rows counter label
|
||||||
var countSpan = Dom.create("span", ["id", tf.prfxTotRows + tf.id]);
|
var countSpan = Dom.create("span", ["id", tf.prfxTotRows + tf.id]);
|
||||||
var countText = Dom.create("span", ["id", tf.prfxTotRowsTxt + tf.id]);
|
var countText = Dom.create("span", ["id", tf.prfxTotRowsTxt + tf.id]);
|
||||||
countText.appendChild(Dom.text(this.rowsCounterText));
|
countText.appendChild(Dom.text(this.rowsCounterText));
|
||||||
|
|
||||||
// counter is added to defined element
|
// counter is added to defined element
|
||||||
if (!this.rowsCounterTgtId) {
|
if (!this.rowsCounterTgtId) {
|
||||||
tf.SetTopDiv();
|
tf.SetTopDiv();
|
||||||
}
|
}
|
||||||
var targetEl = !this.rowsCounterTgtId ? tf.lDiv : Dom.id(this.rowsCounterTgtId);
|
var targetEl = !this.rowsCounterTgtId ? tf.lDiv : Dom.id(this.rowsCounterTgtId);
|
||||||
|
|
||||||
//IE only: clears all for sure
|
//IE only: clears all for sure
|
||||||
if (this.rowsCounterDiv && Helpers.isIE()) {
|
if (this.rowsCounterDiv && Helpers.isIE()) {
|
||||||
this.rowsCounterDiv.outerHTML = "";
|
this.rowsCounterDiv.outerHTML = "";
|
||||||
}
|
}
|
||||||
//default container: 'lDiv'
|
//default container: 'lDiv'
|
||||||
if (!this.rowsCounterTgtId) {
|
if (!this.rowsCounterTgtId) {
|
||||||
countDiv.appendChild(countText);
|
countDiv.appendChild(countText);
|
||||||
countDiv.appendChild(countSpan);
|
countDiv.appendChild(countSpan);
|
||||||
targetEl.appendChild(countDiv);
|
targetEl.appendChild(countDiv);
|
||||||
} else {
|
} else {
|
||||||
//custom container, no need to append statusDiv
|
//custom container, no need to append statusDiv
|
||||||
targetEl.appendChild(countText);
|
targetEl.appendChild(countText);
|
||||||
targetEl.appendChild(countSpan);
|
targetEl.appendChild(countSpan);
|
||||||
}
|
}
|
||||||
this.rowsCounterDiv = countDiv;
|
this.rowsCounterDiv = countDiv;
|
||||||
this.rowsCounterSpan = countSpan;
|
this.rowsCounterSpan = countSpan;
|
||||||
|
|
||||||
this.refresh();
|
this.refresh();
|
||||||
};
|
|
||||||
|
|
||||||
RowsCounter.prototype.refresh = function (p) {
|
|
||||||
if (!this.rowsCounterSpan) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var tf = this.tf;
|
|
||||||
|
|
||||||
if (this.onBeforeRefreshCounter) {
|
|
||||||
this.onBeforeRefreshCounter.call(null, tf, this.rowsCounterSpan);
|
|
||||||
}
|
|
||||||
|
|
||||||
var totTxt;
|
|
||||||
if (!tf.paging) {
|
|
||||||
if (p && p !== "") {
|
|
||||||
totTxt = p;
|
|
||||||
} else {
|
|
||||||
totTxt = tf.nbFilterableRows - tf.nbHiddenRows - (tf.hasVisibleRows ? tf.visibleRows.length : 0);
|
|
||||||
}
|
}
|
||||||
} else {
|
},
|
||||||
//paging start row
|
refresh: {
|
||||||
var paging_start_row = parseInt(tf.startPagingRow, 10) + ((tf.nbVisibleRows > 0) ? 1 : 0);
|
writable: true,
|
||||||
var paging_end_row = (paging_start_row + tf.pagingLength) - 1 <= tf.nbVisibleRows ? paging_start_row + tf.pagingLength - 1 : tf.nbVisibleRows;
|
value: function (p) {
|
||||||
totTxt = paging_start_row + this.fromToTextSeparator + paging_end_row + this.overText + tf.nbVisibleRows;
|
if (!this.rowsCounterSpan) {
|
||||||
}
|
return;
|
||||||
this.rowsCounterSpan.innerHTML = totTxt;
|
}
|
||||||
if (this.onAfterRefreshCounter) {
|
|
||||||
this.onAfterRefreshCounter.call(null, tf, this.rowsCounterSpan, totTxt);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
RowsCounter.prototype.destroy = function () {
|
var tf = this.tf;
|
||||||
var tf = this.tf;
|
|
||||||
if (!tf.hasGrid) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!this.rowsCounterSpan) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!this.rowsCounterTgtId && this.rowsCounterDiv) {
|
if (this.onBeforeRefreshCounter) {
|
||||||
//IE only: clears all for sure
|
this.onBeforeRefreshCounter.call(null, tf, this.rowsCounterSpan);
|
||||||
if (Helpers.isIE()) {
|
}
|
||||||
this.rowsCounterDiv.outerHTML = "";
|
|
||||||
} else {
|
var totTxt;
|
||||||
this.rowsCounterDiv.parentNode.removeChild(this.rowsCounterDiv);
|
if (!tf.paging) {
|
||||||
|
if (p && p !== "") {
|
||||||
|
totTxt = p;
|
||||||
|
} else {
|
||||||
|
totTxt = tf.nbFilterableRows - tf.nbHiddenRows - (tf.hasVisibleRows ? tf.visibleRows.length : 0);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//paging start row
|
||||||
|
var paging_start_row = parseInt(tf.startPagingRow, 10) + ((tf.nbVisibleRows > 0) ? 1 : 0);
|
||||||
|
var paging_end_row = (paging_start_row + tf.pagingLength) - 1 <= tf.nbVisibleRows ? paging_start_row + tf.pagingLength - 1 : tf.nbVisibleRows;
|
||||||
|
totTxt = paging_start_row + this.fromToTextSeparator + paging_end_row + this.overText + tf.nbVisibleRows;
|
||||||
|
}
|
||||||
|
this.rowsCounterSpan.innerHTML = totTxt;
|
||||||
|
if (this.onAfterRefreshCounter) {
|
||||||
|
this.onAfterRefreshCounter.call(null, tf, this.rowsCounterSpan, totTxt);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
destroy: {
|
||||||
|
writable: true,
|
||||||
|
value: function () {
|
||||||
|
var tf = this.tf;
|
||||||
|
if (!tf.hasGrid) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!this.rowsCounterSpan) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!this.rowsCounterTgtId && this.rowsCounterDiv) {
|
||||||
|
//IE only: clears all for sure
|
||||||
|
if (Helpers.isIE()) {
|
||||||
|
this.rowsCounterDiv.outerHTML = "";
|
||||||
|
} else {
|
||||||
|
this.rowsCounterDiv.parentNode.removeChild(this.rowsCounterDiv);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Dom.id(this.rowsCounterTgtId).innerHTML = "";
|
||||||
|
}
|
||||||
|
this.rowsCounterSpan = null;
|
||||||
|
this.rowsCounterDiv = null;
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
Dom.id(this.rowsCounterTgtId).innerHTML = "";
|
|
||||||
}
|
}
|
||||||
this.rowsCounterSpan = null;
|
});
|
||||||
this.rowsCounterDiv = null;
|
|
||||||
};
|
|
||||||
|
|
||||||
return RowsCounter;
|
return RowsCounter;
|
||||||
})();
|
})();
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,15 +1,14 @@
|
||||||
define(["exports", "../cookie"], function (exports, _cookie) {
|
define(["exports", "../cookie"], function (exports, _cookie) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
|
var _classProps = function (child, staticProps, instanceProps) {
|
||||||
|
if (staticProps) Object.defineProperties(child, staticProps);
|
||||||
|
if (instanceProps) Object.defineProperties(child.prototype, instanceProps);
|
||||||
|
};
|
||||||
|
|
||||||
var Cookie = _cookie.Cookie;
|
var Cookie = _cookie.Cookie;
|
||||||
var Store = (function () {
|
var Store = (function () {
|
||||||
var Store =
|
var Store = function Store(tf) {
|
||||||
|
|
||||||
/**
|
|
||||||
* Store, persistence manager
|
|
||||||
* @param {Object} tf TableFilter instance
|
|
||||||
*/
|
|
||||||
function Store(tf) {
|
|
||||||
var f = tf.fObj;
|
var f = tf.fObj;
|
||||||
|
|
||||||
this.duration = !isNaN(f.set_cookie_duration) ? parseInt(f.set_cookie_duration, 10) : 100000;
|
this.duration = !isNaN(f.set_cookie_duration) ? parseInt(f.set_cookie_duration, 10) : 100000;
|
||||||
|
@ -17,46 +16,61 @@ define(["exports", "../cookie"], function (exports, _cookie) {
|
||||||
this.tf = tf;
|
this.tf = tf;
|
||||||
};
|
};
|
||||||
|
|
||||||
Store.prototype.saveFilterValues = function (name) {
|
_classProps(Store, null, {
|
||||||
var tf = this.tf;
|
saveFilterValues: {
|
||||||
var fltValues = [];
|
writable: true,
|
||||||
//store filters' values
|
value: function (name) {
|
||||||
for (var i = 0; i < tf.fltIds.length; i++) {
|
var tf = this.tf;
|
||||||
var value = tf.GetFilterValue(i);
|
var fltValues = [];
|
||||||
if (value === "") {
|
//store filters' values
|
||||||
value = " ";
|
for (var i = 0; i < tf.fltIds.length; i++) {
|
||||||
|
var value = tf.GetFilterValue(i);
|
||||||
|
if (value === "") {
|
||||||
|
value = " ";
|
||||||
|
}
|
||||||
|
fltValues.push(value);
|
||||||
|
}
|
||||||
|
//adds array size
|
||||||
|
fltValues.push(tf.fltIds.length);
|
||||||
|
|
||||||
|
//writes cookie
|
||||||
|
Cookie.write(name, fltValues.join(tf.separator), this.duration);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getFilterValues: {
|
||||||
|
writable: true,
|
||||||
|
value: function (name) {
|
||||||
|
var flts = Cookie.read(name);
|
||||||
|
var rgx = new RegExp(this.tf.separator, "g");
|
||||||
|
// filters' values array
|
||||||
|
return flts.split(rgx);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
savePageNb: {
|
||||||
|
writable: true,
|
||||||
|
value: function (name) {
|
||||||
|
Cookie.write(name, this.tf.currentPageNb, this.duration);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getPageNb: {
|
||||||
|
writable: true,
|
||||||
|
value: function (name) {
|
||||||
|
return Cookie.read(name);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
savePageLength: {
|
||||||
|
writable: true,
|
||||||
|
value: function (name) {
|
||||||
|
Cookie.write(name, this.tf.resultsPerPageSlc.selectedIndex, this.duration);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getPageLength: {
|
||||||
|
writable: true,
|
||||||
|
value: function (name) {
|
||||||
|
return Cookie.read(name);
|
||||||
}
|
}
|
||||||
fltValues.push(value);
|
|
||||||
}
|
}
|
||||||
//adds array size
|
});
|
||||||
fltValues.push(tf.fltIds.length);
|
|
||||||
|
|
||||||
//writes cookie
|
|
||||||
Cookie.write(name, fltValues.join(tf.separator), this.duration);
|
|
||||||
};
|
|
||||||
|
|
||||||
Store.prototype.getFilterValues = function (name) {
|
|
||||||
var flts = Cookie.read(name);
|
|
||||||
var rgx = new RegExp(this.tf.separator, "g");
|
|
||||||
// filters' values array
|
|
||||||
return flts.split(rgx);
|
|
||||||
};
|
|
||||||
|
|
||||||
Store.prototype.savePageNb = function (name) {
|
|
||||||
Cookie.write(name, this.tf.currentPageNb, this.duration);
|
|
||||||
};
|
|
||||||
|
|
||||||
Store.prototype.getPageNb = function (name) {
|
|
||||||
return Cookie.read(name);
|
|
||||||
};
|
|
||||||
|
|
||||||
Store.prototype.savePageLength = function (name) {
|
|
||||||
Cookie.write(name, this.tf.resultsPerPageSlc.selectedIndex, this.duration);
|
|
||||||
};
|
|
||||||
|
|
||||||
Store.prototype.getPageLength = function (name) {
|
|
||||||
return Cookie.read(name);
|
|
||||||
};
|
|
||||||
|
|
||||||
return Store;
|
return Store;
|
||||||
})();
|
})();
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
{"version":3,"sources":["src-es6/modules/store.js"],"names":[],"mappings":";;;MAAQ,MAAM,WAAN,MAAM;MAED,KAAK;QAAL,KAAK;;;;;;AAMH,aANF,KAAK,CAMF,EAAE,EAAE;AACZ,UAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;;AAEhB,UAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,GACzC,QAAQ,CAAC,CAAC,CAAC,mBAAmB,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC;;AAEjD,UAAI,CAAC,EAAE,GAAG,EAAE,CAAC;KAChB;;AAbQ,SAAK,WAmBd,gBAAgB,GAAA,UAAC,IAAI,EAAC;AAClB,UAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AACjB,UAAI,SAAS,GAAG,EAAE,CAAC;;AAEnB,WAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;AACjC,YAAI,KAAK,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AACjC,YAAI,KAAK,KAAK,EAAE,EAAC;AACb,eAAK,GAAG,GAAG,CAAC;SACf;AACD,iBAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;OACzB;;AAED,eAAS,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;;;AAGjC,YAAM,CAAC,KAAK,CACR,IAAI,EACJ,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,EAC5B,IAAI,CAAC,QAAQ,CAChB,CAAC;KACL;;AAvCQ,SAAK,WA8Cd,eAAe,GAAA,UAAC,IAAI,EAAC;AACjB,UAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,UAAI,GAAG,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;;AAE7C,aAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;KAC1B;;AAnDQ,SAAK,WAyDd,UAAU,GAAA,UAAC,IAAI,EAAC;AACZ,YAAM,CAAC,KAAK,CACR,IAAI,EACJ,IAAI,CAAC,EAAE,CAAC,aAAa,EACrB,IAAI,CAAC,QAAQ,CAChB,CAAC;KACL;;AA/DQ,SAAK,WAsEd,SAAS,GAAA,UAAC,IAAI,EAAC;AACX,aAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC5B;;AAxEQ,SAAK,WA8Ed,cAAc,GAAA,UAAC,IAAI,EAAC;AAChB,YAAM,CAAC,KAAK,CACR,IAAI,EACJ,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,aAAa,EACvC,IAAI,CAAC,QAAQ,CAChB,CAAC;KACL;;AApFQ,SAAK,WA2Fd,aAAa,GAAA,UAAC,IAAI,EAAC;AACf,aAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC5B;;WA7FQ,KAAK;;;UAAL,KAAK,GAAL,KAAK","file":"src-es6/modules/store.js","sourcesContent":["import {Cookie} from '../cookie';\n\nexport class Store{\n\n /**\n * Store, persistence manager\n * @param {Object} tf TableFilter instance\n */\n constructor(tf) {\n var f = tf.fObj;\n\n this.duration = !isNaN(f.set_cookie_duration) ?\n parseInt(f.set_cookie_duration, 10) : 100000;\n\n this.tf = tf;\n }\n\n /**\n * Store filters' values in cookie\n * @param {String} cookie name\n */\n saveFilterValues(name){\n var tf = this.tf;\n var fltValues = [];\n //store filters' values\n for(var i=0; i<tf.fltIds.length; i++){\n var value = tf.GetFilterValue(i);\n if (value === ''){\n value = ' ';\n }\n fltValues.push(value);\n }\n //adds array size\n fltValues.push(tf.fltIds.length);\n\n //writes cookie\n Cookie.write(\n name,\n fltValues.join(tf.separator),\n this.duration\n );\n }\n\n /**\n * Retrieve filters' values from cookie\n * @param {String} cookie name\n * @return {Array}\n */\n getFilterValues(name){\n var flts = Cookie.read(name);\n var rgx = new RegExp(this.tf.separator, 'g');\n // filters' values array\n return flts.split(rgx);\n }\n\n /**\n * Store page number in cookie\n * @param {String} cookie name\n */\n savePageNb(name){\n Cookie.write(\n name,\n this.tf.currentPageNb,\n this.duration\n );\n }\n\n /**\n * Retrieve page number from cookie\n * @param {String} cookie name\n * @return {String}\n */\n getPageNb(name){\n return Cookie.read(name);\n }\n\n /**\n * Store page length in cookie\n * @param {String} cookie name\n */\n savePageLength(name){\n Cookie.write(\n name,\n this.tf.resultsPerPageSlc.selectedIndex,\n this.duration\n );\n }\n\n /**\n * Retrieve page length from cookie\n * @param {String} cookie name\n * @return {String}\n */\n getPageLength(name){\n return Cookie.read(name);\n }\n\n}\n"]}
|
{"version":3,"sources":["src-es6/modules/store.js"],"names":[],"mappings":";;;;;;;;MAAQ,MAAM,WAAN,MAAM;MAED,KAAK;QAAL,KAAK,GAMH,SANF,KAAK,CAMF,EAAE,EAAE;AACZ,UAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;;AAEhB,UAAI,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,GACzC,QAAQ,CAAC,CAAC,CAAC,mBAAmB,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC;;AAEjD,UAAI,CAAC,EAAE,GAAG,EAAE,CAAC;KAChB;;gBAbQ,KAAK;AAmBd,sBAAgB;;eAAA,UAAC,IAAI,EAAC;AAClB,cAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AACjB,cAAI,SAAS,GAAG,EAAE,CAAC;;AAEnB,eAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;AACjC;AACA,8BAAiB;AACb,mBAAK,GAAG,GAAG,CAAC;;AAEhB;WACH;;AAED,mBAAS,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;;;AAGjC,gBAAM,CAAC,KAAK,CACR,IAAI,EACJ,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,EAC5B,IAAI,CAAC,QAAQ,CAChB,CAAC;SACL;;AAOD,qBAAe;;eAAA,UAAC,IAAI,EAAC;AACjB,cAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,cAAI,GAAG,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;;AAE7C,iBAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC1B;;AAMD,gBAAU;;eAAA,UAAC,IAAI,EAAC;AACZ,gBAAM,CAAC,KAAK,CACR,IAAI,EACJ,IAAI,CAAC,EAAE,CAAC,aAAa,EACrB,IAAI,CAAC,QAAQ,CAChB,CAAC;SACL;;AAOD,eAAS;;eAAA,UAAC,IAAI,EAAC;AACX,iBAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC5B;;AAMD,oBAAc;;eAAA,UAAC,IAAI,EAAC;AAChB,gBAAM,CAAC,KAAK,CACR,IAAI,EACJ,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,aAAa,EACvC,IAAI,CAAC,QAAQ,CAChB,CAAC;SACL;;AAOD,mBAAa;;eAAA,UAAC,IAAI,EAAC;AACf,iBAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC5B;;;;WA7FQ,KAAK;;;UAAL,KAAK,GAAL,KAAK","file":"src-es6/modules/store.js","sourcesContent":["import {Cookie} from '../cookie';\r\n\r\nexport class Store{\r\n\r\n /**\r\n * Store, persistence manager\r\n * @param {Object} tf TableFilter instance\r\n */\r\n constructor(tf) {\r\n var f = tf.fObj;\r\n\r\n this.duration = !isNaN(f.set_cookie_duration) ?\r\n parseInt(f.set_cookie_duration, 10) : 100000;\r\n\r\n this.tf = tf;\r\n }\r\n\r\n /**\r\n * Store filters' values in cookie\r\n * @param {String} cookie name\r\n */\r\n saveFilterValues(name){\r\n var tf = this.tf;\r\n var fltValues = [];\r\n //store filters' values\r\n for(var i=0; i<tf.fltIds.length; i++){\r\n var value = tf.GetFilterValue(i);\r\n if (value === ''){\r\n value = ' ';\r\n }\r\n fltValues.push(value);\r\n }\r\n //adds array size\r\n fltValues.push(tf.fltIds.length);\r\n\r\n //writes cookie\r\n Cookie.write(\r\n name,\r\n fltValues.join(tf.separator),\r\n this.duration\r\n );\r\n }\r\n\r\n /**\r\n * Retrieve filters' values from cookie\r\n * @param {String} cookie name\r\n * @return {Array}\r\n */\r\n getFilterValues(name){\r\n var flts = Cookie.read(name);\r\n var rgx = new RegExp(this.tf.separator, 'g');\r\n // filters' values array\r\n return flts.split(rgx);\r\n }\r\n\r\n /**\r\n * Store page number in cookie\r\n * @param {String} cookie name\r\n */\r\n savePageNb(name){\r\n Cookie.write(\r\n name,\r\n this.tf.currentPageNb,\r\n this.duration\r\n );\r\n }\r\n\r\n /**\r\n * Retrieve page number from cookie\r\n * @param {String} cookie name\r\n * @return {String}\r\n */\r\n getPageNb(name){\r\n return Cookie.read(name);\r\n }\r\n\r\n /**\r\n * Store page length in cookie\r\n * @param {String} cookie name\r\n */\r\n savePageLength(name){\r\n Cookie.write(\r\n name,\r\n this.tf.resultsPerPageSlc.selectedIndex,\r\n this.duration\r\n );\r\n }\r\n\r\n /**\r\n * Retrieve page length from cookie\r\n * @param {String} cookie name\r\n * @return {String}\r\n */\r\n getPageLength(name){\r\n return Cookie.read(name);\r\n }\r\n\r\n}\r\n"]}
|
10
src/start.frag
Normal file
10
src/start.frag
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
|
||||||
|
(function (root, factory) {
|
||||||
|
if (typeof define === 'function' && define.amd) {
|
||||||
|
define(factory);
|
||||||
|
} else if (typeof exports === 'object') {
|
||||||
|
module.exports = factory;
|
||||||
|
} else {
|
||||||
|
root.TableFilter = factory();
|
||||||
|
}
|
||||||
|
})(this, function() {
|
|
@ -1 +1 @@
|
||||||
{"version":3,"sources":["src-es6/string.js"],"names":[],"mappings":";;;;;;;AAIA,MAAI,GAAG,GAAG,EAAE,CAAC;;AAEb,KAAG,CAAC,KAAK,GAAG,UAAS,IAAI,EAAC;AACtB,WAAO,IAAI,CAAC,WAAW,EAAE,CAAC;GAC7B,CAAC;;AAEF,KAAG,CAAC,KAAK,GAAG,UAAS,IAAI,EAAC;AACtB,WAAO,IAAI,CAAC,WAAW,EAAE,CAAC;GAC7B,CAAC;;AAEF,KAAG,CAAC,IAAI,GAAG,UAAS,IAAI,EAAC;AACrB,QAAI,IAAI,CAAC,IAAI,EAAC;AACV,aAAO,IAAI,CAAC,IAAI,EAAE,CAAC;KACtB;AACD,WAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;GACzC,CAAC;;AAEF,KAAG,CAAC,OAAO,GAAG,UAAS,IAAI,EAAC;AACxB,WAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;GACjC,CAAC;;AAEF,KAAG,CAAC,MAAM,GAAG,UAAS,IAAI,EAAC;AACvB,aAAS,MAAM,CAAC,CAAC,EAAC;AACd,UAAI,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,GAAC,CAAC,EAAC,GAAG,CAAC,CAAC;AAC/B,UAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,EAAC,IAAI,GAAC,CAAC,CAAC,CAAC;KACjC;;AAED,QAAI,KAAK,GAAG,CAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,CAAC;AAC3D,SAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;AAC7B,YAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACpB;AACD,WAAO,IAAI,CAAC;GACf,CAAC;;AAEF,KAAG,CAAC,SAAS,GAAG,UAAS,IAAI,EAAE,EAAE,EAAC;AAC9B,QAAG,CAAC,EAAE,EAAC;AACH,aAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KAC3B;AACD,WAAO,IAAI,CAAC;GACf,CAAC;;AAEF,SAAO,CAAC,GAAG,GAAG,GAAG,CAAC","file":"src-es6/string.js","sourcesContent":["/**\n * String utilities\n */\n\nvar Str = {};\n\nStr.lower = function(text){\n return text.toLowerCase();\n};\n\nStr.upper = function(text){\n return text.toUpperCase();\n};\n\nStr.trim = function(text){\n if (text.trim){\n return text.trim();\n }\n return text.replace(/^\\s*|\\s*$/g, '');\n};\n\nStr.isEmpty = function(text){\n return this.trim(text) === '';\n};\n\nStr.rgxEsc = function(text){\n function escape(e){\n var a = new RegExp('\\\\'+e,'g');\n text = text.replace(a,'\\\\'+e);\n }\n\n var chars = ['\\\\','[','^','$','.','|','?','*','+','(',')'];\n for(var e=0; e<chars.length; e++){\n escape(chars[e]);\n }\n return text;\n};\n\nStr.matchCase = function(text, mc){\n if(!mc){\n return this.lower(text);\n }\n return text;\n};\n\nexports.Str = Str;\n"]}
|
{"version":3,"sources":["src-es6/string.js"],"names":[],"mappings":";;;;;;;AAIA,MAAI,GAAG,GAAG,EAAE,CAAC;;AAEb,KAAG,CAAC,KAAK,GAAG,UAAS,IAAI,EAAC;AACtB,WAAO,IAAI,CAAC,WAAW,EAAE,CAAC;GAC7B,CAAC;;AAEF,KAAG,CAAC,KAAK,GAAG,UAAS,IAAI,EAAC;AACtB,WAAO,IAAI,CAAC,WAAW,EAAE,CAAC;GAC7B,CAAC;;AAEF,KAAG,CAAC,IAAI,GAAG,UAAS,IAAI,EAAC;AACrB,QAAI,IAAI,CAAC,IAAI,EAAC;AACV,aAAO,IAAI,CAAC,IAAI,EAAE,CAAC;KACtB;AACD,WAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;GACzC,CAAC;;AAEF,KAAG,CAAC,OAAO,GAAG,UAAS,IAAI,EAAC;AACxB,WAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;GACjC,CAAC;;AAEF,KAAG,CAAC,MAAM,GAAG,UAAS,IAAI,EAAC;AACvB,aAAS,MAAM,CAAC,CAAC,EAAC;AACd,UAAI,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,GAAC,CAAC,EAAC,GAAG,CAAC,CAAC;AAC/B,UAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,EAAC,IAAI,GAAC,CAAC,CAAC,CAAC;KACjC;;AAED,QAAI,KAAK,GAAG,CAAC,IAAI,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,CAAC;AAC3D,SAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;AAC7B,YAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACpB;AACD,WAAO,IAAI,CAAC;GACf,CAAC;;AAEF,KAAG,CAAC,SAAS,GAAG,UAAS,IAAI,EAAE,EAAE,EAAC;AAC9B,QAAG,CAAC,EAAE,EAAC;AACH,aAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KAC3B;AACD,WAAO,IAAI,CAAC;GACf,CAAC;;AAEF,SAAO,CAAC,GAAG,GAAG,GAAG,CAAC","file":"src-es6/string.js","sourcesContent":["/**\r\n * String utilities\r\n */\r\n\r\nvar Str = {};\r\n\r\nStr.lower = function(text){\r\n return text.toLowerCase();\r\n};\r\n\r\nStr.upper = function(text){\r\n return text.toUpperCase();\r\n};\r\n\r\nStr.trim = function(text){\r\n if (text.trim){\r\n return text.trim();\r\n }\r\n return text.replace(/^\\s*|\\s*$/g, '');\r\n};\r\n\r\nStr.isEmpty = function(text){\r\n return this.trim(text) === '';\r\n};\r\n\r\nStr.rgxEsc = function(text){\r\n function escape(e){\r\n var a = new RegExp('\\\\'+e,'g');\r\n text = text.replace(a,'\\\\'+e);\r\n }\r\n\r\n var chars = ['\\\\','[','^','$','.','|','?','*','+','(',')'];\r\n for(var e=0; e<chars.length; e++){\r\n escape(chars[e]);\r\n }\r\n return text;\r\n};\r\n\r\nStr.matchCase = function(text, mc){\r\n if(!mc){\r\n return this.lower(text);\r\n }\r\n return text;\r\n};\r\n\r\nexports.Str = Str;\r\n"]}
|
|
@ -1 +1 @@
|
||||||
{"version":3,"sources":["src-es6/types.js"],"names":[],"mappings":";;;;;;;AAIA,MAAI,KAAK,GAAG,EAAE,CAAC;;AAEf,MAAI,SAAS,GAAG,KAAK,CAAC,CAAC;;;;;;;AAOvB,OAAK,CAAC,KAAK,GAAG,UAAS,CAAC,EAAC;AACrB,QAAI,GAAG,GAAG,KAAK,CAAC;AAChB,QAAG,OAAO,CAAC,KAAK,QAAQ,EAAC;AACrB,UAAG,MAAM,CAAC,CAAC,CAAC,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAC;AAC1C,WAAG,GAAG,IAAI,CAAC;OACd;KACJ,MAAM;AACH,UAAG,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAC;AAC1B,WAAG,GAAG,IAAI,CAAC;OACd;KACJ;AACD,WAAO,GAAG,CAAC;GACd,CAAC;;;;;;;AAOF,OAAK,CAAC,IAAI,GAAG,UAAS,EAAE,EAAC;AACrB,WAAO,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,IAAI,QAAQ,CAAC,CAAC;GAC7C,CAAC;;;;;;;AAOF,OAAK,CAAC,OAAO,GAAG,UAAS,GAAG,EAAC;AACzB,WAAO,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,IAAI,KAAK,CAAC,CAAC;GAC5C,CAAC;;;;;;;AAOF,OAAK,CAAC,OAAO,GAAG,UAAS,CAAC,EAAC;AACvB,WAAQ,CAAC,KAAK,SAAS,CAAC;GAC3B,CAAC;;AAEF,SAAO,CAAC,KAAK,GAAG,KAAK,CAAC","file":"src-es6/types.js","sourcesContent":["/**\n * Types utilities\n */\n\nvar Types = {};\n\nvar UNDEFINED = void 0;\n\n/**\n * Checks if var exists and is an object\n * @param {String or Object} v\n * @return {Boolean}\n */\nTypes.isObj = function(v){\n var isO = false;\n if(typeof v === 'string'){\n if(window[v] && typeof window[v] === 'object'){\n isO = true;\n }\n } else {\n if(v && typeof v === 'object'){\n isO = true;\n }\n }\n return isO;\n};\n\n/**\n * Checks if passed parameter is a function\n * @param {Function} fn\n * @return {Boolean}\n */\nTypes.isFn = function(fn){\n return (fn && fn.constructor == Function);\n};\n\n/**\n * Checks if passed param is an array\n * @param {Array} obj\n * @return {Boolean}\n */\nTypes.isArray = function(obj){\n return (obj && obj.constructor == Array);\n};\n\n/**\n * Determines if passed param is undefined\n * @param {Any} o\n * @return {Boolean}\n */\nTypes.isUndef = function(o){\n return o === UNDEFINED;\n};\n\nexports.Types = Types;\n"]}
|
{"version":3,"sources":["src-es6/types.js"],"names":[],"mappings":";;;;;;;AAIA,MAAI,KAAK,GAAG,EAAE,CAAC;;AAEf,MAAI,SAAS,GAAG,KAAK,CAAC,CAAC;;;;;;;AAOvB,OAAK,CAAC,KAAK,GAAG,UAAS,CAAC,EAAC;AACrB,QAAI,GAAG,GAAG,KAAK,CAAC;AAChB,QAAG,OAAO,CAAC,KAAK,QAAQ,EAAC;AACrB,UAAG,MAAM,CAAC,CAAC,CAAC,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAC;AAC1C,WAAG,GAAG,IAAI,CAAC;OACd;KACJ,MAAM;AACH,UAAG,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAC;AAC1B,WAAG,GAAG,IAAI,CAAC;OACd;KACJ;AACD,WAAO,GAAG,CAAC;GACd,CAAC;;;;;;;AAOF,OAAK,CAAC,IAAI,GAAG,UAAS,EAAE,EAAC;AACrB,WAAO,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,IAAI,QAAQ,CAAC,CAAC;GAC7C,CAAC;;;;;;;AAOF,OAAK,CAAC,OAAO,GAAG,UAAS,GAAG,EAAC;AACzB,WAAO,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,IAAI,KAAK,CAAC,CAAC;GAC5C,CAAC;;;;;;;AAOF,OAAK,CAAC,OAAO,GAAG,UAAS,CAAC,EAAC;AACvB,WAAQ,CAAC,KAAK,SAAS,CAAC;GAC3B,CAAC;;AAEF,SAAO,CAAC,KAAK,GAAG,KAAK,CAAC","file":"src-es6/types.js","sourcesContent":["/**\r\n * Types utilities\r\n */\r\n\r\nvar Types = {};\r\n\r\nvar UNDEFINED = void 0;\r\n\r\n/**\r\n * Checks if var exists and is an object\r\n * @param {String or Object} v\r\n * @return {Boolean}\r\n */\r\nTypes.isObj = function(v){\r\n var isO = false;\r\n if(typeof v === 'string'){\r\n if(window[v] && typeof window[v] === 'object'){\r\n isO = true;\r\n }\r\n } else {\r\n if(v && typeof v === 'object'){\r\n isO = true;\r\n }\r\n }\r\n return isO;\r\n};\r\n\r\n/**\r\n * Checks if passed parameter is a function\r\n * @param {Function} fn\r\n * @return {Boolean}\r\n */\r\nTypes.isFn = function(fn){\r\n return (fn && fn.constructor == Function);\r\n};\r\n\r\n/**\r\n * Checks if passed param is an array\r\n * @param {Array} obj\r\n * @return {Boolean}\r\n */\r\nTypes.isArray = function(obj){\r\n return (obj && obj.constructor == Array);\r\n};\r\n\r\n/**\r\n * Determines if passed param is undefined\r\n * @param {Any} o\r\n * @return {Boolean}\r\n */\r\nTypes.isUndef = function(o){\r\n return o === UNDEFINED;\r\n};\r\n\r\nexports.Types = Types;\r\n"]}
|
Loading…
Reference in a new issue