[Lada-commits] [PATCH] Ortszuordnung for messprogramm and probe using same form
Wald Commits
scm-commit at wald.intevation.org
Wed Feb 1 14:53:01 CET 2017
# HG changeset patch
# User Maximilian Krambach <mkrambach at intevation.de>
# Date 1485957171 -3600
# Node ID bfdc00c24baf0a7d6ffaf7e2d2953dbc42a4798b
# Parent 08085b7d1d0b6281da79b8a5bd20149daf6afff2
Ortszuordnung for messprogramm and probe using same form
diff -r 08085b7d1d0b -r bfdc00c24baf app/controller/form/Messprogramm.js
--- a/app/controller/form/Messprogramm.js Fri Jan 27 13:25:14 2017 +0100
+++ b/app/controller/form/Messprogramm.js Wed Feb 01 14:52:51 2017 +0100
@@ -12,9 +12,6 @@
Ext.define('Lada.controller.form.Messprogramm', {
extend: 'Ext.app.Controller',
- requires: [
- 'Lada.view.window.MessprogrammOrt'
- ],
/**
* Initialize the Controller
@@ -27,18 +24,12 @@
'messprogrammform button[action=discard]': {
click: this.discard
},
- 'messprogrammform button[action=ort]': {
- click: this.editOrtWindow
- },
'messprogrammform': {
dirtychange: this.dirtyForm
},
'messprogrammform messstellelabor combobox': {
select: this.setNetzbetreiber
},
- 'messprogrammform location combobox': {
- select: this.syncOrtWindow
- },
'messprogrammform numfield numberfield': {
change: this.checkPeriod
},
@@ -121,44 +112,6 @@
},
/**
- * The function will open a new Window to edit the Ort of a Messprogramm
- */
- editOrtWindow: function(button) {
- var formPanel = button.up('form');
- //Only Open if the WIndow does not exist, else focus
- if (!formPanel.ortWindow) {
- var data = formPanel.getForm().getFieldValues(true);
- formPanel.ortWindow = Ext.create('Lada.view.window.MessprogrammOrt', {
- record: formPanel.getRecord(),
- parentWindow: formPanel.up('window')
- });
- formPanel.ortWindow.show();
- formPanel.ortWindow.initData();
- }
- else {
- formPanel.ortWindow.focus();
- formPanel.ortWindow.setActive(true);
- }
- },
-
- /**
- * When a OrtWindow exist, and the value of the location combobox is changed, update the window.
- */
- syncOrtWindow: function(combo, record){
- var formPanel = combo.up('messprogrammform');
- if (formPanel.ortWindow) {
- var ortwindowlocation = formPanel
- .ortWindow.down('location')
- var ortwindowcombo = ortwindowlocation
- .down('combobox');
-
- ortwindowcombo.select(combo.getValue());
- ortwindowlocation.fireEvent('select',
- ortwindowcombo, ortwindowcombo.record);
- }
- },
-
- /**
* When the Slider was used,
* update the Value of the Teilintervallfields
*/
@@ -202,14 +155,9 @@
var formPanel = button.up('form');
var data = formPanel.getForm().getFieldValues();
var orte = Ext.data.StoreManager.get('orte');
- var gemId;
- if (data['ortId'] !== null && data['ortId'] !== '') {
- gemId = orte.getById(data['ortId']).get('gemId');
- }
for (var key in data) {
formPanel.getForm().getRecord().set(key, data[key]);
}
- formPanel.getForm().getRecord().set('gemId', gemId);
if (!formPanel.getForm().getRecord().get('letzteAenderung')) {
formPanel.getForm().getRecord().data.letzteAenderung = new Date();
}
@@ -402,5 +350,4 @@
}
}
-
});
diff -r 08085b7d1d0b -r bfdc00c24baf app/controller/form/Ortszuordnung.js
--- a/app/controller/form/Ortszuordnung.js Fri Jan 27 13:25:14 2017 +0100
+++ b/app/controller/form/Ortszuordnung.js Wed Feb 01 14:52:51 2017 +0100
@@ -48,14 +48,25 @@
}
catch (e) {
}
-
- var data = formPanel.getForm().getFieldValues(true);
+ var data = formPanel.getForm().getFieldValues(false);
var i18n = Lada.getApplication().bundle;
- for (var key in data) {
- formPanel.getForm().getRecord().set(key, data[key]);
+ //TODO: the forms seem not to submit anything into record.
+ 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;
}
- if (!formPanel.getForm().getRecord().get('letzteAenderung')) {
- formPanel.getForm().getRecord().data.letzteAenderung = new Date();
+ recordData.ortszusatztext = data.ortszusatztext;
+ if (!data.letzteAenderung) {
+ recordData.letzteAenderung = new Date();
+ } else {
+ recordData.letzteAenderung = data.letzteAenderung;
}
formPanel.getForm().getRecord().save({
success: function(record, response) {
@@ -116,7 +127,11 @@
var record = formPanel.getForm().getRecord();
formPanel.getForm().loadRecord(record);
try {
- formPanel.refreshOrt(record.get('ortId'));
+ if (record.get('ortId') !== undefined) {
+ formPanel.setOrt(record.get('ortId'));
+ } else {
+ formPanel.setOrt(record.get('ort'));
+ }
formPanel.down('button[action=setOrt]').toggle(false);
}
catch (e) {
@@ -127,7 +142,6 @@
* When the button is Active, a Record can be selected.
* If the Record was selected from a grid this function
* sets the ortzuordnung.
- * TODO: Check if the selected Record is a ORT
*/
chooseLocation: function(button, pressed, opts) {
var i18n = Lada.getApplication().bundle;
@@ -135,6 +149,7 @@
var gridPanel = win.down('panel[name=ortgrid]');
var osg = win.down('ortstammdatengrid');
var oForm = button.up('form');
+ osg.addListener('select',oForm.setOrt, oForm);
if (pressed) {
win.setHeight(Ext.getBody().getViewSize().height - 50);
button.setText(i18n.getMsg('ortszuordnung.form.setOrt.pressed'));
@@ -160,14 +175,25 @@
validityChange: function(form, valid) {
if (form.isDirty()) {
form.owner.down('button[action=discard]').setDisabled(false);
- if ( valid && form.getValues().ortId !== ''
- && /[UEZA]/.test(form.getValues().ortszuordnungTyp)
- ) {
- form.owner.down('button[action=save]').setDisabled(false);
+ if (valid) {
+ if (form.getValues().ortId !== ''
+ && /[UEZA]/.test(form.getValues().ortszuordnungTyp)) {
+ // valid ortzuordnung(Probe)
+ form.owner.down('button[action=save]').setDisabled(false);
+ } else if (form.getValues().ort !== ''
+ && /[UEZA]/.test(form.getValues().ortsTyp)) {
+ // valid ortzuordnung(messprogramm)
+ form.owner.down('button[action=save]').setDisabled(false);
+ } else {
+ form.owner.down('button[action=save]').setDisabled(true);
+ }
} else {
+ //invalid
form.owner.down('button[action=save]').setDisabled(true);
}
} else {
+ //not dirty
+ form.owner.down('button[action=save]').setDisabled(true);
form.owner.down('button[action=discard]').setDisabled(true);
}
}
diff -r 08085b7d1d0b -r bfdc00c24baf app/controller/grid/Ortszuordnung.js
--- a/app/controller/grid/Ortszuordnung.js Fri Jan 27 13:25:14 2017 +0100
+++ b/app/controller/grid/Ortszuordnung.js Wed Feb 01 14:52:51 2017 +0100
@@ -62,13 +62,20 @@
/**
* When open is called, a {@link Lada.view.window.Ortszuordnung}
- * is created which allows to edit the Orte
+ * is created which allows to edit the Orte. record is an ortszuordnung
+ * or ortzuordnungMp
*/
open: function(grid, record) {
- var probe = grid.up('window').record;
+ var parent = grid.up('window').record;
+ // parent is either probe or messprogramm.
+ var parentisMp = false;
+ if (parent.data.hauptprobenNr === undefined) {
+ parentisMp = true;
+ }
var win = Ext.create('Lada.view.window.Ortszuordnung', {
parentWindow: grid.up('window'),
- probe: probe,
+ probe: parentisMp ? null: parent,
+ messprogramm: parentisMp ? parent: null,
record: record,
grid: grid
});
@@ -80,10 +87,15 @@
* This function adds a new row to add an Ort
*/
add: function(button) {
- var probe = button.up('window').record;
+ var parent = button.up('window').record;
+ var parentisMp = false;
+ if (parent.data.hauptprobenNr === undefined) {
+ parentisMp = true;
+ }
var win = Ext.create('Lada.view.window.Ortszuordnung', {
parentWindow: button.up('window'),
- probe: probe,
+ probe: parentisMp ? null: parent,
+ messprogramm: parentisMp ? parent: null,
record: null,
grid: button.up('ortszuordnung')
});
@@ -240,7 +252,8 @@
this.resultPanel = Ext.create('Lada.view.window.OrtFilter', {
x: 500,
y: 500,
- alwaysOnTop: true
+ alwaysOnTop: true,
+ parentWindow: this
});
}
this.resultPanel.show();
@@ -260,22 +273,26 @@
selectedVerwaltungseinheit: function(grid, record) {
var win = grid.up('window');
+ var panel = this.searchField.up('panel').up('window');
win.hide();
this.searchField.reset();
Ext.create('Lada.view.window.Ortserstellung', {
- record: Ext.create('Lada.model.Ort', record.data),
- parentWindow: grid.up('ortszuordnungwindow')
+ record: Ext.create('Lada.model.Ort', {
+ gemId: record.get('id')
+ }),
+ parentWindow: panel
}).show();
},
selectedStaat: function(grid, record) {
var win = grid.up('window');
- console.log(grid.up('ortszuordnungwindow'));
win.hide();
+ this.searchField.reset();
Ext.create('Lada.view.window.Ortserstellung', {
- record: Ext.create('Lada.model.Ort', record.data),
- parentWindow: grid.up('ortszuordnungwindow')
+ record: Ext.create('Lada.model.Ort', {
+ staatId: record.get('id')
+ }),
+ parentWindow: win
}).show();
- this.searchField.reset();
}
});
diff -r 08085b7d1d0b -r bfdc00c24baf app/model/Messprogramm.js
--- a/app/model/Messprogramm.js Fri Jan 27 13:25:14 2017 +0100
+++ b/app/model/Messprogramm.js Wed Feb 01 14:52:51 2017 +0100
@@ -31,10 +31,6 @@
},{
name: 'baId'
}, {
- name: 'gemId'
- }, {
- name: 'ortId'
- }, {
name: 'mediaDesk',
serialize: function(value) {
if (value === '') {
diff -r 08085b7d1d0b -r bfdc00c24baf app/model/Ort.js
--- a/app/model/Ort.js Fri Jan 27 13:25:14 2017 +0100
+++ b/app/model/Ort.js Wed Feb 01 14:52:51 2017 +0100
@@ -25,9 +25,21 @@
}, {
name: 'netzbetreiberId'
}, {
- name: 'gemId'
+ name: 'gemId',
+ convert: function(v) {
+ if (v === '') {
+ return null;
+ }
+ return v;
+ }
}, {
- name: 'staatId'
+ name: 'staatId',
+ convert: function(v) {
+ if (v === '') {
+ return null;
+ }
+ return v;
+ }
}, {
name: 'kdaId',
convert: function(v) {
diff -r 08085b7d1d0b -r bfdc00c24baf app/model/Ortszuordnung.js
--- a/app/model/Ortszuordnung.js Fri Jan 27 13:25:14 2017 +0100
+++ b/app/model/Ortszuordnung.js Wed Feb 01 14:52:51 2017 +0100
@@ -7,7 +7,7 @@
*/
/**
- * Model class for Ortszuorndung
+ * Model class for Ortszuordnung of probe
*/
Ext.define('Lada.model.Ortszuordnung', {
extend: 'Ext.data.Model',
diff -r 08085b7d1d0b -r bfdc00c24baf app/model/OrtszuordnungMp.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/model/OrtszuordnungMp.js Wed Feb 01 14:52:51 2017 +0100
@@ -0,0 +1,70 @@
+/* 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.
+ */
+
+/**
+ * Model class for Ortszuordnung of Messprogramme
+ */
+Ext.define('Lada.model.OrtszuordnungMp', {
+ extend: 'Ext.data.Model',
+
+ fields: [{
+ name: 'id'
+ }, {
+ name: 'owner',
+ type: 'boolean'
+ }, {
+ name: 'readonly',
+ type: 'boolean',
+ persist: false
+ }, {
+ name: 'ort'
+ }, {
+ name: 'messprogrammId'
+ }, {
+ name: 'ortsTyp'
+ }, {
+ name: 'ortszusatztext'
+ }, {
+ name: 'letzteAenderung',
+ type: 'date',
+ convert: function(v) {
+ if (!v) {
+ return v;
+ }
+ return new Date(v);
+ }
+ }, {
+ name: 'treeModified',
+ serialize: function(value) {
+ if (value === '') {
+ return null;
+ }
+ return value;
+ }
+ }, {
+ name: 'parentModified',
+ serialize: function(value) {
+ if (value === '') {
+ return null;
+ }
+ return value;
+ }
+ }],
+
+ idProperty: 'id',
+
+ proxy: {
+ type: 'rest',
+ url: 'lada-server/rest/ortszuordnungmp',
+ reader: {
+ type: 'json',
+ root: 'data'
+ }
+ }
+});
+
diff -r 08085b7d1d0b -r bfdc00c24baf app/view/form/Messprogramm.js
--- a/app/view/form/Messprogramm.js Fri Jan 27 13:25:14 2017 +0100
+++ b/app/view/form/Messprogramm.js Wed Feb 01 14:52:51 2017 +0100
@@ -38,7 +38,6 @@
border: 0,
recordId: null,
- ortWindow: null,
trackResetOnLoad: true,
@@ -360,32 +359,6 @@
}]
}]
}, {
- // Ort
- xtype: 'fieldset',
- title: 'Ort',
- layout: {
- type: 'hbox',
- align: 'stretch'
- },
- width: '100%',
- items: [{
- xtype: 'location',
- name: 'ortId',
- fieldLabel: i18n.getMsg('ortId'),
- labelWidth: 80,
- allowBlank: false,
- forceSelection: true,
- editable: false,
- columnWidth: '0.75'
- }, {
- xtype: 'button',
- name: 'ortIdButton',
- margin: '0 0 0 5',
- text: i18n.getMsg('messprogrammort.button.title'),
- action: 'ort',
- columnWidth: '0.25'
- }]
- }, {
xtype: 'probenehmer',
name: 'probeNehmerId',
fieldLabel: i18n.getMsg('probeNehmerId'),
@@ -465,7 +438,7 @@
intervall, 0, false, false, true);
if (intrec) { // in cases when a new messprogramm is
- // created and the discard function is used, intrec will be null
+ // created and the discard function is used, intrec will be null && edit is allowed
// consequently the assertion below will fail.
min = intrec.get('periodstart');
max = intrec.get('periodend');
@@ -672,7 +645,6 @@
//no clear for probeNehmerId
// Deskriptoren are missing
this.down('cbox[name=umwId]').clearWarningOrError();
- this.down('cbox[name=ortId]').clearWarningOrError();
},
setReadOnly: function(value) {
diff -r 08085b7d1d0b -r bfdc00c24baf app/view/form/OrtInfo.js
--- a/app/view/form/OrtInfo.js Fri Jan 27 13:25:14 2017 +0100
+++ b/app/view/form/OrtInfo.js Wed Feb 01 14:52:51 2017 +0100
@@ -23,50 +23,34 @@
layout: 'vbox',
flex: 1,
border: 0,
- items: [{
+ defaults: {
xtype: 'displayfield',
labelWidth: 125,
+ submitValue: false
+ },
+ items: [{
fieldLabel: i18n.getMsg('orte.ortId'),
name: 'ortId'
},
{
- xtype: 'displayfield',
- labelWidth: 125,
fieldLabel: i18n.getMsg('orte.kurztext'),
name: 'kurztext'
}, {
- xtype: 'displayfield',
- labelWidth: 125,
fieldLabel: i18n.getMsg('orte.langtext'),
name: 'langtext'
}, {
- xtype: 'displayfield',
- labelWidth: 125,
fieldLabel: i18n.getMsg('staat'),
name: 'staatISO'
}, {
- xtype: 'displayfield',
- labelWidth: 125,
- fieldLabel: i18n.getMsg('orte.gemeinde'),
- name: 'gemeinde'
- }, {
- xtype: 'displayfield',
- labelWidth: 125,
fieldLabel: i18n.getMsg('orte.gemeindename'),
name: 'gemeinde'
}, {
- xtype: 'displayfield',
- labelWidth: 125,
fieldLabel: i18n.getMsg('orte.kda'),
name: 'kdaId'
}, {
- xtype: 'displayfield',
- labelWidth: 125,
fieldLabel: i18n.getMsg('orte.koordx'),
name: 'koordXExtern'
}, {
- xtype: 'displayfield',
- labelWidth: 125,
fieldLabel: i18n.getMsg('orte.koordy'),
name: 'koordYExtern'
}]
diff -r 08085b7d1d0b -r bfdc00c24baf app/view/form/Ortserstellung.js
--- a/app/view/form/Ortserstellung.js Fri Jan 27 13:25:14 2017 +0100
+++ b/app/view/form/Ortserstellung.js Wed Feb 01 14:52:51 2017 +0100
@@ -18,6 +18,8 @@
],
model: null,
+ margin: 5,
+
record: null,
initComponent: function() {
@@ -28,28 +30,20 @@
editable: false,
readOnly: true,
submitValue: true,
+ border: 0,
fieldLabel: i18n.getMsg('netzbetreiberId'),
- margin : '0, 5, 5, 5',
- labelWidth: 80,
- width: 150,
+ labelWidth: 125,
value: Lada.netzbetreiber[0]
}, {
xtype: 'checkbox',
name: 'aktiv',
fieldLabel: 'aktiv:'
- }, {
- xtype: 'displayfield',
- align: 'right',
- value: 'D',
- labelWidth: 125,
- maxLength: 1,
- name: 'messpunktart',
- fieldLabel: 'Art des Messpunktes:'
},{
xtype: 'staat',
labelWidth: 125,
fieldLabel: i18n.getMsg('staat'),
name: 'staatId',
+ forceSelection: true,
listeners: {
change: {
fn: function() { me.checkCommitEnabled() }
@@ -59,6 +53,7 @@
xtype: 'verwaltungseinheit',
labelWidth: 125,
fieldLabel: i18n.getMsg('orte.gemeinde'),
+ forceSelection: true,
name: 'gemId',
listeners: {
change: {
@@ -106,7 +101,7 @@
}, {
xtype: 'numfield',
labelWidth: 125,
- fieldLabel: 'Höhe:',
+ fieldLabel: i18n.getMsg('orte.hoeheLand'),
name: 'hoeheLand',
maxLength: 10,
allowDecimals: true
@@ -115,7 +110,7 @@
labelWidth: 125,
maxLength: 100,
name: 'kurztext',
- fieldLabel: i18n.getMsg('orte.kurztext'),
+ fieldLabel: i18n.getMsg('orte.kurztext')
},{
xtype: 'tfield',
labelWidth: 125,
@@ -124,9 +119,58 @@
},{
xtype: 'tfield',
labelWidth: 125,
- fieldLabel: 'Berichtstext:',
+ fieldLabel: i18n.getMsg('orte.berichtstext'),
name: 'berichtstext'
+ }, {
+ xtype: 'tfield',
+ labelWidth: 125,
+ maxLength: 100,
+ name: 'anlageId',
+ fieldLabel: i18n.getMsg('orte.anlageId')
+ }, {
+ xtype: 'tfield',
+ labelWidth: 125,
+ maxLength: 100,
+ name: 'zone',
+ fieldLabel: i18n.getMsg('orte.zone')
+ },{
+ xtype: 'tfield',
+ labelWidth: 125,
+ maxLength: 100,
+ name: 'sektor',
+ fieldLabel: i18n.getMsg('orte.sektor')
+ },{
+ xtype: 'tfield',
+ labelWidth: 125,
+ maxLength: 100,
+ name: 'ortTyp',
+ fieldLabel: i18n.getMsg('orte.ortTyp')
+ },{
+ xtype: 'tfield',
+ labelWidth: 125,
+ maxLength: 100,
+ name: 'zustaendigkeit',
+ fieldLabel: i18n.getMsg('orte.zustaendigkeit')
+ },{
+ xtype: 'tfield',
+ labelWidth: 125,
+ maxLength: 100,
+ name: 'mpArt',
+ fieldLabel: i18n.getMsg('orte.mpArt')
+ },{
+ xtype: 'tfield',
+ labelWidth: 125,
+ maxLength: 100,
+ name: 'nutsCode',
+ fieldLabel: i18n.getMsg('orte.nutsCode')
+ },{
+ xtype: 'tfield',
+ labelWidth: 125,
+ maxLength: 100,
+ name: 'ozId',
+ fieldLabel: i18n.getMsg('orte.ozId')
}];
+
this.dockedItems = [{
xtype: 'toolbar',
dock: 'bottom',
@@ -150,44 +194,29 @@
}]
}];
-//TODO:
-// 'Anlage:'?
-// zone
-// sektor
-// zustaendigkeit
-// Messregime (mpArt)
-// 'Prog.-Punkt:', ?
-// nutsCode
-// Ortszusatz-ID (ozId)
this.callParent(arguments);
this.getForm().loadRecord(this.record);
},
/**
- * checks Messpunktart and if the Messpunkt can be committed.
+ * checks if the Messpunkt can be committed.
* Disables the save button if false
*/
- // TODO messpunktart is not yet finally defined
checkCommitEnabled: function() {
var savebutton = this.down('toolbar').down('button[action=save]');
var form = this.getForm();
- if (this.getForm().findField('kdaId').getValue() ||
- this.getForm().findField('koordYExtern').getValue() ||
- this.getForm().findField('koordXExtern').getValue()) {
+ if (form.findField('kdaId').getValue() ||
+ form.findField('koordYExtern').getValue() ||
+ form.findField('koordXExtern').getValue()) {
if (this.checkCoordinates()) {
- form.findField('messpunktart').setValue('D');
savebutton.setDisabled(false);
} else {
savebutton.setDisabled(true);
}
- } else if (form.findField('gemId').getValue()) {
- form.findField('messpunktart').setValue('V');
- savebutton.setDisabled(false);
- } else if (form.findField('staatId').getValue()) {
- form.findField('messpunktart').setValue('S');
+ } else if (form.findField('gemId').getValue() ||
+ form.findField('staatId').getValue() >= 0 ) {
savebutton.setDisabled(false);
} else {
- form.findField('messpunktart').setValue('D');
savebutton.setDisabled(true);
}
},
@@ -240,29 +269,29 @@
this_panel.record.save({
success: function(record, response) {
var newOrtId;
- Ext.Msg.show({
- title: Lada.getApplication().bundle.getMsg('success'),
- autoScroll: true,
- msg: 'Ort erfolgreich angelegt!',
- buttons: Ext.Msg.OK
- });
var ozw = this_panel.up().parentWindow;
ozw.ortstore.load({
callback: function(records, operation, success) {
ozw.down('map').addLocations(ozw.ortstore);
- ozw.down('ortstammdatengrid').setStore(ozw.ortstore);
+ var osg = ozw.down('ortstammdatengrid');
+ osg.setStore(ozw.ortstore);
var id = Ext.decode(response.response.responseText).data.id;
- var record = ozw.down('ortstammdatengrid').store.getById(id);
- var selectionmodel = ozw.down('ortstammdatengrid').getSelectionModel();
- console.log(record);
- selectionmodel.select(record);
+ var record = osg.store.getById(id);
+ var selmod = osg.getView().getSelectionModel();
+ selmod.select(record);
+ Ext.Msg.show({
+ title: Lada.getApplication().bundle.getMsg('success'),
+ autoScroll: true,
+ msg: 'Ort erfolgreich angelegt!',
+ buttons: Ext.Msg.OK
+ });
this_panel.close();
},
scope: this
});
+
},
failure: function(record, response) {
- // TODO check
var json = Ext.decode(response.response.responseText);
if (json) {
if(json.errors.totalCount > 0 || json.warnings.totalCount > 0){
diff -r 08085b7d1d0b -r bfdc00c24baf app/view/form/Ortszuordnung.js
--- a/app/view/form/Ortszuordnung.js Fri Jan 27 13:25:14 2017 +0100
+++ b/app/view/form/Ortszuordnung.js Wed Feb 01 14:52:51 2017 +0100
@@ -13,8 +13,6 @@
extend: 'Ext.form.Panel',
alias: 'widget.ortszuordnungform',
- model: 'Lada.model.Ortszuordnung',
-
requires: [
'Lada.view.form.OrtInfo',
'Lada.view.widget.Verwaltungseinheit',
@@ -25,6 +23,13 @@
margin: '5, 5, 0, 5',
border: 0,
+ /**
+ * @cfg: the type of the record to be passed. Should be either 'probe' or 'mpr'.
+ * Variable naming of these differ slightly (see function initComponent and the
+ * two lada.data.model.ortszuordnung* )
+ */
+ type: null,
+
record: null,
trackResetOnLoad: true,
@@ -32,6 +37,13 @@
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'),
@@ -91,9 +103,11 @@
allowBlank: false,
regex: /[UEZA]{1}/,
activeError: 'U, E, Z oder A eingeben',
- name: 'ortszuordnungTyp',
+ name: this.typName,
fieldLabel: i18n.getMsg('ortszuordnung.form.field.ortszuordnungtyp'),
-
+ listeners: {
+ change: me.changed
+ }
}, {
// this field is hidden because the user doesn't
// need to know the internal ortID
@@ -103,15 +117,13 @@
regex: /^[0-9]{1,45}$/,
submitValue: true,
hidden: true,
- name: 'ortId',
+ name: this.ortIdName,
listeners: {
- change: me.changedOrt
+ change: me.changed
}
}]
},
- Ext.create('Lada.view.form.OrtInfo', {
- record: me.record
- })
+ Ext.create('Lada.view.form.OrtInfo')
]
}]
}]
@@ -128,28 +140,6 @@
else {
this.setReadOnly(true);
}
- var ortId = this.getRecord().get('ortId');
- this.refreshOrt(ortId);
- },
-
- refreshOrt: function(ortId) {
- var orteStore = Ext.StoreManager.get('orte');
- var ort = orteStore.getById(ortId);
- if (!ort) {
- return;
- }
- var verwStore = Ext.StoreManager.get('verwaltungseinheiten');
- var verw = verwStore.getById(ort.get('gemId'));
- var staatStore = Ext.StoreManager.get('staaten');
- var staat = staatStore.getById(ort.get('staatId'));
- var ortinfo = this.down('ortinfo')
- ortinfo.loadRecord(ort);
- ortinfo.getForm().setValues({
- gemeinde: verw.get('bezeichnung'),
- staat: staat.get('staatIso'),
- lon: ort.get('longitude'),
- lat: ort.get('latitude')
- });
},
/**
@@ -158,16 +148,31 @@
*/
setOrt: function(row, selRecord, index, opts) {
var newOrtId = selRecord.get('id');
- var r = this.getRecord();
if (newOrtId) {
- if (newOrtId != r.get('ortId')) {
- r.set('ortId', newOrtId);
+ if (this.type == 'probe') {
this.getForm().setValues({ortId: newOrtId});
- this.refreshOrt(newOrtId);
+ } else {
+ this.getForm().setValues({ort: newOrtId});
}
+ this.setOrtInfo(selRecord);
}
},
+ setOrtInfo: function(ortrecord) {
+ var verwStore = Ext.StoreManager.get('verwaltungseinheiten');
+ var verw = verwStore.getById(ortrecord.get('gemId'));
+ var staatStore = Ext.StoreManager.get('staaten');
+ var staat = staatStore.getById(ortrecord.get('staatId'));
+ var ortinfo = this.down('ortinfo');
+ ortinfo.loadRecord(ortrecord);
+ ortinfo.getForm().setValues({
+ gemeinde: verw.get('bezeichnung'),
+ staat: staat.get('staatIso'),
+ lon: ortrecord.get('longitude'),
+ lat: ortrecord.get('latitude')
+ });
+ },
+
setMessages: function(errors, warnings) {
var key;
var element;
@@ -209,18 +214,19 @@
setReadOnly: function(value) {
this.down('tfield[name=ortszusatztext]').setReadOnly(value);
- this.down('textfield[name=ortszuordnungTyp]').setReadOnly(value);
+ var fieldId = 'textfield[name=' + this.typName +']';
+ this.down(fieldId).setReadOnly(value);
},
/**
- * Helper to trigger the forms' validity check on change of ortID
+ * Helper to trigger the forms' validity check
*/
- changedOrt: function() {
+ changed: function(newValue, oldValue) {
var controller = Lada.app.getController(
'Lada.controller.form.Ortszuordnung');
var form = this.up('form').getForm();
+ var fields = form.getFields().items;
controller.validityChange(form, form.isValid());
-
}
});
diff -r 08085b7d1d0b -r bfdc00c24baf app/view/grid/Ortszuordnung.js
--- a/app/view/grid/Ortszuordnung.js Fri Jan 27 13:25:14 2017 +0100
+++ b/app/view/grid/Ortszuordnung.js Wed Feb 01 14:52:51 2017 +0100
@@ -25,6 +25,8 @@
recordId: null,
+ isMessprogramm: false,
+
warnings: null,
errors: null,
readOnly: true,
@@ -164,25 +166,29 @@
},
initData: function() {
- this.store = Ext.create('Lada.store.Ortszuordnung');
- this.store.load({
- params: {
- probeId: this.recordId
- }
- });
- 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;
+ if (this.isMessprogramm) {
+ //TODO
+ } else {
+ this.store = Ext.create('Lada.store.Ortszuordnung');
+ this.store.load({
+ params: {
+ probeId: this.recordId
}
- },
- scope: this
- });
+ });
+ 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
+ });
+ }
},
setReadOnly: function(b) {
diff -r 08085b7d1d0b -r bfdc00c24baf app/view/panel/Map.js
--- a/app/view/panel/Map.js Fri Jan 27 13:25:14 2017 +0100
+++ b/app/view/panel/Map.js Wed Feb 01 14:52:51 2017 +0100
@@ -89,6 +89,9 @@
}
},
+ /**
+ * Select a feature by record (a Lada.model.Ort) and zoom to this Ort
+ */
selectFeature: function(model, record) {
if (!record.get('id') || record.get('id') === '') {
return;
@@ -97,16 +100,14 @@
this.map.setCenter(
new OpenLayers.LonLat(feature.geometry.x, feature.geometry.y));
this.map.zoomTo(12);
-
if (this.selectedFeatureLayer) {
- if (this.selectedFeatureLayer.features.lenght > 0) {
- this.featureLayer.addFeatures(this.selectedFeatureLayer.features);
- }
- this.selectedFeatureLayer.addFeatures([feature]);
+ this.selectControl.unselectAll();
+ this.selectedFeatureLayer.removeAllFeatures();
+ this.selectedFeatureLayer.addFeatures(feature);
} else {
+ this.selectControl.unselectAll();
this.selectControl.select(feature);
}
- //TODO: the text of new features is still drawn on top of the old feature's text
},
activateDraw: function(record) {
@@ -163,7 +164,7 @@
}, OpenLayers.Feature.Vector.style['default'])),
'select': new OpenLayers.Style({
externalGraphic: 'resources/lib/OpenLayers/img/marker-blue.png',
- pointRadius: 15,
+ pointRadius: 12,
label: '${bez}',
labelAlign: 'rt',
fontColor: 'blue',
@@ -211,7 +212,6 @@
* Forward OpenlayersEvent to EXT
*/
selectedFeature: function(feature) {
- this.selectControl.unselectAll({except:feature});
this.fireEvent('featureselected', this, arguments);
},
diff -r 08085b7d1d0b -r bfdc00c24baf app/view/widget/Staat.js
--- a/app/view/widget/Staat.js Fri Jan 27 13:25:14 2017 +0100
+++ b/app/view/widget/Staat.js Wed Feb 01 14:52:51 2017 +0100
@@ -22,6 +22,7 @@
triggerAction: 'all',
typeAhead: false,
minChars: 0,
+ forceSelection: this.forceSelection || false,
initComponent: function() {
this.store = Ext.data.StoreManager.get('staaten');
diff -r 08085b7d1d0b -r bfdc00c24baf app/view/widget/Verwaltungseinheit.js
--- a/app/view/widget/Verwaltungseinheit.js Fri Jan 27 13:25:14 2017 +0100
+++ b/app/view/widget/Verwaltungseinheit.js Wed Feb 01 14:52:51 2017 +0100
@@ -19,10 +19,11 @@
hideTrigger: true,
// Enable filtering of comboboxes
autoSelect: false,
- queryMode: 'remote',
+ queryMode: 'local',
triggerAction: 'type',
typeAhead: false,
minChars: 2,
+ forceSelection: this.forceSelection || false,
initComponent: function() {
this.store = Ext.data.StoreManager.get('verwaltungseinheiten');
diff -r 08085b7d1d0b -r bfdc00c24baf app/view/widget/base/TextField.js
--- a/app/view/widget/base/TextField.js Fri Jan 27 13:25:14 2017 +0100
+++ b/app/view/widget/base/TextField.js Wed Feb 01 14:52:51 2017 +0100
@@ -29,7 +29,8 @@
fieldLabel: this.fieldLabel,
labelWidth: this.labelWidth,
readOnly: this.readOnly || false,
- listeners: this.listeners
+ listeners: this.listeners,
+ type: this.type
}, {
xtype: 'image',
name: 'warnImg',
diff -r 08085b7d1d0b -r bfdc00c24baf app/view/window/Messprogramm.js
--- a/app/view/window/Messprogramm.js Fri Jan 27 13:25:14 2017 +0100
+++ b/app/view/window/Messprogramm.js Wed Feb 01 14:52:51 2017 +0100
@@ -94,6 +94,16 @@
xtype: 'messprogrammform',
recordId: this.record ? this.record.get('id') : null
}, {
+ xtype: 'fset',
+ name: 'orte',
+ title: 'Ortsangaben',
+ padding: '5, 5',
+ margin: 5,
+ items: [{
+ xtype: 'ortszuordnunggrid',
+ recordId: me.record ? me.record.get('id') : null
+ }]
+ }, {
//Messmethoden
xtype: 'fieldset',
padding: '5, 5',
@@ -159,11 +169,11 @@
// If the Messprogramm is ReadOnly, disable Inputfields and grids
if (this.record.get('readonly') === true) {
this.down('messprogrammform').setReadOnly(true);
- //this.disableChildren();
+ this.disableChildren();
}
else {
this.down('messprogrammform').setReadOnly(false);
- //this.enableChildren();
+ this.enableChildren();
}
me.setLoading(false);
},
@@ -189,11 +199,11 @@
*/
disableChildren: function() {
- // there are no children....
+ this.down('fset[name=orte]').down('ortszuordnunggrid').setReadOnly(true);
},
enableChildren: function() {
- // there are no children....
+ this.down('fset[name=orte]').down('ortszuordnunggrid').setReadOnly(false);
},
/**
diff -r 08085b7d1d0b -r bfdc00c24baf app/view/window/Ortserstellung.js
--- a/app/view/window/Ortserstellung.js Fri Jan 27 13:25:14 2017 +0100
+++ b/app/view/window/Ortserstellung.js Wed Feb 01 14:52:51 2017 +0100
@@ -19,7 +19,9 @@
minWidth: 350,
- margin: 5,
+ margin: 10,
+
+ shadow: false,
border: 0,
diff -r 08085b7d1d0b -r bfdc00c24baf app/view/window/Ortszuordnung.js
--- a/app/view/window/Ortszuordnung.js Fri Jan 27 13:25:14 2017 +0100
+++ b/app/view/window/Ortszuordnung.js Wed Feb 01 14:52:51 2017 +0100
@@ -7,13 +7,16 @@
*/
/**
- * Window to create/edit the Ort / Probe Relation
+ * Window to create/edit the Ort/Probe or Ort/Messprogramm Relation
*/
+
Ext.define('Lada.view.window.Ortszuordnung', {
extend: 'Ext.window.Window',
alias: 'widget.ortszuordnungwindow',
requires: [
+ 'Lada.model.Ortszuordnung',
+ 'Lada.model.OrtszuordnungMp',
'Lada.view.form.Ortszuordnung',
'Lada.view.form.Ortserstellung',
'Lada.view.panel.Map',
@@ -27,6 +30,7 @@
constrain: true,
probe: null,
+ messprogramm: null,
parentWindow: null,
record: null,
@@ -38,10 +42,11 @@
initComponent: function() {
var i18n = Lada.getApplication().bundle;
this.title = i18n.getMsg('ortszuordnung.window.title');
-
- if (this.record && this.probe) {
- // A record be edited
- this.title = i18n.getMsg('ortszuordnung.window.title')
+ var recordtype;
+ if (this.probe) {
+ if (this.record) {
+ // A probe record will be edited
+ this.title = i18n.getMsg('ortszuordnung.window.title')
+ ' '
+ i18n.getMsg('ortszuordnung.window.title2')
+ ' '
@@ -50,10 +55,9 @@
+ this.probe.get('hauptprobenNr')
+ ' '
+ i18n.getMsg('edit');
- }
- else if (this.probe) {
- // A new record will be created
- this.title = i18n.getMsg('ortszuordnung.window.title')
+ } else {
+ // A new probe record will be created
+ this.title = i18n.getMsg('ortszuordnung.window.title')
+ ' '
+ i18n.getMsg('ortszuordnung.window.title2')
+ ' '
@@ -62,7 +66,29 @@
+ this.probe.get('hauptprobenNr')
+ ' '
+ i18n.getMsg('create');
+ }
+ } else if (this.messprogramm) {
+ if (this.record) {
+ // A messprogramm record will be edited
+ this.title = i18n.getMsg('ortszuordnung.window.title')
+ + ' '
+ + i18n.getMsg('ortszuordnung.window.title2')
+ + ' '
+ + i18n.getMsg('messprogramm')
+ + ' '
+ + i18n.getMsg('edit');
+ } else {
+ // A new messprogramm record will be created
+ this.title = i18n.getMsg('ortszuordnung.window.title')
+ + ' '
+ + i18n.getMsg('ortszuordnung.window.title2')
+ + ' '
+ + i18n.getMsg('messprogramm')
+ + ' '
+ + i18n.getMsg('create');
+ }
}
+
this.buttons = [{
text: i18n.getMsg('close'),
scope: this,
@@ -97,6 +123,7 @@
xtype: 'ortszuordnungform',
region: 'east',
minHeight: 380,
+ type: this.probe? 'probe': 'mpr'
}, {
region: 'south',
border: 0,
@@ -135,7 +162,6 @@
}]
}]
}];
-
this.callParent(arguments);
},
@@ -145,11 +171,16 @@
initData: function() {
var me = this;
if (!this.record) {
- this.record = Ext.create('Lada.model.Ortszuordnung');
+ if (this.probe) {
+ this.record = Ext.create('Lada.model.Ortszuordnung');
+ this.record.set('probeId', this.probe.get('id'));
+ } else {
+ this.record = Ext.create('Lada.model.OrtszuordnungMp');
+ this.record.set('messprogrammId', this.messprogramm.get('id'));
+ }
if (!this.record.get('letzteAenderung')) {
this.record.data.letzteAenderung = new Date();
}
- this.record.set('probeId', this.probe.get('id'));
}
this.down('ortszuordnungform').setRecord(this.record);
var map = this.down('map');
@@ -175,7 +206,7 @@
'gewählter Messpunkt', {
styleMap: new OpenLayers.StyleMap({
externalGraphic: 'resources/lib/OpenLayers/img/marker-blue.png',
- pointRadius: 10,
+ pointRadius: 12,
label: '${bez}',
labelAlign: 'rt',
fontColor: 'blue',
@@ -186,10 +217,13 @@
});
map.map.addLayer(map.selectedFeatureLayer);
map.selectedFeatureLayer.setZIndex(499);
- var ortId = me.record.get('ortId');
+ var ortId = me.messprogramm? me.record.get('ort') : me.record.get('ortId');
if (ortId){
- var feat = map.featureLayer.getFeaturesByAttribute('id', ortId)[0];
- map.selectControl.select(feat);
+ var feat = map.featureLayer.getFeaturesByAttribute('id', ortId);
+ var ortrecord = this.findRecord('id', ortId);
+ osg.selectOrt(map, feat);
+ map.selectFeature(this.model, ortrecord);
+ me.down('ortszuordnungform').setOrt(null,ortrecord);
}
}
}
More information about the Lada-commits
mailing list