src/cm/media/js/lib/yui/yui3-3.15.0/build/datasource-function/datasource-function-debug.js
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 602 e16a97fb364a
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
602
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     1
YUI.add('datasource-function', 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 from
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     5
 * a custom function.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     6
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     7
 * @module datasource
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     8
 * @submodule datasource-function
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
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    12
 * Function subclass for the DataSource Utility.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    13
 * @class DataSource.Function
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    14
 * @extends DataSource.Local
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    15
 * @constructor
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    16
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    17
var LANG = Y.Lang,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    18
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    19
    DSFn = function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    20
        DSFn.superclass.constructor.apply(this, arguments);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    21
    };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    22
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    23
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    24
    /////////////////////////////////////////////////////////////////////////////
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    25
    //
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    26
    // DataSource.Function static properties
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    27
    //
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    28
    /////////////////////////////////////////////////////////////////////////////
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    29
Y.mix(DSFn, {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    30
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    31
     * Class name.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    32
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    33
     * @property NAME
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    34
     * @type String
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    35
     * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    36
     * @final
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    37
     * @value "dataSourceFunction"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    38
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    39
    NAME: "dataSourceFunction",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    40
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    41
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    42
    /////////////////////////////////////////////////////////////////////////////
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    43
    //
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    44
    // DataSource.Function Attributes
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    45
    //
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    46
    /////////////////////////////////////////////////////////////////////////////
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    47
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    48
    ATTRS: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    49
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    50
        * Stores the function that will serve the response data.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    51
        *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    52
        * @attribute source
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    53
        * @type {Any}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    54
        * @default null
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    55
        */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    56
        source: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    57
            validator: LANG.isFunction
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    58
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    59
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    60
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    61
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    62
Y.extend(DSFn, Y.DataSource.Local, {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    63
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    64
     * Passes query data to the source function. Fires <code>response</code>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    65
     * event with the function results (synchronously).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    66
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    67
     * @method _defRequestFn
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    68
     * @param e {EventFacade} Event Facade with the following properties:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    69
     * <dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    70
     * <dt>tId (Number)</dt> <dd>Unique transaction ID.</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    71
     * <dt>request (Object)</dt> <dd>The request.</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    72
     * <dt>callback (Object)</dt> <dd>The callback object with the following
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    73
     * properties:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    74
     *     <dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    75
     *         <dt>success (Function)</dt> <dd>Success handler.</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    76
     *         <dt>failure (Function)</dt> <dd>Failure handler.</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    77
     *     </dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    78
     * </dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    79
     * <dt>cfg (Object)</dt> <dd>Configuration object.</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    80
     * </dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    81
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    82
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    83
    _defRequestFn: function(e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    84
        var fn = this.get("source"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    85
            payload = e.details[0];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    86
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    87
        if (fn) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    88
            try {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    89
                payload.data = fn(e.request, this, e);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    90
            } catch (ex) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    91
                Y.log("Function execution failure", "error", "datasource-function");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    92
                payload.error = ex;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    93
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    94
        } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    95
            Y.log("Function data failure", "error", "datasource-function");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    96
            payload.error = new Error("Function data failure");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    97
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    98
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    99
        this.fire("data", payload);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   100
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   101
        return e.tId;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   102
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   103
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   104
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   105
Y.DataSource.Function = DSFn;
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
}, '@VERSION@', {"requires": ["datasource-local"]});