Sha256: 67f1f9a77a8dba0ed892d6aaa9722a123e5f147241524e9dfa7e3cfb717cc3c9

Contents?: true

Size: 1.64 KB

Versions: 3

Compression:

Stored size: 1.64 KB

Contents

/**
 * Fairly simply, this plug-in will take the data from an API result set
 * and sum it, returning the summed value. The data can come from any data
 * source, including column data, cells or rows.
 *
 * Note that it will attempt to 'deformat' any string based data that is passed
 * into it - i.e. it will strip any non-numeric characters in order to make a
 * best effort attempt to sum all data types. This can be useful when working
 * with formatting numbers such as currency. However the trade-off is that no
 * error is thrown if non-numeric data is passed in. You should be aware of this
 * in case unexpected values are returned - likely the input data is not what is
 * expected.
 *
 *  @name sum()
 *  @summary Sum the values in a data set.
 *  @author [Allan Jardine](http://sprymedia.co.uk)
 *  @requires DataTables 1.10+
 *
 *  @returns {Number} Summed value
 *
 *  @example
 *    // Simply get the sum of a column
 *    var table = $('#example').DataTable();
 *    table.column( 3 ).data().sum();
 *
 *  @example
 *    // Insert the sum of a column into the columns footer, for the visible
 *    // data on each draw
 *    $('#example').DataTable( {
 *      drawCallback: function () {
 *        var api = this.api();
 *        $( api.table().footer() ).html(
 *          api.column( 4, {page:'current'} ).data().sum()
 *        );
 *      }
 *    } );
 */

jQuery.fn.dataTable.Api.register( 'sum()', function ( ) {
  return this.flatten().reduce( function ( a, b ) {
    if ( typeof a === 'string' ) {
      a = a.replace(/[^\d.-]/g, '') * 1;
    }
    if ( typeof b === 'string' ) {
      b = b.replace(/[^\d.-]/g, '') * 1;
    }

    return a + b;
  }, 0 );
} );

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
jquery-datatables-1.10.19.1 app/assets/javascripts/datatables/plugins/api/sum.js
jquery-datatables-1.10.19 app/assets/javascripts/datatables/plugins/api/sum.js
jquery-datatables-1.10.18 app/assets/javascripts/datatables/plugins/api/sum.js