src/cm/media/js/lib/yui/yui3-3.15.0/build/datasource-get/datasource-get-debug.js
author gibus
Mon, 10 Mar 2014 15:19:48 +0100
changeset 602 e16a97fb364a
permissions -rw-r--r--
Use YUI 3.15
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
602
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     1
YUI.add('datasource-get', function (Y, NAME) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     2
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     3
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     4
 * Provides a DataSource implementation which can be used to retrieve data via the Get Utility.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     5
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     6
 * @module datasource
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     7
 * @submodule datasource-get
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     8
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     9
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    10
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    11
 * Get Utility subclass for the DataSource Utility.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    12
 * @class DataSource.Get
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    13
 * @extends DataSource.Local
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    14
 * @constructor
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    15
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    16
var DSGet = function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    17
    DSGet.superclass.constructor.apply(this, arguments);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    18
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    19
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    20
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    21
Y.DataSource.Get = Y.extend(DSGet, Y.DataSource.Local, {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    22
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    23
     * Passes query string to Get Utility. Fires <code>response</code> event when
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    24
     * response is received asynchronously.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    25
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    26
     * @method _defRequestFn
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    27
     * @param e {EventFacade} Event Facade with the following properties:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    28
     * <dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    29
     * <dt>tId (Number)</dt> <dd>Unique transaction ID.</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    30
     * <dt>request (Object)</dt> <dd>The request.</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    31
     * <dt>callback (Object)</dt> <dd>The callback object with the following properties:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    32
     *     <dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    33
     *         <dt>success (Function)</dt> <dd>Success handler.</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    34
     *         <dt>failure (Function)</dt> <dd>Failure handler.</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    35
     *     </dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    36
     * </dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    37
     * <dt>cfg (Object)</dt> <dd>Configuration object.</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    38
     * </dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    39
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    40
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    41
    _defRequestFn: function(e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    42
        var uri  = this.get("source"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    43
            get  = this.get("get"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    44
            guid = Y.guid().replace(/\-/g, '_'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    45
            generateRequest = this.get( "generateRequestCallback" ),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    46
            payload = e.details[0],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    47
            self = this;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    48
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    49
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    50
         * Stores the most recent request id for validation against stale
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    51
         * response handling.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    52
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    53
         * @property _last
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    54
         * @type {String}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    55
         * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    56
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    57
        this._last = guid;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    58
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    59
        // Dynamically add handler function with a closure to the callback stack
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    60
        // for access to guid
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    61
        YUI.Env.DataSource.callbacks[guid] = function(response) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    62
            delete YUI.Env.DataSource.callbacks[guid];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    63
            delete Y.DataSource.Local.transactions[e.tId];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    64
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    65
            var process = self.get('asyncMode') !== "ignoreStaleResponses" ||
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    66
                          self._last === guid;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    67
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    68
            if (process) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    69
                payload.data = response;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    70
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    71
                self.fire("data", payload);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    72
            } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    73
                Y.log("DataSource ignored stale response for id " + e.tId + "(" + e.request + ")", "info", "datasource-get");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    74
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    75
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    76
        };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    77
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    78
        // Add the callback param to the request url
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    79
        uri += e.request + generateRequest.call( this, guid );
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    80
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    81
        Y.log("DataSource is querying URL " + uri, "info", "datasource-get");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    82
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    83
        Y.DataSource.Local.transactions[e.tId] = get.script(uri, {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    84
            autopurge: true,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    85
            // Works in Firefox only....
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    86
            onFailure: function (o) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    87
                delete YUI.Env.DataSource.callbacks[guid];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    88
                delete Y.DataSource.Local.transactions[e.tId];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    89
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    90
                payload.error = new Error(o.msg || "Script node data failure");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    91
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    92
                Y.log("Script node data failure", "error", "datasource-get");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    93
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    94
                self.fire("data", payload);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    95
            },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    96
            onTimeout: function(o) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    97
                delete YUI.Env.DataSource.callbacks[guid];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    98
                delete Y.DataSource.Local.transactions[e.tId];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    99
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   100
                payload.error = new Error(o.msg || "Script node data timeout");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   101
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   102
                Y.log("Script node data timeout", "error", "datasource-get");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   103
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   104
                self.fire("data", payload);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   105
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   106
        });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   107
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   108
        return e.tId;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   109
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   110
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   111
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   112
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   113
     * Default method for adding callback param to url.  See
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   114
     * generateRequestCallback attribute.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   115
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   116
     * @method _generateRequest
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   117
     * @param guid {String} unique identifier for callback function wrapper
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   118
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   119
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   120
     _generateRequest: function (guid) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   121
        return "&" + this.get("scriptCallbackParam") +
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   122
                "=YUI.Env.DataSource.callbacks." + guid;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   123
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   124
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   125
}, {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   126
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   127
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   128
     * Class name.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   129
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   130
     * @property NAME
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   131
     * @type String
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   132
     * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   133
     * @final
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   134
     * @value "dataSourceGet"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   135
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   136
    NAME: "dataSourceGet",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   137
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   138
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   139
    ////////////////////////////////////////////////////////////////////////////
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   140
    //
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   141
    // DataSource.Get Attributes
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   142
    //
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   143
    ////////////////////////////////////////////////////////////////////////////
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   144
    ATTRS: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   145
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   146
         * Pointer to Get Utility.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   147
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   148
         * @attribute get
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   149
         * @type Y.Get
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   150
         * @default Y.Get
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   151
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   152
        get: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   153
            value: Y.Get,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   154
            cloneDefaultValue: false
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   155
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   156
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   157
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   158
         * Defines request/response management in the following manner:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   159
         * <dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   160
         *     <!--<dt>queueRequests</dt>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   161
         *     <dd>If a request is already in progress, wait until response is
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   162
         *     returned before sending the next request.</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   163
         *     <dt>cancelStaleRequests</dt>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   164
         *     <dd>If a request is already in progress, cancel it before
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   165
         *     sending the next request.</dd>-->
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   166
         *     <dt>ignoreStaleResponses</dt>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   167
         *     <dd>Send all requests, but handle only the response for the most
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   168
         *     recently sent request.</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   169
         *     <dt>allowAll</dt>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   170
         *     <dd>Send all requests and handle all responses.</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   171
         * </dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   172
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   173
         * @attribute asyncMode
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   174
         * @type String
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   175
         * @default "allowAll"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   176
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   177
        asyncMode: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   178
            value: "allowAll"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   179
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   180
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   181
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   182
         * Callback string parameter name sent to the remote script. By default,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   183
         * requests are sent to
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   184
         * &#60;URI&#62;?&#60;scriptCallbackParam&#62;=callbackFunction
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   185
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   186
         * @attribute scriptCallbackParam
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   187
         * @type String
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   188
         * @default "callback"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   189
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   190
        scriptCallbackParam : {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   191
            value: "callback"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   192
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   193
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   194
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   195
         * Accepts the DataSource instance and a callback ID, and returns a callback
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   196
         * param/value string that gets appended to the script URI. Implementers
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   197
         * can customize this string to match their server's query syntax.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   198
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   199
         * @attribute generateRequestCallback
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   200
         * @type Function
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   201
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   202
        generateRequestCallback : {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   203
            value: function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   204
                return this._generateRequest.apply(this, arguments);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   205
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   206
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   207
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   208
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   209
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   210
YUI.namespace("Env.DataSource.callbacks");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   211
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   212
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   213
}, '@VERSION@', {"requires": ["datasource-local", "get"]});