diff -r 322d0feea350 -r 89ef5ed3c48b src/cm/media/js/lib/yui/yui_3.10.3/build/datasource-jsonschema/datasource-jsonschema.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cm/media/js/lib/yui/yui_3.10.3/build/datasource-jsonschema/datasource-jsonschema.js Tue Jul 16 14:29:46 2013 +0200 @@ -0,0 +1,110 @@ +/* +YUI 3.10.3 (build 2fb5187) +Copyright 2013 Yahoo! Inc. All rights reserved. +Licensed under the BSD License. +http://yuilibrary.com/license/ +*/ + +YUI.add('datasource-jsonschema', function (Y, NAME) { + +/** + * Extends DataSource with schema-parsing on JSON data. + * + * @module datasource + * @submodule datasource-jsonschema + */ + +/** + * Adds schema-parsing to the DataSource Utility. + * @class DataSourceJSONSchema + * @extends Plugin.Base + */ +var DataSourceJSONSchema = function() { + DataSourceJSONSchema.superclass.constructor.apply(this, arguments); +}; + +Y.mix(DataSourceJSONSchema, { + /** + * The namespace for the plugin. This will be the property on the host which + * references the plugin instance. + * + * @property NS + * @type String + * @static + * @final + * @value "schema" + */ + NS: "schema", + + /** + * Class name. + * + * @property NAME + * @type String + * @static + * @final + * @value "dataSourceJSONSchema" + */ + NAME: "dataSourceJSONSchema", + + ///////////////////////////////////////////////////////////////////////////// + // + // DataSourceJSONSchema Attributes + // + ///////////////////////////////////////////////////////////////////////////// + + ATTRS: { + schema: { + //value: {} + } + } +}); + +Y.extend(DataSourceJSONSchema, Y.Plugin.Base, { + /** + * Internal init() handler. + * + * @method initializer + * @param config {Object} Config object. + * @private + */ + initializer: function(config) { + this.doBefore("_defDataFn", this._beforeDefDataFn); + }, + + /** + * Parses raw data into a normalized response. To accommodate XHR responses, + * will first look for data in data.responseText. Otherwise will just work + * with data. + * + * @method _beforeDefDataFn + * @param tId {Number} Unique transaction ID. + * @param request {Object} The request. + * @param callback {Object} The callback object with the following properties: + *
+ *
success (Function)
Success handler.
+ *
failure (Function)
Failure handler.
+ *
+ * @param data {Object} Raw data. + * @protected + */ + _beforeDefDataFn: function(e) { + var data = e.data && (e.data.responseText || e.data), + schema = this.get('schema'), + payload = e.details[0]; + + payload.response = Y.DataSchema.JSON.apply.call(this, schema, data) || { + meta: {}, + results: data + }; + + this.get("host").fire("response", payload); + + return new Y.Do.Halt("DataSourceJSONSchema plugin halted _defDataFn"); + } +}); + +Y.namespace('Plugin').DataSourceJSONSchema = DataSourceJSONSchema; + + +}, '3.10.3', {"requires": ["datasource-local", "plugin", "dataschema-json"]});