diff --git a/media/js/jquery.dataTables.js b/media/js/jquery.dataTables.js
index 7616fb02..02bdd549 100644
--- a/media/js/jquery.dataTables.js
+++ b/media/js/jquery.dataTables.js
@@ -1173,14 +1173,10 @@
/* Create the object for storing information about this new row */
var iRow = oSettings.aoData.length;
- var oData = {
- "nTr": null,
+ var oData = $.extend( true, {}, DataTable.models.oRow, {
"_iId": oSettings.iNextId++,
- "_aData": aDataIn,
- "_aSortData": [],
- "_anHidden": [],
- "_sRowStripe": ""
- };
+ "_aData": aDataIn
+ } );
oSettings.aoData.push( oData );
/* Create the cells */
@@ -1260,14 +1256,10 @@
if ( nTrs[i].nodeName.toUpperCase() == "TR" )
{
iThisIndex = oSettings.aoData.length;
- oSettings.aoData.push( {
+ oSettings.aoData.push( $.extend( true, {}, DataTable.models.oRow, {
"nTr": nTrs[i],
- "_iId": oSettings.iNextId++,
- "_aData": [],
- "_aSortData": [],
- "_anHidden": [],
- "_sRowStripe": ''
- } );
+ "_iId": oSettings.iNextId++
+ } ) );
oSettings.aiDisplayMaster.push( iThisIndex );
nTds = nTrs[i].childNodes;
@@ -9181,12 +9173,72 @@
oClasses: null
};
- var modelRow = {
+
+
+
+ /**
+ * Template object for the way in which DataTables holds information about
+ * each indivudal row. This is the object format used for the settings
+ * aoData array.
+ * @namespace
+ */
+ DataTable.models.oRow = {
+ /**
+ * TR element for the row
+ * @type node
+ * @default null
+ */
"nTr": null,
+
+ /**
+ * Redundant - drop
+ * @type node
+ * @default null
+ */
"_iId": null,
- "_aData": null,
+
+ /**
+ * Data object from the original data sorce for the row. This is either
+ * an array if using the tranditional form of DataTables, or an object if
+ * using mDataProp options. The exact type will depend on the passed in
+ * data from the data source, or will be an array if using DOM a data
+ * source.
+ * @type array|object
+ * @default []
+ */
+ "_aData": [],
+
+ /**
+ * Sorting data cache - this array is obstensibily the same length as the
+ * number of columns (although each index is generated only as it is
+ * needed), and holds the data that is used for sorting each column in the
+ * row. We do this cache generation at the start of the sort in order that
+ * the formatting of the sort data need be done only once for each cell
+ * per sort. This array should not be read from or written to by anything
+ * other than the master sorting methods.
+ * @type array
+ * @default []
+ */
"_aSortData": [],
+
+ /**
+ * Array of TD elements that are cached for hidden rows, so they can be
+ * reinserted into the table if a column is made visible again (or to act
+ * as a store if a column is made hidden). Only hidden columns have a
+ * reference in the array. For non-hidden columns the value is either
+ * undefined or null.
+ * @type array nodes
+ * @default []
+ */
"_anHidden": [],
+
+ /**
+ * Cache of the class name that DataTables has applied to the row, so we
+ * can quickly look at this variable rather than needing to do a DOM check
+ * on className for the nTr property.
+ * @type string
+ * @default Empty string
+ */
"_sRowStripe": ""
};
var modelColumn = {
diff --git a/media/src/core/core.data.js b/media/src/core/core.data.js
index 41239587..96fef6fb 100644
--- a/media/src/core/core.data.js
+++ b/media/src/core/core.data.js
@@ -21,14 +21,10 @@ function _fnAddData ( oSettings, aDataSupplied )
/* Create the object for storing information about this new row */
var iRow = oSettings.aoData.length;
- var oData = {
- "nTr": null,
+ var oData = $.extend( true, {}, DataTable.models.oRow, {
"_iId": oSettings.iNextId++,
- "_aData": aDataIn,
- "_aSortData": [],
- "_anHidden": [],
- "_sRowStripe": ""
- };
+ "_aData": aDataIn
+ } );
oSettings.aoData.push( oData );
/* Create the cells */
@@ -108,14 +104,10 @@ function _fnGatherData( oSettings )
if ( nTrs[i].nodeName.toUpperCase() == "TR" )
{
iThisIndex = oSettings.aoData.length;
- oSettings.aoData.push( {
+ oSettings.aoData.push( $.extend( true, {}, DataTable.models.oRow, {
"nTr": nTrs[i],
- "_iId": oSettings.iNextId++,
- "_aData": [],
- "_aSortData": [],
- "_anHidden": [],
- "_sRowStripe": ''
- } );
+ "_iId": oSettings.iNextId++
+ } ) );
oSettings.aiDisplayMaster.push( iThisIndex );
nTds = nTrs[i].childNodes;
diff --git a/media/src/model/model.row.js b/media/src/model/model.row.js
index f5bbb544..37ac0fdb 100644
--- a/media/src/model/model.row.js
+++ b/media/src/model/model.row.js
@@ -1,8 +1,68 @@
-var modelRow = {
+
+
+
+/**
+ * Template object for the way in which DataTables holds information about
+ * each indivudal row. This is the object format used for the settings
+ * aoData array.
+ * @namespace
+ */
+DataTable.models.oRow = {
+ /**
+ * TR element for the row
+ * @type node
+ * @default null
+ */
"nTr": null,
+
+ /**
+ * Redundant - drop
+ * @type node
+ * @default null
+ */
"_iId": null,
- "_aData": null,
+
+ /**
+ * Data object from the original data sorce for the row. This is either
+ * an array if using the tranditional form of DataTables, or an object if
+ * using mDataProp options. The exact type will depend on the passed in
+ * data from the data source, or will be an array if using DOM a data
+ * source.
+ * @type array|object
+ * @default []
+ */
+ "_aData": [],
+
+ /**
+ * Sorting data cache - this array is obstensibily the same length as the
+ * number of columns (although each index is generated only as it is
+ * needed), and holds the data that is used for sorting each column in the
+ * row. We do this cache generation at the start of the sort in order that
+ * the formatting of the sort data need be done only once for each cell
+ * per sort. This array should not be read from or written to by anything
+ * other than the master sorting methods.
+ * @type array
+ * @default []
+ */
"_aSortData": [],
+
+ /**
+ * Array of TD elements that are cached for hidden rows, so they can be
+ * reinserted into the table if a column is made visible again (or to act
+ * as a store if a column is made hidden). Only hidden columns have a
+ * reference in the array. For non-hidden columns the value is either
+ * undefined or null.
+ * @type array nodes
+ * @default []
+ */
"_anHidden": [],
+
+ /**
+ * Cache of the class name that DataTables has applied to the row, so we
+ * can quickly look at this variable rather than needing to do a DOM check
+ * on className for the nTr property.
+ * @type string
+ * @default Empty string
+ */
"_sRowStripe": ""
-};
\ No newline at end of file
+};