mirror of
https://github.com/koalyptus/TableFilter.git
synced 2024-05-09 18:06:53 +02:00
Added unit tests
This commit is contained in:
parent
c1f0d71bcb
commit
556bf1c264
4
dist/starter.html
vendored
4
dist/starter.html
vendored
|
@ -1,10 +1,10 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>tablefilter v0.4.27 - Starter</title>
|
||||
<title>tablefilter v0.4.28 - Starter</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>tablefilter v0.4.27</h1>
|
||||
<h1>tablefilter v0.4.28</h1>
|
||||
|
||||
|
||||
|
||||
|
|
4
dist/tablefilter/style/colsVisibility.css
vendored
4
dist/tablefilter/style/colsVisibility.css
vendored
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* tablefilter v0.4.27 by Max Guglielmi
|
||||
* build date: 2016-12-27T10:32:31.907Z
|
||||
* tablefilter v0.4.28 by Max Guglielmi
|
||||
* build date: 2017-01-01T06:24:13.635Z
|
||||
* MIT License
|
||||
*/
|
||||
span.colVisSpan{text-align:left;}span.colVisSpan a.colVis{display:inline-block;padding:7px 5px 0;font-size:inherit;font-weight:inherit;vertical-align:top}div.colVisCont{position:relative;background:#fff;-webkit-box-shadow:3px 3px 2px #888;-moz-box-shadow:3px 3px 2px #888;box-shadow:3px 3px 2px #888;position:absolute;display:none;border:1px solid #ccc;height:auto;width:250px;background-color:#fff;margin:35px 0 0 -100px;z-index:10000;padding:10px 10px 10px 10px;text-align:left;font-size:12px;}div.colVisCont:after,div.colVisCont:before{bottom:100%;left:50%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}div.colVisCont:after{border-color:rgba(255,255,255,0);border-bottom-color:#fff;border-width:10px;margin-left:-10px}div.colVisCont:before{border-color:rgba(255,255,255,0);border-bottom-color:#ccc;border-width:12px;margin-left:-12px}div.colVisCont p{margin:6px auto 6px auto}div.colVisCont a.colVis{display:initial;font-weight:inherit}ul.cols_checklist{padding:0;margin:0;list-style:none;}ul.cols_checklist label{display:block}ul.cols_checklist input{vertical-align:middle;margin:2px 5px 2px 1px}li.cols_checklist_item{padding:4px;margin:0;}li.cols_checklist_item:hover{background-color:#335ea8;color:#fff}.cols_checklist_slc_item{background-color:#335ea8;color:#fff}
|
4
dist/tablefilter/style/filtersVisibility.css
vendored
4
dist/tablefilter/style/filtersVisibility.css
vendored
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* tablefilter v0.4.27 by Max Guglielmi
|
||||
* build date: 2016-12-27T10:32:31.907Z
|
||||
* tablefilter v0.4.28 by Max Guglielmi
|
||||
* build date: 2017-01-01T06:24:13.635Z
|
||||
* MIT License
|
||||
*/
|
||||
span.expClpFlt a.btnExpClpFlt{width:35px;height:35px;display:inline-block;}span.expClpFlt a.btnExpClpFlt:hover{background-color:#f4f4f4}span.expClpFlt img{padding:8px 11px 11px 11px}
|
4
dist/tablefilter/style/tablefilter.css
vendored
4
dist/tablefilter/style/tablefilter.css
vendored
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* tablefilter v0.4.27 by Max Guglielmi
|
||||
* build date: 2016-12-27T10:32:31.907Z
|
||||
* tablefilter v0.4.28 by Max Guglielmi
|
||||
* build date: 2017-01-01T06:24:13.635Z
|
||||
* MIT License
|
||||
*/
|
||||
.activeHeader{background-color:#66afe9 !important;color:#fff !important}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* tablefilter v0.4.27 by Max Guglielmi
|
||||
* build date: 2016-12-27T10:32:31.907Z
|
||||
* tablefilter v0.4.28 by Max Guglielmi
|
||||
* build date: 2017-01-01T06:24:13.635Z
|
||||
* MIT License
|
||||
*/
|
||||
table.TF{border-left:1px solid #ccc;border-top:none;border-right:none;border-bottom:none;}table.TF th{background:#ebecee url("images/bg_th.jpg") left top repeat-x;border-bottom:1px solid #d0d0d0;border-right:1px solid #d0d0d0;border-left:1px solid #fff;border-top:1px solid #fff;color:#333}table.TF td{border-bottom:1px dotted #999;padding:5px}.fltrow{background-color:#ebecee !important;}.fltrow th,.fltrow td{border-bottom:1px dotted #666 !important;padding:1px 3px 1px 3px !important}.flt,select.flt,select.flt_multi,.flt_s,.single_flt,.div_checklist{border:1px solid #999 !important}input.flt{width:99% !important}.inf{height:$min-height;background:#d7d7d7 url("images/bg_infDiv.jpg") 0 0 repeat-x !important}input.reset{background:transparent url("images/btn_eraser.gif") center center no-repeat !important}.helpBtn:hover{background-color:transparent}.nextPage{background:transparent url("images/btn_next_page.gif") center center no-repeat !important;}.nextPage:hover{background:transparent url("images/btn_over_next_page.gif") center center no-repeat !important}.previousPage{background:transparent url("images/btn_previous_page.gif") center center no-repeat !important;}.previousPage:hover{background:transparent url("images/btn_over_previous_page.gif") center center no-repeat !important}.firstPage{background:transparent url("images/btn_first_page.gif") center center no-repeat !important;}.firstPage:hover{background:transparent url("images/btn_over_first_page.gif") center center no-repeat !important}.lastPage{background:transparent url("images/btn_last_page.gif") center center no-repeat !important;}.lastPage:hover{background:transparent url("images/btn_over_last_page.gif") center center no-repeat !important}div.grd_Cont{background-color:#ebecee !important;border:1px solid #ccc !important;padding:0 !important;}div.grd_Cont .even{background-color:#fff}div.grd_Cont .odd{background-color:#d5d5d5}div.grd_headTblCont{background-color:#ebecee !important;border-bottom:none !important;}div.grd_headTblCont table{border-right:none !important}div.grd_tblCont table th,div.grd_headTblCont table th,div.grd_headTblCont table td{background:#ebecee url("images/bg_th.jpg") left top repeat-x !important;border-bottom:1px solid #d0d0d0 !important;border-right:1px solid #d0d0d0 !important;border-left:1px solid #fff !important;border-top:1px solid #fff !important}div.grd_tblCont table td{border-bottom:1px solid #999 !important}.grd_inf{background:#d7d7d7 url("images/bg_infDiv.jpg") 0 0 repeat-x !important;border-top:1px solid #d0d0d0 !important}.loader{border:1px solid #999}.defaultLoader{width:32px;height:32px;background:transparent url("images/img_loading.gif") 0 0 no-repeat !important}.even{background-color:#fff}.odd{background-color:#d5d5d5}span.expClpFlt a.btnExpClpFlt:hover{background-color:transparent !important}.activeHeader{background:#999 !important}
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* tablefilter v0.4.27 by Max Guglielmi
|
||||
* build date: 2016-12-27T10:32:31.907Z
|
||||
* tablefilter v0.4.28 by Max Guglielmi
|
||||
* build date: 2017-01-01T06:24:13.635Z
|
||||
* MIT License
|
||||
*/
|
||||
table.TF{border-left:1px dotted #81963b;border-top:none;border-right:0;border-bottom:none;}table.TF th{background:#39424b url("images/bg_headers.jpg") left top repeat-x;border-bottom:0;border-right:1px dotted #d0d0d0;border-left:0;border-top:0;color:#fff}table.TF td{border-bottom:1px dotted #81963b;border-right:1px dotted #81963b;padding:5px}.fltrow{background-color:#81963b !important;}.fltrow th,.fltrow td{border-bottom:1px dotted #39424b !important;border-right:1px dotted #fff !important;border-left:0 !important;border-top:0 !important;padding:1px 3px 1px 3px !important}.flt,select.flt,select.flt_multi,.flt_s,.single_flt,.div_checklist{border:1px solid #687830 !important}input.flt{width:99% !important}.inf{background:#d8d8d8;height:$min-height}input.reset{width:53px;background:transparent url("images/btn_filter.png") center center no-repeat !important}.helpBtn:hover{background-color:transparent}.nextPage{background:transparent url("images/btn_next_page.gif") center center no-repeat !important}.previousPage{background:transparent url("images/btn_previous_page.gif") center center no-repeat !important}.firstPage{background:transparent url("images/btn_first_page.gif") center center no-repeat !important}.lastPage{background:transparent url("images/btn_last_page.gif") center center no-repeat !important}div.grd_Cont{background:#81963b url("images/bg_headers.jpg") left top repeat-x !important;border:1px solid #ccc !important;padding:0 1px 1px 1px !important;}div.grd_Cont .even{background-color:#bccd83}div.grd_Cont .odd{background-color:#fff}div.grd_headTblCont{background-color:#ebecee !important;border-bottom:none !important}div.grd_tblCont table{border-right:none !important;}div.grd_tblCont table td{border-bottom:1px dotted #81963b;border-right:1px dotted #81963b}div.grd_tblCont table th,div.grd_headTblCont table th{background:transparent url("images/bg_headers.jpg") 0 0 repeat-x !important;border-bottom:0 !important;border-right:1px dotted #d0d0d0 !important;border-left:0 !important;border-top:0 !important;padding:0 4px 0 4px !important;color:#fff !important;height:35px !important}div.grd_headTblCont table td{border-bottom:1px dotted #39424b !important;border-right:1px dotted #fff !important;border-left:0 !important;border-top:0 !important;background-color:#81963b !important;padding:1px 3px 1px 3px !important}.grd_inf{background-color:#d8d8d8;border-top:1px solid #d0d0d0 !important}.loader{border:0 !important;background:#81963b !important}.defaultLoader{width:32px;height:32px;background:transparent url("images/img_loading.gif") 0 0 no-repeat !important}.even{background-color:#bccd83}.odd{background-color:#fff}span.expClpFlt a.btnExpClpFlt:hover{background-color:transparent !important}.activeHeader{background:#81963b !important}
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* tablefilter v0.4.27 by Max Guglielmi
|
||||
* build date: 2016-12-27T10:32:31.907Z
|
||||
* tablefilter v0.4.28 by Max Guglielmi
|
||||
* build date: 2017-01-01T06:24:13.635Z
|
||||
* MIT License
|
||||
*/
|
||||
table.TF{padding:0;color:#000;border-right:1px solid #a4bed4;border-top:1px solid #a4bed4;border-left:1px solid #a4bed4;border-bottom:0;}table.TF th{margin:0;color:inherit;background:#d1e5fe url("images/bg_skyblue.gif") 0 0 repeat-x;border-color:#fdfdfd #a4bed4 #a4bed4 #fdfdfd;border-width:1px;border-style:solid}table.TF td{margin:0;padding:5px;color:inherit;border-bottom:1px solid #a4bed4;border-left:0;border-top:0;border-right:0}.fltrow{background-color:#d1e5fe !important;}.fltrow th,.fltrow td{padding:1px 3px 1px 3px !important}.flt,select.flt,select.flt_multi,.flt_s,.single_flt,.div_checklist{border:1px solid #a4bed4 !important}input.flt{width:99% !important}.inf{background-color:#e3efff !important;border:1px solid #a4bed4;height:$min-height;color:#004a6f}div.tot,div.status{border-right:0 !important}.helpBtn:hover{background-color:transparent}input.reset{background:transparent url("images/icn_clear_filters.png") center center no-repeat !important}.nextPage{background:transparent url("images/btn_next_page.gif") center center no-repeat !important;border:1px solid transparent !important;}.nextPage:hover{background:#ffe4ab url("images/btn_next_page.gif") center center no-repeat !important;border:1px solid #ffb552 !important}.previousPage{background:transparent url("images/btn_prev_page.gif") center center no-repeat !important;border:1px solid transparent !important;}.previousPage:hover{background:#ffe4ab url("images/btn_prev_page.gif") center center no-repeat !important;border:1px solid #ffb552 !important}.firstPage{background:transparent url("images/btn_first_page.gif") center center no-repeat !important;border:1px solid transparent !important;}.firstPage:hover{background:#ffe4ab url("images/btn_first_page.gif") center center no-repeat !important;border:1px solid #ffb552 !important}.lastPage{background:transparent url("images/btn_last_page.gif") center center no-repeat !important;border:1px solid transparent !important;}.lastPage:hover{background:#ffe4ab url("images/btn_last_page.gif") center center no-repeat !important;border:1px solid #ffb552 !important}.activeHeader{background:#ffe4ab !important;border:1px solid #ffb552 !important;color:inherit !important}div.grd_Cont{background-color:#d9eaed !important;border:1px solid #9cc !important;padding:0 !important;}div.grd_Cont .even{background-color:#fff}div.grd_Cont .odd{background-color:#e3efff}div.grd_headTblCont{background-color:#d9eaed !important;border-bottom:none !important}div.grd_tblCont table{border-right:none !important}div.grd_tblCont table th,div.grd_headTblCont table th,div.grd_headTblCont table td{background:#d9eaed url("images/bg_skyblue.gif") left top repeat-x;border-bottom:1px solid #a4bed4;border-right:1px solid #a4bed4 !important;border-left:1px solid #fff !important;border-top:1px solid #fff !important}div.grd_tblCont table td{border-bottom:1px solid #a4bed4 !important;border-right:0 !important;border-left:0 !important;border-top:0 !important}.grd_inf{background-color:#cce2fe;color:#004a6f;border-top:1px solid #9cc !important;}.grd_inf a{text-decoration:none;font-weight:bold}.loader{background-color:#2d8eef;border:1px solid #cce2fe;border-radius:5px}.even{background-color:#fff}.odd{background-color:#e3efff}span.expClpFlt a.btnExpClpFlt:hover{background-color:transparent !important}.ezActiveRow{background-color:#ffdc61 !important;color:inherit}.ezSelectedRow{background-color:#ffe4ab !important;color:inherit}.ezActiveCell{background-color:#fff !important;color:#000 !important;font-weight:bold}.ezETSelectedCell{background-color:#fff !important;font-weight:bold;color:#000 !important}
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* tablefilter v0.4.27 by Max Guglielmi
|
||||
* build date: 2016-12-27T10:32:31.907Z
|
||||
* tablefilter v0.4.28 by Max Guglielmi
|
||||
* build date: 2017-01-01T06:24:13.635Z
|
||||
* MIT License
|
||||
*/
|
||||
table.TF{padding:0;color:inherit;border-right:1px solid transparent;border-top:1px solid transparent;border-left:1px solid transparent;border-bottom:0;}table.TF th{margin:0;color:inherit;background-color:transparent;border-color:transparent;border-width:1px;border-style:solid;}table.TF th:last-child{border-right:1px solid transparent}table.TF td{margin:0;padding:5px;color:inherit;border-bottom:1px solid transparent;border-left:0;border-top:0;border-right:0}.fltrow{background-color:transparent;}.fltrow th,.fltrow td{padding:1px 3px 1px 3px;border-bottom:1px solid transparent !important;}.fltrow th:last-child,.fltrow td:last-child{border-right:1px solid transparent}.flt,select.flt,select.flt_multi,.flt_s,.single_flt,.div_checklist{border:1px solid #a4bed4}input.flt{width:99% !important}.inf{background-color:transparent;border:1px solid transparent;height:$min-height;color:inherit}div.tot,div.status{border-right:0 !important}.helpBtn:hover{background-color:transparent}input.reset{background:transparent url("images/icn_clear_filters.png") center center no-repeat !important}.nextPage{background:transparent url("images/btn_next_page.gif") center center no-repeat !important;border:1px solid transparent !important;}.nextPage:hover{background:#f7f7f7 url("images/btn_next_page.gif") center center no-repeat !important;border:1px solid #f7f7f7 !important}.previousPage{background:transparent url("images/btn_prev_page.gif") center center no-repeat !important;border:1px solid transparent !important;}.previousPage:hover{background:#f7f7f7 url("images/btn_prev_page.gif") center center no-repeat !important;border:1px solid #f7f7f7 !important}.firstPage{background:transparent url("images/btn_first_page.gif") center center no-repeat !important;border:1px solid transparent !important;}.firstPage:hover{background:#f7f7f7 url("images/btn_first_page.gif") center center no-repeat !important;border:1px solid #f7f7f7 !important}.lastPage{background:transparent url("images/btn_last_page.gif") center center no-repeat !important;border:1px solid transparent !important;}.lastPage:hover{background:#f7f7f7 url("images/btn_last_page.gif") center center no-repeat !important;border:1px solid #f7f7f7 !important}.activeHeader{background:#f7f7f7 !important;border:1px solid transparent;color:inherit !important}div.grd_Cont{-webkit-box-shadow:0 0 0 0 rgba(50,50,50,0.75);-moz-box-shadow:0 0 0 0 rgba(50,50,50,0.75);box-shadow:0 0 0 0 rgba(50,50,50,0.75);background-color:transparent;border:1px solid transparent;padding:0 !important;}div.grd_Cont .even{background-color:transparent}div.grd_Cont .odd{background-color:#f7f7f7}div.grd_headTblCont{background-color:transparent;border-bottom:none !important}div.grd_tblCont table{border-right:none !important}div.grd_tblCont table th,div.grd_headTblCont table th,div.grd_headTblCont table td{background:transparent;border-bottom:1px solid transparent;border-right:1px solid transparent !important;border-left:1px solid transparent;border-top:1px solid transparent}div.grd_tblCont table td{border-bottom:1px solid transparent;border-right:0 !important;border-left:0 !important;border-top:0 !important}.grd_inf{background-color:transparent;color:inherit;border-top:1px solid transparent;}.grd_inf a{text-decoration:none;font-weight:bold}.loader{background-color:#f7f7f7;border:1px solid #f7f7f7;border-radius:5px;color:#000;text-shadow:none}.even{background-color:transparent}.odd{background-color:#f7f7f7}span.expClpFlt a.btnExpClpFlt:hover{background-color:transparent !important}.ezActiveRow{background-color:#ccc !important;color:inherit}.ezSelectedRow{background-color:#ccc !important;color:inherit}.ezActiveCell{background-color:transparent;color:inherit;font-weight:bold}.ezETSelectedCell{background-color:transparent;font-weight:bold;color:inherit}
|
18
dist/tablefilter/tablefilter.js
vendored
18
dist/tablefilter/tablefilter.js
vendored
File diff suppressed because one or more lines are too long
2
dist/tablefilter/tablefilter.js.map
vendored
2
dist/tablefilter/tablefilter.js.map
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
9
dist/tablefilter/tf-1-c9dcfcf3ebef66b97fee.js
vendored
Normal file
9
dist/tablefilter/tf-1-c9dcfcf3ebef66b97fee.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/tablefilter/tf-1-c9dcfcf3ebef66b97fee.js.map
vendored
Normal file
1
dist/tablefilter/tf-1-c9dcfcf3ebef66b97fee.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "tablefilter",
|
||||
"version": "0.4.27",
|
||||
"version": "0.4.28",
|
||||
"description": "A Javascript library making HTML tables filterable and a bit more",
|
||||
"license": "MIT",
|
||||
"author": {
|
||||
|
|
|
@ -207,9 +207,9 @@ export default class AdapterEzEditTable extends Feature {
|
|||
nextRowIndex,
|
||||
paging = tf.feature('paging'),
|
||||
//pgup/pgdown keys
|
||||
d = (keyCode === 34 || keyCode === 33 ?
|
||||
d = keyCode === 34 || keyCode === 33 ?
|
||||
(paging && paging.pagingLength || et.nbRowsPerPage) :
|
||||
1);
|
||||
1;
|
||||
|
||||
//If next row is not valid, next valid filtered row needs to be
|
||||
//calculated
|
||||
|
@ -332,35 +332,35 @@ export default class AdapterEzEditTable extends Feature {
|
|||
if (cfg.default_selection === 'row') {
|
||||
let fnB = cfg.on_before_selected_row;
|
||||
cfg.on_before_selected_row = function () {
|
||||
onBeforeSelection(arguments[0], arguments[1], arguments[2]);
|
||||
var args = arguments;
|
||||
onBeforeSelection(args[0], args[1], args[2]);
|
||||
if (fnB) {
|
||||
fnB.call(
|
||||
null, arguments[0], arguments[1], arguments[2]);
|
||||
fnB.call(null, args[0], args[1], args[2]);
|
||||
}
|
||||
};
|
||||
let fnA = cfg.on_after_selected_row;
|
||||
cfg.on_after_selected_row = function () {
|
||||
onAfterSelection(arguments[0], arguments[1], arguments[2]);
|
||||
var args = arguments;
|
||||
onAfterSelection(args[0], args[1], args[2]);
|
||||
if (fnA) {
|
||||
fnA.call(
|
||||
null, arguments[0], arguments[1], arguments[2]);
|
||||
fnA.call(null, args[0], args[1], args[2]);
|
||||
}
|
||||
};
|
||||
} else {
|
||||
let fnD = cfg.on_before_selected_cell;
|
||||
cfg.on_before_selected_cell = function () {
|
||||
onBeforeSelection(arguments[0], arguments[1], arguments[2]);
|
||||
var args = arguments;
|
||||
onBeforeSelection(args[0], args[1], args[2]);
|
||||
if (fnD) {
|
||||
fnD.call(
|
||||
null, arguments[0], arguments[1], arguments[2]);
|
||||
fnD.call(null, args[0], args[1], args[2]);
|
||||
}
|
||||
};
|
||||
let fnC = cfg.on_after_selected_cell;
|
||||
cfg.on_after_selected_cell = function () {
|
||||
onAfterSelection(arguments[0], arguments[1], arguments[2]);
|
||||
var args = arguments;
|
||||
onAfterSelection(args[0], args[1], args[2]);
|
||||
if (fnC) {
|
||||
fnC.call(
|
||||
null, arguments[0], arguments[1], arguments[2]);
|
||||
fnC.call(null, args[0], args[1], args[2]);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@ -369,6 +369,7 @@ export default class AdapterEzEditTable extends Feature {
|
|||
//Added or removed rows, TF rows number needs to be re-calculated
|
||||
let fnE = cfg.on_added_dom_row;
|
||||
cfg.on_added_dom_row = function () {
|
||||
var args = arguments;
|
||||
tf.nbFilterableRows++;
|
||||
if (!tf.paging) {
|
||||
tf.emitter.emit('rows-changed', tf, this);
|
||||
|
@ -382,12 +383,13 @@ export default class AdapterEzEditTable extends Feature {
|
|||
tf.feature('alternateRows').init();
|
||||
}
|
||||
if (fnE) {
|
||||
fnE.call(null, arguments[0], arguments[1], arguments[2]);
|
||||
fnE.call(null, args[0], args[1], args[2]);
|
||||
}
|
||||
};
|
||||
if (cfg.actions && cfg.actions['delete']) {
|
||||
let fnF = cfg.actions['delete'].on_after_submit;
|
||||
cfg.actions['delete'].on_after_submit = function () {
|
||||
var args = arguments;
|
||||
tf.nbFilterableRows--;
|
||||
if (!tf.paging) {
|
||||
tf.emitter.emit('rows-changed', tf, this);
|
||||
|
@ -401,7 +403,7 @@ export default class AdapterEzEditTable extends Feature {
|
|||
tf.feature('alternateRows').init();
|
||||
}
|
||||
if (fnF) {
|
||||
fnF.call(null, arguments[0], arguments[1]);
|
||||
fnF.call(null, args[0], args[1]);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
|
@ -43,6 +43,7 @@ export class AlternateRows extends Feature {
|
|||
(tf, rowIndex, arrIndex, isValid) =>
|
||||
this.processRow(rowIndex, arrIndex, isValid));
|
||||
this.emitter.on(['column-sorted'], () => this.processAll());
|
||||
this.emitter.on(['rows-changed'], () => this.processAll());
|
||||
|
||||
/** @inherited */
|
||||
this.initialized = true;
|
||||
|
@ -131,6 +132,7 @@ export class AlternateRows extends Feature {
|
|||
(tf, rowIndex, arrIndex, isValid) =>
|
||||
this.processRow(rowIndex, arrIndex, isValid));
|
||||
this.emitter.off(['column-sorted'], () => this.processAll());
|
||||
this.emitter.off(['rows-changed'], () => this.processAll());
|
||||
|
||||
this.initialized = false;
|
||||
}
|
||||
|
|
|
@ -119,6 +119,7 @@ export class CheckList extends Feature {
|
|||
/**
|
||||
* Checklist option click event handler
|
||||
* @param {Event} evt
|
||||
* @private
|
||||
*/
|
||||
optionClick(evt) {
|
||||
let elm = targetEvt(evt);
|
||||
|
@ -132,6 +133,7 @@ export class CheckList extends Feature {
|
|||
/**
|
||||
* Checklist container click event handler for load-on-demand feature
|
||||
* @param {Event} evt
|
||||
* @private
|
||||
*/
|
||||
onCheckListClick(evt) {
|
||||
let elm = targetEvt(evt);
|
||||
|
@ -143,6 +145,19 @@ export class CheckList extends Feature {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Refresh all checklist filters
|
||||
*/
|
||||
refreshAll() {
|
||||
let tf = this.tf;
|
||||
let fltsIdxs = tf.getFiltersByType(CHECKLIST, true);
|
||||
fltsIdxs.forEach((colIdx) => {
|
||||
let values = this.getValues(colIdx);
|
||||
this.build(colIdx, tf.linkedFilters);
|
||||
this.selectOptions(colIdx, values);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize checklist filter
|
||||
* @param {Number} colIndex Column index
|
||||
|
@ -186,6 +201,8 @@ export class CheckList extends Feature {
|
|||
(tf, colIndex, values) => this.selectOptions(colIndex, values)
|
||||
);
|
||||
|
||||
this.emitter.on(['rows-changed'], () => this.refreshAll());
|
||||
|
||||
/** @inherited */
|
||||
this.initialized = true;
|
||||
}
|
||||
|
@ -500,7 +517,8 @@ export class CheckList extends Feature {
|
|||
selectOptions(colIndex, values = []) {
|
||||
let tf = this.tf;
|
||||
let flt = tf.getFilterElement(colIndex);
|
||||
if (tf.getFilterType(colIndex) !== CHECKLIST || !flt) {
|
||||
if (tf.getFilterType(colIndex) !== CHECKLIST || !flt ||
|
||||
values.length === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -565,6 +583,8 @@ export class CheckList extends Feature {
|
|||
['select-checklist-options'],
|
||||
(tf, colIndex, values) => this.selectOptions(colIndex, values)
|
||||
);
|
||||
this.emitter.off(['rows-changed'], () => this.refreshAll());
|
||||
|
||||
this.initialized = false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
import {Feature} from '../feature';
|
||||
import {createElm, createOpt, elm} from '../dom';
|
||||
import {has} from '../array';
|
||||
import {matchCase} from '../string';
|
||||
import {ignoreCase, numSortAsc, numSortDesc} from '../sort';
|
||||
import {addEvt, targetEvt} from '../event';
|
||||
import {SELECT, MULTIPLE, NONE} from '../const';
|
||||
import { Feature } from '../feature';
|
||||
import { createElm, createOpt, elm } from '../dom';
|
||||
import { has } from '../array';
|
||||
import { matchCase } from '../string';
|
||||
import { ignoreCase, numSortAsc, numSortDesc } from '../sort';
|
||||
import { addEvt, targetEvt } from '../event';
|
||||
import { SELECT, MULTIPLE, NONE } from '../const';
|
||||
|
||||
const SORT_ERROR = 'Filter options for column {0} cannot be sorted in ' +
|
||||
'{1} manner.';
|
||||
|
@ -92,6 +92,21 @@ export class Dropdown extends Feature {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Refresh all drop-down filters
|
||||
*/
|
||||
refreshAll() {
|
||||
let tf = this.tf;
|
||||
let selectFlts = tf.getFiltersByType(SELECT, true);
|
||||
let multipleFlts = tf.getFiltersByType(MULTIPLE, true);
|
||||
let flts = selectFlts.concat(multipleFlts);
|
||||
flts.forEach((colIdx) => {
|
||||
let values = this.getValues(colIdx);
|
||||
this.build(colIdx, tf.linkedFilters);
|
||||
this.selectOptions(colIdx, values);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize drop-down filter
|
||||
* @param {Number} colIndex Column index
|
||||
|
@ -145,6 +160,7 @@ export class Dropdown extends Feature {
|
|||
['select-options'],
|
||||
(tf, colIndex, values) => this.selectOptions(colIndex, values)
|
||||
);
|
||||
this.emitter.on(['rows-changed'], () => this.refreshAll());
|
||||
|
||||
/** @inherited */
|
||||
this.initialized = true;
|
||||
|
@ -365,7 +381,8 @@ export class Dropdown extends Feature {
|
|||
*/
|
||||
selectOptions(colIndex, values = []) {
|
||||
let tf = this.tf;
|
||||
if (tf.getFilterType(colIndex) !== MULTIPLE || values.length === 0) {
|
||||
if (/*tf.getFilterType(colIndex) !== MULTIPLE ||*/
|
||||
values.length === 0) {
|
||||
return;
|
||||
}
|
||||
let slc = tf.getFilterElement(colIndex);
|
||||
|
@ -420,6 +437,7 @@ export class Dropdown extends Feature {
|
|||
['select-options'],
|
||||
(tf, colIndex, values) => this.selectOptions(colIndex, values)
|
||||
);
|
||||
this.emitter.off(['rows-changed'], () => this.refreshAll());
|
||||
this.initialized = false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -36,6 +36,21 @@ test('Can filter on checkList item click', function() {
|
|||
deepEqual(tf.getValidRows().length, 1, 'Table filtered');
|
||||
deepEqual(tf.getFilteredData()[0][1][3], '1.1', 'Matched value');
|
||||
});
|
||||
test('Can refresh all drop-down filters', function() {
|
||||
//setup
|
||||
tf.clearFilters();
|
||||
var build = checkList.build;
|
||||
var hit = 0;
|
||||
checkList.build = function() { hit++ };
|
||||
|
||||
//act
|
||||
checkList.refreshAll();
|
||||
|
||||
//assert
|
||||
deepEqual(hit, 1, 'build method called');
|
||||
|
||||
checkList.build = build;
|
||||
});
|
||||
test('Can select options', function() {
|
||||
tf.clearFilters();
|
||||
var flt1 = id(tf.fltIds[3]);
|
||||
|
|
|
@ -36,6 +36,22 @@ test('Can filter on drop-down change', function() {
|
|||
deepEqual(tf.getFilteredData()[0][1][3], '1.1', 'Matched value');
|
||||
});
|
||||
|
||||
test('Can refresh all drop-down filters', function() {
|
||||
//setup
|
||||
tf.clearFilters();
|
||||
var build = dropdown.build;
|
||||
var hit = 0;
|
||||
dropdown.build = function() { hit++ };
|
||||
|
||||
//act
|
||||
dropdown.refreshAll();
|
||||
|
||||
//assert
|
||||
deepEqual(hit, 2, 'build method called');
|
||||
|
||||
dropdown.build = build;
|
||||
});
|
||||
|
||||
test('Can select options', function() {
|
||||
tf.clearFilters();
|
||||
var flt1 = id(tf.fltIds[2]);
|
||||
|
|
Loading…
Reference in a new issue