src/cm/media/js/lib/yui/yui_3.10.3/build/datatable-datasource/datatable-datasource.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-datasource', 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
 * Plugs DataTable with DataSource integration.
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-datasource
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
 * Adds DataSource integration to DataTable.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
 * @class Plugin.DataTableDataSource
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
 * @extends Plugin.Base
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
function DataTableDataSource() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
    DataTableDataSource.superclass.constructor.apply(this, arguments);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
}
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
//
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
// STATIC PROPERTIES
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
//
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
/////////////////////////////////////////////////////////////////////////////
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
Y.mix(DataTableDataSource, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
     * The namespace for the plugin. This will be the property on the host which
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
     * references the plugin instance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
     * @property NS
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
     * @type String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
     * @static
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
     * @final
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
     * @value "datasource"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
    NS: "datasource",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
     * Class name.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
     * @property NAME
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
     * @type String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
     * @static
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
     * @final
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
     * @value "dataTableDataSource"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
    NAME: "dataTableDataSource",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
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
// ATTRIBUTES
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
//
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
/////////////////////////////////////////////////////////////////////////////
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
    ATTRS: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
        * @attribute datasource
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
        * @description Pointer to DataSource instance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
        * @type {DataSource}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
        datasource: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
            setter: "_setDataSource"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
        * @attribute initialRequest
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
        * @description Request sent to DataSource immediately upon initialization.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
        * @type Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
        */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
        initialRequest: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
            setter: "_setInitialRequest"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
/////////////////////////////////////////////////////////////////////////////
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
//
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
// PROTOTYPE
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
//
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
/////////////////////////////////////////////////////////////////////////////
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
Y.extend(DataTableDataSource, Y.Plugin.Base, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
    /////////////////////////////////////////////////////////////////////////////
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
    //
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
    // ATTRIBUTE HELPERS
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
    //
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
    /////////////////////////////////////////////////////////////////////////////
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
    * @method _setDataSource
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
    * @description Creates new DataSource instance if one is not provided.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
    * @param ds {Object | Y.DataSource}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
    * @return {DataSource}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
    * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
    _setDataSource: function(ds) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
        return ds || new Y.DataSource.Local(ds);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
    * @method _setInitialRequest
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
    * @description Sends request to DataSource.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
    * @param request {Object} DataSource request.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
    * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
    _setInitialRequest: function(/* request */) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
    /////////////////////////////////////////////////////////////////////////////
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
    //
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
    // METHODS
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
    //
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
    /////////////////////////////////////////////////////////////////////////////
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
    * Initializer.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
    *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
    * @method initializer
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
    * @param config {Object} Config object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
    * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
    initializer: function(config) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
        if(!Y.Lang.isUndefined(config.initialRequest)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
            this.load({request:config.initialRequest});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
    ////////////////////////////////////////////////////////////////////////////
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
    //
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
    // DATA
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
    //
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
    ////////////////////////////////////////////////////////////////////////////
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
     * Load data by calling DataSource's sendRequest() method under the hood.
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 load
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
     * @param config {object} Optional configuration parameters:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
     * <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
     * <dt>request</dt><dd>Pass in a new request, or initialRequest is used.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
     * <dt>callback</dt><dd>Pass in DataSource callback object, or the following default is used:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
     *    <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
     *      <dt>success</dt><dd>datatable.onDataReturnInitializeTable</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
     *      <dt>failure</dt><dd>datatable.onDataReturnInitializeTable</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
     *      <dt>scope</dt><dd>datatable</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
     *      <dt>argument</dt><dd>datatable.getState()</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
     *    </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
     * </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
     * <dt>datasource</dt><dd>Pass in a new DataSource instance to override the current DataSource for this transaction.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
     * </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
    load: function(config) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
        config = config || {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
        config.request = config.request || this.get("initialRequest");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
        config.callback = config.callback || {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
            success: Y.bind(this.onDataReturnInitializeTable, this),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
            failure: Y.bind(this.onDataReturnInitializeTable, this),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
            argument: this.get("host").get("state") //TODO
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
        };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
        var ds = (config.datasource || this.get("datasource"));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
        if(ds) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
            ds.sendRequest(config);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
     * Callback function passed to DataSource's sendRequest() method populates
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
     * an entire DataTable with new data, clearing previous data, if any.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
     * @method onDataReturnInitializeTable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
     * @param e {Event.Facade} DataSource Event Facade object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
    onDataReturnInitializeTable : function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
        var records = (e.response && e.response.results) || [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
        this.get("host").set("data", records);
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
Y.namespace("Plugin").DataTableDataSource = DataTableDataSource;
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
}, '3.10.3', {"requires": ["datatable-base", "plugin", "datasource-local"]});