]> git.proxmox.com Git - extjs.git/blame - extjs/classic/classic/src/form/action/DirectLoad.js
add extjs 6.0.1 sources
[extjs.git] / extjs / classic / classic / src / form / action / DirectLoad.js
CommitLineData
6527f429
DM
1/**\r
2 * Provides Ext Direct support for loading form data.\r
3 *\r
4 * This example illustrates usage of Ext Direct to load a form.\r
5 *\r
6 * var myFormPanel = new Ext.form.Panel({\r
7 * // configs for FormPanel\r
8 * title: 'Basic Information',\r
9 * renderTo: document.body,\r
10 * width: 300, height: 160,\r
11 * padding: 10,\r
12 *\r
13 * // configs apply to child items\r
14 * defaults: {anchor: '100%'},\r
15 * defaultType: 'textfield',\r
16 * items: [{\r
17 * fieldLabel: 'Name',\r
18 * name: 'name'\r
19 * },{\r
20 * fieldLabel: 'Email',\r
21 * name: 'email'\r
22 * },{\r
23 * fieldLabel: 'Company',\r
24 * name: 'company'\r
25 * }],\r
26 *\r
27 * // configs for BasicForm\r
28 * api: {\r
29 * // The server-side method to call for load() requests\r
30 * load: 'Profile.getBasicInfo',\r
31 * // The server-side must mark the submit handler as a 'formHandler'\r
32 * submit: 'Profile.updateBasicInfo'\r
33 * },\r
34 * // specify the order for the passed params\r
35 * paramOrder: ['uid', 'foo']\r
36 * });\r
37 *\r
38 * // load the form\r
39 * myFormPanel.getForm().load({\r
40 * // pass 2 arguments to server side getBasicInfo method (len=2)\r
41 * params: {\r
42 * foo: 'bar',\r
43 * uid: 34\r
44 * }\r
45 * });\r
46 *\r
47 * Before using DirectLoad action, make sure you set up Ext Direct remoting provider.\r
48 * See {@link Ext.direct.Manager} for more information.\r
49 *\r
50 * For corresponding submit action, see {@link Ext.form.action.DirectSubmit}.\r
51 */\r
52Ext.define('Ext.form.action.DirectLoad', {\r
53 extend:'Ext.form.action.Load',\r
54 alternateClassName: 'Ext.form.Action.DirectLoad',\r
55 alias: 'formaction.directload',\r
56 \r
57 requires: [\r
58 'Ext.direct.Manager'\r
59 ],\r
60 \r
61 mixins: [\r
62 'Ext.form.action.DirectAction'\r
63 ],\r
64\r
65 type: 'directload',\r
66\r
67 run: function() {\r
68 var me = this,\r
69 form = me.form,\r
70 metadata = me.metadata || form.metadata,\r
71 timeout = me.timeout || form.timeout,\r
72 args, fn;\r
73 \r
74 fn = me.resolveMethod('load');\r
75 \r
76 args = fn.directCfg.method.getArgs({\r
77 params: me.getParams(),\r
78 paramOrder: form.paramOrder,\r
79 paramsAsHash: form.paramsAsHash,\r
80 options: timeout != null ? { timeout: timeout * 1000 } : null,\r
81 metadata: metadata,\r
82 callback: me.onComplete,\r
83 scope: me\r
84 });\r
85 \r
86 fn.apply(window, args);\r
87 },\r
88\r
89 // Direct actions have already been processed and therefore\r
90 // we can directly set the result; Direct Actions do not have\r
91 // a this.response property.\r
92 processResponse: function(result) {\r
93 return (this.result = result);\r
94 },\r
95\r
96 onComplete: function(data) {\r
97 if (data) {\r
98 this.onSuccess(data);\r
99 } else {\r
100 this.onFailure(null);\r
101 }\r
102 }\r
103});\r