mirror of
https://github.com/Mottie/tablesorter.git
synced 2024-12-05 05:04:20 +00:00
ColumnSelector: add columnSelector_cssChecked option
This commit is contained in:
parent
9b3ab1ba07
commit
2e8add1072
@ -132,7 +132,11 @@
|
|||||||
// data attribute containing column priority
|
// data attribute containing column priority
|
||||||
// duplicates how jQuery mobile uses priorities:
|
// duplicates how jQuery mobile uses priorities:
|
||||||
// http://view.jquerymobile.com/1.3.2/dist/demos/widgets/table-column-toggle/
|
// http://view.jquerymobile.com/1.3.2/dist/demos/widgets/table-column-toggle/
|
||||||
columnSelector_priority : 'data-priority'
|
columnSelector_priority : 'data-priority',
|
||||||
|
|
||||||
|
// class name added to checked checkboxes - this fixes an issue with Chrome not updating FontAwesome
|
||||||
|
// applied icons; use this class name (input.checked) instead of input:checked
|
||||||
|
columnSelector_cssChecked : 'checked'
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -178,6 +182,7 @@
|
|||||||
<h3><a href="#">Notes</a></h3>
|
<h3><a href="#">Notes</a></h3>
|
||||||
<div>
|
<div>
|
||||||
<ul>
|
<ul>
|
||||||
|
<li>In <span class="version">v2.18.4</span>, added <code>columnSelector_cssChecked</code> option which contains the class name added to checked inputs. This helps fix an issue in Chrome that rears it's ugly head when trying to use <code>input:checked</code> to change a Font Awesome icon. See <a href="http://jsfiddle.net/2tu38gez">this demo</a> by TheSin which uses this option to change the checkbox style.</li>
|
||||||
<li>
|
<li>
|
||||||
In <span class="version">v2.17.0</span>, a method to refresh the column selector was added.<br>
|
In <span class="version">v2.17.0</span>, a method to refresh the column selector was added.<br>
|
||||||
<br>
|
<br>
|
||||||
@ -201,11 +206,11 @@
|
|||||||
<div>
|
<div>
|
||||||
<h4>Column selector widget default options (added inside of tablesorter <code>widgetOptions</code>)</h4>
|
<h4>Column selector widget default options (added inside of tablesorter <code>widgetOptions</code>)</h4>
|
||||||
<div>
|
<div>
|
||||||
<span class="label label-info">TIP!</span> Click on the link in the function column to reveal full details (or <a href="#" class="toggleAll">toggle</a>|<a href="#" class="showAll">show</a>|<a href="#" class="hideAll">hide</a> all) or double click to update the browser location.
|
<span class="label label-info">TIP!</span> Click on the link in the "Option" column to reveal full details (or <a href="#" class="toggleAll">toggle</a>|<a href="#" class="showAll">show</a>|<a href="#" class="hideAll">hide</a> all) or double click to update the browser location.
|
||||||
</div>
|
</div>
|
||||||
<table class="options tablesorter-blue" data-sortlist="[[0,0]]">
|
<table class="options tablesorter-blue" data-sortlist="[[0,0]]">
|
||||||
<thead>
|
<thead>
|
||||||
<tr><th>Option</th><th class="sorter-false">Description</th></tr>
|
<tr><th width="5%">Option</th><th class="sorter-false">Description</th></tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
|
||||||
@ -301,7 +306,7 @@
|
|||||||
<li>If the header cell does not have this attribute defined, the column selector name will be taken from the header cell internal text.</li>
|
<li>If the header cell does not have this attribute defined, the column selector name will be taken from the header cell internal text.</li>
|
||||||
<li>If defined, the text contained within this attribute will replace the <code>{name}</code> string within the layout option above.</li>
|
<li>If defined, the text contained within this attribute will replace the <code>{name}</code> string within the layout option above.</li>
|
||||||
</ul>
|
</ul>
|
||||||
Default value: <code>"data-selector-name"</code>
|
Default value: <code>'data-selector-name'</code>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -323,7 +328,7 @@
|
|||||||
<br>
|
<br>
|
||||||
Set as "Auto" to signify to the user that columns disappearing and/or reappearing is automatically done.<br>
|
Set as "Auto" to signify to the user that columns disappearing and/or reappearing is automatically done.<br>
|
||||||
<br>
|
<br>
|
||||||
Default value: <code>"Auto: "</code>
|
Default value: <code>'Auto: '</code>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -365,11 +370,27 @@
|
|||||||
<li>Any named priority value, (e.g. "critical" or "persistent") will flag the widget to remove that column from the selector list.</li>
|
<li>Any named priority value, (e.g. "critical" or "persistent") will flag the widget to remove that column from the selector list.</li>
|
||||||
<li>Undefined priorities will default to a priority value of 1.</li>
|
<li>Undefined priorities will default to a priority value of 1.</li>
|
||||||
</ul>
|
</ul>
|
||||||
Default value: <code>"data-priority"</code>
|
Default value: <code>'data-priority'</code>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
<tr id="column-selector-css-checked">
|
||||||
|
<td><a href="#" class="permalink">columnSelector_cssChecked</a></td>
|
||||||
|
<td>
|
||||||
|
This class name is added to the input checkbox when it is checked
|
||||||
|
<div class="collapsible">
|
||||||
|
<br>
|
||||||
|
This was added because we found an issue in the latest version of Chrome where the css selector <code>input:checked</code> was not correctly modifying the displayed Font Awesome replacement icon when the checkbox was toggled.<br>
|
||||||
|
<br>
|
||||||
|
Use <code>input.checked</code> (or whatever value setting this class name option contains to get around this issue). See <a href="http://jsfiddle.net/2tu38gez">this demo</a> by TheSin which uses this option to change the checkbox style.<br>
|
||||||
|
<br>
|
||||||
|
Default value: <code>'checked'</code>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
@ -103,6 +103,7 @@ tsColSel = ts.columnSelector = {
|
|||||||
// input may not be wrapped within the layout template
|
// input may not be wrapped within the layout template
|
||||||
.find('input').add( colSel.$wrapper[colId].filter('input') )
|
.find('input').add( colSel.$wrapper[colId].filter('input') )
|
||||||
.attr('data-column', colId)
|
.attr('data-column', colId)
|
||||||
|
.toggleClass( wo.columnSelector_cssChecked, colSel.states[colId] )
|
||||||
.prop('checked', colSel.states[colId])
|
.prop('checked', colSel.states[colId])
|
||||||
.on('change', function(){
|
.on('change', function(){
|
||||||
colSel.states[colId] = this.checked;
|
colSel.states[colId] = this.checked;
|
||||||
@ -138,6 +139,7 @@ tsColSel = ts.columnSelector = {
|
|||||||
.find('input').add( colSel.$auto.filter('input') )
|
.find('input').add( colSel.$auto.filter('input') )
|
||||||
.attr('data-column', 'auto')
|
.attr('data-column', 'auto')
|
||||||
.prop('checked', colSel.auto)
|
.prop('checked', colSel.auto)
|
||||||
|
.toggleClass( wo.columnSelector_cssChecked, colSel.auto )
|
||||||
.on('change', function(){
|
.on('change', function(){
|
||||||
colSel.auto = this.checked;
|
colSel.auto = this.checked;
|
||||||
$.each( colSel.$checkbox, function(i, $cb){
|
$.each( colSel.$checkbox, function(i, $cb){
|
||||||
@ -225,6 +227,7 @@ tsColSel = ts.columnSelector = {
|
|||||||
styles.push(prefix + ' tr th:nth-child(' + column + ')');
|
styles.push(prefix + ' tr th:nth-child(' + column + ')');
|
||||||
styles.push(prefix + ' tr td:nth-child(' + column + ')');
|
styles.push(prefix + ' tr td:nth-child(' + column + ')');
|
||||||
}
|
}
|
||||||
|
$(this).toggleClass( wo.columnSelector_cssChecked, this.checked );
|
||||||
});
|
});
|
||||||
if (wo.columnSelector_mediaquery){
|
if (wo.columnSelector_mediaquery){
|
||||||
colSel.$breakpoints.prop('disabled', true);
|
colSel.$breakpoints.prop('disabled', true);
|
||||||
@ -253,12 +256,13 @@ tsColSel = ts.columnSelector = {
|
|||||||
$popup.find('.tablesorter-column-selector')
|
$popup.find('.tablesorter-column-selector')
|
||||||
.html( colSel.$container.html() )
|
.html( colSel.$container.html() )
|
||||||
.find('input').each(function(){
|
.find('input').each(function(){
|
||||||
var indx = $(this).attr('data-column');
|
var isChecked = indx === 'auto' ? colSel.auto : colSel.states[indx],
|
||||||
$(this).prop( 'checked', indx === 'auto' ? colSel.auto : colSel.states[indx] );
|
indx = $(this).toggleClass( wo.columnSelector_cssChecked, isChecked ).attr('data-column');
|
||||||
|
$(this).prop( 'checked', isChecked );
|
||||||
});
|
});
|
||||||
colSel.$popup = $popup.on('change', 'input', function(){
|
colSel.$popup = $popup.on('change', 'input', function(){
|
||||||
// data input
|
// data input
|
||||||
indx = $(this).attr('data-column');
|
indx = $(this).toggleClass( wo.columnSelector_cssChecked, this.checked ).attr('data-column');
|
||||||
// update original popup
|
// update original popup
|
||||||
colSel.$container.find('input[data-column="' + indx + '"]')
|
colSel.$container.find('input[data-column="' + indx + '"]')
|
||||||
.prop('checked', this.checked)
|
.prop('checked', this.checked)
|
||||||
@ -300,7 +304,10 @@ ts.addWidget({
|
|||||||
// data attribute containing column priority
|
// data attribute containing column priority
|
||||||
// duplicates how jQuery mobile uses priorities:
|
// duplicates how jQuery mobile uses priorities:
|
||||||
// http://view.jquerymobile.com/1.3.2/dist/demos/widgets/table-column-toggle/
|
// http://view.jquerymobile.com/1.3.2/dist/demos/widgets/table-column-toggle/
|
||||||
columnSelector_priority : 'data-priority'
|
columnSelector_priority : 'data-priority',
|
||||||
|
// class name added to checked checkboxes - this fixes an issue with Chrome not updating FontAwesome
|
||||||
|
// applied icons; use this class name (input.checked) instead of input:checked
|
||||||
|
columnSelector_cssChecked : 'checked'
|
||||||
|
|
||||||
},
|
},
|
||||||
init: function(table, thisWidget, c, wo) {
|
init: function(table, thisWidget, c, wo) {
|
||||||
|
Loading…
Reference in New Issue
Block a user