[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/lib/yuilib/3.17.2/datasource-jsonschema/ -> datasource-jsonschema-debug.js (source)

   1  /*
   2  YUI 3.17.2 (build 9c3c78e)
   3  Copyright 2014 Yahoo! Inc. All rights reserved.
   4  Licensed under the BSD License.
   5  http://yuilibrary.com/license/
   6  */
   7  
   8  YUI.add('datasource-jsonschema', function (Y, NAME) {
   9  
  10  /**
  11   * Extends DataSource with schema-parsing on JSON data.
  12   *
  13   * @module datasource
  14   * @submodule datasource-jsonschema
  15   */
  16  
  17  /**
  18   * Adds schema-parsing to the DataSource Utility.
  19   * @class DataSourceJSONSchema
  20   * @extends Plugin.Base
  21   */
  22  var DataSourceJSONSchema = function() {
  23      DataSourceJSONSchema.superclass.constructor.apply(this, arguments);
  24  };
  25  
  26  Y.mix(DataSourceJSONSchema, {
  27      /**
  28       * The namespace for the plugin. This will be the property on the host which
  29       * references the plugin instance.
  30       *
  31       * @property NS
  32       * @type String
  33       * @static
  34       * @final
  35       * @value "schema"
  36       */
  37      NS: "schema",
  38  
  39      /**
  40       * Class name.
  41       *
  42       * @property NAME
  43       * @type String
  44       * @static
  45       * @final
  46       * @value "dataSourceJSONSchema"
  47       */
  48      NAME: "dataSourceJSONSchema",
  49  
  50      /////////////////////////////////////////////////////////////////////////////
  51      //
  52      // DataSourceJSONSchema Attributes
  53      //
  54      /////////////////////////////////////////////////////////////////////////////
  55  
  56      ATTRS: {
  57          schema: {
  58              //value: {}
  59          }
  60      }
  61  });
  62  
  63  Y.extend(DataSourceJSONSchema, Y.Plugin.Base, {
  64      /**
  65      * Internal init() handler.
  66      *
  67      * @method initializer
  68      * @param config {Object} Config object.
  69      * @private
  70      */
  71      initializer: function(config) {
  72          this.doBefore("_defDataFn", this._beforeDefDataFn);
  73      },
  74  
  75      /**
  76       * Parses raw data into a normalized response. To accommodate XHR responses,
  77       * will first look for data in data.responseText. Otherwise will just work
  78       * with data.
  79       *
  80       * @method _beforeDefDataFn
  81       * @param tId {Number} Unique transaction ID.
  82       * @param request {Object} The request.
  83       * @param callback {Object} The callback object with the following properties:
  84       *     <dl>
  85       *         <dt>success (Function)</dt> <dd>Success handler.</dd>
  86       *         <dt>failure (Function)</dt> <dd>Failure handler.</dd>
  87       *     </dl>
  88       * @param data {Object} Raw data.
  89       * @protected
  90       */
  91      _beforeDefDataFn: function(e) {
  92          var data = e.data && (e.data.responseText || e.data),
  93              schema = this.get('schema'),
  94              payload = e.details[0];
  95  
  96          payload.response = Y.DataSchema.JSON.apply.call(this, schema, data) || {
  97              meta: {},
  98              results: data
  99          };
 100  
 101          this.get("host").fire("response", payload);
 102  
 103          return new Y.Do.Halt("DataSourceJSONSchema plugin halted _defDataFn");
 104      }
 105  });
 106  
 107  Y.namespace('Plugin').DataSourceJSONSchema = DataSourceJSONSchema;
 108  
 109  
 110  }, '3.17.2', {"requires": ["datasource-local", "plugin", "dataschema-json"]});


Generated: Thu Aug 11 10:00:09 2016 Cross-referenced by PHPXref 0.7.1