Ext.data.JsonP.Ext_form_action_DirectLoad({"alternateClassNames":["Ext.form.Action.DirectLoad"],"aliases":{"formaction":["directload"]},"enum":null,"parentMixins":[],"tagname":"class","subclasses":[],"extends":"Ext.form.action.Load","uses":[],"html":"
Alternate names
Ext.form.Action.DirectLoadHierarchy
Ext.BaseExt.form.action.ActionExt.form.action.LoadExt.form.action.DirectLoadRequires
Files
Provides Ext.direct.Manager support for loading form data.
\n\nThis example illustrates usage of Ext.direct.Direct to load a form through Ext.Direct.
\n\nvar myFormPanel = new Ext.form.Panel({\n // configs for FormPanel\n title: 'Basic Information',\n renderTo: document.body,\n width: 300, height: 160,\n padding: 10,\n\n // configs apply to child items\n defaults: {anchor: '100%'},\n defaultType: 'textfield',\n items: [{\n fieldLabel: 'Name',\n name: 'name'\n },{\n fieldLabel: 'Email',\n name: 'email'\n },{\n fieldLabel: 'Company',\n name: 'company'\n }],\n\n // configs for BasicForm\n api: {\n // The server-side method to call for load() requests\n load: Profile.getBasicInfo,\n // The server-side must mark the submit handler as a 'formHandler'\n submit: Profile.updateBasicInfo\n },\n // specify the order for the passed params\n paramOrder: ['uid', 'foo']\n});\n\n// load the form\nmyFormPanel.getForm().load({\n // pass 2 arguments to server side getBasicInfo method (len=2)\n params: {\n foo: 'bar',\n uid: 34\n }\n});\n
\n\nThe data packet sent to the server will resemble something like:
\n\n[\n {\n \"action\":\"Profile\",\"method\":\"getBasicInfo\",\"type\":\"rpc\",\"tid\":2,\n \"data\":[34,\"bar\"] // note the order of the params\n }\n]\n
\n\nThe form will process a data packet returned by the server that is similar to the following format:
\n\n[\n {\n \"action\":\"Profile\",\"method\":\"getBasicInfo\",\"type\":\"rpc\",\"tid\":2,\n \"result\":{\n \"success\":true,\n \"data\":{\n \"name\":\"Fred Flintstone\",\n \"company\":\"Slate Rock and Gravel\",\n \"email\":\"fred.flintstone@slaterg.com\"\n }\n }\n }\n]\n
\nThe function to call when a failure packet was received, or when an error ocurred in the Ajax communication.
\nThe form that requested the action
\nThe Action class. If an Ajax error ocurred, the failure type will\nbe in failureType. The result property of this object may be examined to perform custom\npostprocessing.
\nThe BasicForm instance that is invoking this Action. Required.
\nExtra headers to be sent in the AJAX request for submit and load actions.\nSee Ext.data.proxy.Ajax.headers.
\n\nNote: Headers are not sent during file upload.
\nThe HTTP method to use to access the requested URL.\nDefaults to the BasicForm's method, or 'POST' if not specified.
\nExtra parameter values to pass. These are added to the Form's Ext.form.Basic.baseParams and passed to the\nspecified URL along with the Form's input fields.
\n\nParameters are encoded as standard HTTP parameters using Ext.Object.toQueryString.
\nWhen set to true, causes the Form to be reset on Action success. If specified,\nthis happens before the success callback is called and before the Form's\nactioncomplete event fires.
\nIf set to true, the emptyText value will be sent with the form when it is submitted.
\nDefaults to: true
The function to call when a valid success return packet is received.
\nThe form that requested the action
\nThe Action class. The result property of this object may\nbe examined to perform custom postprocessing.
\nThe number of seconds to wait for a server response before failing with the failureType as\nCONNECT_FAILURE. If not specified, defaults to the configured\ntimeout of the form.
\nThe message to be displayed by a call to Ext.window.MessageBox.wait during the time the action is being\nprocessed.
\nThe message to be displayed by a call to Ext.window.MessageBox.wait during the time the action is being\nprocessed.
\nThe title to be displayed by a call to Ext.window.MessageBox.wait during the time the action is being\nprocessed.
\nThe title to be displayed by a call to Ext.window.MessageBox.wait during the time the action is being\nprocessed.
\nThe type of failure detected will be one of these:\nCLIENT_INVALID, SERVER_INVALID, CONNECT_FAILURE, or LOAD_FAILURE.
\n\nUsage:
\n\nvar fp = new Ext.form.Panel({\n...\nbuttons: [{\n text: 'Save',\n formBind: true,\n handler: function(){\n if(fp.getForm().isValid()){\n fp.getForm().submit({\n url: 'form-submit.php',\n waitMsg: 'Submitting your data...',\n success: function(form, action){\n // server responded with success = true\n var result = action.result;\n },\n failure: function(form, action){\n if (action.failureType === Ext.form.action.Action.CONNECT_FAILURE) {\n Ext.Msg.alert('Error',\n 'Status:'+action.response.status+': '+\n action.response.statusText);\n }\n if (action.failureType === Ext.form.action.Action.SERVER_INVALID){\n // server responded with success = false\n Ext.Msg.alert('Invalid', action.result.errormsg);\n }\n }\n });\n }\n }\n},{\n text: 'Reset',\n handler: function(){\n fp.getForm().reset();\n }\n}]\n
\nThe raw XMLHttpRequest object used to perform the action.
\nThe raw XMLHttpRequest object used to perform the action.
\nThe decoded response object containing a boolean success
property and other, action-specific properties.
The decoded response object containing a boolean success
property and other, action-specific properties.
Get the reference to the current class from which this object was instantiated. Unlike statics,\nthis.self
is scope-dependent and it's meant to be used for dynamic inheritance. See statics\nfor a detailed comparison
Ext.define('My.Cat', {\n statics: {\n speciesName: 'Cat' // My.Cat.speciesName = 'Cat'\n },\n\n constructor: function() {\n alert(this.self.speciesName); // dependent on 'this'\n },\n\n clone: function() {\n return new this.self();\n }\n});\n\n\nExt.define('My.SnowLeopard', {\n extend: 'My.Cat',\n statics: {\n speciesName: 'Snow Leopard' // My.SnowLeopard.speciesName = 'Snow Leopard'\n }\n});\n\nvar cat = new My.Cat(); // alerts 'Cat'\nvar snowLeopard = new My.SnowLeopard(); // alerts 'Snow Leopard'\n\nvar clone = snowLeopard.clone();\nalert(Ext.getClassName(clone)); // alerts 'My.SnowLeopard'\n
\nThe type of action this Action instance performs. Currently only \"submit\" and \"load\" are supported.
\nDefaults to: 'directload'
Overrides: Ext.form.action.Load.type
Call the original method that was previously overridden with override
\n\nExt.define('My.Cat', {\n constructor: function() {\n alert(\"I'm a cat!\");\n }\n});\n\nMy.Cat.override({\n constructor: function() {\n alert(\"I'm going to be a cat!\");\n\n this.callOverridden();\n\n alert(\"Meeeeoooowwww\");\n }\n});\n\nvar kitty = new My.Cat(); // alerts \"I'm going to be a cat!\"\n // alerts \"I'm a cat!\"\n // alerts \"Meeeeoooowwww\"\n
\n This method has been deprecated
\nas of 4.1. Use callParent instead.
\n\nThe arguments, either an array or the arguments
object\nfrom the current method, for example: this.callOverridden(arguments)
Returns the result of calling the overridden method
\nCall the \"parent\" method of the current method. That is the method previously\noverridden by derivation or by an override (see Ext.define).
\n\n Ext.define('My.Base', {\n constructor: function (x) {\n this.x = x;\n },\n\n statics: {\n method: function (x) {\n return x;\n }\n }\n });\n\n Ext.define('My.Derived', {\n extend: 'My.Base',\n\n constructor: function () {\n this.callParent([21]);\n }\n });\n\n var obj = new My.Derived();\n\n alert(obj.x); // alerts 21\n
\n\nThis can be used with an override as follows:
\n\n Ext.define('My.DerivedOverride', {\n override: 'My.Derived',\n\n constructor: function (x) {\n this.callParent([x*2]); // calls original My.Derived constructor\n }\n });\n\n var obj = new My.Derived();\n\n alert(obj.x); // now alerts 42\n
\n\nThis also works with static methods.
\n\n Ext.define('My.Derived2', {\n extend: 'My.Base',\n\n statics: {\n method: function (x) {\n return this.callParent([x*2]); // calls My.Base.method\n }\n }\n });\n\n alert(My.Base.method(10); // alerts 10\n alert(My.Derived2.method(10); // alerts 20\n
\n\nLastly, it also works with overridden static methods.
\n\n Ext.define('My.Derived2Override', {\n override: 'My.Derived2',\n\n statics: {\n method: function (x) {\n return this.callParent([x*2]); // calls My.Derived2.method\n }\n }\n });\n\n alert(My.Derived2.method(10); // now alerts 40\n
\n\nTo override a method and replace it and also call the superclass method, use\ncallSuper. This is often done to patch a method to fix a bug.
\nThe arguments, either an array or the arguments
object\nfrom the current method, for example: this.callParent(arguments)
Returns the result of calling the parent method
\nThis method is used by an override to call the superclass method but bypass any\noverridden method. This is often done to \"patch\" a method that contains a bug\nbut for whatever reason cannot be fixed directly.
\n\nConsider:
\n\n Ext.define('Ext.some.Class', {\n method: function () {\n console.log('Good');\n }\n });\n\n Ext.define('Ext.some.DerivedClass', {\n method: function () {\n console.log('Bad');\n\n // ... logic but with a bug ...\n\n this.callParent();\n }\n });\n
\n\nTo patch the bug in DerivedClass.method
, the typical solution is to create an\noverride:
Ext.define('App.paches.DerivedClass', {\n override: 'Ext.some.DerivedClass',\n\n method: function () {\n console.log('Fixed');\n\n // ... logic but with bug fixed ...\n\n this.callSuper();\n }\n });\n
\n\nThe patch method cannot use callParent
to call the superclass method
since\nthat would call the overridden method containing the bug. In other words, the\nabove patch would only produce \"Fixed\" then \"Good\" in the console log, whereas,\nusing callParent
would produce \"Fixed\" then \"Bad\" then \"Good\".
The arguments, either an array or the arguments
object\nfrom the current method, for example: this.callSuper(arguments)
Returns the result of calling the superclass method
\nGet the set of parameters specified in the BasicForm's baseParams and/or the params option.\nItems in params override items of the same name in baseParams.
\nthe full set of parameters
\nBuild the URL for the AJAX request. Used by the standard AJAX submit and load actions.
\nThe URL.
\nInitialize configuration for this class. a typical example:
\n\nExt.define('My.awesome.Class', {\n // The default config\n config: {\n name: 'Awesome',\n isAwesome: true\n },\n\n constructor: function(config) {\n this.initConfig(config);\n }\n});\n\nvar awesome = new My.awesome.Class({\n name: 'Super Awesome'\n});\n\nalert(awesome.getName()); // 'Super Awesome'\n
\nthis
\nDirect actions have already been processed and therefore\nwe can directly set the result; Direct Actions do not have\na this.response property.
\n\nValidates that a response contains either responseText or responseXML and invokes\nhandleResponse to build the result object.
\nThe raw response object.
\nThe result object as built by handleResponse, or true
if\nthe response had empty responseText and responseXML.
Overrides: Ext.form.action.Action.processResponse
Get the reference to the class from which this object was instantiated. Note that unlike self,\nthis.statics()
is scope-independent and it always returns the class from which it was called, regardless of what\nthis
points to during run-time
Ext.define('My.Cat', {\n statics: {\n totalCreated: 0,\n speciesName: 'Cat' // My.Cat.speciesName = 'Cat'\n },\n\n constructor: function() {\n var statics = this.statics();\n\n alert(statics.speciesName); // always equals to 'Cat' no matter what 'this' refers to\n // equivalent to: My.Cat.speciesName\n\n alert(this.self.speciesName); // dependent on 'this'\n\n statics.totalCreated++;\n },\n\n clone: function() {\n var cloned = new this.self; // dependent on 'this'\n\n cloned.groupName = this.statics().speciesName; // equivalent to: My.Cat.speciesName\n\n return cloned;\n }\n});\n\n\nExt.define('My.SnowLeopard', {\n extend: 'My.Cat',\n\n statics: {\n speciesName: 'Snow Leopard' // My.SnowLeopard.speciesName = 'Snow Leopard'\n },\n\n constructor: function() {\n this.callParent();\n }\n});\n\nvar cat = new My.Cat(); // alerts 'Cat', then alerts 'Cat'\n\nvar snowLeopard = new My.SnowLeopard(); // alerts 'Cat', then alerts 'Snow Leopard'\n\nvar clone = snowLeopard.clone();\nalert(Ext.getClassName(clone)); // alerts 'My.SnowLeopard'\nalert(clone.groupName); // alerts 'Cat'\n\nalert(My.Cat.totalCreated); // alerts 3\n
\nAdd methods / properties to the prototype of this class.
\n\nExt.define('My.awesome.Cat', {\n constructor: function() {\n ...\n }\n});\n\n My.awesome.Cat.addMembers({\n meow: function() {\n alert('Meowww...');\n }\n });\n\n var kitty = new My.awesome.Cat;\n kitty.meow();\n
\nAdd / override static properties of this class.
\n\nExt.define('My.cool.Class', {\n ...\n});\n\nMy.cool.Class.addStatics({\n someProperty: 'someValue', // My.cool.Class.someProperty = 'someValue'\n method1: function() { ... }, // My.cool.Class.method1 = function() { ... };\n method2: function() { ... } // My.cool.Class.method2 = function() { ... };\n});\n
\nthis
\nBorrow another class' members to the prototype of this class.
\n\nExt.define('Bank', {\n money: '$$$',\n printMoney: function() {\n alert('$$$$$$$');\n }\n});\n\nExt.define('Thief', {\n ...\n});\n\nThief.borrow(Bank, ['money', 'printMoney']);\n\nvar steve = new Thief();\n\nalert(steve.money); // alerts '$$$'\nsteve.printMoney(); // alerts '$$$$$$$'\n
\nThe class to borrow members from
\nThe names of the members to borrow
\nthis
\nCreate a new instance of this Class.
\n\nExt.define('My.cool.Class', {\n ...\n});\n\nMy.cool.Class.create({\n someConfig: true\n});\n
\n\nAll parameters are passed to the constructor of the class.
\nthe created instance.
\nCreate aliases for existing prototype methods. Example:
\n\nExt.define('My.cool.Class', {\n method1: function() { ... },\n method2: function() { ... }\n});\n\nvar test = new My.cool.Class();\n\nMy.cool.Class.createAlias({\n method3: 'method1',\n method4: 'method2'\n});\n\ntest.method3(); // test.method1()\n\nMy.cool.Class.createAlias('method5', 'method3');\n\ntest.method5(); // test.method3() -> test.method1()\n
\nThe new method name, or an object to set multiple aliases. See\nflexSetter
\nThe original method name
\nGet the current class' name in string format.
\n\nExt.define('My.cool.Class', {\n constructor: function() {\n alert(this.self.getName()); // alerts 'My.cool.Class'\n }\n});\n\nMy.cool.Class.getName(); // 'My.cool.Class'\n
\nclassName
\nAdds members to class.
\nThis method has been deprecated since 4.1
\nUse addMembers instead.
\n\nOverride members of this class. Overridden methods can be invoked via\ncallParent.
\n\nExt.define('My.Cat', {\n constructor: function() {\n alert(\"I'm a cat!\");\n }\n});\n\nMy.Cat.override({\n constructor: function() {\n alert(\"I'm going to be a cat!\");\n\n this.callParent(arguments);\n\n alert(\"Meeeeoooowwww\");\n }\n});\n\nvar kitty = new My.Cat(); // alerts \"I'm going to be a cat!\"\n // alerts \"I'm a cat!\"\n // alerts \"Meeeeoooowwww\"\n
\n\nAs of 4.1, direct use of this method is deprecated. Use Ext.define\ninstead:
\n\nExt.define('My.CatOverride', {\n override: 'My.Cat',\n constructor: function() {\n alert(\"I'm going to be a cat!\");\n\n this.callParent(arguments);\n\n alert(\"Meeeeoooowwww\");\n }\n});\n
\n\nThe above accomplishes the same result but can be managed by the Ext.Loader\nwhich can properly order the override and its target class and the build process\ncan determine whether the override is needed based on the required state of the\ntarget class (My.Cat).
\nThis method has been deprecated since 4.1.0
\nUse Ext.define instead
\n\nThe properties to add to this class. This should be\nspecified as an object literal containing one or more properties.
\nthis class
\n