<!DOCTYPE html>
|
<html>
|
<head>
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<title>The source code</title>
|
<link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
|
<script type="text/javascript" src="../resources/prettify/prettify.js"></script>
|
<style type="text/css">
|
.highlight { display: block; background-color: #ddd; }
|
</style>
|
<script type="text/javascript">
|
function highlight() {
|
document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
|
}
|
</script>
|
</head>
|
<body onload="prettyPrint(); highlight();">
|
<pre class="prettyprint lang-js"><span id='Ext-form-action-Load'>/**
|
</span> * 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 : Object
|
*
|
* The `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.Field#setValue setValue} method.
|
*
|
* ## JSON Packets
|
*
|
* By default, response packets are assumed to be JSON, so for the following form load call:
|
*
|
* var myFormPanel = new Ext.form.Panel({
|
* title: 'Client and routing info',
|
* renderTo: Ext.getBody(),
|
* defaults: {
|
* xtype: 'textfield'
|
* },
|
* items: [{
|
* fieldLabel: 'Client',
|
* name: 'clientName'
|
* }, {
|
* fieldLabel: 'Port of loading',
|
* name: 'portOfLoading'
|
* }, {
|
* fieldLabel: 'Port of discharge',
|
* name: 'portOfDischarge'
|
* }]
|
* });
|
* myFormPanel.{@link Ext.form.Panel#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);
|
* }
|
* });
|
*
|
* a **success response** packet may look like this:
|
*
|
* {
|
* success: true,
|
* data: {
|
* clientName: "Fred. Olsen Lines",
|
* portOfLoading: "FXT",
|
* portOfDischarge: "OSL"
|
* }
|
* }
|
*
|
* while a **failure response** packet may look like this:
|
*
|
* {
|
* 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',
|
|
<span id='Ext-form-action-Load-property-type'> type: 'load',
|
</span>
|
<span id='Ext-form-action-Load-method-run'> /**
|
</span> * @private
|
*/
|
run: function() {
|
Ext.Ajax.request(Ext.apply(
|
this.createCallback(),
|
{
|
method: this.getMethod(),
|
url: this.getUrl(),
|
headers: this.headers,
|
params: this.getParams()
|
}
|
));
|
},
|
|
<span id='Ext-form-action-Load-method-onSuccess'> /**
|
</span> * @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);
|
},
|
|
<span id='Ext-form-action-Load-method-handleResponse'> /**
|
</span> * @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);
|
}
|
});
|
|
</pre>
|
</body>
|
</html>
|