mirror of
https://github.com/koalyptus/TableFilter.git
synced 2024-04-26 04:01:33 +02:00
Continued fixing tests
This commit is contained in:
parent
e17b34d98a
commit
ccc7c27032
2
dist/tablefilter/style/colsVisibility.css
vendored
2
dist/tablefilter/style/colsVisibility.css
vendored
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* tablefilter v0.4.39 by Max Guglielmi
|
||||
* build date: 2017-02-03T12:55:57.724Z
|
||||
* build date: 2017-02-03T13:13:16.112Z
|
||||
* 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}
|
2
dist/tablefilter/style/filtersVisibility.css
vendored
2
dist/tablefilter/style/filtersVisibility.css
vendored
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* tablefilter v0.4.39 by Max Guglielmi
|
||||
* build date: 2017-02-03T12:55:57.724Z
|
||||
* build date: 2017-02-03T13:13:16.112Z
|
||||
* 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}
|
2
dist/tablefilter/style/tablefilter.css
vendored
2
dist/tablefilter/style/tablefilter.css
vendored
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* tablefilter v0.4.39 by Max Guglielmi
|
||||
* build date: 2017-02-03T12:55:57.724Z
|
||||
* build date: 2017-02-03T13:13:16.112Z
|
||||
* MIT License
|
||||
*/
|
||||
.activeHeader{background-color:#66afe9 !important;color:#fff !important}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* tablefilter v0.4.39 by Max Guglielmi
|
||||
* build date: 2017-02-03T12:55:57.724Z
|
||||
* build date: 2017-02-03T13:13:16.112Z
|
||||
* 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.39 by Max Guglielmi
|
||||
* build date: 2017-02-03T12:55:57.724Z
|
||||
* build date: 2017-02-03T13:13:16.112Z
|
||||
* 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.39 by Max Guglielmi
|
||||
* build date: 2017-02-03T12:55:57.724Z
|
||||
* build date: 2017-02-03T13:13:16.112Z
|
||||
* 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.39 by Max Guglielmi
|
||||
* build date: 2017-02-03T12:55:57.724Z
|
||||
* build date: 2017-02-03T13:13:16.112Z
|
||||
* 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}
|
12139
dist/tablefilter/tablefilter.js
vendored
12139
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
80
test/test-cols-visibility-grid-layout.html
Normal file
80
test/test-cols-visibility-grid-layout.html
Normal file
|
@ -0,0 +1,80 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>TableFilter filter with columns visibility extension</title>
|
||||
<link rel="stylesheet" href="libs/qunit/qunit.css">
|
||||
<script src="libs/qunit/qunit.js"></script>
|
||||
<script src="libs/polyfill.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<table id="demo">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>From</th>
|
||||
<th>Destination</th>
|
||||
<th>Road Distance (km)</th>
|
||||
<th>By Air (hrs)</th>
|
||||
<th>By Rail (hrs)</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><strong>Sydney</strong></td>
|
||||
<td>Adelaide</td>
|
||||
<td>1412</td>
|
||||
<td>1.4</td>
|
||||
<td>25.3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Sydney</strong></td>
|
||||
<td>Brisbane</td>
|
||||
<td>982</td>
|
||||
<td>1.5</td>
|
||||
<td>16</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Sydney</strong></td>
|
||||
<td>Canberra</td>
|
||||
<td>286</td>
|
||||
<td>.6</td>
|
||||
<td>4.3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Sydney</strong></td>
|
||||
<td>Melbourne</td>
|
||||
<td>872</td>
|
||||
<td>1.1</td>
|
||||
<td>10.5</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Adelaide</strong></td>
|
||||
<td>Perth</td>
|
||||
<td>2781</td>
|
||||
<td>3.1</td>
|
||||
<td>38</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Adelaide</strong></td>
|
||||
<td>Alice Springs</td>
|
||||
<td>1533</td>
|
||||
<td>2</td>
|
||||
<td>20.25</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Adelaide</strong></td>
|
||||
<td>Brisbane</td>
|
||||
<td>2045</td>
|
||||
<td>2.15</td>
|
||||
<td>40</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<script src="../dist/tablefilter/tablefilter.js"></script>
|
||||
<script src="test-cols-visibility-grid-layout.js"></script>
|
||||
|
||||
<div id="qunit"></div>
|
||||
<div id="qunit-fixture"></div>
|
||||
</body>
|
||||
</html>
|
149
test/test-cols-visibility-grid-layout.js
Normal file
149
test/test-cols-visibility-grid-layout.js
Normal file
|
@ -0,0 +1,149 @@
|
|||
|
||||
var tf = new TableFilter('demo', {
|
||||
base_path: '../dist/tablefilter/',
|
||||
grid_layout: true,
|
||||
extensions:[{ name: 'colsVisibility' }]
|
||||
});
|
||||
tf.init();
|
||||
var ext;
|
||||
|
||||
module('Sanity checks');
|
||||
test('Extension initialization', function() {
|
||||
ext = tf.extension('colsVisibility');
|
||||
deepEqual(tf instanceof TableFilter, true, 'TableFilter instanciated');
|
||||
notEqual(ext, null, 'Extension instanciated');
|
||||
deepEqual(ext.initialized, true, 'Extension initialized');
|
||||
deepEqual(ext.text, 'Hide: ', 'Text setting');
|
||||
deepEqual(ext.btnText, 'Columns▼', 'Button text setting');
|
||||
});
|
||||
|
||||
module('UI checks');
|
||||
test('UI elements', function() {
|
||||
ext = tf.extension('colsVisibility');
|
||||
var span = ext.spanEl;
|
||||
var cont = ext.contEl;
|
||||
var btn = ext.btnEl;
|
||||
deepEqual(span.nodeName, 'SPAN', 'Container element');
|
||||
deepEqual(cont.nodeName, 'DIV', 'Container element');
|
||||
deepEqual(cont.getElementsByTagName('p')[0].innerHTML,
|
||||
'Hide: ', 'Expected text');
|
||||
deepEqual(btn.nodeName, 'A', 'Button element');
|
||||
deepEqual(btn.innerHTML, 'Columns▼');
|
||||
});
|
||||
module('Behaviour');
|
||||
test('Toggle columns list container', function() {
|
||||
ext = tf.extension('colsVisibility');
|
||||
ext.toggle();
|
||||
deepEqual(ext.contEl.style.display, 'inline', 'columns list visible');
|
||||
|
||||
ext.toggle();
|
||||
deepEqual(ext.contEl.style.display, 'none', 'columns list visible');
|
||||
});
|
||||
test('Hide columns', function() {
|
||||
ext = tf.extension('colsVisibility');
|
||||
ext.hideCol(2);
|
||||
ext.hideCol(3);
|
||||
deepEqual(ext.isColHidden(2), true, 'Expected column is hidden');
|
||||
deepEqual(ext.isColHidden(3), true, 'Expected column is hidden');
|
||||
});
|
||||
test('Show columns', function() {
|
||||
ext = tf.extension('colsVisibility');
|
||||
ext.showCol(2);
|
||||
ext.showCol(3);
|
||||
deepEqual(ext.isColHidden(2), false, 'Expected column is displayed');
|
||||
deepEqual(ext.isColHidden(3), false, 'Expected column is displayed');
|
||||
});
|
||||
test('Toggle column', function() {
|
||||
ext = tf.extension('colsVisibility');
|
||||
ext.toggleCol(2);
|
||||
deepEqual(ext.isColHidden(2), true, 'Expected column is hidden');
|
||||
|
||||
ext.toggleCol(2);
|
||||
deepEqual(ext.isColHidden(2), false, 'Expected column is displayed');
|
||||
});
|
||||
test('Popup container auto-closes when user clicks away', function() {
|
||||
// setup
|
||||
ext = tf.extension('colsVisibility');
|
||||
ext.toggle();
|
||||
|
||||
// act
|
||||
var evObj = document.createEvent('HTMLEvents');
|
||||
evObj.initEvent('mouseup', true, true);
|
||||
// mouseup fired from a table cell
|
||||
tf.tbl.rows[3].cells[2].dispatchEvent(evObj);
|
||||
|
||||
// assert
|
||||
deepEqual(ext.contEl.style.display, 'none',
|
||||
'Popup container closed after user clicks away'
|
||||
);
|
||||
});
|
||||
test('Close button closes popup', function() {
|
||||
// setup
|
||||
ext = tf.extension('colsVisibility');
|
||||
ext.toggle();
|
||||
|
||||
// act
|
||||
var evObj = document.createEvent('HTMLEvents');
|
||||
evObj.initEvent('click', true, true);
|
||||
ext.contEl.querySelector('.colVis').dispatchEvent(evObj);
|
||||
|
||||
// assert
|
||||
deepEqual(ext.contEl.style.display, 'none',
|
||||
'Close button closes popup'
|
||||
);
|
||||
});
|
||||
test('Button closes popup when already open', function() {
|
||||
// setup
|
||||
ext = tf.extension('colsVisibility');
|
||||
ext.toggle();
|
||||
|
||||
// act
|
||||
var evObj = document.createEvent('HTMLEvents');
|
||||
evObj.initEvent('click', true, true);
|
||||
ext.btnEl.dispatchEvent(evObj);
|
||||
|
||||
// assert
|
||||
deepEqual(ext.contEl.style.display, 'none',
|
||||
'Close button closes popup'
|
||||
);
|
||||
});
|
||||
|
||||
test('Toggle columns list container', function() {
|
||||
ext = tf.extension('colsVisibility');
|
||||
ext.toggle();
|
||||
deepEqual(ext.contEl.style.display, 'inline', 'columns list visible');
|
||||
|
||||
ext.toggle();
|
||||
deepEqual(ext.contEl.style.display, 'none', 'columns list visible');
|
||||
});
|
||||
test('Hide columns', function() {
|
||||
ext = tf.extension('colsVisibility');
|
||||
ext.hideCol(2);
|
||||
ext.hideCol(3);
|
||||
deepEqual(ext.isColHidden(2), true, 'Expected column is hidden');
|
||||
deepEqual(ext.isColHidden(3), true, 'Expected column is hidden');
|
||||
});
|
||||
test('Show columns', function() {
|
||||
ext = tf.extension('colsVisibility');
|
||||
ext.showCol(2);
|
||||
ext.showCol(3);
|
||||
deepEqual(ext.isColHidden(2), false, 'Expected column is displayed');
|
||||
deepEqual(ext.isColHidden(3), false, 'Expected column is displayed');
|
||||
});
|
||||
test('Toggle column', function() {
|
||||
ext = tf.extension('colsVisibility');
|
||||
ext.toggleCol(2);
|
||||
deepEqual(ext.isColHidden(2), true, 'Expected column is hidden');
|
||||
|
||||
ext.toggleCol(2);
|
||||
deepEqual(ext.isColHidden(2), false, 'Expected column is displayed');
|
||||
});
|
||||
test('Destroy extension and tablefilter', function() {
|
||||
ext = tf.extension('colsVisibility');
|
||||
ext.destroy();
|
||||
deepEqual(ext.initialized, false, 'Extension no longer initialized');
|
||||
deepEqual(ext.contEl, null, 'Columns list container removed');
|
||||
deepEqual(ext.btnEl, null, 'Button removed');
|
||||
|
||||
tf.destroy();
|
||||
});
|
|
@ -119,56 +119,3 @@ test('Re-initialize extension', function() {
|
|||
deepEqual(ext.initialized, true, 'Extension initialized');
|
||||
tf.destroy();
|
||||
});
|
||||
|
||||
module('Behaviour with grid layout');
|
||||
test('Re-initialize tablefilter with grid layout on', function() {
|
||||
tf = null;
|
||||
tf = new TableFilter('demo', {
|
||||
base_path: '../dist/tablefilter/',
|
||||
grid_layout: true,
|
||||
extensions:[{ name: 'colsVisibility' }]
|
||||
});
|
||||
tf.init();
|
||||
|
||||
ext = tf.extension('colsVisibility');
|
||||
deepEqual(ext.initialized, true, 'Extension initialized');
|
||||
});
|
||||
test('Toggle columns list container', function() {
|
||||
ext = tf.extension('colsVisibility');
|
||||
ext.toggle();
|
||||
deepEqual(ext.contEl.style.display, 'inline', 'columns list visible');
|
||||
|
||||
ext.toggle();
|
||||
deepEqual(ext.contEl.style.display, 'none', 'columns list visible');
|
||||
});
|
||||
test('Hide columns', function() {
|
||||
ext = tf.extension('colsVisibility');
|
||||
ext.hideCol(2);
|
||||
ext.hideCol(3);
|
||||
deepEqual(ext.isColHidden(2), true, 'Expected column is hidden');
|
||||
deepEqual(ext.isColHidden(3), true, 'Expected column is hidden');
|
||||
});
|
||||
test('Show columns', function() {
|
||||
ext = tf.extension('colsVisibility');
|
||||
ext.showCol(2);
|
||||
ext.showCol(3);
|
||||
deepEqual(ext.isColHidden(2), false, 'Expected column is displayed');
|
||||
deepEqual(ext.isColHidden(3), false, 'Expected column is displayed');
|
||||
});
|
||||
test('Toggle column', function() {
|
||||
ext = tf.extension('colsVisibility');
|
||||
ext.toggleCol(2);
|
||||
deepEqual(ext.isColHidden(2), true, 'Expected column is hidden');
|
||||
|
||||
ext.toggleCol(2);
|
||||
deepEqual(ext.isColHidden(2), false, 'Expected column is displayed');
|
||||
});
|
||||
test('Destroy extension and tablefilter', function() {
|
||||
ext = tf.extension('colsVisibility');
|
||||
ext.destroy();
|
||||
deepEqual(ext.initialized, false, 'Extension no longer initialized');
|
||||
deepEqual(ext.contEl, null, 'Columns list container removed');
|
||||
deepEqual(ext.btnEl, null, 'Button removed');
|
||||
|
||||
tf.destroy();
|
||||
});
|
||||
|
|
80
test/test-filters-visibility-grid-layout.html
Normal file
80
test/test-filters-visibility-grid-layout.html
Normal file
|
@ -0,0 +1,80 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>TableFilter filters visibility extension tests</title>
|
||||
<link rel="stylesheet" href="libs/qunit/qunit.css">
|
||||
<script src="libs/qunit/qunit.js"></script>
|
||||
<script src="libs/polyfill.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<table id="demo">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>From</th>
|
||||
<th>Destination</th>
|
||||
<th>Road Distance (km)</th>
|
||||
<th>By Air (hrs)</th>
|
||||
<th>By Rail (hrs)</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><strong>Sydney</strong></td>
|
||||
<td>Adelaide</td>
|
||||
<td>1412</td>
|
||||
<td>1.4</td>
|
||||
<td>25.3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Sydney</strong></td>
|
||||
<td>Brisbane</td>
|
||||
<td>982</td>
|
||||
<td>1.5</td>
|
||||
<td>16</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Sydney</strong></td>
|
||||
<td>Canberra</td>
|
||||
<td>286</td>
|
||||
<td>.6</td>
|
||||
<td>4.3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Sydney</strong></td>
|
||||
<td>Melbourne</td>
|
||||
<td>872</td>
|
||||
<td>1.1</td>
|
||||
<td>10.5</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Adelaide</strong></td>
|
||||
<td>Perth</td>
|
||||
<td>2781</td>
|
||||
<td>3.1</td>
|
||||
<td>38</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Adelaide</strong></td>
|
||||
<td>Alice Springs</td>
|
||||
<td>1533</td>
|
||||
<td>2</td>
|
||||
<td>20.25</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Adelaide</strong></td>
|
||||
<td>Brisbane</td>
|
||||
<td>2045</td>
|
||||
<td>2.15</td>
|
||||
<td>40</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<script src="../dist/tablefilter/tablefilter.js"></script>
|
||||
<script src="test-filters-visibility-grid-layout.js"></script>
|
||||
|
||||
<div id="qunit"></div>
|
||||
<div id="qunit-fixture"></div>
|
||||
</body>
|
||||
</html>
|
50
test/test-filters-visibility-grid-layout.js
Normal file
50
test/test-filters-visibility-grid-layout.js
Normal file
|
@ -0,0 +1,50 @@
|
|||
|
||||
var tf = new TableFilter('demo', {
|
||||
base_path: '../dist/tablefilter/',
|
||||
grid_layout: true,
|
||||
extensions:[{
|
||||
name: 'filtersVisibility',
|
||||
visible_at_start: false
|
||||
}]
|
||||
});
|
||||
tf.init();
|
||||
|
||||
var gridLayout = tf.feature('gridLayout');
|
||||
var filtersRow = gridLayout.headTbl.rows[tf.getFiltersRowIndex()];
|
||||
|
||||
module('Sanity checks');
|
||||
test('Filters visibility extension', function() {
|
||||
var ext = tf.extension('filtersVisibility');
|
||||
deepEqual(tf instanceof TableFilter, true, 'TableFilter instanciated');
|
||||
notEqual(ext, null, 'Extension instanciated');
|
||||
deepEqual(ext.initialized, true, 'Extension initialized');
|
||||
});
|
||||
|
||||
module('UI');
|
||||
test('Filters visibility extension', function() {
|
||||
var ext = tf.extension('filtersVisibility');
|
||||
var cont = ext.contEl;
|
||||
var btn = ext.btnEl;
|
||||
deepEqual(filtersRow.style.display, 'none', 'Filters hidden');
|
||||
deepEqual(cont.nodeName, 'SPAN', 'Container element');
|
||||
deepEqual(btn.nodeName, 'A', 'Button element');
|
||||
});
|
||||
|
||||
module('Check behaviours');
|
||||
test('Toggle filters', function() {
|
||||
var ext = tf.extension('filtersVisibility');
|
||||
ext.toggle();
|
||||
|
||||
deepEqual(filtersRow.style.display, '', 'Filters displayed');
|
||||
|
||||
ext.toggle();
|
||||
deepEqual(filtersRow.style.display, 'none', 'Filters hidden');
|
||||
});
|
||||
|
||||
test('Remove extension', function() {
|
||||
var ext = tf.extension('filtersVisibility');
|
||||
ext.destroy();
|
||||
deepEqual(ext.contEl, null, 'Container element removed');
|
||||
deepEqual(ext.btnEl, null, 'Button element removed');
|
||||
deepEqual(ext.initialized, false, 'Extension not initialized');
|
||||
});
|
80
test/test-filters-visibility-with-button.html
Normal file
80
test/test-filters-visibility-with-button.html
Normal file
|
@ -0,0 +1,80 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>TableFilter filters visibility extension tests</title>
|
||||
<link rel="stylesheet" href="libs/qunit/qunit.css">
|
||||
<script src="libs/qunit/qunit.js"></script>
|
||||
<script src="libs/polyfill.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<table id="demo">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>From</th>
|
||||
<th>Destination</th>
|
||||
<th>Road Distance (km)</th>
|
||||
<th>By Air (hrs)</th>
|
||||
<th>By Rail (hrs)</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><strong>Sydney</strong></td>
|
||||
<td>Adelaide</td>
|
||||
<td>1412</td>
|
||||
<td>1.4</td>
|
||||
<td>25.3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Sydney</strong></td>
|
||||
<td>Brisbane</td>
|
||||
<td>982</td>
|
||||
<td>1.5</td>
|
||||
<td>16</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Sydney</strong></td>
|
||||
<td>Canberra</td>
|
||||
<td>286</td>
|
||||
<td>.6</td>
|
||||
<td>4.3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Sydney</strong></td>
|
||||
<td>Melbourne</td>
|
||||
<td>872</td>
|
||||
<td>1.1</td>
|
||||
<td>10.5</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Adelaide</strong></td>
|
||||
<td>Perth</td>
|
||||
<td>2781</td>
|
||||
<td>3.1</td>
|
||||
<td>38</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Adelaide</strong></td>
|
||||
<td>Alice Springs</td>
|
||||
<td>1533</td>
|
||||
<td>2</td>
|
||||
<td>20.25</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Adelaide</strong></td>
|
||||
<td>Brisbane</td>
|
||||
<td>2045</td>
|
||||
<td>2.15</td>
|
||||
<td>40</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<script src="../dist/tablefilter/tablefilter.js"></script>
|
||||
<script src="test-filters-visibility-with-button.js"></script>
|
||||
|
||||
<div id="qunit"></div>
|
||||
<div id="qunit-fixture"></div>
|
||||
</body>
|
||||
</html>
|
83
test/test-filters-visibility-with-button.js
Normal file
83
test/test-filters-visibility-with-button.js
Normal file
|
@ -0,0 +1,83 @@
|
|||
|
||||
var tf = new TableFilter('demo', {
|
||||
base_path: '../dist/tablefilter/',
|
||||
extensions:[{
|
||||
name: 'filtersVisibility',
|
||||
target_id: 'test',
|
||||
btn_text: 'Hello'
|
||||
}]
|
||||
});
|
||||
tf.init();
|
||||
|
||||
var extTargetElement = document.createElement('div');
|
||||
extTargetElement.setAttribute('id', 'test');
|
||||
document.body.insertBefore(extTargetElement, tf.tbl);
|
||||
|
||||
module('Sanity checks');
|
||||
test('Filters visibility extension', function() {
|
||||
var ext = tf.extension('filtersVisibility');
|
||||
deepEqual(tf instanceof TableFilter, true, 'TableFilter instanciated');
|
||||
notEqual(ext, null, 'Extension instanciated');
|
||||
deepEqual(ext.initialized, true, 'Extension initialized');
|
||||
});
|
||||
|
||||
module('Check UI');
|
||||
test('UI elements', function() {
|
||||
var ext = tf.extension('filtersVisibility');
|
||||
var btn = ext.btnEl;
|
||||
deepEqual(
|
||||
extTargetElement.firstChild.nodeName, 'SPAN', 'Container element');
|
||||
deepEqual(btn.nodeName, 'A', 'Button element');
|
||||
deepEqual(btn.textContent || btn.innerText, 'Hello', 'Expected text');
|
||||
ext.destroy();
|
||||
});
|
||||
// var ext = tf.extension('filtersVisibility');
|
||||
// var cont = ext.contEl;
|
||||
// var btn = ext.btnEl;
|
||||
// deepEqual(cont.nodeName, 'SPAN', 'Container element');
|
||||
// deepEqual(btn.nodeName, 'A', 'Button element');
|
||||
// deepEqual(btn.title, 'Toggle filters', 'Button tooltip');
|
||||
// deepEqual(btn.firstChild.nodeName, 'IMG', 'Image element');
|
||||
// deepEqual(btn.firstChild.alt, 'Collapse filters', 'Button tooltip');
|
||||
// });
|
||||
|
||||
// module('Check behaviours');
|
||||
// test('Toggle filters', function() {
|
||||
// var ext = tf.extension('filtersVisibility');
|
||||
// ext.toggle();
|
||||
// var filtersRow = tf.tbl.rows[tf.getFiltersRowIndex()];
|
||||
// deepEqual(filtersRow.style.display, 'none', 'Filters hidden');
|
||||
// ext.toggle();
|
||||
// deepEqual(filtersRow.style.display, '', 'Filters displayed');
|
||||
// });
|
||||
|
||||
// test('Remove extension', function() {
|
||||
// var ext = tf.extension('filtersVisibility');
|
||||
// ext.destroy();
|
||||
// deepEqual(ext.contEl, null, 'Container element removed');
|
||||
// deepEqual(ext.btnEl, null, 'Button element removed');
|
||||
// deepEqual(ext.initialized, false, 'Extension not initialized');
|
||||
// });
|
||||
|
||||
test('Button without icon', function() {
|
||||
var ext = tf.extension('filtersVisibility');
|
||||
|
||||
// tf.destroy();
|
||||
// tf = new TableFilter('demo', {
|
||||
// base_path: '../dist/tablefilter/',
|
||||
// extensions:[{
|
||||
// name: 'filtersVisibility',
|
||||
// enable_icon: false
|
||||
// }]
|
||||
// });
|
||||
// tf.init();
|
||||
ext.btnEl = null;
|
||||
ext.targetId = null;
|
||||
ext.btnText = '';
|
||||
ext.enableIcon = false;
|
||||
ext.init();
|
||||
|
||||
deepEqual(ext.contEl.nodeName, 'SPAN', 'Container element');
|
||||
deepEqual(ext.btnEl.nodeName, 'A', 'Button element');
|
||||
deepEqual(ext.btnEl.innerHTML, 'Toggle filters', 'Expected text');
|
||||
});
|
|
@ -46,61 +46,3 @@ test('Remove extension', function() {
|
|||
deepEqual(ext.btnEl, null, 'Button element removed');
|
||||
deepEqual(ext.initialized, false, 'Extension not initialized');
|
||||
});
|
||||
|
||||
test('Button without icon', function() {
|
||||
tf.destroy();
|
||||
tf = new TableFilter('demo', {
|
||||
base_path: '../dist/tablefilter/',
|
||||
extensions:[{
|
||||
name: 'filtersVisibility',
|
||||
enable_icon: false
|
||||
}]
|
||||
});
|
||||
tf.init();
|
||||
var ext = tf.extension('filtersVisibility');
|
||||
deepEqual(ext.contEl.nodeName, 'SPAN', 'Container element');
|
||||
deepEqual(ext.btnEl.nodeName, 'A', 'Button element');
|
||||
deepEqual(ext.btnEl.innerHTML, 'Toggle filters', 'Expected text');
|
||||
});
|
||||
|
||||
test('Button in external Container', function() {
|
||||
tf.destroy();
|
||||
tf = new TableFilter('demo', {
|
||||
base_path: '../dist/tablefilter/',
|
||||
extensions:[{
|
||||
name: 'filtersVisibility',
|
||||
target_id: 'test',
|
||||
btn_text: 'Hello'
|
||||
}]
|
||||
});
|
||||
tf.init();
|
||||
|
||||
var ext = tf.extension('filtersVisibility');
|
||||
var btn = ext.btnEl;
|
||||
deepEqual(
|
||||
extTargetElement.firstChild.nodeName, 'SPAN', 'Container element');
|
||||
deepEqual(btn.nodeName, 'A', 'Button element');
|
||||
deepEqual(btn.textContent || btn.innerText, 'Hello', 'Expected text');
|
||||
});
|
||||
|
||||
test('Grid layout: filters hidden at start', function() {
|
||||
tf.destroy();
|
||||
tf = new TableFilter('demo', {
|
||||
base_path: '../dist/tablefilter/',
|
||||
grid_layout: true,
|
||||
extensions:[{
|
||||
name: 'filtersVisibility',
|
||||
visible_at_start: false
|
||||
}]
|
||||
});
|
||||
tf.init();
|
||||
|
||||
var ext = tf.extension('filtersVisibility');
|
||||
var gridLayout = tf.feature('gridLayout');
|
||||
var filtersRow = gridLayout.headTbl.rows[tf.getFiltersRowIndex()];
|
||||
var cont = ext.contEl;
|
||||
var btn = ext.btnEl;
|
||||
deepEqual(filtersRow.style.display, 'none', 'Filters hidden');
|
||||
deepEqual(cont.nodeName, 'SPAN', 'Container element');
|
||||
deepEqual(btn.nodeName, 'A', 'Button element');
|
||||
});
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
var webpackConfig = require('./webpack.config.js');
|
||||
var webpack = require('webpack');
|
||||
// var StringReplacePlugin = require('string-replace-webpack-plugin');
|
||||
var StringReplacePlugin = require('string-replace-webpack-plugin');
|
||||
|
||||
module.exports = {
|
||||
cache: true,
|
||||
|
@ -12,7 +12,7 @@ module.exports = {
|
|||
plugins: [
|
||||
new webpack.LoaderOptionsPlugin({
|
||||
debug: true
|
||||
})/*,
|
||||
new StringReplacePlugin()*/
|
||||
}),
|
||||
new StringReplacePlugin()
|
||||
]
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue