raimund@604: /* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz raimund@604: * Software engineering by Intevation GmbH raimund@604: * raimund@604: * This file is Free Software under the GNU GPL (v>=3) raimund@604: * and comes with ABSOLUTELY NO WARRANTY! Check out raimund@604: * the documentation coming with IMIS-Labordaten-Application for details. raimund@604: */ raimund@604: dustin@894: /** dustin@894: * Form to edit the Location of a Probe raimund@604: */ raimund@604: Ext.define('Lada.view.form.Location', { raimund@604: extend: 'Ext.form.Panel', raimund@604: alias: 'widget.locationform', raimund@604: raimund@604: requires: [ raimund@604: 'Lada.view.widget.Verwaltungseinheit', raimund@604: 'Lada.view.widget.Staat' raimund@604: ], raimund@604: raimund@604: model: 'Lada.model.Ort', raimund@604: minWidth: 300, raimund@604: margin: 5, raimund@604: border: 0, raimund@604: raimund@604: recordId: null, raimund@604: raimund@604: trackResetOnLoad: true, raimund@604: raimund@604: initComponent: function() { raimund@604: this.items = [{ raimund@604: xtype: 'fieldset', raimund@604: title: 'Details', raimund@604: items: [{ raimund@604: border: 0, raimund@604: margin: '0, 0, 10, 0', raimund@604: dockedItems: [{ raimund@604: xtype: 'toolbar', raimund@604: dock: 'bottom', raimund@604: border: '0, 1, 1, 1', raimund@604: style: { raimund@604: borderBottom: '1px solid #b5b8c8 !important', raimund@604: borderLeft: '1px solid #b5b8c8 !important', raimund@604: borderRight: '1px solid #b5b8c8 !important' raimund@604: }, raimund@604: items: ['->', { raimund@604: text: 'Speichern', raimund@604: qtip: 'Daten speichern', raimund@604: icon: 'resources/img/dialog-ok-apply.png', raimund@604: action: 'save', raimund@604: disabled: true raimund@604: }, { raimund@604: text: 'Verwerfen', raimund@604: qtip: 'Änderungen verwerfen', raimund@604: icon: 'resources/img/dialog-cancel.png', raimund@604: action: 'discard', raimund@604: disabled: true raimund@604: }] raimund@604: }], raimund@604: items: [{ raimund@604: xtype: 'tfield', dustin@876: maxLength: 100, dustin@876: name: 'beschreibung', dustin@876: fieldLabel: 'Beschreibung', dustin@876: width: 280, dustin@876: labelWidth: 80 dustin@876: }, { raimund@604: xtype: 'staat', raimund@604: name: 'staatId', raimund@604: fieldLabel: 'Staat', raimund@604: width: 280, raimund@604: labelWidth: 80 raimund@604: }, { raimund@604: xtype: 'verwaltungseinheit', raimund@604: name: 'verwaltungseinheitId', raimund@604: fieldLabel: 'Gemeinde', raimund@675: editable: true, raimund@604: width: 280, raimund@604: labelWidth: 80 raimund@604: }, { raimund@604: xtype: 'numberfield', raimund@604: name: 'latitude', raimund@604: fieldLabel: 'Lat', dustin@802: decimalPrecision: 5, raimund@604: width: 280, raimund@604: labelWidth: 80 raimund@604: }, { raimund@604: xtype: 'numberfield', raimund@604: name: 'longitude', raimund@604: fieldLabel: 'Lon', dustin@802: decimalPrecision: 5, raimund@604: width: 280, raimund@604: labelWidth: 80 raimund@604: }, { raimund@604: xtype: 'numberfield', raimund@604: name: 'hoeheLand', raimund@604: fieldLabel: 'Höhe', raimund@604: width: 280, raimund@604: labelWidth: 80 raimund@604: }] raimund@604: }] raimund@604: }]; raimund@604: this.callParent(arguments); raimund@604: }, raimund@604: raimund@604: setRecord: function(record) { raimund@604: this.getForm().loadRecord(record); raimund@604: }, raimund@604: raimund@604: setMessages: function(errors, warnings) { dustin@708: var key; dustin@708: var element; dustin@708: var content; dustin@708: var i18n = Lada.getApplication().bundle; dustin@708: if (warnings) { dustin@708: for (key in warnings) { dustin@708: element = this.down('component[name=' + key + ']'); dustin@708: if (!element) { dustin@708: continue; dustin@708: } dustin@708: content = warnings[key]; dustin@708: var warnText = ''; dustin@708: for (var i = 0; i < content.length; i++) { dustin@708: warnText += i18n.getMsg(content[i].toString()) + '\n'; dustin@708: } dustin@708: element.showWarnings(warnText); dustin@708: } dustin@708: } dustin@708: if (errors) { dustin@708: for (key in errors) { dustin@708: element = this.down('component[name=' + key + ']'); dustin@708: if (!element) { dustin@708: continue; dustin@708: } dustin@708: content = errors[key]; dustin@708: var errorText = ''; dustin@708: for (var i = 0; i < content.length; i++) { dustin@708: errorText += i18n.getMsg(content[i].toString()) + '\n'; dustin@708: } dustin@708: element.showErrors(errorText); dustin@708: } dustin@708: } dustin@708: }, raimund@604: raimund@604: clearMessages: function() { dustin@876: this.down('tfield[name=beschreibung]').clearWarningOrError(); dustin@708: this.down('staat[name=staatId]').clearWarningOrError(); dustin@708: this.down('verwaltungseinheit[name=verwaltungseinheitId]').clearWarningOrError(); dustin@708: //this.down('numberfield[name=longitude]').clearWarningOrError(); dustin@708: //this.down('numberfield[name=latitude]').clearWarningOrError(); dustin@708: //this.down('numberfield[name=hoeheLand]').clearWarningOrError(); dustin@708: }, raimund@604: raimund@604: setReadOnly: function(value) { dustin@876: this.down('tfield[name=beschreibung]').setReadOnly(value); raimund@604: this.down('staat[name=staatId]').setReadOnly(value); raimund@604: this.down('verwaltungseinheit[name=verwaltungseinheitId]').setReadOnly(value); raimund@604: this.down('numberfield[name=longitude]').setReadOnly(value); raimund@604: this.down('numberfield[name=latitude]').setReadOnly(value); raimund@604: this.down('numberfield[name=hoeheLand]').setReadOnly(value); raimund@604: } raimund@604: });