| api : ObjectSpecific urls to call on CRUD action methods "read", "create", "update" and "destroy".
-Defaults to:api: {
+the Content-Type header in the HTTP response to "text/xml". Config Options|
| api : ObjectSpecific urls to call on CRUD action methods "read", "create", "update" and "destroy".
+Defaults to:api: {
read ... Specific urls to call on CRUD action methods "read", "create", "update" and "destroy".
Defaults to: api: {
read : undefined,
@@ -13,6 +13,24 @@ Defaults to:api: {
update : undefined,
destroy : undefined
}
+The url is built based upon the action being executed [load|create|save|destroy]
+using the commensurate api property, or if undefined default to the
+configured Ext.data.Store.url.
+For example:
+api: {
+ load : '/controller/load',
+ create : '/controller/new', // Server MUST return idProperty of new record
+ save : '/controller/update',
+ destroy : '/controller/destroy_action'
+}
+
+// Alternatively, one can use the object-form to specify each API-action
+api: {
+ load: {url: 'read.php', method: 'GET'},
+ create: 'create.php',
+ destroy: 'destroy.php',
+ save: 'update.php'
+}
If the specific URL for a given CRUD action is undefined, the CRUD action request
will be directed to the configured url.
Note: To modify the URL for an action dynamically the appropriate API
@@ -29,22 +47,9 @@ myStore.on({
// permanent, applying this URL for all subsequent requests.
store.proxy.setUrl('changed1.php', true);
- // manually set the private connection URL.
- // Warning: Accessing the private URL property should be avoided.
- // Use the public method setUrl instead, shown above.
- // It should be noted that changing the URL like this will affect
- // the URL for just this request. Subsequent requests will use the
- // API or URL defined in your initial proxy configuration.
- store.proxy.conn.url = 'changed1.php';
-
- // proxy URL will be superseded by API (only if proxy created to use ajax):
- // It should be noted that proxy API changes are permanent and will
- // be used for all subsequent requests.
- store.proxy.api.load = 'changed2.php';
-
- // However, altering the proxy API should be done using the public
- // method setApi instead.
- store.proxy.setApi('load', 'changed2.php');
+ // Altering the proxy API should be done using the public
+ // method setApi.
+ store.proxy.setApi('read', 'changed2.php');
// Or set the entire API with a config-object.
// When using the config-object option, you must redefine the entire
@@ -60,7 +65,7 @@ myStore.on({
});
| DataProxy | | doRequest : Function | DataProxy | | listeners : Object | DataProxy | | listeners : ObjectA config object containing one or more event handlers to be added to this
object during initialization. This should ... A config object containing one or more event handlers to be added to this
object during initialization. This should be a valid listeners config object as specified in the
addListener example for attaching multiple handlers at once.
@@ -115,38 +120,41 @@ Ext.DomObserver = Ext.extend(Object, {
typeAhead: true,
mode: 'local',
triggerAction: 'all'
-}); | Observable | | restful : BooleanIf set to true, a non-phantom record's
-id will be appended to the url (defaults to false).
-The url is built based u... If set to true, a non-phantom record's
-id will be appended to the url (defaults to false).
- The url is built based upon the action being executed [load|create|save|destroy]
-using the commensurate api property, or if undefined default to the
-configured Ext.data.Store.url.
- Some MVC (e.g., Ruby on Rails, Merb and Django) support this style of segment based urls
-where the segments in the URL follow the Model-View-Controller approach. someSite.com/controller/action/id
+}); | Observable | | restful : BooleanDefaults to false. Set to true to operate in a RESTful manner.
+ Note: this parameter will automatically be set to t... Defaults to false. Set to true to operate in a RESTful manner.
+ Note: this parameter will automatically be set to true if the
+Ext.data.Store it is plugged into is set to restful: true . If the
+Store is RESTful, there is no need to set this option on the proxy.
+ RESTful implementations enable the serverside framework to automatically route
+actions sent to one url based upon the HTTP method, for example:
+ store: new Ext.data.Store({
+ restful: true,
+ proxy: new Ext.data.HttpProxy({url:'/users'}); // all requests sent to /users
+ ...
+)}
+If there is no api specified in the configuration of the proxy,
+all requests will be marshalled to a single RESTful url (/users) so the serverside
+framework can inspect the HTTP Method and act accordingly:
+
+Method url action
+POST /users create
+GET /users read
+PUT /users/23 update
+DESTROY /users/23 delete
+
+ If set to true, a non-phantom record's
+id will be appended to the url. Some MVC (e.g., Ruby on Rails,
+Merb and Django) support segment based urls where the segments in the URL follow the
+Model-View-Controller approach: someSite.com/controller/action/id
Where the segments in the url are typically:
- The first segment : represents the controller class that should be invoked.
- The second segment : represents the class function, or method, that should be called.
- The third segment : represents the ID (a variable typically passed to the method).
- For example:
- api: {
- load : '/controller/load',
- create : '/controller/new', // Server MUST return idProperty of new record
- save : '/controller/update',
- destroy : '/controller/destroy_action'
-}
-
-// Alternatively, one can use the object-form to specify each API-action
-api: {
- load: {url: 'read.php', method: 'GET'},
- create: 'create.php',
- destroy: 'destroy.php',
- save: 'update.php'
-}
| HttpProxy |
Public PropertiesPublic Properties|
| conn : ObjectThe Connection object (Or options parameter to Ext.Ajax.request) which this HttpProxy
uses to make requests to the s... The Connection object (Or options parameter to Ext.Ajax.request) which this HttpProxy
uses to make requests to the server. Properties of this object may be changed dynamically to
-change the way data is requested. | HttpProxy |
Public Methods|
| HttpProxy( Object conn )
+change the way data is requested. | HttpProxy |
Public Methods|
| HttpProxy( Object conn )
Parameters:conn : ObjectAn Ext.data.Connection object, or options parameter to Ext.Ajax.request.
Note that if this HttpProxy is being used by a (@link Ext.data.Store Store}, then the
Store's call to load will override any specified callback and params
@@ -154,10 +162,12 @@ options. In this case, use the Store's baseParams may also be
used to pass parameters known at instantiation time.
If an options parameter is passed, the singleton Ext.Ajax object will be used to make
-the request. Returns: | HttpProxy | | addEvents( Object object )
- :
- voidUsed to define events on this Observable Used to define events on this Observable | Observable | | addListener( String eventName , Function handler , [Object scope ], [Object options ] )
- :
+the request.Returns: | HttpProxy | | addEvents( Object|String o , string Optional. )
+ :
+ voidAdds the specified events to the list of events which this Observable may fire. Adds the specified events to the list of events which this Observable may fire. | Observable | | addListener( String eventName , Function handler , [Object scope ], [Object options ] )
+ :
voidAppends an event handler to this object. Appends an event handler to this object. Parameters:eventName : StringThe name of the event to listen for. handler : FunctionThe method the event invokes. scope : Object(optional) The scope (this reference) in which the handler function is executed.
If omitted, defaults to the object which fired the event. options : Object(optional) An object containing handler configuration.
properties. This may contain any of the following properties:
@@ -177,8 +187,8 @@ Using the options argument, it is possible to combine different types of listene
A delayed, one-time listener.
myDataView.on('click', this.onClick, this, {
- single: true,
- delay: 100
+single: true,
+delay: 100
});
Attaching multiple handlers in 1 call
@@ -186,77 +196,109 @@ The method also allows for a single argument to be passed which is a config obje
which specify multiple handlers.
myGridPanel.on({
- 'click' : {
- fn: this.onClick,
- scope: this,
- delay: 100
- },
- 'mouseover' : {
- fn: this.onMouseOver,
- scope: this
- },
- 'mouseout' : {
- fn: this.onMouseOut,
- scope: this
- }
+'click' : {
+ fn: this.onClick,
+ scope: this,
+ delay: 100
+},
+'mouseover' : {
+ fn: this.onMouseOver,
+ scope: this
+},
+'mouseout' : {
+ fn: this.onMouseOut,
+ scope: this
+}
});
Or a shorthand syntax:
myGridPanel.on({
- 'click' : this.onClick,
- 'mouseover' : this.onMouseOver,
- 'mouseout' : this.onMouseOut,
- scope: this
-});
Returns: | Observable | | destroy()
- :
- voidDestroys the proxy by purging any event listeners and cancelling any active requests. Destroys the proxy by purging any event listeners and cancelling any active requests. | DataProxy | | doRequest( String action , Ext.data.Record/Ext.data.Record[] rs , Object params , Ext.data.DataReader reader , Function callback , Object scope , Object arg )
- :
+'click' : this.onClick,
+'mouseover' : this.onMouseOver,
+'mouseout' : this.onMouseOut,
+ scope: this
+});Returns: | Observable | | destroy()
+ :
+ voidDestroys the proxy by purging any event listeners and cancelling any active requests. Destroys the proxy by purging any event listeners and cancelling any active requests. | DataProxy | | doRequest( String action , Ext.data.Record/Ext.data.Record[] rs , Object params , Ext.data.DataReader reader , Function callback , Object scope , Object arg )
+ :
voidHttpProxy implementation of DataProxy#doRequest HttpProxy implementation of DataProxy#doRequest Parameters:action : StringThe crud action type (create, read, update, destroy) rs : Ext.data.Record/Ext.data.Record[]If action is load, rs will be null params : ObjectAn object containing properties which are to be used as HTTP parameters
for the request to the remote server. reader : Ext.data.DataReaderThe Reader object which converts the data
object into a block of Ext.data.Records. callback : FunctionA function to be called after the request.
The callback is passed the following arguments:
- r : Ext.data.Record[] The block of Ext.data.Records.
- options: Options object from the action request
-- success: Boolean success indicator
scope : ObjectThe scope in which to call the callback arg : ObjectAn optional argument which is passed to the callback as its second parameter. Returns: | HttpProxy | | enableBubble( Object events )
- :
- voidUsed to enable bubbling of events Used to enable bubbling of events | Observable | | fireEvent( String eventName , Object... args )
- :
- BooleanFires the specified event with the passed parameters (minus the event name).
+ success: Boolean success indicatorscope : ObjectThe scope in which to call the callback arg : ObjectAn optional argument which is passed to the callback as its second parameter. Returns: | HttpProxy | | enableBubble( Object events )
+ :
+ voidEnables events fired by this Observable to bubble up an owner hierarchy by calling
+this.getBubbleTarget() if present... Enables events fired by this Observable to bubble up an owner hierarchy by calling
+this.getBubbleTarget() if present. There is no implementation in the Observable base class.
+ This is commonly used by Ext.Components to bubble events to owner Containers. See Ext.Component.getBubbleTarget. The default
+implementation in Ext.Component returns the Component's immediate owner. But if a known target is required, this can be overridden to
+access the required target more quickly.
+ Example: Ext.override(Ext.form.Field, {
+// Add functionality to Field's initComponent to enable the change event to bubble
+ initComponent: Ext.form.Field.prototype.initComponent.createSequence(function() {
+ this.enableBubble('change');
+ }),
+
+// We know that we want Field's events to bubble directly to the FormPanel.
+ getBubbleTarget: function() {
+ if (!this.formPanel) {
+ this.formPanel = this.findParentByType('form');
+ }
+ return this.formPanel;
+ }
+});
+
+var myForm = new Ext.formPanel({
+ title: 'User Details',
+ items: [{
+ ...
+ }],
+ listeners: {
+ change: function() {
+// Title goes red if form has been modified.
+ myForm.header.setStyle("color", "red");
+ }
+ }
+});
| Observable | | fireEvent( String eventName , Object... args )
+ :
+ BooleanFires the specified event with the passed parameters (minus the event name).
An event may be set to bubble up an Obse... | Observable | | getConnection()
- :
- ConnectionReturn the Ext.data.Connection object being used by this Proxy. | HttpProxy | | hasListener( String eventName )
- :
- BooleanChecks to see if this object has any listeners for a specified event Checks to see if this object has any listeners for a specified event | Observable | | isApiAction( String [Ext.data.Api.CREATE|READ|UPDATE|DESTROY]} )
- :
- BooleanReturns true if the specified action is defined as a unique action in the api-config.
+by calling enableBubble. | Observable | | getConnection()
+ :
+ ConnectionReturn the Ext.data.Connection object being used by this Proxy. | HttpProxy | | hasListener( String eventName )
+ :
+ BooleanChecks to see if this object has any listeners for a specified event Checks to see if this object has any listeners for a specified event | Observable | | isApiAction( String [Ext.data.Api.CREATE|READ|UPDATE|DESTROY]} )
+ :
+ BooleanReturns true if the specified action is defined as a unique action in the api-config.
request. If all API-actions a... Returns true if the specified action is defined as a unique action in the api-config.
request. If all API-actions are routed to unique urls, the xaction parameter is unecessary. However, if no api is defined
and all Proxy actions are routed to DataProxy#url, the server-side will require the xaction parameter to perform a switch to
-the corresponding code for CRUD action. Parameters:[Ext.data.Api.CREATE|READ|UPDATE|DESTROY]} : Stringaction Returns: | DataProxy | | load( Object params , Object reader , Object callback , Object scope , Object arg )
- :
- voidDeprecated load method using old method signature. See {@doRequest} for preferred method. Deprecated load method using old method signature. See {@doRequest} for preferred method. Parameters:params : Objectreader : Objectcallback : Objectscope : Objectarg : Object Returns: | DataProxy | | on( String eventName , Function handler , [Object scope ], [Object options ] )
- :
+the corresponding code for CRUD action.Parameters:[Ext.data.Api.CREATE|READ|UPDATE|DESTROY]} : Stringaction Returns: | DataProxy | | load( Object params , Object reader , Object callback , Object scope , Object arg )
+ :
+ voidDeprecated load method using old method signature. See {@doRequest} for preferred method. Deprecated load method using old method signature. See {@doRequest} for preferred method. Parameters:params : Objectreader : Objectcallback : Objectscope : Objectarg : Object Returns: | DataProxy | | on( String eventName , Function handler , [Object scope ], [Object options ] )
+ :
voidAppends an event handler to this object (shorthand for addListener.) Appends an event handler to this object (shorthand for addListener.) Parameters:eventName : StringThe type of event to listen for handler : FunctionThe method the event invokes scope : Object(optional) The scope (this reference) in which the handler function is executed.
-If omitted, defaults to the object which fired the event. options : Object(optional) An object containing handler configuration. Returns: | Observable | | purgeListeners()
- :
- voidRemoves all listeners for this object Removes all listeners for this object | Observable | | relayEvents( Object o , Array events )
- :
- voidRelays selected events from the specified Observable as if the events were fired by this. Relays selected events from the specified Observable as if the events were fired by this. | Observable | | removeListener( String eventName , Function handler , [Object scope ] )
- :
- voidRemoves an event handler. Removes an event handler. | Observable | | request( String action , Ext.data.Record/Ext.data.Record[]/null rs , Object params , Ext.data.DataReader reader , Function callback , Object scope , Object options )
- :
- voidAll proxy actions are executed through this method. Automatically fires the "before" + action event All proxy actions are executed through this method. Automatically fires the "before" + action event | DataProxy | | resumeEvents()
- :
- voidResume firing events. (see suspendEvents)
-If events were suspended using the queueSuspended parameter, then all
+If omitted, defaults to the object which fired the event. options : Object(optional) An object containing handler configuration. Returns: | Observable | | purgeListeners()
+ :
+ voidRemoves all listeners for this object Removes all listeners for this object | Observable | | relayEvents( Object o , Array events )
+ :
+ voidRelays selected events from the specified Observable as if the events were fired by this. Relays selected events from the specified Observable as if the events were fired by this. | Observable | | removeListener( String eventName , Function handler , [Object scope ] )
+ :
+ voidRemoves an event handler. Removes an event handler. | Observable | | request( String action , Ext.data.Record/Ext.data.Record[]/null rs , Object params , Ext.data.DataReader reader , Function callback , Object scope , Object options )
+ :
+ voidAll proxy actions are executed through this method. Automatically fires the "before" + action event All proxy actions are executed through this method. Automatically fires the "before" + action event | DataProxy | | resumeEvents()
+ :
+ voidResume firing events. (see suspendEvents)
+If events were suspended using the queueSuspended parameter, then all
event... Resume firing events. (see suspendEvents)
If events were suspended using the queueSuspended parameter, then all
-events fired during event suspension will be sent to any listeners now. | Observable | | setApi( String/Object api , String/Function url )
- :
- voidRedefines the Proxy's API or a single action of an API. Can be called with two method signatures.
+events fired during event suspension will be sent to any listeners now. | Observable | | setApi( String/Object api , String/Function url )
+ :
+ voidRedefines the Proxy's API or a single action of an API. Can be called with two method signatures.
If called with an ... Redefines the Proxy's API or a single action of an API. Can be called with two method signatures.
If called with an object as the only parameter, the object should redefine the entire API, e.g.: proxy.setApi({
read : '/users/read',
@@ -265,30 +307,35 @@ If called with an ...
Redefines the Proxy's API or a s
destroy : '/users/destroy'
});
If called with two parameters, the first parameter should be a string specifying the API action to
-redefine and the second parameter should be the URL (or function if using DirectProxy) to call for that action, e.g.: proxy.setApi(Ext.data.Api.actions.read, '/users/new_load_url');
Parameters:api : String/ObjectAn API specification object, or the name of an action. url : String/FunctionThe URL (or function if using DirectProxy) to call for the action. Returns: | DataProxy | | setUrl( String url , [Boolean makePermanent ] )
- :
+redefine and the second parameter should be the URL (or function if using DirectProxy) to call for that action, e.g.:proxy.setApi(Ext.data.Api.actions.read, '/users/new_load_url');
Parameters:api : String/ObjectAn API specification object, or the name of an action. url : String/FunctionThe URL (or function if using DirectProxy) to call for the action. Returns: | DataProxy | | setUrl( String url , [Boolean makePermanent ] )
+ :
voidUsed for overriding the url used for a single request. Designed to be called during a beforeaction event. Calling s... Used for overriding the url used for a single request. Designed to be called during a beforeaction event. Calling setUrl
will override any urls set via the api configuration parameter. Set the optional parameter makePermanent to set the url for
all subsequent requests. If not set to makePermanent, the next request will use the same url or api configuration defined
in the initial proxy configuration. | HttpProxy | | suspendEvents( Boolean queueSuspended )
- :
+(e.g.: beforeload, beforesave, etc).Returns: | HttpProxy | | suspendEvents( Boolean queueSuspended )
+ :
voidSuspend the firing of all events. (see resumeEvents) Suspend the firing of all events. (see resumeEvents) Parameters:queueSuspended : BooleanPass as true to queue up suspended events to be fired
-after the resumeEvents call instead of discarding all suspended events; Returns: | Observable | | un( String eventName , Function handler , [Object scope ] )
- :
- voidRemoves an event handler (shorthand for removeListener.) | Observable |
Public Events|
| beforeload :
- ( DataProxy this , Object params )
- Fires before a request to retrieve a data object. Fires before a request to retrieve a data object. Listeners will be called with the following arguments: | DataProxy | | beforewrite :
- ( DataProxy this , String action , Record/Array[Record] rs , Object params )
- Fires before a request is generated for one of the actions Ext.data.Api.actions.create|update|destroy Fires before a request is generated for one of the actions Ext.data.Api.actions.create|update|destroy Listeners will be called with the following arguments:this : DataProxyThe proxy for the request action : String[Ext.data.Api.actions.create|update|destroy] rs : Record/Array[Record]The Record(s) to create|update|destroy. params : ObjectThe request params object. Edit params to add parameters to the request.
| DataProxy | | exception :
- ( DataProxy this , String type , String action , Object options , Object response , Mixed arg )
- Fires if an exception occurs in the Proxy during a remote request.
-This event is relayed through a corresponding
-Ex... Fires if an exception occurs in the Proxy during a remote request.
-This event is relayed through a corresponding
-Ext.data.Store.exception,
-so any Store instance may observe this event.
-This event can be fired for one of two reasons:
+after the resumeEvents call instead of discarding all suspended events; Returns: | Observable | | un( String eventName , Function handler , [Object scope ] )
+ :
+ voidRemoves an event handler (shorthand for removeListener.) | Observable |
Public Events|
| beforeload :
+ ( DataProxy this , Object params )
+ Fires before a request to retrieve a data object. Fires before a request to retrieve a data object. Listeners will be called with the following arguments: | DataProxy | | beforewrite :
+ ( DataProxy this , String action , Record/Array[Record] rs , Object params )
+ Fires before a request is generated for one of the actions Ext.data.Api.actions.create|update|destroy
+In addition to... Fires before a request is generated for one of the actions Ext.data.Api.actions.create|update|destroy
+ In addition to being fired through the DataProxy instance that raised the event, this event is also fired
+through the Ext.data.DataProxy class to allow for centralized processing of beforewrite events from all
+DataProxies by attaching a listener to the Ext.data.Proxy class itself. Listeners will be called with the following arguments:this : DataProxyThe proxy for the request action : String[Ext.data.Api.actions.create|update|destroy] rs : Record/Array[Record]The Record(s) to create|update|destroy. params : ObjectThe request params object. Edit params to add parameters to the request.
| DataProxy | | exception :
+ ( DataProxy this , String type , String action , Object options , Object response , Mixed arg )
+ Fires if an exception occurs in the Proxy during a remote request. This event is relayed
+through a corresponding Ext... Fires if an exception occurs in the Proxy during a remote request. This event is relayed
+through a corresponding Ext.data.Store.exception,
+so any Store instance may observe this event.
+ In addition to being fired through the DataProxy instance that raised the event, this event is also fired
+through the Ext.data.DataProxy class to allow for centralized processing of exception events from all
+DataProxies by attaching a listener to the Ext.data.Proxy class itself.
+ This event can be fired for one of two reasons:
- remote-request failed :
The server did not return status === 200.
@@ -334,13 +381,17 @@ If the remote request returns success===false, this parameter will be null.
This parameter will only exist if the action was a write action
(Ext.data.Api.actions.create|update|destroy).
- | DataProxy | | load :
- ( DataProxy this , Object o , Object options )
- Fires before the load method's callback is called. Fires before the load method's callback is called. Listeners will be called with the following arguments: | DataProxy | | loadexception :
- ( misc misc )
- This event is deprecated. The signature of the loadexception event
+ | DataProxy | | load :
+ ( DataProxy this , Object o , Object options )
+ Fires before the load method's callback is called. Fires before the load method's callback is called. Listeners will be called with the following arguments: | DataProxy | | loadexception :
+ ( misc misc )
+ This event is deprecated. The signature of the loadexception event
varies depending on the proxy, use the catch-all... This event is deprecated. The signature of the loadexception event
varies depending on the proxy, use the catch-all exception event instead.
-This event will fire in addition to the exception event. Listeners will be called with the following arguments: | DataProxy | | write :
- ( DataProxy this , String action , Object data , Object response , Record/Record{} rs , Object options )
- Fires before the request-callback is called Fires before the request-callback is called Listeners will be called with the following arguments:this : DataProxyThe proxy that sent the request action : String[Ext.data.Api.actions.create|upate|destroy] data : ObjectThe data object extracted from the server-response response : ObjectThe decoded response from server rs : Record/Record{}The records from Store options : ObjectThe callback's options property as passed to the request function
| DataProxy |
\ No newline at end of file
+This event will fire in addition to the exception event.Listeners will be called with the following arguments: | DataProxy |