diff options
| author | michael <michael@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2011-04-10 17:59:36 +0000 |
|---|---|---|
| committer | michael <michael@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2011-04-10 17:59:36 +0000 |
| commit | 8ce31f58a7ecd8fb88467b834121e1e25bd28cce (patch) | |
| tree | 9edfbc4e4804f4f2e588c798ca3b494933cb14e5 /packages/fcl-web/examples/combined/users.js | |
| parent | 0f56acc55d0b64dbece40704545b575df1dd2b9a (diff) | |
| download | fpc-8ce31f58a7ecd8fb88467b834121e1e25bd28cce.tar.gz | |
* Added combined example: login using RPC and edit data using FPWebdata
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@17283 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/fcl-web/examples/combined/users.js')
| -rw-r--r-- | packages/fcl-web/examples/combined/users.js | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/packages/fcl-web/examples/combined/users.js b/packages/fcl-web/examples/combined/users.js new file mode 100644 index 0000000000..063c2dca6f --- /dev/null +++ b/packages/fcl-web/examples/combined/users.js @@ -0,0 +1,108 @@ +Ext.ns('fpWeb'); + +fpWeb.ShowPage = function () { + var myproxy = new Ext.data.HttpProxy ( { + api : { + read: "combined.cgi/Provider/Users/Read/", + update: "combined.cgi/Provider/Users/Update/", + create: "combined.cgi/Provider/Users/Insert/", + destroy: "combined.cgi/Provider/Users/Delete/" + } + }); + var myreader = new Ext.data.JsonReader ({ + root: "rows", + successProperty : 'success', + idProperty: "U_ID", + messageProperty: 'message', // Must be specified here + fields: ["U_ID","U_LOGIN","U_NAME","U_EMAIL", "U_PASSWORD"] + }); + var mywriter = new Ext.data.JsonWriter({ + encode: true, + writeAllFields: true, + idProperty: "U_ID" + }); + var data = new Ext.data.Store({ + proxy: myproxy, + reader: myreader, + writer: mywriter, + autoSave: false, + idProperty: "U_ID", + }); + // Listen to errors. + data.addListener('exception', function(proxy, type, action, options, res) { + if (type === 'remote') { + Ext.Msg.show({ + title: 'REMOTE EXCEPTION', + msg: res.message, + icon: Ext.MessageBox.ERROR, + buttons: Ext.Msg.OK + }); + } + }); + data.load({ params:{start: 0, limit: 30}}); + var grid = new Ext.grid.EditorGridPanel({ + renderTo: Ext.getBody(), + frame: true, + title: "Known users", + height: 600, + width: 800, + store: data, + columns: [ + {header: 'ID', dataIndex: "U_ID", sortable: true, hidden: true}, + {header: 'Login', dataIndex: "U_LOGIN", sortable: true, editor: new Ext.form.TextField({allowBlank: false})}, + {header: 'Name', dataIndex: "U_NAME", sortable: true, editor: new Ext.form.TextField({allowBlank: false}), width : 200}, + {header: 'Email', dataIndex: "U_EMAIL", sortable: true, editor: new Ext.form.TextField({allowBlank: false}), width : 200}, + {header: 'Password', dataIndex: "U_PASSWORD", sortable: true, editor: new Ext.form.TextField()}, + ], + bbar: new Ext.PagingToolbar({ + pageSize: 30, + store: data, + displayInfo: true + }), + tbar : [{ + text: 'Add', + iconCls: 'icon-add', + handler: function(btn, ev) { + var u = new grid.store.recordType(); + grid.stopEditing(); + grid.store.insert(0, u); + grid.startEditing(0, 1); + }, + scope: grid + }, '-', { + text: 'Delete', + iconCls: 'icon-delete', + handler: function(btn, ev) { + var index = grid.getSelectionModel().getSelectedCell(); + if (!index) { + return false; + } + var rec = grid.store.getAt(index[0]); + grid.store.remove(rec); + }, + scope: grid + }, '-', { + text: 'Save', + iconCls: 'icon-save', + handler: function(btn, ev) { + grid.store.save(); + }, + scope: grid + },'->', { + text: 'Log out', + iconCls: 'logout', + handler: function () { + SessionManagement.Logout(function (provider,response) { + if (response.result=='Bye') { + window.location='combined.html'; + } + }); + } + } + ] + // F.ContentToStream(M); + + }); + grid.show(); +} +Ext.onReady(fpWeb.ShowPage); |
