/** * @class Ext.form.action.Load * @extends Ext.form.action.Action *A class which handles loading of data from a server into the Fields of an {@link Ext.form.Basic}.
*Instances of this class are only created by a {@link Ext.form.Basic Form} when * {@link Ext.form.Basic#load load}ing.
*Response Packet Criteria
*A response packet must contain: *
**
- *
success
property : Boolean- *
data
property : ObjectThe*data
property contains the values of Fields to load. * The individual value object for each Field is passed to the Field's * {@link Ext.form.Field#setValue setValue} method.JSON Packets
*By default, response packets are assumed to be JSON, so for the following form load call:
* a success response packet may look like this:var myFormPanel = new Ext.form.FormPanel({ title: 'Client and routing info', items: [{ fieldLabel: 'Client', name: 'clientName' }, { fieldLabel: 'Port of loading', name: 'portOfLoading' }, { fieldLabel: 'Port of discharge', name: 'portOfDischarge' }] }); myFormPanel.{@link Ext.form.FormPanel#getForm getForm}().{@link Ext.form.Basic#load load}({ url: '/getRoutingInfo.php', params: { consignmentRef: myConsignmentRef }, failure: function(form, action) { Ext.Msg.alert("Load failed", action.result.errorMessage); } });
* while a failure response packet may look like this:{ success: true, data: { clientName: "Fred. Olsen Lines", portOfLoading: "FXT", portOfDischarge: "OSL" } }
*{ success: false, errorMessage: "Consignment reference not found" }
Other data may be placed into the response for processing the {@link Ext.form.Basic Form}'s * callback or event handler methods. The object decoded from this JSON is available in the * {@link Ext.form.action.Action#result result} property.
*/ Ext.define('Ext.form.action.Load', { extend:'Ext.form.action.Action', requires: ['Ext.data.Connection'], alternateClassName: 'Ext.form.Action.Load', alias: 'formaction.load', type: 'load', /** * @private */ run: function() { Ext.Ajax.request(Ext.apply( this.createCallback(), { method: this.getMethod(), url: this.getUrl(), headers: this.headers, params: this.getParams() } )); }, /** * @private */ onSuccess: function(response){ var result = this.processResponse(response), form = this.form; if (result === true || !result.success || !result.data) { this.failureType = Ext.form.action.Action.LOAD_FAILURE; form.afterAction(this, false); return; } form.clearInvalid(); form.setValues(result.data); form.afterAction(this, true); }, /** * @private */ handleResponse: function(response) { var reader = this.form.reader, rs, data; if (reader) { rs = reader.read(response); data = rs.records && rs.records[0] ? rs.records[0].data : null; return { success : rs.success, data : data }; } return Ext.decode(response.responseText); } });