1
0
Fork 0
mirror of https://github.com/koalyptus/TableFilter.git synced 2024-05-05 16:13:34 +02:00

Instantiate TableFilter with table DOM element

This commit is contained in:
Max Guglielmi 2015-10-31 19:00:28 +11:00
parent cdb24de481
commit a6d4fa458e
35 changed files with 190 additions and 96 deletions

View file

@ -11,7 +11,7 @@
"trailing": true,
"quotmark": "single",
"immed": true,
"maxstatements": 197,
"maxstatements": 198,
"maxdepth": 7,
"maxcomplexity": 103
"maxcomplexity": 104
}

View file

@ -43,7 +43,7 @@ Copy the ``tablefilter`` directory under ``dist`` and place it at desired locati
Place the following snippet just under the HTML table and always define a ``base_path`` property in the configuration object to reflect the path to the script
```shell
<script>
var tf = new TableFilter('my-table-id', {
var tf = new TableFilter(document.querySelector('.my-table'), {
base_path: 'path/to/my/scripts/tablefilter/'
});
tf.init();

View file

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>tablefilter v0.0.7 - Editable Grid Demo</title>
<title>tablefilter v0.0.8 - Editable Grid Demo</title>
<link rel="stylesheet" type="text/css" href="../dist/tablefilter/style/tablefilter.css">
<style type="text/css">
body{
@ -27,7 +27,7 @@
</style>
</head>
<body>
<h1>tablefilter v0.0.7</h1>
<h1>tablefilter v0.0.8</h1>
<h2>Editable grid demo</h2>
<p>

View file

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>tablefilter v0.0.7 - Selection Grid Demo</title>
<title>tablefilter v0.0.8 - Selection Grid Demo</title>
<link rel="stylesheet" type="text/css" href="../dist/tablefilter/style/tablefilter.css">
<style type="text/css">
body{
@ -27,7 +27,7 @@
</style>
</head>
<body>
<h1>tablefilter v0.0.7</h1>
<h1>tablefilter v0.0.8</h1>
<h2>Selection grid demo</h2>
<p>

View file

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>tablefilter v0.0.7 - Auto-filter Demo</title>
<title>tablefilter v0.0.8 - Auto-filter Demo</title>
<link rel="stylesheet" type="text/css" href="../dist/tablefilter/style/tablefilter.css">
<style type="text/css">
body{
@ -27,7 +27,7 @@
</style>
</head>
<body>
<h1>tablefilter v0.0.7</h1>
<h1>tablefilter v0.0.8</h1>
<h2>Auto-filter demo</h2>
<p>
This demo features the auto-filter behaviour, the table is filtered as soon
@ -13002,13 +13002,16 @@
remember_grid_values: true,
alternate_rows: true,
rows_counter: true,
rows_counter_text: "Rows: ",
rows_counter_text: 'Rows: ',
btn_reset: true,
status_bar: true,
msg_filter: 'Filtering...'
};
var tf = new TableFilter('demo', filtersConfig);
var tf = new TableFilter(
document.querySelector('#demo'),
filtersConfig
);
tf.init();
</script>

View file

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>tablefilter v0.0.7 - Columns Visibility Extension Demo</title>
<title>tablefilter v0.0.8 - Columns Visibility Extension Demo</title>
<link rel="stylesheet" type="text/css" href="../dist/tablefilter/style/tablefilter.css">
<style type="text/css">
body{
@ -28,7 +28,7 @@
<link rel="stylesheet" type="text/css" href="../dist/tablefilter/style/colsVisibility.css">
</head>
<body>
<h1>tablefilter v0.0.7</h1>
<h1>tablefilter v0.0.8</h1>
<h2>Columns visibility extension demo</h2>
<p>
This demo features the columns visibility extension.

View file

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>tablefilter v0.0.7 - Data types Demo</title>
<title>tablefilter v0.0.8 - Data types Demo</title>
<link rel="stylesheet" type="text/css" href="../dist/tablefilter/style/tablefilter.css">
<style type="text/css">
body{
@ -27,7 +27,7 @@
</style>
</head>
<body>
<h1>tablefilter v0.0.7</h1>
<h1>tablefilter v0.0.8</h1>
<h2>Data types demo</h2>
<p>This example features 3 date types and 2 numeric formatting for the currency

View file

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>tablefilter v0.0.7 - Demo</title>
<title>tablefilter v0.0.8 - Demo</title>
<link rel="stylesheet" type="text/css" href="../dist/tablefilter/style/tablefilter.css">
<style type="text/css">
body{
@ -27,7 +27,7 @@
</style>
</head>
<body>
<h1>tablefilter v0.0.7</h1>
<h1>tablefilter v0.0.8</h1>
<pre></pre>

View file

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>tablefilter v0.0.7 - Filters Visibility Extension Demo</title>
<title>tablefilter v0.0.8 - Filters Visibility Extension Demo</title>
<link rel="stylesheet" type="text/css" href="../dist/tablefilter/style/tablefilter.css">
<style type="text/css">
body{
@ -27,7 +27,7 @@
</style>
</head>
<body>
<h1>tablefilter v0.0.7</h1>
<h1>tablefilter v0.0.8</h1>
<h2>Filters visibility extension demo</h2>
<p>
This demo features the filters visibility extension.

View file

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>tablefilter v0.0.7 - External Filters Demo</title>
<title>tablefilter v0.0.8 - External Filters Demo</title>
<link rel="stylesheet" type="text/css" href="../dist/tablefilter/style/tablefilter.css">
<style type="text/css">
body{
@ -27,7 +27,7 @@
</style>
</head>
<body>
<h1>tablefilter v0.0.7</h1>
<h1>tablefilter v0.0.8</h1>
<h2>External filters demo</h2>
<p>
This demo shows how generate the column filters in an external container.

View file

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>tablefilter v0.0.7 - Filter and Sort Images Demo</title>
<title>tablefilter v0.0.8 - Filter and Sort Images Demo</title>
<link rel="stylesheet" type="text/css" href="../dist/tablefilter/style/tablefilter.css">
<style type="text/css">
body{
@ -27,7 +27,7 @@
</style>
</head>
<body>
<h1>tablefilter v0.0.7</h1>
<h1>tablefilter v0.0.8</h1>
<h2>Filter and sort images demo</h2>
<p>
This demo shows how to filter and sort a column containing images by using

View file

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>tablefilter v0.0.7 - Filters Visibility Extension Demo</title>
<title>tablefilter v0.0.8 - Filters Visibility Extension Demo</title>
<link rel="stylesheet" type="text/css" href="../dist/tablefilter/style/tablefilter.css">
<style type="text/css">
body{
@ -27,7 +27,7 @@
</style>
</head>
<body>
<h1>tablefilter v0.0.7</h1>
<h1>tablefilter v0.0.8</h1>
<h2>Filters visibility extension demo</h2>
<p>
This demo features the filters visibility extension.

View file

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>tablefilter v0.0.7 - Grid Layout Demo</title>
<title>tablefilter v0.0.8 - Grid Layout Demo</title>
<link rel="stylesheet" type="text/css" href="../dist/tablefilter/style/tablefilter.css">
<style type="text/css">
body{
@ -27,7 +27,7 @@
</style>
</head>
<body>
<h1>tablefilter v0.0.7</h1>
<h1>tablefilter v0.0.8</h1>
<h2>Grid layout demo</h2>
<pre></pre>

View file

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>tablefilter v0.0.7 - Grouped Headers Demo</title>
<title>tablefilter v0.0.8 - Grouped Headers Demo</title>
<link rel="stylesheet" type="text/css" href="../dist/tablefilter/style/tablefilter.css">
<style type="text/css">
body{
@ -27,7 +27,7 @@
</style>
</head>
<body>
<h1>tablefilter v0.0.7</h1>
<h1>tablefilter v0.0.8</h1>
<h2>Grouped headers demo</h2>
<p>
With grouped and/or multi-line headers, to place the filters row at desired

View file

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>tablefilter v0.0.7 - Linked filters Demo</title>
<title>tablefilter v0.0.8 - Linked filters Demo</title>
<link rel="stylesheet" type="text/css" href="../dist/tablefilter/style/tablefilter.css">
<style type="text/css">
body{
@ -27,7 +27,7 @@
</style>
</head>
<body>
<h1>tablefilter v0.0.7</h1>
<h1>tablefilter v0.0.8</h1>
<h2>Linked filters with disabled options demo</h2>
<p>
This demo features the refresh filters behaviour. In this mode, the

View file

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>tablefilter v0.0.7 - Linked filters Demo</title>
<title>tablefilter v0.0.8 - Linked filters Demo</title>
<link rel="stylesheet" type="text/css" href="../dist/tablefilter/style/tablefilter.css">
<style type="text/css">
body{
@ -27,7 +27,7 @@
</style>
</head>
<body>
<h1>tablefilter v0.0.7</h1>
<h1>tablefilter v0.0.8</h1>
<h2>Linked filters demo</h2>
<p>
This demo features the linked filters behaviour. In this mode, the drop-down

View file

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>tablefilter v0.0.7 - Load filters on demand Demo</title>
<title>tablefilter v0.0.8 - Load filters on demand Demo</title>
<link rel="stylesheet" type="text/css" href="../dist/tablefilter/style/tablefilter.css">
<style type="text/css">
body{
@ -27,7 +27,7 @@
</style>
</head>
<body>
<h1>tablefilter v0.0.7</h1>
<h1>tablefilter v0.0.8</h1>
<h2>Load filters on demand demo</h2>
<p>
The filter options are loaded only when used for the first time.

View file

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>tablefilter v0.0.7 - Pagination Demo</title>
<title>tablefilter v0.0.8 - Pagination Demo</title>
<link rel="stylesheet" type="text/css" href="../dist/tablefilter/style/tablefilter.css">
<style type="text/css">
body{
@ -42,7 +42,7 @@
</style>
</head>
<body>
<h1>tablefilter v0.0.7</h1>
<h1>tablefilter v0.0.8</h1>
<h2>Pagination demo</h2>
<pre></pre>

View file

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>tablefilter v0.0.7 - Development workflow with RequireJs</title>
<title>tablefilter v0.0.8 - Development workflow with RequireJs</title>
<link rel="stylesheet" type="text/css" href="../dist/tablefilter/style/tablefilter.css">
<style type="text/css">
body{
@ -27,7 +27,7 @@
</style>
</head>
<body>
<h1>tablefilter v0.0.7</h1>
<h1>tablefilter v0.0.8</h1>
<h2>Development workflow with RequireJs</h2>
<p>
To take advantage of the RequireJs development workflow use the

View file

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>tablefilter v0.0.7 - RequireJs demo</title>
<title>tablefilter v0.0.8 - RequireJs demo</title>
<link rel="stylesheet" type="text/css" href="../dist/tablefilter/style/tablefilter.css">
<style type="text/css">
body{
@ -27,7 +27,7 @@
</style>
</head>
<body>
<h1>tablefilter v0.0.7</h1>
<h1>tablefilter v0.0.8</h1>
<h2>RequireJs Demo</h2>
<pre></pre>

View file

@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>tablefilter v0.0.7 - Theme Roller Demo</title>
<title>tablefilter v0.0.8 - Theme Roller Demo</title>
<link rel="stylesheet" type="text/css" href="../dist/tablefilter/style/tablefilter.css">
<style type="text/css">
body{
@ -27,7 +27,7 @@
</style>
</head>
<body>
<h1>tablefilter v0.0.7</h1>
<h1>tablefilter v0.0.8</h1>
<h2>Theme roller demo</h2>
<p>
This demo shows how to implement a theme roller.

4
dist/starter.html vendored
View file

@ -1,10 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>tablefilter v0.0.7 - Starter</title>
<title>tablefilter v0.0.8 - Starter</title>
</head>
<body>
<h1>tablefilter v0.0.7</h1>
<h1>tablefilter v0.0.8</h1>

View file

@ -1,6 +1,6 @@
/**
* tablefilter v0.0.7 by Max Guglielmi
* build date: 2015-10-28T07:06:19.393Z
* tablefilter v0.0.8 by Max Guglielmi
* build date: 2015-10-31T07:56:35.126Z
* 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}

View file

@ -1,6 +1,6 @@
/**
* tablefilter v0.0.7 by Max Guglielmi
* build date: 2015-10-28T07:06:19.393Z
* tablefilter v0.0.8 by Max Guglielmi
* build date: 2015-10-31T07:56:35.126Z
* 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}

View file

@ -1,6 +1,6 @@
/**
* tablefilter v0.0.7 by Max Guglielmi
* build date: 2015-10-28T07:06:19.393Z
* tablefilter v0.0.8 by Max Guglielmi
* build date: 2015-10-31T07:56:35.126Z
* MIT License
*/
.activeHeader{background-color:#66afe9 !important;color:#fff !important}

View file

@ -1,6 +1,6 @@
/**
* tablefilter v0.0.7 by Max Guglielmi
* build date: 2015-10-28T07:06:19.393Z
* tablefilter v0.0.8 by Max Guglielmi
* build date: 2015-10-31T07:56:35.126Z
* MIT License
*/
table.TF{border-left:1px solid #ccc !important;border-top:none !important;border-right:none !important;border-bottom:none !important;}table.TF th{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;color:#333 !important}table.TF td{border-bottom:1px dotted #999 !important;padding:5px !important}.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}

View file

@ -1,6 +1,6 @@
/**
* tablefilter v0.0.7 by Max Guglielmi
* build date: 2015-10-28T07:06:19.393Z
* tablefilter v0.0.8 by Max Guglielmi
* build date: 2015-10-31T07:56:35.126Z
* MIT License
*/
table.TF{border-left:1px dotted #81963b !important;border-top:none !important;border-right:0 !important;border-bottom:none !important;}table.TF th{background:#39424b url("images/bg_headers.jpg") left top repeat-x !important;border-bottom:0 !important;border-right:1px dotted #d0d0d0 !important;border-left:0 !important;border-top:0 !important;color:#fff !important}table.TF td{border-bottom:1px dotted #81963b;border-right:1px dotted #81963b;padding:5px !important}.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}

View file

@ -1,6 +1,6 @@
/**
* tablefilter v0.0.7 by Max Guglielmi
* build date: 2015-10-28T07:06:19.393Z
* tablefilter v0.0.8 by Max Guglielmi
* build date: 2015-10-31T07:56:35.126Z
* 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}

File diff suppressed because one or more lines are too long

View file

@ -1,6 +1,6 @@
/**
* tablefilter v0.0.7 by Max Guglielmi
* build date: 2015-10-28T07:06:19.325Z
* tablefilter v0.0.8 by Max Guglielmi
* build date: 2015-10-31T07:56:35.059Z
* MIT License
*/

View file

@ -1,6 +1,6 @@
{
"name": "tablefilter",
"version": "0.0.7",
"version": "0.0.8",
"description": "A Javascript library making HTML tables filterable and a bit more",
"license": "MIT",
"author": {

View file

@ -30,20 +30,20 @@ var global = window,
export class TableFilter{
/**
* TF object constructor
* TableFilter object constructor
* requires `table` or `id` arguments, `row` and `configuration` optional
* @param {DOMElement} table Table DOM element
* @param {String} id Table id
* @param {Number} row index indicating the 1st row
* @param {Object} configuration object
*
* TODO: Accept a TABLE element or query selectors
*/
constructor(id) {
if(arguments.length === 0){ return; }
constructor(...args) {
if(args.length === 0){ return; }
this.id = id;
this.id = null;
this.version = '{VERSION}';
this.year = new Date().getFullYear();
this.tbl = Dom.id(id);
this.tbl = null;
this.startRow = null;
this.refRow = null;
this.headersRow = null;
@ -52,33 +52,33 @@ export class TableFilter{
this.nbRows = null;
this.nbCells = null;
this._hasGrid = false;
this.enableModules = false;
// TODO: use for-of with babel plug-in
args.forEach((arg)=> {
let argtype = typeof arg;
if(argtype === 'object' && arg && arg.nodeName === 'TABLE'){
this.tbl = arg;
this.id = arg.id || `tf_${new Date().getTime()}_`;
} else if(argtype === 'string'){
this.id = arg;
this.tbl = Dom.id(arg);
} else if(argtype === 'number'){
this.startRow = arg;
} else if(argtype === 'object'){
this.cfg = arg;
}
});
if(!this.tbl || this.tbl.nodeName != 'TABLE' || this.getRowsNb() === 0){
throw new Error(
'Could not instantiate TableFilter: HTML table not found.');
}
if(arguments.length > 1){
for(let i=0, len=arguments.length; i<len; i++){
let arg = arguments[i];
let argtype = typeof arg;
switch(Str.lower(argtype)){
case 'number':
this.startRow = arg;
break;
case 'object':
this.cfg = arg;
break;
}
}
}
// configuration object
let f = this.cfg;
//Start row et cols nb
this.refRow = this.startRow===null ? 2 : (this.startRow+1);
this.refRow = this.startRow === null ? 2 : (this.startRow+1);
try{ this.nbCells = this.getCellsNb(this.refRow); }
catch(e){ this.nbCells = this.getCellsNb(0); }
@ -95,7 +95,7 @@ export class TableFilter{
/*** filters' grid properties ***/
//enables/disables filter grid
this.fltGrid = f.grid===false ? false : true;
this.fltGrid = f.grid === false ? false : true;
//enables/disables grid layout (fixed headers)
this.gridLayout = Boolean(f.grid_layout);
@ -103,7 +103,7 @@ export class TableFilter{
this.filtersRowIndex = isNaN(f.filters_row_index) ?
0 : f.filters_row_index;
this.headersRow = isNaN(f.headers_row_index) ?
(this.filtersRowIndex===0 ? 1 : 0) : f.headers_row_index;
(this.filtersRowIndex === 0 ? 1 : 0) : f.headers_row_index;
if(this.gridLayout){
if(this.headersRow > 1){

View file

@ -25,13 +25,16 @@
remember_grid_values: true,
alternate_rows: true,
rows_counter: true,
rows_counter_text: "Rows: ",
rows_counter_text: 'Rows: ',
btn_reset: true,
status_bar: true,
msg_filter: 'Filtering...'
};
var tf = new TableFilter('demo', filtersConfig);
var tf = new TableFilter(
document.querySelector('#demo'),
filtersConfig
);
tf.init();
</script>

View file

@ -69,6 +69,67 @@
</tbody>
</table>
<table class="test">
<tbody>
<tr>
<th>From</th>
<th>Destination</th>
<th>Road Distance (km)</th>
<th>By Air (hrs)</th>
<th>By Rail (hrs)</th>
</tr>
<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.js"></script>

View file

@ -5,17 +5,44 @@
});
tf.init();
module("Sanity checks");
module("Table 1: sanity checks");
test("TableFilter object", function() {
equal(tf.id, 'demo', 'id check');
equal(tf.filtersRowIndex, 0, 'Filters row index');
deepEqual(tf.getCellsNb(), 5, 'filters type collection length');
});
module('DOM tests');
module('Table 1: DOM tests');
test('Filters row', function() {
equal(tf.tbl.rows[0].className, 'fltrow', 'Filters row CSS class name');
equal(tf.getFilterElement(0).nodeName, 'INPUT', 'Filter DOM element');
});
var tf1 = new TableFilter(
document.querySelector('.test'),
{
base_path: '../dist/tablefilter/',
filters_row_index: 1
}
);
tf1.init();
module("Table 2: sanity checks");
test("TableFilter object", function() {
notEqual(tf1.id, null, 'id check');
equal(tf1.filtersRowIndex, 1, 'Filters row index');
deepEqual(tf1.getCellsNb(), 5, 'filters type collection length');
});
module('Table 2: DOM tests');
test('Filters row', function() {
equal(
tf1.tbl.rows[1].className,
'fltrow',
'Filters row CSS class name'
);
equal(tf1.getFilterElement(0).nodeName, 'INPUT', 'Filter DOM element');
});
})(window, TableFilter);