mirror of
https://github.com/Mottie/tablesorter.git
synced 2024-10-08 13:44:18 +00:00
Output: add output_ignoreColumns option. Fixes #607
This commit is contained in:
parent
346587f4bc
commit
41be62bb32
@ -119,6 +119,7 @@
|
||||
filter_reset : demos[groupIndex] + ' .reset',
|
||||
|
||||
output_separator : ',', // ',' 'json', 'array' or separator (e.g. ',')
|
||||
output_ignoreColumns: [], // columns to ignore [0, 1,... ] (zero-based index)
|
||||
output_dataAttrib : 'data-name', // data-attribute containing alternate cell text
|
||||
output_headerRows : true, // output all header rows (multiple rows)
|
||||
output_delivery : 'p', // (p)opup, (d)ownload
|
||||
@ -223,6 +224,7 @@
|
||||
<h3><a href="#">Notes</a></h3>
|
||||
<div>
|
||||
<ul>
|
||||
<li>In <span class="version">v2.16.5</span>, added the <code>output_ignoreColumns</code> option.</li>
|
||||
<li>In <span class="version">v2.16.4</span>, added the <code>output_encoding</code> option.<br><br></li>
|
||||
<li>This widget will <strong>only work</strong> in tablesorter version 2.8+ and jQuery version 1.7+.</li>
|
||||
<li>This widget can output the table data to:
|
||||
@ -397,6 +399,20 @@ line,value1,value2,value3
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="output_ignorecolumns">
|
||||
<td><a href="#" class="permalink">output_ignoreColumns</a></td>
|
||||
<td><code>[ ]</code></td>
|
||||
<td>
|
||||
Add the zero-based column index to this array to ignore specific columns (<span class="version">v2.16.5</span>)
|
||||
<div class="collapsible">
|
||||
<br>
|
||||
For example, to use this option to hide the first column, set it as follows:
|
||||
<pre class="prettyprint lang-js">output_ignoreColumns : [ 0 ]</pre>
|
||||
<br>
|
||||
<span class="label label-info">Note</span> This option will work properly with tables that contain rowspans & colspans.
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="output_dataattrib">
|
||||
<td><a href="#" class="permalink">output_dataAttrib</a></td>
|
||||
<td><code>'data-name'</code></td>
|
||||
|
@ -488,7 +488,7 @@
|
||||
<li><a href="example-widget-header-titles.html">Header titles widget</a> (v2.15.6; <span class="version updated">2.15.7</span>)</li>
|
||||
<li><span class="label label-info">Beta</span> <a href="example-widget-math.html">Math widget</a> (<span class="version">v2.16</span>; <span class="version updated">v2.16.2</span>).</li>
|
||||
<li>
|
||||
<span class="label label-info">Beta</span> <a href="example-widget-output.html">Output widget</a> (<span class="version">v2.16</span>)
|
||||
<span class="label label-info">Beta</span> <a href="example-widget-output.html">Output widget</a> (<span class="version">v2.16</span>; <span class="version updated">v2.16.5</span>)
|
||||
<br><br>
|
||||
</li>
|
||||
|
||||
|
@ -91,6 +91,16 @@ output = ts.output = {
|
||||
return tmpRow;
|
||||
},
|
||||
|
||||
ignoreColumns : function(wo, data) {
|
||||
// ignore columns -> remove data from built array (because we've already processed any rowspan/colspan)
|
||||
$.each( data, function(indx, val){
|
||||
data[indx] = $.grep(val, function(v, cellIndx){
|
||||
return $.inArray(cellIndx, wo.output_ignoreColumns) < 0;
|
||||
});
|
||||
});
|
||||
return data;
|
||||
},
|
||||
|
||||
process : function(c, wo) {
|
||||
var mydata, $this, $rows, headers, csvData, len,
|
||||
hasStringify = window.JSON && JSON.hasOwnProperty('stringify'),
|
||||
@ -117,23 +127,30 @@ output = ts.output = {
|
||||
csvData = output.processRow(c, $rows);
|
||||
len = headers.length;
|
||||
|
||||
if (wo.output_ignoreColumns.length) {
|
||||
headers = output.ignoreColumns(wo, headers);
|
||||
csvData = output.ignoreColumns(wo, csvData);
|
||||
}
|
||||
|
||||
if (outputJSON) {
|
||||
tmpData = [];
|
||||
$.each( csvData, function(indx, val){
|
||||
// multiple header rows & output_headerRows = true, pick the last row...
|
||||
tmpData.push( output.row2Hash( headers[ (len > 1 && wo.output_headerRows) ? indx % len : len - 1], val ) );
|
||||
});
|
||||
|
||||
// requires JSON stringify; if it doesn't exist, the output will show [object Object],... in the output window
|
||||
mydata = hasStringify ? JSON.stringify(tmpData) : tmpData;
|
||||
} else {
|
||||
tmpData = output.row2CSV(wo, wo.output_headerRows ? headers : [ headers[ (len > 1 && wo.output_headerRows) ? indx % len : len - 1] ], outputArray)
|
||||
.concat( output.row2CSV(wo, csvData, outputArray) );
|
||||
|
||||
// stringify the array; if stringify doesn't exist the array will be flattened
|
||||
mydata = outputArray && hasStringify ? JSON.stringify(tmpData) : tmpData.join('\n');
|
||||
}
|
||||
|
||||
// callback; if true returned, continue processing
|
||||
if (!wo.output_callback(mydata)) { return; }
|
||||
if ($.isFunction(wo.output_callback) && !wo.output_callback(mydata)) { return; }
|
||||
|
||||
if ( /p/.test( (wo.output_delivery || '').toLowerCase() ) ) {
|
||||
output.popup(mydata, wo.output_popupStyle, outputJSON || outputArray);
|
||||
@ -242,6 +259,7 @@ ts.addWidget({
|
||||
id: "output",
|
||||
options: {
|
||||
output_separator : ',', // set to "json", "array" or any separator
|
||||
output_ignoreColumns: [], // columns to ignore [0, 1,... ] (zero-based index)
|
||||
output_dataAttrib : 'data-name', // header attrib containing modified header name
|
||||
output_headerRows : false, // if true, include multiple header rows (JSON only)
|
||||
output_delivery : 'popup', // popup, download
|
||||
|
Loading…
Reference in New Issue
Block a user