src/cm/media/js/lib/yui/yui_3.10.3/build/datatable-mutable/datatable-mutable-debug.js
author gibus
Tue, 16 Jul 2013 14:29:46 +0200
changeset 525 89ef5ed3c48b
permissions -rw-r--r--
Upgrades to yui 3.10.3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     1
/*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     2
YUI 3.10.3 (build 2fb5187)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     3
Copyright 2013 Yahoo! Inc. All rights reserved.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     4
Licensed under the BSD License.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     5
http://yuilibrary.com/license/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     6
*/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     7
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     8
YUI.add('datatable-mutable', function (Y, NAME) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     9
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    10
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    11
Adds mutation convenience methods such as `table.addRow(data)` to `Y.DataTable`. (or other built class).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
@module datatable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
@submodule datatable-mutable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
@since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
**/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
var toArray = Y.Array,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
    YLang   = Y.Lang,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
    isString = YLang.isString,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
    isArray  = YLang.isArray,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
    isObject = YLang.isObject,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
    isNumber = YLang.isNumber,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
    arrayIndex = Y.Array.indexOf,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
    Mutable;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
_API docs for this extension are included in the DataTable class._
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
Class extension to add mutation convenience methods to `Y.DataTable` (or other
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
built class).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
Column mutation methods are paired with new custom events:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
 * addColumn
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
 * removeColumn
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
 * modifyColumn
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
 * moveColumn
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
Row mutation events are bubbled from the DataTable's `data` ModelList through
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
the DataTable instance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
@class DataTable.Mutable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
@for DataTable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
@since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
**/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
Y.namespace('DataTable').Mutable = Mutable = function () {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
Mutable.ATTRS = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
    Controls whether `addRow`, `removeRow`, and `modifyRow` should trigger the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
    underlying Model's sync layer by default.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
    When `true`, it is unnecessary to pass the "sync" configuration property to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
    those methods to trigger per-operation sync.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
    @attribute autoSync
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
    @type {Boolean}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
    @default `false`
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
    @since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
    autoSync: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
        value: false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
        validator: YLang.isBoolean
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
Y.mix(Mutable.prototype, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
    Adds the column configuration to the DataTable's `columns` configuration.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
    If the `index` parameter is supplied, it is injected at that index.  If the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
    table has nested headers, inject a subcolumn by passing an array of indexes
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
    to identify the new column's final location.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
    The `index` parameter is required if adding a nested column.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
    This method is a convienience method for fetching the DataTable's `columns`
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
    attribute, updating it, and calling
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
    `table.set('columns', _updatedColumnsDefs_)`
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
    For example:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
    <pre><code>// Becomes last column
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
    table.addColumn('name');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
    // Inserted after the current second column, moving the current third column
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
    // to index 4
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
    table.addColumn({ key: 'price', formatter: currencyFormatter }, 2 );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
    // Insert a new column in a set of headers three rows deep.  The index array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
    // translates to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
    // [ 2, --  in the third column's children
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
    //   1, --  in the second child's children
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
    //   3 ] -- as the fourth child column
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
    table.addColumn({ key: 'age', sortable: true }, [ 2, 1, 3 ]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
    </code></pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
    @method addColumn
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
    @param {Object|String} config The new column configuration object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
    @param {Number|Number[]} [index] the insertion index
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
    @return {DataTable}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
    @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
    @since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
    addColumn: function (config, index) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
        if (isString(config)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
            config = { key: config };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
        if (config) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
            if (arguments.length < 2 || (!isNumber(index) && !isArray(index))) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
                index = this.get('columns').length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
            this.fire('addColumn', {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
                column: config,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
                index: index
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
            });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
        return this;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
    Updates an existing column definition. Fires the `modifyColumn` event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
    For example:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
    <pre><code>// Add a formatter to the existing 'price' column definition
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
    table.modifyColumn('price', { formatter: currencyFormatter });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
    // Change the label on a header cell in a set of nested headers three rows
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
    // deep.  The index array translates to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
    // [ 2,  -- in the third column's children
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
    //   1,  -- the second child
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
    //   3 ] -- the fourth child column
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
    table.modifyColumn([2, 1, 3], { label: 'Experience' });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
    </code></pre>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
    @method modifyColumn
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
    @param {String|Number|Number[]|Object} name The column key, name, index, or
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
                current configuration object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
    @param {Object} config The new column configuration properties
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
    @return {DataTable}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
    @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
    @since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
    modifyColumn: function (name, config) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
        if (isString(config)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
            config = { key: config };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
        if (isObject(config)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
            this.fire('modifyColumn', {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
                column: name,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
                newColumnDef: config
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
            });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
        return this;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
    Moves an existing column to a new location. Fires the `moveColumn` event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
    The destination index can be a number or array of numbers to place a column
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
    header in a nested header row.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
    @method moveColumn
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
    @param {String|Number|Number[]|Object} name The column key, name, index, or
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
                current configuration object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
    @param {Number|Number[]} index The destination index of the column
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
    @return {DataTable}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
    @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
    @since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
    moveColumn: function (name, index) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
        if (name !== undefined && (isNumber(index) || isArray(index))) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
            this.fire('moveColumn', {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
                column: name,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
                index: index
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
            });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
        return this;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
    Removes an existing column. Fires the `removeColumn` event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   190
    @method removeColumn
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   191
    @param {String|Number|Number[]|Object} name The column key, name, index, or
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   192
                current configuration object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   193
    @return {DataTable}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
    @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
    @since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
    removeColumn: function (name) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
        if (name !== undefined) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
            this.fire('removeColumn', {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
                column: name
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
            });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
        return this;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
    Adds a new record to the DataTable's `data` ModelList.  Record data can be
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
    an object of field values or an instance of the DataTable's configured
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
    `recordType` class.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
    This relays all parameters to the `data` ModelList's `add` method.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
    If a configuration object is passed as a second argument, and that object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
    has `sync: true` set, the underlying Model will be `save()`d.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
    If the DataTable's `autoSync` attribute is set to `true`, the additional
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
    argument is not needed.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
    If syncing and the last argument is a function, that function will be used
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
    as a callback to the Model's `save()` method.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
    @method addRow
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
    @param {Object} data The data or Model instance for the new record
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
    @param {Object} [config] Configuration to pass along
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
    @param {Function} [callback] Callback function for Model's `save()`
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
      @param {Error|null} callback.err If an error occurred or validation
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
        failed, this parameter will contain the error. If the sync operation
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
        succeeded, _err_ will be `null`.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
      @param {Any} callback.response The server's response. This value will
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
        be passed to the `parse()` method, which is expected to parse it and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
        return an attribute hash.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
    @return {DataTable}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
    @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
    @since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
    addRow: function (data, config) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
        // Allow autoSync: true + addRow({ data }, { sync: false })
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
        var sync = (config && ('sync' in config)) ?
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
                config.sync :
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
                this.get('autoSync'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
            models, model, i, len, args;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
        if (data && this.data) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
            models = this.data.add.apply(this.data, arguments);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
            if (sync) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
                models = toArray(models);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
                args   = toArray(arguments, 1, true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
                for (i = 0, len = models.length; i < len; ++i) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
                    model = models[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
                    if (model.isNew()) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
                        models[i].save.apply(models[i], args);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   257
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   258
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   259
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   260
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   261
        return this;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   262
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   265
    Removes a record from the DataTable's `data` ModelList.  The record can be
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   266
    provided explicitly or targeted by it's `id` (see ModelList's `getById`
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   267
    method), `clientId`, or index in the ModelList.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   268
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   269
    After locating the target Model, this relays the Model and all other passed
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   270
    arguments to the `data` ModelList's `remove` method.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   271
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   272
    If a configuration object is passed as a second argument, and that object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   273
    has `sync: true` set, the underlying Model will be destroyed, passing
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   274
    `{ delete: true }` to trigger calling the Model's sync layer.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   275
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   276
    If the DataTable's `autoSync` attribute is set to `true`, the additional
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   277
    argument is not needed.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   278
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   279
    If syncing and the last argument is a function, that function will be used
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   280
    as a callback to the Model's `destroy()` method.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   281
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   282
    @method removeRow
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   283
    @param {Object|String|Number} id The Model instance or identifier
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   284
    @param {Object} [config] Configuration to pass along
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   285
    @param {Function} [callback] Callback function for Model's `save()`
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   286
      @param {Error|null} callback.err If an error occurred or validation
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   287
        failed, this parameter will contain the error. If the sync operation
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   288
        succeeded, _err_ will be `null`.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   289
      @param {Any} callback.response The server's response. This value will
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   290
        be passed to the `parse()` method, which is expected to parse it and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   291
        return an attribute hash.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   292
    @return {DataTable}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   293
    @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   294
    @since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   295
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   296
    removeRow: function (id, config) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   297
        var modelList = this.data,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   298
            // Allow autoSync: true + addRow({ data }, { sync: false })
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   299
            sync      = (config && ('sync' in config)) ?
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   300
                            config.sync :
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   301
                            this.get('autoSync'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   302
            models, model, i, len, args;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   303
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   304
        // TODO: support removing via DOM element. This should be relayed to View
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   305
        if (isObject(id) && id instanceof this.get('recordType')) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   306
            model = id;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   307
        } else if (modelList && id !== undefined) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   308
            model = modelList.getById(id) ||
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   309
                    modelList.getByClientId(id) ||
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   310
                    modelList.item(id);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   311
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   312
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   313
        if (model) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   314
            args = toArray(arguments, 1, true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   315
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   316
            models = modelList.remove.apply(modelList,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   317
                [model].concat(args));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   318
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   319
            if (sync) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   320
                if (!isObject(args[0])) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   321
                    args.unshift({});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   322
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   323
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   324
                args[0]['delete'] = true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   325
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   326
                models = toArray(models);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   327
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   328
                for (i = 0, len = models.length; i < len; ++i) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   329
                    model = models[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   330
                    model.destroy.apply(model, args);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   331
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   332
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   333
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   334
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   335
        return this;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   336
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   337
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   338
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   339
    Updates an existing record in the DataTable's `data` ModelList.  The record
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   340
    can be provided explicitly or targeted by it's `id` (see ModelList's
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   341
    `getById` method), `clientId`, or index in the ModelList.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   342
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   343
    After locating the target Model, this relays the all other passed
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   344
    arguments to the Model's `setAttrs` method.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   345
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   346
    If a configuration object is passed as a second argument, and that object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   347
    has `sync: true` set, the underlying Model will be `save()`d.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   348
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   349
    If the DataTable's `autoSync` attribute is set to `true`, the additional
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   350
    argument is not needed.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   351
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   352
    If syncing and the last argument is a function, that function will be used
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   353
    as a callback to the Model's `save()` method.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   354
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   355
    @method modifyRow
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   356
    @param {Object|String|Number} id The Model instance or identifier
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   357
    @param {Object} data New data values for the Model
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   358
    @param {Object} [config] Configuration to pass along to `setAttrs()`
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   359
    @param {Function} [callback] Callback function for Model's `save()`
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   360
      @param {Error|null} callback.err If an error occurred or validation
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   361
        failed, this parameter will contain the error. If the sync operation
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   362
        succeeded, _err_ will be `null`.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   363
      @param {Any} callback.response The server's response. This value will
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   364
        be passed to the `parse()` method, which is expected to parse it and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   365
        return an attribute hash.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   366
    @return {DataTable}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   367
    @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   368
    @since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   369
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   370
    modifyRow: function (id, data, config) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   371
        var modelList = this.data,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   372
            // Allow autoSync: true + addRow({ data }, { sync: false })
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   373
            sync      = (config && ('sync' in config)) ?
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   374
                            config.sync :
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   375
                            this.get('autoSync'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   376
            model, args;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   377
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   378
        if (isObject(id) && id instanceof this.get('recordType')) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   379
            model = id;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   380
        } else if (modelList && id !== undefined) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   381
            model = modelList.getById(id) ||
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   382
                    modelList.getByClientId(id) ||
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   383
                    modelList.item(id);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   384
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   385
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   386
        if (model && isObject(data)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   387
            args = toArray(arguments, 1, true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   388
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   389
            model.setAttrs.apply(model, args);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   390
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   391
            if (sync && !model.isNew()) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   392
                model.save.apply(model, args);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   393
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   394
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   395
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   396
        return this;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   397
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   398
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   399
    // --------------------------------------------------------------------------
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   400
    // Protected properties and methods
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   401
    // --------------------------------------------------------------------------
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   402
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   403
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   404
    Default function for the `addColumn` event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   405
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   406
    Inserts the specified column at the provided index.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   407
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   408
    @method _defAddColumnFn
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   409
    @param {EventFacade} e The `addColumn` event
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   410
        @param {Object} e.column The new column definition object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   411
        @param {Number|Number[]} e.index The array index to insert the new column
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   412
    @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   413
    @since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   414
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   415
    _defAddColumnFn: function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   416
        var index   = toArray(e.index),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   417
            columns = this.get('columns'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   418
            cols    = columns,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   419
            i, len;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   420
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   421
        for (i = 0, len = index.length - 1; cols && i < len; ++i) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   422
            cols = cols[index[i]] && cols[index[i]].children;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   423
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   424
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   425
        if (cols) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   426
            cols.splice(index[i], 0, e.column);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   427
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   428
            this.set('columns', columns, { originEvent: e });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   429
        } else { Y.log('addColumn index not findable', 'warn', 'datatable');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   430
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   431
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   432
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   433
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   434
    Default function for the `modifyColumn` event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   435
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   436
    Mixes the new column properties into the specified column definition.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   437
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   438
    @method _defModifyColumnFn
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   439
    @param {EventFacade} e The `modifyColumn` event
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   440
        @param {Object|String|Number|Number[]} e.column The column definition object or identifier
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   441
        @param {Object} e.newColumnDef The properties to assign to the column
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   442
    @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   443
    @since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   444
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   445
    _defModifyColumnFn: function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   446
        var columns = this.get('columns'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   447
            column  = this.getColumn(e.column);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   448
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   449
        if (column) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   450
            Y.mix(column, e.newColumnDef, true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   451
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   452
            this.set('columns', columns, { originEvent: e });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   453
        } else { Y.log('Could not locate column index to modify column', 'warn', 'datatable');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   454
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   455
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   456
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   457
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   458
    Default function for the `moveColumn` event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   459
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   460
    Removes the specified column from its current location and inserts it at the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   461
    specified array index (may be an array of indexes for nested headers).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   462
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   463
    @method _defMoveColumnFn
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   464
    @param {EventFacade} e The `moveColumn` event
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   465
        @param {Object|String|Number|Number[]} e.column The column definition object or identifier
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   466
        @param {Object} e.index The destination index to move to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   467
    @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   468
    @since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   469
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   470
    _defMoveColumnFn: function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   471
        var columns = this.get('columns'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   472
            column  = this.getColumn(e.column),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   473
            toIndex = toArray(e.index),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   474
            fromCols, fromIndex, toCols, i, len;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   475
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   476
        if (column) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   477
            fromCols  = column._parent ? column._parent.children : columns;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   478
            fromIndex = arrayIndex(fromCols, column);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   479
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   480
            if (fromIndex > -1) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   481
                toCols = columns;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   482
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   483
                for (i = 0, len = toIndex.length - 1; toCols && i < len; ++i) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   484
                    toCols = toCols[toIndex[i]] && toCols[toIndex[i]].children;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   485
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   486
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   487
                if (toCols) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   488
                    len = toCols.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   489
                    fromCols.splice(fromIndex, 1);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   490
                    toIndex = toIndex[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   491
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   492
                    if (len > toCols.lenth) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   493
                        // spliced off the same array, so adjust destination
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   494
                        // index if necessary
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   495
                        if (fromIndex < toIndex) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   496
                            toIndex--;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   497
                        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   498
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   499
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   500
                    toCols.splice(toIndex, 0, column);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   501
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   502
                    this.set('columns', columns, { originEvent: e });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   503
                } else { Y.log('Column [' + e.column + '] could not be moved. Destination index invalid for moveColumn', 'warn', 'datatable');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   504
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   505
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   506
        } else { Y.log('Column [' + e.column + '] not found for moveColumn', 'warn', 'datatable');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   507
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   508
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   509
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   510
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   511
    Default function for the `removeColumn` event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   512
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   513
    Splices the specified column from its containing columns array.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   514
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   515
    @method _defRemoveColumnFn
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   516
    @param {EventFacade} e The `removeColumn` event
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   517
        @param {Object|String|Number|Number[]} e.column The column definition object or identifier
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   518
    @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   519
    @since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   520
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   521
    _defRemoveColumnFn: function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   522
        var columns = this.get('columns'),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   523
            column  = this.getColumn(e.column),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   524
            cols, index;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   526
        if (column) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   527
            cols = column._parent ? column._parent.children : columns;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   528
            index = Y.Array.indexOf(cols, column);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   529
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   530
            if (index > -1) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   531
                cols.splice(index, 1);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   532
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   533
                this.set('columns', columns, { originEvent: e });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   534
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   535
        } else { Y.log('Could not locate column [' + e.column + '] for removeColumn', 'warn', 'datatable');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   536
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   537
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   538
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   539
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   540
    Publishes the events used by the mutation methods:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   541
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   542
     * addColumn
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   543
     * removeColumn
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   544
     * modifyColumn
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   545
     * moveColumn
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   546
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   547
    @method initializer
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   548
    @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   549
    @since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   550
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   551
    initializer: function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   552
        this.publish({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   553
            addColumn:    { defaultFn: Y.bind('_defAddColumnFn', this) },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   554
            removeColumn: { defaultFn: Y.bind('_defRemoveColumnFn', this) },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   555
            moveColumn:   { defaultFn: Y.bind('_defMoveColumnFn', this) },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   556
            modifyColumn: { defaultFn: Y.bind('_defModifyColumnFn', this) }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   557
        });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   558
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   559
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   560
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   561
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   562
Adds an array of new records to the DataTable's `data` ModelList.  Record data
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   563
can be an array of objects containing field values or an array of instance of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   564
the DataTable's configured `recordType` class.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   565
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   566
This relays all parameters to the `data` ModelList's `add` method.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   567
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   568
Technically, this is an alias to `addRow`, but please use the appropriately
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   569
named method for readability.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   570
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   571
If a configuration object is passed as a second argument, and that object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   572
has `sync: true` set, the underlying Models will be `save()`d.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   573
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   574
If the DataTable's `autoSync` attribute is set to `true`, the additional
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   575
argument is not needed.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   576
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   577
If syncing and the last argument is a function, that function will be used
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   578
as a callback to each Model's `save()` method.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   579
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   580
@method addRows
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   581
@param {Object[]} data The data or Model instances to add
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   582
@param {Object} [config] Configuration to pass along
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   583
@param {Function} [callback] Callback function for each Model's `save()`
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   584
  @param {Error|null} callback.err If an error occurred or validation
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   585
    failed, this parameter will contain the error. If the sync operation
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   586
    succeeded, _err_ will be `null`.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   587
  @param {Any} callback.response The server's response. This value will
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   588
    be passed to the `parse()` method, which is expected to parse it and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   589
    return an attribute hash.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   590
@return {DataTable}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   591
@chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   592
@since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   593
**/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   594
Mutable.prototype.addRows = Mutable.prototype.addRow;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   595
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   596
// Add feature APIs to public Y.DataTable class
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   597
if (YLang.isFunction(Y.DataTable)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   598
    Y.Base.mix(Y.DataTable, [Mutable]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   599
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   600
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   601
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   602
Fired by the `addColumn` method.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   603
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   604
@event addColumn
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   605
@preventable _defAddColumnFn
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   606
@param {Object} column The new column definition object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   607
@param {Number|Number[]} index The array index to insert the new column
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   608
@since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   609
**/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   610
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   611
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   612
Fired by the `removeColumn` method.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   613
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   614
@event removeColumn
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   615
@preventable _defRemoveColumnFn
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   616
@param {Object|String|Number|Number[]} column The column definition object or identifier
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   617
@since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   618
**/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   619
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   620
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   621
Fired by the `modifyColumn` method.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   622
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   623
@event modifyColumn
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   624
@preventable _defModifyColumnFn
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   625
@param {Object|String|Number|Number[]} column The column definition object or identifier
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   626
@param {Object} newColumnDef The properties to assign to the column
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   627
@since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   628
**/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   629
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   630
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   631
Fired by the `moveColumn` method.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   632
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   633
@event moveColumn
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   634
@preventable _defMoveColumnFn
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   635
@param {Object|String|Number|Number[]} column The column definition object or identifier
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   636
@param {Object} index The destination index to move to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   637
@since 3.5.0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   638
**/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   639
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   640
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   641
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   642
}, '3.10.3', {"requires": ["datatable-base"]});