UNPKG

alpaca

Version:

Alpaca provides the easiest and fastest way to generate interactive forms for the web and mobile devices. It runs simply as HTML5 or more elaborately using Bootstrap, jQuery Mobile or jQuery UI. Alpaca uses Handlebars to process JSON schema and provide

52 lines (48 loc) 1.67 kB
/** * 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().to$().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 ); } );