mirror of
https://github.com/koalyptus/TableFilter.git
synced 2024-05-12 19:36:41 +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
|
||||
- (build date: Tue Dec 16 2014 03:26:44)
|
||||
- (build date: Sun Jan 11 2015 20:01:16)
|
||||
- Edit below for your projects' needs
|
||||
------------------------------------------------------------------------*/
|
||||
|
||||
|
|
|
@ -191,9 +191,6 @@ export class GridLayout{
|
|||
this.headTblCont.style.width = this.tblCont.clientWidth+'px';
|
||||
|
||||
tbl.style.width = '';
|
||||
// if(Helpers.isIE()){
|
||||
// this.headTbl.style.width = '';
|
||||
// }
|
||||
|
||||
//scroll synchronisation
|
||||
var o = this;
|
||||
|
@ -258,81 +255,30 @@ export class GridLayout{
|
|||
//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]);
|
||||
}
|
||||
//Col elements are enough to keep column widths after sorting and
|
||||
//filtering
|
||||
var createColTags = function(o){
|
||||
if(!o){
|
||||
return;
|
||||
}
|
||||
// }
|
||||
|
||||
//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);
|
||||
// }
|
||||
// };
|
||||
// }
|
||||
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]);
|
||||
}
|
||||
}
|
||||
|
||||
var afterColResizedFn = Types.isFn(f.on_after_col_resized) ?
|
||||
f.on_after_col_resized : null;
|
||||
|
@ -347,10 +293,6 @@ export class GridLayout{
|
|||
var thCW = o.crWColsRow.cells[colIndex].clientWidth;
|
||||
var tdCW = o.crWRowDataTbl.cells[colIndex].clientWidth;
|
||||
|
||||
// if(Helpers.isIE()){
|
||||
// tbl.style.width = o.headTbl.clientWidth+'px';
|
||||
// }
|
||||
|
||||
if(thCW != tdCW /*&& !Helpers.isIE()*/){
|
||||
o.headTbl.style.width = tbl.clientWidth+'px';
|
||||
}
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
import {Dom} from '../dom';
|
||||
import {Types} from '../types';
|
||||
import {Str} from '../string';
|
||||
import {Helpers} from '../helpers';
|
||||
|
||||
export class Paging{
|
||||
|
||||
|
||||
/**
|
||||
* Pagination component
|
||||
* @param {Object} tf TableFilter instance
|
||||
|
@ -10,7 +12,7 @@ export class Paging{
|
|||
constructor(tf){
|
||||
// TableFilter configuration
|
||||
var f = tf.fObj;
|
||||
|
||||
|
||||
//id of container element
|
||||
this.pagingTgtId = f.paging_target_id || null;
|
||||
//defines table paging length
|
||||
|
@ -72,72 +74,72 @@ export class Paging{
|
|||
//stores paging buttons events
|
||||
this.pagingBtnEvents = null;
|
||||
//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
|
||||
this.onBeforeChangePage = types.isFn(f.on_before_change_page) ?
|
||||
this.onBeforeChangePage = Types.isFn(f.on_before_change_page) ?
|
||||
f.on_before_change_page : null;
|
||||
//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;
|
||||
var start_row = this.refRow;
|
||||
var nrows = this.nbRows;
|
||||
//calculates page nb
|
||||
this.nbPages = Math.ceil((nrows-start_row)/this.pagingLength);
|
||||
|
||||
|
||||
var evt = tf.Evt;
|
||||
//Paging elements events
|
||||
if(!evt._Paging.next){
|
||||
var o = tf;
|
||||
var o = this;
|
||||
evt._Paging = {// paging buttons events
|
||||
slcIndex: function(){
|
||||
return (o.pageSelectorType===o.fltTypeSlc) ?
|
||||
return (o.pageSelectorType===tf.fltTypeSlc) ?
|
||||
o.pagingSlc.options.selectedIndex :
|
||||
parseInt(o.pagingSlc.value,10)-1;
|
||||
parseInt(o.pagingSlc.value, 10)-1;
|
||||
},
|
||||
nbOpts: function(){
|
||||
return (o.pageSelectorType===o.fltTypeSlc) ?
|
||||
parseInt(o.pagingSlc.options.length,10)-1 :
|
||||
return (o.pageSelectorType===tf.fltTypeSlc) ?
|
||||
parseInt(o.pagingSlc.options.length, 10)-1 :
|
||||
(o.nbPages-1);
|
||||
},
|
||||
next: function(){
|
||||
if(o.Evt._Paging.nextEvt){
|
||||
o.Evt._Paging.nextEvt();
|
||||
if(evt._Paging.nextEvt){
|
||||
evt._Paging.nextEvt();
|
||||
}
|
||||
var nextIndex =
|
||||
o.Evt._Paging.slcIndex()<o.Evt._Paging.nbOpts() ?
|
||||
o.Evt._Paging.slcIndex()+1 : 0;
|
||||
o.ChangePage(nextIndex);
|
||||
evt._Paging.slcIndex() < evt._Paging.nbOpts() ?
|
||||
evt._Paging.slcIndex()+1 : 0;
|
||||
o.changePage(nextIndex);
|
||||
},
|
||||
prev: function(){
|
||||
if(o.Evt._Paging.prevEvt){
|
||||
o.Evt._Paging.prevEvt();
|
||||
if(evt._Paging.prevEvt){
|
||||
evt._Paging.prevEvt();
|
||||
}
|
||||
var prevIndex = o.Evt._Paging.slcIndex()>0 ?
|
||||
o.Evt._Paging.slcIndex()-1 : o.Evt._Paging.nbOpts();
|
||||
o.ChangePage(prevIndex);
|
||||
var prevIndex = evt._Paging.slcIndex()>0 ?
|
||||
evt._Paging.slcIndex()-1 : evt._Paging.nbOpts();
|
||||
o.changePage(prevIndex);
|
||||
},
|
||||
last: function(){
|
||||
if(o.Evt._Paging.lastEvt){
|
||||
o.Evt._Paging.lastEvt();
|
||||
if(evt._Paging.lastEvt){
|
||||
evt._Paging.lastEvt();
|
||||
}
|
||||
o.ChangePage(o.Evt._Paging.nbOpts());
|
||||
o.changePage(evt._Paging.nbOpts());
|
||||
},
|
||||
first: function(){
|
||||
if(o.Evt._Paging.firstEvt){
|
||||
o.Evt._Paging.firstEvt();
|
||||
if(evt._Paging.firstEvt){
|
||||
evt._Paging.firstEvt();
|
||||
}
|
||||
o.ChangePage(0);
|
||||
o.changePage(0);
|
||||
},
|
||||
_detectKey: function(e){
|
||||
var evt = e || global.event;
|
||||
if(evt){
|
||||
var key = o.Evt.getKeyCode(e);
|
||||
var key = evt.getKeyCode(e);
|
||||
if(key===13){
|
||||
if(o.sorted){
|
||||
o.Filter();
|
||||
o.ChangePage(o.Evt._Paging.slcIndex());
|
||||
if(tf.sorted){
|
||||
tf.Filter();
|
||||
o.changePage(evt._Paging.slcIndex());
|
||||
} else{
|
||||
o.ChangePage();
|
||||
o.changePage();
|
||||
}
|
||||
this.blur();
|
||||
}
|
||||
|
@ -148,28 +150,29 @@ export class Paging{
|
|||
lastEvt: null,
|
||||
firstEvt: null
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
this.tf = tf;
|
||||
}
|
||||
|
||||
buildUI(){
|
||||
|
||||
|
||||
init(){
|
||||
var slcPages;
|
||||
var tf = this.tf;
|
||||
var evt = tf.Evt;
|
||||
|
||||
// Paging drop-down list selector
|
||||
if(this.pageSelectorType === tf.fltTypeSlc){
|
||||
slcPages = dom.create(
|
||||
slcPages = Dom.create(
|
||||
tf.fltTypeSlc, ['id', tf.prfxSlcPages+tf.id]);
|
||||
slcPages.className = this.pgSlcCssClass;
|
||||
console.log(evt);
|
||||
slcPages.onchange = evt._OnSlcPagesChange;
|
||||
//slcPages.onchange = function(){ alert('hello'); }
|
||||
}
|
||||
|
||||
// Paging input selector
|
||||
if(this.pageSelectorType === tf.fltTypeInp){
|
||||
slcPages = dom.create(
|
||||
slcPages = Dom.create(
|
||||
tf.fltTypeInp,
|
||||
['id', tf.prfxSlcPages+tf.id],
|
||||
['value', tf.currentPageNb]
|
||||
|
@ -179,23 +182,24 @@ export class Paging{
|
|||
}
|
||||
|
||||
// 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]);
|
||||
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']
|
||||
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;
|
||||
|
@ -206,7 +210,7 @@ export class Paging{
|
|||
}
|
||||
// Previous button
|
||||
if(!this.btnPrevPageHtml){
|
||||
var btn_prev = dom.create(
|
||||
var btn_prev = Dom.create(
|
||||
tf.fltTypeInp,
|
||||
['id',tf.prfxBtnPrev+tf.id],
|
||||
['type','button'],
|
||||
|
@ -222,7 +226,7 @@ export class Paging{
|
|||
}
|
||||
// Last button
|
||||
if(!this.btnLastPageHtml){
|
||||
var btn_last = dom.create(
|
||||
var btn_last = Dom.create(
|
||||
tf.fltTypeInp,
|
||||
['id',tf.prfxBtnLast+tf.id],
|
||||
['type','button'],
|
||||
|
@ -238,7 +242,7 @@ export class Paging{
|
|||
}
|
||||
// First button
|
||||
if(!this.btnFirstPageHtml){
|
||||
var btn_first = dom.create(
|
||||
var btn_first = Dom.create(
|
||||
tf.fltTypeInp,
|
||||
['id',tf.prfxBtnFirst+tf.id],
|
||||
['type','button'],
|
||||
|
@ -258,7 +262,7 @@ export class Paging{
|
|||
if(!this.pagingTgtId){
|
||||
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
|
||||
|
@ -273,34 +277,212 @@ export class Paging{
|
|||
targetEl.appendChild(btnFirstSpan);
|
||||
targetEl.appendChild(btnPrevSpan);
|
||||
|
||||
var pgBeforeSpan = dom.create(
|
||||
var pgBeforeSpan = Dom.create(
|
||||
'span',['id', tf.prfxPgBeforeSpan+tf.id] );
|
||||
pgBeforeSpan.appendChild( dom.text(this.pageText) );
|
||||
pgBeforeSpan.appendChild( Dom.text(this.pageText) );
|
||||
pgBeforeSpan.className = this.nbPgSpanCssClass;
|
||||
targetEl.appendChild(pgBeforeSpan);
|
||||
targetEl.appendChild(slcPages);
|
||||
var pgAfterSpan = dom.create(
|
||||
var pgAfterSpan = Dom.create(
|
||||
'span',['id', tf.prfxPgAfterSpan+tf.id]);
|
||||
pgAfterSpan.appendChild( dom.text(this.ofText) );
|
||||
pgAfterSpan.appendChild( Dom.text(this.ofText) );
|
||||
pgAfterSpan.className = this.nbPgSpanCssClass;
|
||||
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.appendChild( dom.text(' '+this.nbPages+' ') );
|
||||
pgspan.appendChild( Dom.text(' '+this.nbPages+' ') );
|
||||
targetEl.appendChild(pgspan);
|
||||
targetEl.appendChild(btnNextSpan);
|
||||
targetEl.appendChild(btnLastSpan);
|
||||
this.pagingSlc = dom.id(tf.prfxSlcPages+tf.id);
|
||||
|
||||
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();
|
||||
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(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();
|
||||
//ie only: blur is not enough...
|
||||
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,
|
||||
rows_counter: true,
|
||||
enable_default_theme: true,
|
||||
// paging: true,
|
||||
// paging_length: 2,
|
||||
paging: true,
|
||||
paging_length: 2,
|
||||
// results_per_page: ['Results per page', [2,4,6]],
|
||||
// remember_grid_values: true,
|
||||
// remember_page_number: true,
|
||||
|
|
|
@ -1,15 +1,14 @@
|
|||
define(["exports", "../dom"], function (exports, _dom) {
|
||||
"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 AlternateRows = (function () {
|
||||
var AlternateRows =
|
||||
|
||||
/**
|
||||
* Alternating rows color
|
||||
* @param {Object} tf TableFilter instance
|
||||
*/
|
||||
function AlternateRows(tf) {
|
||||
var AlternateRows = function AlternateRows(tf) {
|
||||
var f = tf.fObj;
|
||||
//defines css class for even rows
|
||||
this.evenCss = f.even_row_css_class || "even";
|
||||
|
@ -19,63 +18,78 @@ define(["exports", "../dom"], function (exports, _dom) {
|
|||
this.tf = tf;
|
||||
};
|
||||
|
||||
AlternateRows.prototype.init = function () {
|
||||
if (!this.tf.hasGrid && !this.tf.isFirstLoad) {
|
||||
return;
|
||||
}
|
||||
var rows = this.tf.tbl.rows;
|
||||
var noValidRowsIndex = this.tf.validRowsIndex === null;
|
||||
//1st index
|
||||
var beginIndex = noValidRowsIndex ? this.tf.refRow : 0;
|
||||
// nb indexes
|
||||
var indexLen = noValidRowsIndex ? this.tf.nbFilterableRows + beginIndex : this.tf.validRowsIndex.length;
|
||||
var idx = 0;
|
||||
_classProps(AlternateRows, null, {
|
||||
init: {
|
||||
writable: true,
|
||||
value: function () {
|
||||
if (!this.tf.hasGrid && !this.tf.isFirstLoad) {
|
||||
return;
|
||||
}
|
||||
var rows = this.tf.tbl.rows;
|
||||
var noValidRowsIndex = this.tf.validRowsIndex === null;
|
||||
//1st index
|
||||
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
|
||||
for (var j = beginIndex; j < indexLen; j++) {
|
||||
var rowIdx = noValidRowsIndex ? j : this.tf.validRowsIndex[j];
|
||||
this.setRowBg(rowIdx, idx);
|
||||
idx++;
|
||||
//alternates bg color
|
||||
for (var j = beginIndex; j < indexLen; j++) {
|
||||
var rowIdx = noValidRowsIndex ? j : this.tf.validRowsIndex[j];
|
||||
this.setRowBg(rowIdx, 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;
|
||||
})();
|
||||
|
|
|
@ -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) {
|
||||
"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 Str = _string.Str;
|
||||
var ColOps = (function () {
|
||||
var ColOps =
|
||||
|
||||
/**
|
||||
* Column calculations
|
||||
* @param {Object} tf TableFilter instance
|
||||
*/
|
||||
function ColOps(tf) {
|
||||
var ColOps = function ColOps(tf) {
|
||||
var f = tf.fObj;
|
||||
this.colOperation = f.col_operation;
|
||||
|
||||
this.tf = tf;
|
||||
};
|
||||
|
||||
ColOps.prototype.calc = function () {
|
||||
if (!this.tf.isFirstLoad && !this.tf.hasGrid) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.tf.onBeforeOperation) {
|
||||
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;
|
||||
_classProps(ColOps, null, {
|
||||
calc: {
|
||||
writable: true,
|
||||
value: function () {
|
||||
if (!this.tf.isFirstLoad && !this.tf.hasGrid) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
//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") {
|
||||
var row = this.tf.tbl.rows, colvalues = [];
|
||||
if (this.tf.onBeforeOperation) {
|
||||
this.tf.onBeforeOperation.call(null, this.tf);
|
||||
}
|
||||
|
||||
for (var ucol = 0; ucol <= ucolMax; ucol++) {
|
||||
//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));
|
||||
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;
|
||||
|
||||
//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;
|
||||
//nuovella: determine unique list of columns to operate on
|
||||
var ucolIndex = [], ucolMax = 0;
|
||||
ucolIndex[ucolMax] = colIndex[0];
|
||||
|
||||
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;
|
||||
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];
|
||||
}
|
||||
}
|
||||
|
||||
for (var j = 0; j < colvalues[ucol].length; j++) {
|
||||
//sort the list for calculation of median and quartiles
|
||||
if ((q1Flag == 1) || (q3Flag == 1) || (medFlag == 1)) {
|
||||
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;
|
||||
if (Str.lower(typeof labelId) == "object" && Str.lower(typeof colIndex) == "object" && Str.lower(typeof operation) == "object") {
|
||||
var row = this.tf.tbl.rows, colvalues = [];
|
||||
|
||||
for (var ucol = 0; ucol <= ucolMax; ucol++) {
|
||||
//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
|
||||
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)) {
|
||||
nbvalues++;
|
||||
if (sumFlag === 1 || meanFlag === 1) {
|
||||
sumValue += parseFloat(cvalue);
|
||||
for (var j = 0; j < colvalues[ucol].length; j++) {
|
||||
//sort the list for calculation of median and quartiles
|
||||
if ((q1Flag == 1) || (q3Flag == 1) || (medFlag == 1)) {
|
||||
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 (minValue === null) {
|
||||
minValue = parseFloat(cvalue);
|
||||
if (medFlag === 1) {
|
||||
var aux = 0;
|
||||
if (nbvalues % 2 === 1) {
|
||||
aux = Math.floor(nbvalues / 2);
|
||||
medValue = theList[aux];
|
||||
} else {
|
||||
minValue = parseFloat(cvalue) < minValue ? parseFloat(cvalue) : minValue;
|
||||
medValue = (theList[nbvalues / 2] + theList[((nbvalues / 2) - 1)]) / 2;
|
||||
}
|
||||
}
|
||||
if (maxFlag === 1) {
|
||||
if (maxValue === null) {
|
||||
maxValue = parseFloat(cvalue);
|
||||
var posa;
|
||||
if (q1Flag === 1) {
|
||||
posa = 0;
|
||||
posa = Math.floor(nbvalues / 4);
|
||||
if (4 * posa == nbvalues) {
|
||||
q1Value = (theList[posa - 1] + theList[posa]) / 2;
|
||||
} 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++) {
|
||||
switch (opsThisCol[i]) {
|
||||
case "mean":
|
||||
result = meanValue;
|
||||
break;
|
||||
case "sum":
|
||||
result = sumValue;
|
||||
break;
|
||||
case "min":
|
||||
result = minValue;
|
||||
break;
|
||||
case "max":
|
||||
result = maxValue;
|
||||
break;
|
||||
case "median":
|
||||
result = medValue;
|
||||
break;
|
||||
case "q1":
|
||||
result = q1Value;
|
||||
break;
|
||||
case "q3":
|
||||
result = q3Value;
|
||||
break;
|
||||
}
|
||||
for (var i = 0; i <= mThisCol; i++) {
|
||||
switch (opsThisCol[i]) {
|
||||
case "mean":
|
||||
result = meanValue;
|
||||
break;
|
||||
case "sum":
|
||||
result = sumValue;
|
||||
break;
|
||||
case "min":
|
||||
result = minValue;
|
||||
break;
|
||||
case "max":
|
||||
result = maxValue;
|
||||
break;
|
||||
case "median":
|
||||
result = medValue;
|
||||
break;
|
||||
case "q1":
|
||||
result = q1Value;
|
||||
break;
|
||||
case "q3":
|
||||
result = q3Value;
|
||||
break;
|
||||
}
|
||||
|
||||
var precision = !isNaN(decThisCol[i]) ? decThisCol[i] : 2;
|
||||
var precision = !isNaN(decThisCol[i]) ? decThisCol[i] : 2;
|
||||
|
||||
//if outputType is defined
|
||||
if (oTypeThisCol && result) {
|
||||
result = result.toFixed(precision);
|
||||
//if outputType is defined
|
||||
if (oTypeThisCol && result) {
|
||||
result = result.toFixed(precision);
|
||||
|
||||
if (Dom.id(labThisCol[i])) {
|
||||
switch (Str.lower(oTypeThisCol)) {
|
||||
case "innerhtml":
|
||||
if (Dom.id(labThisCol[i])) {
|
||||
switch (Str.lower(oTypeThisCol)) {
|
||||
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) {
|
||||
Dom.id(labThisCol[i]).innerHTML = ".";
|
||||
} else {
|
||||
Dom.id(labThisCol[i]).innerHTML = result;
|
||||
Dom.id(labThisCol[i]).innerHTML = result.toFixed(precision);
|
||||
}
|
||||
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
|
||||
} catch (e) {} //catch
|
||||
} //else
|
||||
} //for i
|
||||
|
||||
// row(s) with result are always visible
|
||||
var totRow = totRowIndex && totRowIndex[ucol] ? row[totRowIndex[ucol]] : null;
|
||||
if (totRow) {
|
||||
totRow.style.display = "";
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
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
|
||||
} //for ucol
|
||||
} //if typeof
|
||||
|
||||
// row(s) with result are always visible
|
||||
var totRow = totRowIndex && totRowIndex[ucol] ? row[totRowIndex[ucol]] : null;
|
||||
if (totRow) {
|
||||
totRow.style.display = "";
|
||||
if (this.tf.onAfterOperation) {
|
||||
this.tf.onAfterOperation.call(null, this.tf);
|
||||
}
|
||||
} //for ucol
|
||||
} //if typeof
|
||||
|
||||
if (this.tf.onAfterOperation) {
|
||||
this.tf.onAfterOperation.call(null, this.tf);
|
||||
}
|
||||
}
|
||||
};
|
||||
});
|
||||
|
||||
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) {
|
||||
"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 Types = _types.Types;
|
||||
var Helpers = _helpers.Helpers;
|
||||
var Event = _event.Event;
|
||||
var GridLayout = (function () {
|
||||
var GridLayout =
|
||||
|
||||
/**
|
||||
* Grid layout, table with fixed headers
|
||||
* @param {Object} tf TableFilter instance
|
||||
*/
|
||||
function GridLayout(tf) {
|
||||
var GridLayout = function GridLayout(tf) {
|
||||
var f = tf.fObj;
|
||||
|
||||
//defines grid width
|
||||
|
@ -45,338 +44,287 @@ define(["exports", "../dom", "../types", "../helpers", "../event"], function (ex
|
|||
this.tf = tf;
|
||||
};
|
||||
|
||||
GridLayout.prototype.init = function () {
|
||||
var tf = this.tf;
|
||||
var f = tf.fObj;
|
||||
var tbl = tf.tbl;
|
||||
_classProps(GridLayout, null, {
|
||||
init: {
|
||||
writable: true,
|
||||
value: function () {
|
||||
var tf = this.tf;
|
||||
var f = tf.fObj;
|
||||
var tbl = tf.tbl;
|
||||
|
||||
if (!tf.gridLayout) {
|
||||
return;
|
||||
}
|
||||
if (!tf.gridLayout) {
|
||||
return;
|
||||
}
|
||||
|
||||
tf.isExternalFlt = true;
|
||||
tf.isExternalFlt = true;
|
||||
|
||||
// default width of 100px if column widths not set
|
||||
if (!tf.hasColWidth) {
|
||||
tf.colWidth = [];
|
||||
for (var k = 0; k < tf.nbCells; k++) {
|
||||
var colW, cell = tbl.rows[this.gridHeadRowIndex].cells[k];
|
||||
if (cell.width !== "") {
|
||||
colW = cell.width;
|
||||
} else if (cell.style.width !== "") {
|
||||
colW = parseInt(cell.style.width, 10);
|
||||
// default width of 100px if column widths not set
|
||||
if (!tf.hasColWidth) {
|
||||
tf.colWidth = [];
|
||||
for (var k = 0; k < tf.nbCells; k++) {
|
||||
var colW, cell = tbl.rows[this.gridHeadRowIndex].cells[k];
|
||||
if (cell.width !== "") {
|
||||
colW = cell.width;
|
||||
} else if (cell.style.width !== "") {
|
||||
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 {
|
||||
colW = this.gridDefaultColWidth;
|
||||
tblW = tbl.clientWidth;
|
||||
}
|
||||
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 {
|
||||
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;
|
||||
//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);
|
||||
|
||||
//Sort is enabled if not specified in config object
|
||||
if (f.sort !== false) {
|
||||
tf.sort = true;
|
||||
tf.sortConfig.asyncSort = true;
|
||||
tf.sortConfig.triggerIds = sortTriggers;
|
||||
}
|
||||
//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);
|
||||
|
||||
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);
|
||||
}]
|
||||
//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 = "";
|
||||
|
||||
//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;
|
||||
} 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);
|
||||
});
|
||||
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]);
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
})();
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,16 +1,15 @@
|
|||
define(["exports", "../dom", "../string"], function (exports, _dom, _string) {
|
||||
"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 Str = _string.Str;
|
||||
var HighlightKeyword = (function () {
|
||||
var HighlightKeyword =
|
||||
|
||||
/**
|
||||
* HighlightKeyword, highlight matched keyword
|
||||
* @param {Object} tf TableFilter instance
|
||||
*/
|
||||
function HighlightKeyword(tf) {
|
||||
var HighlightKeyword = function HighlightKeyword(tf) {
|
||||
var f = tf.fObj;
|
||||
//defines css class for highlighting
|
||||
this.highlightCssClass = f.highlight_css_class || "keyword";
|
||||
|
@ -19,74 +18,83 @@ define(["exports", "../dom", "../string"], function (exports, _dom, _string) {
|
|||
this.tf = tf;
|
||||
};
|
||||
|
||||
HighlightKeyword.prototype.highlight = function (node, word, cssClass) {
|
||||
// Iterate into this nodes childNodes
|
||||
if (node.hasChildNodes) {
|
||||
var children = node.childNodes;
|
||||
for (var i = 0; i < children.length; i++) {
|
||||
this.highlight(children[i], word, cssClass);
|
||||
}
|
||||
}
|
||||
_classProps(HighlightKeyword, null, {
|
||||
highlight: {
|
||||
writable: true,
|
||||
value: function (node, word, cssClass) {
|
||||
// Iterate into this nodes childNodes
|
||||
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) {
|
||||
var tempNodeVal = Str.lower(node.nodeValue);
|
||||
var tempWordVal = Str.lower(word);
|
||||
if (tempNodeVal.indexOf(tempWordVal) != -1) {
|
||||
var pn = node.parentNode;
|
||||
if (pn && pn.className != cssClass) {
|
||||
// word not highlighted yet
|
||||
var nv = node.nodeValue, ni = tempNodeVal.indexOf(tempWordVal),
|
||||
// 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");
|
||||
hiword.className = cssClass;
|
||||
hiword.appendChild(hiwordtext);
|
||||
pn.insertBefore(before, node);
|
||||
pn.insertBefore(hiword, node);
|
||||
pn.insertBefore(after, node);
|
||||
pn.removeChild(node);
|
||||
this.highlightedNodes.push(hiword.firstChild);
|
||||
if (node.nodeType === 3) {
|
||||
var tempNodeVal = Str.lower(node.nodeValue);
|
||||
var tempWordVal = Str.lower(word);
|
||||
if (tempNodeVal.indexOf(tempWordVal) != -1) {
|
||||
var pn = node.parentNode;
|
||||
if (pn && pn.className != cssClass) {
|
||||
// word not highlighted yet
|
||||
var nv = node.nodeValue, ni = tempNodeVal.indexOf(tempWordVal),
|
||||
// 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");
|
||||
hiword.className = cssClass;
|
||||
hiword.appendChild(hiwordtext);
|
||||
pn.insertBefore(before, node);
|
||||
pn.insertBefore(hiword, node);
|
||||
pn.insertBefore(after, node);
|
||||
pn.removeChild(node);
|
||||
this.highlightedNodes.push(hiword.firstChild);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
HighlightKeyword.prototype.unhighlight = function (word, cssClass) {
|
||||
var arrRemove = [];
|
||||
var highlightedNodes = this.highlightedNodes;
|
||||
for (var i = 0; i < highlightedNodes.length; i++) {
|
||||
var n = highlightedNodes[i];
|
||||
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) {
|
||||
},
|
||||
unhighlight: {
|
||||
writable: true,
|
||||
value: function (word, cssClass) {
|
||||
var arrRemove = [];
|
||||
var highlightedNodes = this.highlightedNodes;
|
||||
for (var i = 0; i < highlightedNodes.length; i++) {
|
||||
var n = highlightedNodes[i];
|
||||
if (!n) {
|
||||
continue;
|
||||
}
|
||||
nextSib.nodeValue = prevSib.nodeValue + n.nodeValue + nextSib.nodeValue;
|
||||
prevSib.nodeValue = "";
|
||||
n.nodeValue = "";
|
||||
arrRemove.push(i);
|
||||
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;
|
||||
}
|
||||
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;
|
||||
})();
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,6 +1,11 @@
|
|||
define(["exports", "../dom", "../types"], function (exports, _dom, _types) {
|
||||
"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 Types = _types.Types;
|
||||
|
||||
|
@ -47,37 +52,44 @@ define(["exports", "../dom", "../types"], function (exports, _dom, _types) {
|
|||
}
|
||||
};
|
||||
|
||||
Loader.prototype.show = function (p) {
|
||||
var _this = this;
|
||||
if (!this.tf.loader || !this.loaderDiv || this.loaderDiv.style.display === p) {
|
||||
return;
|
||||
_classProps(Loader, null, {
|
||||
show: {
|
||||
writable: true,
|
||||
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;
|
||||
})();
|
||||
|
|
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";
|
||||
|
||||
var _classProps = function (child, staticProps, instanceProps) {
|
||||
if (staticProps) Object.defineProperties(child, staticProps);
|
||||
if (instanceProps) Object.defineProperties(child.prototype, instanceProps);
|
||||
};
|
||||
|
||||
var Dom = _dom.Dom;
|
||||
var Types = _types.Types;
|
||||
var Str = _string.Str;
|
||||
var Helpers = _helpers.Helpers;
|
||||
var Paging = (function () {
|
||||
var Paging =
|
||||
|
||||
/**
|
||||
* Pagination component
|
||||
* @param {Object} tf TableFilter instance
|
||||
*/
|
||||
function Paging(tf) {
|
||||
var Paging = function Paging(tf) {
|
||||
// TableFilter configuration
|
||||
var f = tf.fObj;
|
||||
|
||||
|
@ -63,11 +64,11 @@ define(["exports", "../dom", "../helpers"], function (exports, _dom, _helpers) {
|
|||
//stores paging buttons events
|
||||
this.pagingBtnEvents = null;
|
||||
//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
|
||||
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
|
||||
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 nrows = this.nbRows;
|
||||
//calculates page nb
|
||||
|
@ -76,50 +77,50 @@ define(["exports", "../dom", "../helpers"], function (exports, _dom, _helpers) {
|
|||
var evt = tf.Evt;
|
||||
//Paging elements events
|
||||
if (!evt._Paging.next) {
|
||||
var o = tf;
|
||||
var o = this;
|
||||
evt._Paging = { // paging buttons events
|
||||
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 () {
|
||||
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 () {
|
||||
if (o.Evt._Paging.nextEvt) {
|
||||
o.Evt._Paging.nextEvt();
|
||||
if (evt._Paging.nextEvt) {
|
||||
evt._Paging.nextEvt();
|
||||
}
|
||||
var nextIndex = o.Evt._Paging.slcIndex() < o.Evt._Paging.nbOpts() ? o.Evt._Paging.slcIndex() + 1 : 0;
|
||||
o.ChangePage(nextIndex);
|
||||
var nextIndex = evt._Paging.slcIndex() < evt._Paging.nbOpts() ? evt._Paging.slcIndex() + 1 : 0;
|
||||
o.changePage(nextIndex);
|
||||
},
|
||||
prev: function () {
|
||||
if (o.Evt._Paging.prevEvt) {
|
||||
o.Evt._Paging.prevEvt();
|
||||
if (evt._Paging.prevEvt) {
|
||||
evt._Paging.prevEvt();
|
||||
}
|
||||
var prevIndex = o.Evt._Paging.slcIndex() > 0 ? o.Evt._Paging.slcIndex() - 1 : o.Evt._Paging.nbOpts();
|
||||
o.ChangePage(prevIndex);
|
||||
var prevIndex = evt._Paging.slcIndex() > 0 ? evt._Paging.slcIndex() - 1 : evt._Paging.nbOpts();
|
||||
o.changePage(prevIndex);
|
||||
},
|
||||
last: function () {
|
||||
if (o.Evt._Paging.lastEvt) {
|
||||
o.Evt._Paging.lastEvt();
|
||||
if (evt._Paging.lastEvt) {
|
||||
evt._Paging.lastEvt();
|
||||
}
|
||||
o.ChangePage(o.Evt._Paging.nbOpts());
|
||||
o.changePage(evt._Paging.nbOpts());
|
||||
},
|
||||
first: function () {
|
||||
if (o.Evt._Paging.firstEvt) {
|
||||
o.Evt._Paging.firstEvt();
|
||||
if (evt._Paging.firstEvt) {
|
||||
evt._Paging.firstEvt();
|
||||
}
|
||||
o.ChangePage(0);
|
||||
o.changePage(0);
|
||||
},
|
||||
_detectKey: function (e) {
|
||||
var evt = e || global.event;
|
||||
if (evt) {
|
||||
var key = o.Evt.getKeyCode(e);
|
||||
var key = evt.getKeyCode(e);
|
||||
if (key === 13) {
|
||||
if (o.sorted) {
|
||||
o.Filter();
|
||||
o.ChangePage(o.Evt._Paging.slcIndex());
|
||||
if (tf.sorted) {
|
||||
tf.Filter();
|
||||
o.changePage(evt._Paging.slcIndex());
|
||||
} else {
|
||||
o.ChangePage();
|
||||
o.changePage();
|
||||
}
|
||||
this.blur();
|
||||
}
|
||||
|
@ -135,127 +136,531 @@ define(["exports", "../dom", "../helpers"], function (exports, _dom, _helpers) {
|
|||
this.tf = tf;
|
||||
};
|
||||
|
||||
Paging.prototype.buildUI = function () {
|
||||
var slcPages;
|
||||
var tf = this.tf;
|
||||
var evt = tf.Evt;
|
||||
_classProps(Paging, null, {
|
||||
init: {
|
||||
writable: true,
|
||||
value: function () {
|
||||
var slcPages;
|
||||
var tf = this.tf;
|
||||
var evt = tf.Evt;
|
||||
|
||||
// Paging drop-down list selector
|
||||
if (this.pageSelectorType === tf.fltTypeSlc) {
|
||||
slcPages = dom.create(tf.fltTypeSlc, ["id", tf.prfxSlcPages + tf.id]);
|
||||
slcPages.className = this.pgSlcCssClass;
|
||||
slcPages.onchange = evt._OnSlcPagesChange;
|
||||
}
|
||||
|
||||
// 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();
|
||||
// Paging drop-down list selector
|
||||
if (this.pageSelectorType === tf.fltTypeSlc) {
|
||||
slcPages = Dom.create(tf.fltTypeSlc, ["id", tf.prfxSlcPages + tf.id]);
|
||||
slcPages.className = this.pgSlcCssClass;
|
||||
console.log(evt);
|
||||
slcPages.onchange = evt._OnSlcPagesChange;
|
||||
//slcPages.onchange = function(){ alert('hello'); }
|
||||
}
|
||||
tf.ChangePage();
|
||||
this.blur();
|
||||
//ie only: blur is not enough...
|
||||
if (this.parentNode && Helpers.isIE()) {
|
||||
this.parentNode.focus();
|
||||
|
||||
// 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", 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;
|
||||
})();
|
||||
|
|
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) {
|
||||
"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 Types = _types.Types;
|
||||
var Helpers = _helpers.Helpers;
|
||||
var RowsCounter = (function () {
|
||||
var RowsCounter =
|
||||
|
||||
/**
|
||||
* Rows counter
|
||||
* @param {Object} tf TableFilter instance
|
||||
*/
|
||||
function RowsCounter(tf) {
|
||||
var RowsCounter = function RowsCounter(tf) {
|
||||
// TableFilter configuration
|
||||
var f = tf.fObj;
|
||||
|
||||
|
@ -35,99 +34,108 @@ define(["exports", "../dom", "../types", "../helpers"], function (exports, _dom,
|
|||
this.tf = tf;
|
||||
};
|
||||
|
||||
RowsCounter.prototype.init = function () {
|
||||
var tf = this.tf;
|
||||
_classProps(RowsCounter, null, {
|
||||
init: {
|
||||
writable: true,
|
||||
value: function () {
|
||||
var tf = this.tf;
|
||||
|
||||
if ((!tf.hasGrid && !tf.isFirstLoad) || this.rowsCounterSpan) {
|
||||
return;
|
||||
}
|
||||
if ((!tf.hasGrid && !tf.isFirstLoad) || this.rowsCounterSpan) {
|
||||
return;
|
||||
}
|
||||
|
||||
//rows counter container
|
||||
var countDiv = Dom.create("div", ["id", tf.prfxCounter + tf.id]);
|
||||
countDiv.className = this.totRowsCssClass;
|
||||
//rows counter label
|
||||
var countSpan = Dom.create("span", ["id", tf.prfxTotRows + tf.id]);
|
||||
var countText = Dom.create("span", ["id", tf.prfxTotRowsTxt + tf.id]);
|
||||
countText.appendChild(Dom.text(this.rowsCounterText));
|
||||
//rows counter container
|
||||
var countDiv = Dom.create("div", ["id", tf.prfxCounter + tf.id]);
|
||||
countDiv.className = this.totRowsCssClass;
|
||||
//rows counter label
|
||||
var countSpan = Dom.create("span", ["id", tf.prfxTotRows + tf.id]);
|
||||
var countText = Dom.create("span", ["id", tf.prfxTotRowsTxt + tf.id]);
|
||||
countText.appendChild(Dom.text(this.rowsCounterText));
|
||||
|
||||
// counter is added to defined element
|
||||
if (!this.rowsCounterTgtId) {
|
||||
tf.SetTopDiv();
|
||||
}
|
||||
var targetEl = !this.rowsCounterTgtId ? tf.lDiv : Dom.id(this.rowsCounterTgtId);
|
||||
// counter is added to defined element
|
||||
if (!this.rowsCounterTgtId) {
|
||||
tf.SetTopDiv();
|
||||
}
|
||||
var targetEl = !this.rowsCounterTgtId ? tf.lDiv : Dom.id(this.rowsCounterTgtId);
|
||||
|
||||
//IE only: clears all for sure
|
||||
if (this.rowsCounterDiv && Helpers.isIE()) {
|
||||
this.rowsCounterDiv.outerHTML = "";
|
||||
}
|
||||
//default container: 'lDiv'
|
||||
if (!this.rowsCounterTgtId) {
|
||||
countDiv.appendChild(countText);
|
||||
countDiv.appendChild(countSpan);
|
||||
targetEl.appendChild(countDiv);
|
||||
} else {
|
||||
//custom container, no need to append statusDiv
|
||||
targetEl.appendChild(countText);
|
||||
targetEl.appendChild(countSpan);
|
||||
}
|
||||
this.rowsCounterDiv = countDiv;
|
||||
this.rowsCounterSpan = countSpan;
|
||||
//IE only: clears all for sure
|
||||
if (this.rowsCounterDiv && Helpers.isIE()) {
|
||||
this.rowsCounterDiv.outerHTML = "";
|
||||
}
|
||||
//default container: 'lDiv'
|
||||
if (!this.rowsCounterTgtId) {
|
||||
countDiv.appendChild(countText);
|
||||
countDiv.appendChild(countSpan);
|
||||
targetEl.appendChild(countDiv);
|
||||
} else {
|
||||
//custom container, no need to append statusDiv
|
||||
targetEl.appendChild(countText);
|
||||
targetEl.appendChild(countSpan);
|
||||
}
|
||||
this.rowsCounterDiv = countDiv;
|
||||
this.rowsCounterSpan = countSpan;
|
||||
|
||||
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);
|
||||
this.refresh();
|
||||
}
|
||||
} 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);
|
||||
}
|
||||
};
|
||||
},
|
||||
refresh: {
|
||||
writable: true,
|
||||
value: function (p) {
|
||||
if (!this.rowsCounterSpan) {
|
||||
return;
|
||||
}
|
||||
|
||||
RowsCounter.prototype.destroy = function () {
|
||||
var tf = this.tf;
|
||||
if (!tf.hasGrid) {
|
||||
return;
|
||||
}
|
||||
if (!this.rowsCounterSpan) {
|
||||
return;
|
||||
}
|
||||
var tf = this.tf;
|
||||
|
||||
if (!this.rowsCounterTgtId && this.rowsCounterDiv) {
|
||||
//IE only: clears all for sure
|
||||
if (Helpers.isIE()) {
|
||||
this.rowsCounterDiv.outerHTML = "";
|
||||
} else {
|
||||
this.rowsCounterDiv.parentNode.removeChild(this.rowsCounterDiv);
|
||||
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
|
||||
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;
|
||||
})();
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,15 +1,14 @@
|
|||
define(["exports", "../cookie"], function (exports, _cookie) {
|
||||
"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 Store = (function () {
|
||||
var Store =
|
||||
|
||||
/**
|
||||
* Store, persistence manager
|
||||
* @param {Object} tf TableFilter instance
|
||||
*/
|
||||
function Store(tf) {
|
||||
var Store = function Store(tf) {
|
||||
var f = tf.fObj;
|
||||
|
||||
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;
|
||||
};
|
||||
|
||||
Store.prototype.saveFilterValues = function (name) {
|
||||
var tf = this.tf;
|
||||
var fltValues = [];
|
||||
//store filters' values
|
||||
for (var i = 0; i < tf.fltIds.length; i++) {
|
||||
var value = tf.GetFilterValue(i);
|
||||
if (value === "") {
|
||||
value = " ";
|
||||
_classProps(Store, null, {
|
||||
saveFilterValues: {
|
||||
writable: true,
|
||||
value: function (name) {
|
||||
var tf = this.tf;
|
||||
var fltValues = [];
|
||||
//store filters' values
|
||||
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;
|
||||
})();
|
||||
|
|
|
@ -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