view app/view/orte/CreateForm.js @ 429:608a1784a8ac

Load currently "selected" verwaltungseinheit when changing the selection.
author Torsten Irländer <torsten.irlaender@intevation.de>
date Fri, 08 Nov 2013 12:46:24 +0100
parents 1536fb5c81b7
children 4206cb30138c
line wrap: on
line source
/*
 * Formular to create and edit a Ort
 */
Ext.define('Lada.view.orte.CreateForm', {
    extend: 'Lada.view.widgets.LadaForm',
    model: 'Lada.model.Ort',
    requires: [
        'Lada.view.widgets.Ortdetail',
        'Lada.view.widgets.Staat',
        'Lada.view.widgets.Verwaltungseinheit'
    ],
    initComponent: function() {
        this.items = [
            {
                xtype: 'ortdetail',
                name: 'ortId',
                fieldLabel: 'Ort',
                listeners: {
                    scope: this,
                    'change': function (field, newv, oldv, opts) {
                        console.log(field, oldv, newv, opts);
                        var orte = Ext.getStore('Ortedetails');
                        var ort = orte.getById(newv);
                        var fields = ['beschreibung', 'bezeichnung', 'hoeheLand',
                                      'latitude', 'longitude', 'staatId', 'gemId'];

                        // Load currently "selected" verwaltungseinheit.  This
                        // is needed as without having this record the field
                        // would only display the raw value (id) of the
                        // verwaltungseinheit.
                        var verw = Ext.getStore('Verwaltungseinheiten');
                        verw.load({
                            id: ort.get('gemId')
                        });

                        var form = this.getForm();
                        if ( ort != undefined ) {
                            console.log('Found ort');
                            for (var i = fields.length - 1; i >= 0; i--){
                                ffield = form.findField("ort_"+fields[i]);
                                ffield.setValue(ort.get(fields[i]));
                            }
                        }
                    }
                }
            },
            {
                xtype: 'textfield',
                name: 'ortsTyp',
                maxLength: 1,
                fieldLabel: 'Typ'
            },
            {
                xtype: 'textareafield',
                name: 'ortszusatztext',
                maxLength: 100,
                fieldLabel: 'Ortszusatz'
            },
            {
                xtype: 'fieldset',
                title: 'Ortsangaben',
                defaults: {
                        labelWidth: 150
                },
                items: [
                    {
                        xtype: 'textfield',
                        maxLength: 100,
                        name: 'ort_beschreibung',
                        fieldLabel: 'Beschreibung'
                    },
                    {
                        xtype: 'textfield',
                        maxLength: 10,
                        name: 'ort_bezeichnung',
                        fieldLabel: 'Bezeichnung'
                    },
                    {
                        xtype: 'staat',
                        name: 'ort_staatId',
                        fieldLabel: 'Staat'
                    },
                    {
                        xtype: 'verwaltungseinheiten',
                        name: 'ort_gemId',
                        fieldLabel: 'Gemeinde'
                    },
                    {
                        xtype: 'numberfield',
                        name: 'ort_latitude',
                        fieldLabel: 'Lat'
                    },
                    {
                        xtype: 'numberfield',
                        name: 'ort_longitude',
                        fieldLabel: 'Lon'
                    },
                    {
                        xtype: 'numberfield',
                        name: 'ort_hoeheLand',
                        fieldLabel: 'Höhe'
                    }
                ]
            }
        ];
        this.callParent();
    },
    updateOrtInfo: function(field, oldv, newv, opts) {
        console.log(field, oldv, newv, opts);
    }
});

http://lada.wald.intevation.org