]>
Commit | Line | Data |
---|---|---|
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 | |
52 | Ext.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 |