mirror of
https://github.com/koalyptus/TableFilter.git
synced 2024-06-19 22:25:18 +02:00
Allow always visible rows when paging is on
This commit is contained in:
parent
2f04cdc4f0
commit
d6267c89b0
11
dist/tablefilter/tablefilter.js
vendored
11
dist/tablefilter/tablefilter.js
vendored
File diff suppressed because one or more lines are too long
2
dist/tablefilter/tf-1.js
vendored
2
dist/tablefilter/tf-1.js
vendored
|
@ -1,6 +1,6 @@
|
||||||
/**
|
/**
|
||||||
* TableFilter v0.0.0 by Max Guglielmi
|
* TableFilter v0.0.0 by Max Guglielmi
|
||||||
* build date: 2015-07-31T06:39:40.127Z
|
* build date: 2015-08-01T07:42:43.949Z
|
||||||
* MIT License
|
* MIT License
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
@ -115,7 +115,7 @@ export class CheckList{
|
||||||
for(var k=tf.refRow; k<tf.nbRows; k++){
|
for(var k=tf.refRow; k<tf.nbRows; k++){
|
||||||
// always visible rows don't need to appear on selects as always
|
// always visible rows don't need to appear on selects as always
|
||||||
// valid
|
// valid
|
||||||
if(tf.hasVisibleRows && Arr.has(tf.visibleRows, k) && !tf.paging){
|
if(tf.hasVisibleRows && tf.visibleRows.indexOf(k) !== -1){
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -112,8 +112,7 @@ export class Dropdown{
|
||||||
for(var k=tf.refRow; k<tf.nbRows; k++){
|
for(var k=tf.refRow; k<tf.nbRows; k++){
|
||||||
// always visible rows don't need to appear on selects as always
|
// always visible rows don't need to appear on selects as always
|
||||||
// valid
|
// valid
|
||||||
if(tf.hasVisibleRows && Arr.has(tf.visibleRows, k) &&
|
if(tf.hasVisibleRows && tf.visibleRows.indexOf(k) !== -1){
|
||||||
!tf.paging){
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -321,8 +321,6 @@ export class Paging{
|
||||||
targetEl.appendChild(btnLastSpan);
|
targetEl.appendChild(btnLastSpan);
|
||||||
this.pagingSlc = Dom.id(this.prfxSlcPages+tf.id);
|
this.pagingSlc = Dom.id(this.prfxSlcPages+tf.id);
|
||||||
|
|
||||||
// if this.rememberGridValues==true this.setPagingInfo() is called
|
|
||||||
// in ResetGridValues() method
|
|
||||||
if(!tf.rememberGridValues || this.isPagingRemoved){
|
if(!tf.rememberGridValues || this.isPagingRemoved){
|
||||||
this.setPagingInfo();
|
this.setPagingInfo();
|
||||||
}
|
}
|
||||||
|
|
|
@ -94,8 +94,7 @@ export class RowsCounter{
|
||||||
if(p && p !== ''){
|
if(p && p !== ''){
|
||||||
totTxt = p;
|
totTxt = p;
|
||||||
} else{
|
} else{
|
||||||
totTxt = tf.nbFilterableRows - tf.nbHiddenRows -
|
totTxt = tf.nbFilterableRows - tf.nbHiddenRows;
|
||||||
(tf.hasVisibleRows ? tf.visibleRows.length : 0);
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
var paging = tf.feature('paging');
|
var paging = tf.feature('paging');
|
||||||
|
@ -111,6 +110,7 @@ export class RowsCounter{
|
||||||
paging_end_row + this.overText + tf.nbVisibleRows;
|
paging_end_row + this.overText + tf.nbVisibleRows;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.rowsCounterSpan.innerHTML = totTxt;
|
this.rowsCounterSpan.innerHTML = totTxt;
|
||||||
if(this.onAfterRefreshCounter){
|
if(this.onAfterRefreshCounter){
|
||||||
this.onAfterRefreshCounter.call(
|
this.onAfterRefreshCounter.call(
|
||||||
|
|
|
@ -872,6 +872,9 @@ export class TableFilter{
|
||||||
}//if this.fltGrid
|
}//if this.fltGrid
|
||||||
|
|
||||||
/* Filter behaviours */
|
/* Filter behaviours */
|
||||||
|
if(this.hasVisibleRows){
|
||||||
|
this.enforceVisibility();
|
||||||
|
}
|
||||||
if(this.rowsCounter){
|
if(this.rowsCounter){
|
||||||
Mod.rowsCounter = new RowsCounter(this);
|
Mod.rowsCounter = new RowsCounter(this);
|
||||||
Mod.rowsCounter.init();
|
Mod.rowsCounter.init();
|
||||||
|
@ -1824,8 +1827,7 @@ export class TableFilter{
|
||||||
Mod.alternateRows.removeRowBg(k);
|
Mod.alternateRows.removeRowBg(k);
|
||||||
}
|
}
|
||||||
// always visible rows need to be counted as valid
|
// always visible rows need to be counted as valid
|
||||||
if(this.hasVisibleRows && Arr.has(this.visibleRows, k) &&
|
if(this.hasVisibleRows && this.visibleRows.indexOf(k) !== -1){
|
||||||
!this.paging){
|
|
||||||
this.validRowsIndex.push(k);
|
this.validRowsIndex.push(k);
|
||||||
} else {
|
} else {
|
||||||
hiddenrows++;
|
hiddenrows++;
|
||||||
|
@ -1874,7 +1876,7 @@ export class TableFilter{
|
||||||
let Mod = this.Mod;
|
let Mod = this.Mod;
|
||||||
|
|
||||||
//shows rows always visible
|
//shows rows always visible
|
||||||
if(this.visibleRows){
|
if(this.hasVisibleRows){
|
||||||
this.enforceVisibility();
|
this.enforceVisibility();
|
||||||
}
|
}
|
||||||
//columns operations
|
//columns operations
|
||||||
|
@ -1886,11 +1888,9 @@ export class TableFilter{
|
||||||
if(this.linkedFilters){
|
if(this.linkedFilters){
|
||||||
this.linkFilters();
|
this.linkFilters();
|
||||||
}
|
}
|
||||||
let nr = !this.paging && this.hasVisibleRows ?
|
|
||||||
this.nbVisibleRows - this.visibleRows.length : this.nbVisibleRows;
|
|
||||||
//refreshes rows counter
|
|
||||||
if(this.rowsCounter){
|
if(this.rowsCounter){
|
||||||
Mod.rowsCounter.refresh(nr);
|
Mod.rowsCounter.refresh(this.nbVisibleRows);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(this.popUpFilters){
|
if(this.popUpFilters){
|
||||||
|
@ -2208,8 +2208,7 @@ export class TableFilter{
|
||||||
}
|
}
|
||||||
|
|
||||||
// always visible rows are valid
|
// always visible rows are valid
|
||||||
if(this.hasVisibleRows && Arr.has(this.visibleRows, rowIndex) &&
|
if(this.hasVisibleRows && this.visibleRows.indexOf(rowIndex) !== -1){
|
||||||
!this.paging){
|
|
||||||
isValid = true;
|
isValid = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2347,11 +2346,11 @@ export class TableFilter{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Makes defined rows always visible
|
* Makes defined rows always visible
|
||||||
*
|
|
||||||
* NOTE: This applies only when paging is disabled
|
|
||||||
*/
|
*/
|
||||||
enforceVisibility(){
|
enforceVisibility(){
|
||||||
if(this._hasGrid && this.hasVisibleRows && !this.paging){
|
if(!this.hasVisibleRows){
|
||||||
|
return;
|
||||||
|
}
|
||||||
for(let i=0, len=this.visibleRows.length; i<len; i++){
|
for(let i=0, len=this.visibleRows.length; i<len; i++){
|
||||||
let row = this.visibleRows[i];
|
let row = this.visibleRows[i];
|
||||||
//row index cannot be > nrows
|
//row index cannot be > nrows
|
||||||
|
@ -2360,7 +2359,6 @@ export class TableFilter{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
clearFilters(){
|
clearFilters(){
|
||||||
this.EvtManager(this.Evt.name.clear);
|
this.EvtManager(this.Evt.name.clear);
|
||||||
|
|
|
@ -45,4 +45,67 @@
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
tf.destroy();
|
||||||
|
tf = new TableFilter('demo', {
|
||||||
|
base_path: '../dist/tablefilter/',
|
||||||
|
rows_always_visible: [4, 9],
|
||||||
|
paging: true,
|
||||||
|
paging_length: 2
|
||||||
|
});
|
||||||
|
tf.init();
|
||||||
|
var paging = tf.feature('paging');
|
||||||
|
|
||||||
|
module('Behaviour with paging');
|
||||||
|
tf.setFilterValue(0, 'Hello');
|
||||||
|
tf.filter();
|
||||||
|
test('for filtered table', function() {
|
||||||
|
var alwaysVisibleRow1 = tf.tbl.rows[4];
|
||||||
|
var alwaysVisibleRow2 = tf.tbl.rows[9];
|
||||||
|
deepEqual(
|
||||||
|
tf.getRowDisplay(alwaysVisibleRow1),
|
||||||
|
'',
|
||||||
|
'Row display for alwaysVisibleRow1'
|
||||||
|
);
|
||||||
|
deepEqual(
|
||||||
|
tf.getRowDisplay(alwaysVisibleRow2),
|
||||||
|
'',
|
||||||
|
'Row display for alwaysVisibleRow2'
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
tf.clearFilters();
|
||||||
|
test('after filters are cleared', function() {
|
||||||
|
var alwaysVisibleRow1 = tf.tbl.rows[4];
|
||||||
|
var alwaysVisibleRow2 = tf.tbl.rows[9];
|
||||||
|
deepEqual(
|
||||||
|
tf.getRowDisplay(alwaysVisibleRow1),
|
||||||
|
'',
|
||||||
|
'Row display for alwaysVisibleRow1'
|
||||||
|
);
|
||||||
|
deepEqual(
|
||||||
|
tf.getRowDisplay(alwaysVisibleRow2),
|
||||||
|
'',
|
||||||
|
'Row display for alwaysVisibleRow2'
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
paging.setPage(2);
|
||||||
|
test('after changing pagination page', function() {
|
||||||
|
var alwaysVisibleRow1 = tf.tbl.rows[4];
|
||||||
|
var alwaysVisibleRow2 = tf.tbl.rows[9];
|
||||||
|
deepEqual(
|
||||||
|
tf.getRowDisplay(alwaysVisibleRow1),
|
||||||
|
'',
|
||||||
|
'Row display for alwaysVisibleRow1'
|
||||||
|
);
|
||||||
|
deepEqual(
|
||||||
|
tf.getRowDisplay(alwaysVisibleRow2),
|
||||||
|
'',
|
||||||
|
'Row display for alwaysVisibleRow2'
|
||||||
|
);
|
||||||
|
|
||||||
|
paging.setPage(0);
|
||||||
|
tf.destroy();
|
||||||
|
});
|
||||||
|
|
||||||
})(window, TableFilter);
|
})(window, TableFilter);
|
||||||
|
|
Loading…
Reference in a new issue