Version 3.18.1

APIs

  • Begin typing in the search box above to see results.
Show:

File: datatable/js/datatable-datasource.js

 /**
 * Plugs DataTable with DataSource integration.
 *
 * @module datatable
 * @submodule datatable-datasource
 */
 
 /**
 * Adds DataSource integration to DataTable.
 * @class Plugin.DataTableDataSource
 * @extends Plugin.Base
 */
 function DataTableDataSource() {
 DataTableDataSource.superclass.constructor.apply(this, arguments);
 }
 
 /////////////////////////////////////////////////////////////////////////////
 //
 // STATIC PROPERTIES
 //
 /////////////////////////////////////////////////////////////////////////////
 Y.mix(DataTableDataSource, {
 /**
 * 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 "datasource"
 */
 NS: "datasource",
 
 /**
 * Class name.
 *
 * @property NAME
 * @type String
 * @static
 * @final
 * @value "dataTableDataSource"
 */
 NAME: "dataTableDataSource",
 
 /////////////////////////////////////////////////////////////////////////////
 //
 // ATTRIBUTES
 //
 /////////////////////////////////////////////////////////////////////////////
 ATTRS: {
 /**
 * @attribute datasource
 * @description Pointer to DataSource instance.
 * @type {DataSource}
 */
 datasource: {
 setter: "_setDataSource"
 },
 
 /**
 * @attribute initialRequest
 * @description Request sent to DataSource immediately upon initialization.
 * @type Object
 */
 initialRequest: {
 setter: "_setInitialRequest"
 }
 }
 });
 
 /////////////////////////////////////////////////////////////////////////////
 //
 // PROTOTYPE
 //
 /////////////////////////////////////////////////////////////////////////////
 Y.extend(DataTableDataSource, Y.Plugin.Base, {
 /////////////////////////////////////////////////////////////////////////////
 //
 // ATTRIBUTE HELPERS
 //
 /////////////////////////////////////////////////////////////////////////////
 /**
 * @method _setDataSource
 * @description Creates new DataSource instance if one is not provided.
 * @param ds {Object|DataSource}
 * @return {DataSource}
 * @private
 */
 _setDataSource: function(ds) {
 return ds || new Y.DataSource.Local(ds);
 },
 
 /**
 * @method _setInitialRequest
 * @description Sends request to DataSource.
 * @param request {Object} DataSource request.
 * @private
 */
 _setInitialRequest: function(/* request */) {
 },
 
 /////////////////////////////////////////////////////////////////////////////
 //
 // METHODS
 //
 /////////////////////////////////////////////////////////////////////////////
 /**
 * Initializer.
 *
 * @method initializer
 * @param config {Object} Config object.
 * @private
 */
 initializer: function(config) {
 if(!Y.Lang.isUndefined(config.initialRequest)) {
 this.load({request:config.initialRequest});
 }
 },
 
 ////////////////////////////////////////////////////////////////////////////
 //
 // DATA
 //
 ////////////////////////////////////////////////////////////////////////////
 
 /**
 * Load data by calling DataSource's sendRequest() method under the hood.
 *
 * @method load
 * @param config {object} Optional configuration parameters:
 *
 * <dl>
 * <dt>request</dt><dd>Pass in a new request, or initialRequest is used.</dd>
 * <dt>callback</dt><dd>Pass in DataSource callback object, or the following default is used:
 * <dl>
 * <dt>success</dt><dd>datatable.onDataReturnInitializeTable</dd>
 * <dt>failure</dt><dd>datatable.onDataReturnInitializeTable</dd>
 * <dt>scope</dt><dd>datatable</dd>
 * <dt>argument</dt><dd>datatable.getState()</dd>
 * </dl>
 * </dd>
 * <dt>datasource</dt><dd>Pass in a new DataSource instance to override the current DataSource for this transaction.</dd>
 * </dl>
 */
 load: function(config) {
 config = config || {};
 config.request = config.request || this.get("initialRequest");
 config.callback = config.callback || {
 success: Y.bind(this.onDataReturnInitializeTable, this),
 failure: Y.bind(this.onDataReturnInitializeTable, this),
 argument: this.get("host").get("state") //TODO
 };
 
 var ds = (config.datasource || this.get("datasource"));
 if(ds) {
 ds.sendRequest(config);
 }
 },
 
 /**
 * Callback function passed to DataSource's sendRequest() method populates
 * an entire DataTable with new data, clearing previous data, if any.
 *
 * @method onDataReturnInitializeTable
 * @param e {EventFacade} DataSource Event Facade object.
 */
 onDataReturnInitializeTable : function(e) {
 var records = (e.response && e.response.results) || [];
 
 this.get("host").set("data", records);
 }
 });
 
 Y.namespace("Plugin").DataTableDataSource = DataTableDataSource;
 
 

AltStyle によって変換されたページ (->オリジナル) /