form.html 2.92 KB
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
    <title>Grids</title>
    <link rel="stylesheet" type="text/css" href="../../resources/css/ext-all.css"/>

    <!-- GC -->

    <script type="text/javascript" src="../../ext-all.js"></script>
</head>
<body>
    <script type="text/javascript" charset="utf-8">
        Ext.require('Ext.data.proxy.LocalStorage');

        Ext.onReady(function() {
            Ext.define('User', {
                extend: 'Ext.data.Model',
                fields: ['id', 'first', 'last', 'start', 'bio'],
                proxy: {
                    type: 'localstorage',
                    id: 'form'
                }
            });

            var record;

            var form = Ext.create('Ext.form.Panel', {
                height: 400,
                width: 600,
                bodyPadding: 10,
                renderTo: Ext.getBody(),
                title: 'Edit User',
                defaults: {
                    anchor: "-20"
                },
                items: [
                    {
                        xtype: 'textfield',
                        name: 'first',
                        fieldLabel: 'First Name'
                    },
                    {
                        xtype: 'textfield',
                        name: 'last',
                        fieldLabel: 'Last Name'
                    },
                    {
                        xtype: 'datefield',
                        name: 'startDate',
                        fieldLabel: 'Start Date'
                    },
                    {
                        xtype: 'htmleditor',
                        name: 'bio',
                        fieldLabel: 'Bio',
                        labelAlign: 'top',
                        anchor: '-20 -80' //THIS IS UTTERLY UTTERLY WRONG. IT SHOULD BE -20, NOT -80
                    }
                ],

                buttons: [
                    {
                        text: 'Submit',
                        handler: function() {
                            if (!record) {
                                record = new User({id: 1});
                            }

                            record.set(form.getValues());
                            record.save();
                        }
                    }
                ]
            });

            var store = Ext.create('Ext.data.Store', {
                autoLoad: true,
                model: 'User',
                listeners: {
                    load: function() {


                        //FIXME: THIS APPEARS TO BE BEING CALLED TWICE BUT SHOULD ONLY HAVE BEEN CALLED ONCE


                        record = this.first();

                        if (record) {
                            form.loadRecord(record);
                        }
                    }
                }
            });

            store.load();
        });
    </script>
</body>
</html>