view app/view/orte/CreateForm.js @ 518:97a428548a24

Added save and discard button to messung edit head and listen for change event to enable/disable buttons.
author Raimund Renkert <raimund.renkert@intevation.de>
date Tue, 16 Dec 2014 16:56:23 +0100
parents 8b4ec61c5752
children
line wrap: on
line source
/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz
 * Software engineering by Intevation GmbH
 *
 * This file is Free Software under the GNU GPL (v>=3)
 * and comes with ABSOLUTELY NO WARRANTY! Check out
 * the documentation coming with IMIS-Labordaten-Application for details.
 */

/*
 * Formular to create and edit a Ort
 */
Ext.define('Lada.view.orte.CreateForm', {
    extend: 'Lada.view.widgets.LadaForm',
    requires: [
        'Lada.view.widgets.Ortdetail',
        'Lada.view.widgets.Staat',
        'Lada.view.widgets.Verwaltungseinheit',
        'Lada.view.orte.CreateOrt'
    ],

    model: 'Lada.model.Ort',
    edit: false,

    initComponent: function() {
        this.items = [{
            xtype: 'ortdetail',
            name: 'ortId',
            fieldLabel: 'Ort',
            listeners: {
                scope: this,
                'change': function(field, newv) {
                    if (field.up('window')) {
                        field.up('window').down('fieldset').show();
                    }
                    var orte = Ext.data.StoreManager.get('staOrte');
                    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.data.StoreManager.get('staVerwaltungseinheiten');
                    if (ort) {
                        verw.load({
                            id: ort.get('gemId')
                        });
                    }

                    var form = this.getForm();
                    var ffield = null;
                    if (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: 'button',
            name: 'newort',
            text: 'Neuen Ort Anlegen',
            hidden: this.edit,
            action: 'newort'
        }, {
            xtype: 'fieldset',
            title: 'Ortsangaben',
            hidden: !this.edit,
            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(arguments);
    },

    updateOrtInfo: function(field, oldv, newv, opts) {
        console.log(field, oldv, newv, opts);
    }
});

http://lada.wald.intevation.org