# HG changeset patch # User Maximilian Krambach # Date 1486147048 -3600 # Node ID 1a2cd9bef6d7ca376ba783d7fcfbd95438c61766 # Parent d2f06ce4d43a4a62f32111b5f6eba0c9ab152a9c messprogramm zuordnung now functional diff -r d2f06ce4d43a -r 1a2cd9bef6d7 app.js --- a/app.js Fri Feb 03 18:01:25 2017 +0100 +++ b/app.js Fri Feb 03 19:37:28 2017 +0100 @@ -38,6 +38,7 @@ 'Ext.layout.container.Column', 'Lada.store.Deskriptoren', 'Lada.store.Ortszuordnung', + 'Lada.store.OrtszuordnungMp', 'Lada.store.Messungen', 'Lada.store.Zusatzwerte', 'Lada.store.Status', diff -r d2f06ce4d43a -r 1a2cd9bef6d7 app/controller/form/Ortserstellung.js --- a/app/controller/form/Ortserstellung.js Fri Feb 03 18:01:25 2017 +0100 +++ b/app/controller/form/Ortserstellung.js Fri Feb 03 19:37:28 2017 +0100 @@ -41,10 +41,9 @@ }); }, - save: function() { - var this_panel = this.up('panel'); - var me = this; - var form = this_panel.getForm(); + save: function(button) { + var me = button.up('panel'); + var form = me.getForm(); var record = form.getRecord(); var data = form.getFieldValues(true); for (var key in data) { @@ -55,17 +54,18 @@ record.save({ success: function(newrecord, response) { form.loadRecord(newrecord); - this_panel.down('verwaltungseinheit').store.load( + me.down('verwaltungseinheit').store.load( { id:newrecord.get('gemId') }); - this_panel.down('staat').store.load( + me.down('staat').store.load( { id : newrecord.get('staat') }); - me.setDisabled(true); - me.hide(); - var ozw = this_panel.up().parentWindow; + button.setDisabled(true); + me.down('button[action=revert]').setDisabled(true); + button.hide(); + var ozw = me.up().parentWindow; var json = Ext.decode(response.response.responseText); if (json) { - this_panel.clearMessages(); - this_panel.setMessages(json.errors, json.warnings); + me.clearMessages(); + me.setMessages(json.errors, json.warnings); } ozw.ortstore.load({ callback: function(records, operation, success) { @@ -120,8 +120,8 @@ }, discard: function(button) { - this.up('panel').getForm().reset(); - this.up('toolbar').down('button [action=save]').setDisabled(true); + button.up('panel').reset(); + button.up('panel').down('button [action=save]').setDisabled(true); }, /** diff -r d2f06ce4d43a -r 1a2cd9bef6d7 app/controller/form/Ortszuordnung.js --- a/app/controller/form/Ortszuordnung.js Fri Feb 03 18:01:25 2017 +0100 +++ b/app/controller/form/Ortszuordnung.js Fri Feb 03 19:37:28 2017 +0100 @@ -51,16 +51,8 @@ var data = formPanel.getForm().getFieldValues(false); var i18n = Lada.getApplication().bundle; var recordData = formPanel.getForm().getRecord().data; - if (recordData['probeId'] !== undefined) { - // TODO: as model.ort.ortId and model.ortszuordnung.ortId coexist, - // but mean different things, data.ortId is an array here, of - // which we need the first entry - recordData.ortId = data.ortId[0]; - recordData.ortszuordnungTyp = data.ortszuordnungTyp; - } else { //messprogramm - recordData.ortsTyp = data.ortsTyp; - recordData.ort = data.ort; - } + recordData.ortId = data.ortId[0]; + recordData.ortszuordnungTyp = data.ortszuordnungTyp; recordData.ortszusatztext = data.ortszusatztext; if (!data.letzteAenderung) { recordData.letzteAenderung = new Date(); diff -r d2f06ce4d43a -r 1a2cd9bef6d7 app/model/Ort.js --- a/app/model/Ort.js Fri Feb 03 18:01:25 2017 +0100 +++ b/app/model/Ort.js Fri Feb 03 19:37:28 2017 +0100 @@ -109,7 +109,7 @@ type: 'date', convert: function(v) { if (!v) { - return v; + return null; } return new Date(v); } diff -r d2f06ce4d43a -r 1a2cd9bef6d7 app/model/OrtszuordnungMp.js --- a/app/model/OrtszuordnungMp.js Fri Feb 03 18:01:25 2017 +0100 +++ b/app/model/OrtszuordnungMp.js Fri Feb 03 19:37:28 2017 +0100 @@ -15,18 +15,15 @@ fields: [{ name: 'id' }, { - name: 'owner', - type: 'boolean' - }, { name: 'readonly', type: 'boolean', persist: false }, { - name: 'ort' + name: 'ortId' }, { name: 'messprogrammId' }, { - name: 'ortsTyp' + name: 'ortszuordnungTyp' }, { name: 'ortszusatztext' }, { diff -r d2f06ce4d43a -r 1a2cd9bef6d7 app/store/OrtszuordnungMp.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/store/OrtszuordnungMp.js Fri Feb 03 19:37:28 2017 +0100 @@ -0,0 +1,16 @@ +/* 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. + */ + +/** + * Store for Ortszuordnungen for Messprogramme + */ +Ext.define('Lada.store.OrtszuordnungMp', { + extend: 'Ext.data.Store', + model: 'Lada.model.OrtszuordnungMp' +}); + diff -r d2f06ce4d43a -r 1a2cd9bef6d7 app/view/form/Ortserstellung.js --- a/app/view/form/Ortserstellung.js Fri Feb 03 18:01:25 2017 +0100 +++ b/app/view/form/Ortserstellung.js Fri Feb 03 19:37:28 2017 +0100 @@ -54,12 +54,7 @@ labelWidth: 125, fieldLabel: i18n.getMsg('staat'), name: 'staatId', - forceSelection: true, - listeners: { - change: { - fn: function() { me.checkCommitEnabled() } - } - } + forceSelection: true }, { xtype: 'verwaltungseinheit', labelWidth: 125, diff -r d2f06ce4d43a -r 1a2cd9bef6d7 app/view/form/Ortszuordnung.js --- a/app/view/form/Ortszuordnung.js Fri Feb 03 18:01:25 2017 +0100 +++ b/app/view/form/Ortszuordnung.js Fri Feb 03 19:37:28 2017 +0100 @@ -38,13 +38,6 @@ initComponent: function() { var i18n = Lada.getApplication().bundle; var me = this; - if (this.type == 'probe') { - this.ortIdName = 'ortId'; - this.typName = 'ortszuordnungTyp'; - } else if (this.type == 'mpr') { - this.ortIdName = 'ort'; - this.typName = 'ortsTyp'; - } this.items = [{ xtype: 'fieldset', title: i18n.getMsg('ortszuordnung.form.fset.title'), @@ -104,7 +97,7 @@ labelWidth: 125, allowBlank: false, editable: true, - name: this.typName, + name: 'ortszuordnungTyp', disableKeyFilter: true, fieldLabel: i18n.getMsg('ortszuordnung.form.field.ortszuordnungtyp'), }, { @@ -115,7 +108,7 @@ regex: /^[0-9]{1,45}$/, submitValue: true, hidden: true, - name: this.ortIdName, + name: 'ortId', listeners: { change: me.changed } @@ -216,7 +209,7 @@ setReadOnly: function(value) { this.down('tfield[name=ortszusatztext]').setReadOnly(value); - var fieldId = 'textfield[name=' + this.typName +']'; + var fieldId = 'textfield[name=ortszuordnungTyp]'; this.down(fieldId).setReadOnly(value); }, diff -r d2f06ce4d43a -r 1a2cd9bef6d7 app/view/grid/Ortszuordnung.js --- a/app/view/grid/Ortszuordnung.js Fri Feb 03 18:01:25 2017 +0100 +++ b/app/view/grid/Ortszuordnung.js Fri Feb 03 19:37:28 2017 +0100 @@ -168,29 +168,35 @@ }, initData: function() { + var modelname; if (this.isMessprogramm) { - //TODO + this.store = Ext.create('Lada.store.OrtszuordnungMp'); + this.store.load({ + params: { + messprogrammId: this.recordId + }}); + modelname = 'Lada.model.Messprogramm'; } else { + modelname = 'Lada.model.Probe'; this.store = Ext.create('Lada.store.Ortszuordnung'); this.store.load({ params: { probeId: this.recordId + }}); + } + Ext.ClassManager.get(modelname).load(this.recordId, { + failure: function(record, action) { + // TODO + }, + success: function(record, response) { + var json = Ext.decode(response.response.responseText); + if (json) { + this.warnings = json.warnings; + this.errors = json.errors; } - }); - Ext.ClassManager.get('Lada.model.Probe').load(this.recordId, { - failure: function(record, action) { - // TODO - }, - success: function(record, response) { - var json = Ext.decode(response.response.responseText); - if (json) { - this.warnings = json.warnings; - this.errors = json.errors; - } - }, - scope: this - }); - } + }, + scope: this + }); }, setReadOnly: function(b) { diff -r d2f06ce4d43a -r 1a2cd9bef6d7 app/view/widget/OrtszuordnungTyp.js --- a/app/view/widget/OrtszuordnungTyp.js Fri Feb 03 18:01:25 2017 +0100 +++ b/app/view/widget/OrtszuordnungTyp.js Fri Feb 03 19:37:28 2017 +0100 @@ -23,6 +23,7 @@ triggerAction: 'all', typeAhead: false, minChars: 0, + allowBlank: this.allowBlank, initComponent: function() { var i18n = Lada.getApplication().bundle; diff -r d2f06ce4d43a -r 1a2cd9bef6d7 app/view/window/Messprogramm.js --- a/app/view/window/Messprogramm.js Fri Feb 03 18:01:25 2017 +0100 +++ b/app/view/window/Messprogramm.js Fri Feb 03 19:37:28 2017 +0100 @@ -101,7 +101,8 @@ margin: 5, items: [{ xtype: 'ortszuordnunggrid', - recordId: me.record ? me.record.get('id') : null + recordId: me.record ? me.record.get('id') : null, + isMessprogramm: true }] }, { //Messmethoden diff -r d2f06ce4d43a -r 1a2cd9bef6d7 app/view/window/Ortszuordnung.js --- a/app/view/window/Ortszuordnung.js Fri Feb 03 18:01:25 2017 +0100 +++ b/app/view/window/Ortszuordnung.js Fri Feb 03 19:37:28 2017 +0100 @@ -130,7 +130,8 @@ hidden: true, height: 240, items: [{ - xtype: 'ortstammdatengrid' + xtype: 'ortstammdatengrid', + isMessprogramm: this.messprogramm? true: false }], dockedItems: [{ xtype: 'toolbar',