| author | gibus |
| Tue, 11 Feb 2014 12:33:25 +0100 | |
| changeset 572 | 93383e54e042 |
| parent 0 | 40c8f766c9b8 |
| permissions | -rw-r--r-- |
/* Copyright (c) 2009, Yahoo! Inc. All rights reserved. Code licensed under the BSD License: http://developer.yahoo.net/yui/license.txt version: 3.0.0b1 build: 1163 */ YUI.add('datasource-function', function(Y) { /** * Provides a DataSource implementation which can be used to retrieve data from a custom function. * * @module datasource * @submodule datasource-function */ /** * Function subclass for the DataSource Utility. * @class DataSource.Function * @extends DataSource.Local * @constructor */ var LANG = Y.Lang, DSFn = function() { DSFn.superclass.constructor.apply(this, arguments); }; ///////////////////////////////////////////////////////////////////////////// // // DataSource.Function static properties // ///////////////////////////////////////////////////////////////////////////// Y.mix(DSFn, { /** * Class name. * * @property NAME * @type String * @static * @final * @value "dataSourceFunction" */ NAME: "dataSourceFunction", ///////////////////////////////////////////////////////////////////////////// // // DataSource.Function Attributes // ///////////////////////////////////////////////////////////////////////////// ATTRS: { /** * @attribute source * @description Pointer to live data. * @type MIXED * @default null */ source: { validator: LANG.isFunction } } }); Y.extend(DSFn, Y.DataSource.Local, { /** * Passes query string to IO. Fires <code>response</code> event when * response is received asynchronously. * * @method _defRequestFn * @param e {Event.Facade} Event Facade with the following properties: * <dl> * <dt>tId (Number)</dt> <dd>Unique transaction ID.</dd> * <dt>request (Object)</dt> <dd>The request.</dd> * <dt>callback (Object)</dt> <dd>The callback object with the following properties: * <dl> * <dt>success (Function)</dt> <dd>Success handler.</dd> * <dt>failure (Function)</dt> <dd>Failure handler.</dd> * </dl> * </dd> * <dt>cfg (Object)</dt> <dd>Configuration object.</dd> * </dl> * @protected */ _defRequestFn: function(e) { var fn = this.get("source"), response; if(fn) { response = fn(e.request, this, e); this.fire("data", Y.mix({data:response}, e)); } else { e.error = new Error("Function data failure"); this.fire("error", e); } return e.tId; } }); Y.DataSource.Function = DSFn; }, '3.0.0b1' ,{requires:['datasource-local']});