[Lada-commits] [PATCH] Introduced laborMstId as new probe field
Wald Commits
scm-commit at wald.intevation.org
Fri Mar 11 13:58:09 CET 2016
# HG changeset patch
# User Raimund Renkert <raimund.renkert at intevation.de>
# Date 1457701084 -3600
# Node ID d198946e5540159d4d4d8383c28de376927690cb
# Parent 7fa853864d9b74ea056c18397dc4f985a23603ac
Introduced laborMstId as new probe field.
diff -r 7fa853864d9b -r d198946e5540 app.js
--- a/app.js Thu Mar 10 10:45:50 2016 +0100
+++ b/app.js Fri Mar 11 13:58:04 2016 +0100
@@ -52,7 +52,8 @@
'Lada.store.Umwelt',
'Lada.store.Verwaltungseinheiten',
'Lada.store.StatusWerte',
- 'Lada.store.StatusStufe'
+ 'Lada.store.StatusStufe',
+ 'Lada.model.MessstelleLabor'
],
bundle: {
bundle: 'Lada',
@@ -114,16 +115,25 @@
},
onLoginSuccess: function(response) {
-
/* Parse Username and Timestamp */
var json = Ext.decode(response.responseText);
Lada.username = json.data.username;
Lada.userroles = json.data.roles;
Lada.logintime = json.data.servertime;
- Lada.mst = json.data.mst; //Store Messstellen this user may select
+ Lada.mst = []; //Store Messstellen this user may select
Lada.funktionen = json.data.funktionen;
//Lada.serverVersion
this.getServerVersion();
+ var mstLabor = json.data.messstelleLabor;
+ for (var i = 0; i < mstLabor.length; i++) {
+ Lada.mst.push(mstLabor[i].messstelle);
+ Lada.mst.push(mstLabor[i].labor);
+ }
+
+ var mstLaborStore = Ext.create('Ext.data.Store', {
+ storeId: 'messstellelabor',
+ model: 'Lada.model.MessstelleLabor'
+ });
Ext.create('Lada.store.Datenbasis', {
storeId: 'datenbasis'
@@ -138,7 +148,25 @@
storeId: 'messmethoden'
});
Ext.create('Lada.store.Messstellen', {
- storeId: 'messstellen'
+ storeId: 'messstellen',
+ listeners: {
+ load: {
+ fn: function(store, records) {
+ for (var i = 0; i < mstLabor.length; i++) {
+ var item = store.getById(mstLabor[i].messstelle);
+ var itemLabor = store.getById(mstLabor[i].labor);
+ mstLaborStore.add({
+ id: i,
+ messStelle: mstLabor[i].messstelle,
+ netzbetreiberId: item.get('netzbetreiberId'),
+ laborMst: mstLabor[i].labor,
+ displayCombi: item.get('messStelle') +
+ '/' + itemLabor.get('messStelle')
+ });
+ }
+ }
+ }
+ }
});
Ext.create('Lada.store.Netzbetreiber', {
storeId: 'netzbetreiber'
diff -r 7fa853864d9b -r d198946e5540 app/controller/form/Probe.js
--- a/app/controller/form/Probe.js Thu Mar 10 10:45:50 2016 +0100
+++ b/app/controller/form/Probe.js Fri Mar 11 13:58:04 2016 +0100
@@ -27,9 +27,7 @@
'probeform': {
dirtychange: this.dirtyForm
},
- 'probeform messstelle combobox': {
- expand: this.filter,
- keydown: this.filter,
+ 'probeform messstellelabor combobox': {
select: this.setNetzbetreiber
},
'probeform [xtype="datetime"] field': {
@@ -155,11 +153,9 @@
formPanel.down('fset[name=sollzeitPeriod]').clearMessages();
formPanel.down('datetime[name=probeentnahmeBeginn]').clearWarningOrError();
formPanel.down('datetime[name=probeentnahmeEnde]').clearWarningOrError();
- formPanel.down('datetime[name=solldatumBeginn]').clearWarningOrError();
- formPanel.down('datetime[name=solldatumEnde]').clearWarningOrError();
formPanel.down('umwelt').store.clearFilter();
- formPanel.getForm().loadRecord(formPanel.getForm().getRecord());
+ formPanel.setRecord(formPanel.getForm().getRecord());
},
/**
diff -r 7fa853864d9b -r d198946e5540 app/model/MessstelleLabor.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/model/MessstelleLabor.js Fri Mar 11 13:58:04 2016 +0100
@@ -0,0 +1,32 @@
+/* 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 for Messstelle Stammdaten.
+ */
+Ext.define('Lada.model.MessstelleLabor', {
+ extend: 'Ext.data.Model',
+
+ /**
+ * Fields are:
+ * - id: The unique identifier (Primary key).
+ * - messStelle
+ * - laborMst
+ */
+ fields: [{
+ name: 'id'
+ }, {
+ name: 'messStelle'
+ }, {
+ name: 'laborMst'
+ }, {
+ name: 'netzbetreiberId'
+ }, {
+ name: 'displayCombi'
+ }]
+});
diff -r 7fa853864d9b -r d198946e5540 app/model/Probe.js
--- a/app/model/Probe.js Thu Mar 10 10:45:50 2016 +0100
+++ b/app/model/Probe.js Fri Mar 11 13:58:04 2016 +0100
@@ -37,6 +37,8 @@
}, {
name: 'mstId'
}, {
+ name: 'laborMstId'
+ }, {
name: 'datenbasisId'
}, {
name: 'baId'
diff -r 7fa853864d9b -r d198946e5540 app/view/form/Probe.js
--- a/app/view/form/Probe.js Thu Mar 10 10:45:50 2016 +0100
+++ b/app/view/form/Probe.js Fri Mar 11 13:58:04 2016 +0100
@@ -15,7 +15,7 @@
requires: [
'Lada.view.widget.Datenbasis',
'Lada.view.widget.base.CheckBox',
- 'Lada.view.widget.Messstelle',
+ 'Lada.view.widget.MessstelleLabor',
'Lada.view.widget.Netzbetreiber',
'Lada.view.widget.Betriebsart',
'Lada.view.widget.Probenart',
@@ -79,14 +79,44 @@
border: 0,
width: '100%',
items: [{
+ xtype: 'messstellelabor',
+ name: 'mstlabor',
+ fieldLabel: 'Messstelle/Labor',
+ margin: '0, 5, 5, 5',
+ width: '35%',
+ labelWidth: 95,
+ allowBlank: false,
+ editable: true,
+ listeners: {
+ select: {
+ fn: function(combo, newValue) {
+ var mst = newValue[0].get('messStelle');
+ var labor = newValue[0].get('laborMst');
+ combo.up('fieldset').down('messstelle[name=mstId]').setValue(mst);
+ combo.up('fieldset').down('messstelle[name=laborMstId]').setValue(labor);
+ }
+ }
+ }
+ }, {
xtype: 'messstelle',
name: 'mstId',
- fieldLabel: 'Messstelle',
+ fieldLabel: 'Messstelle/Labor',
margin: '0, 5, 5, 5',
width: '35%',
- labelWidth: 90,
+ labelWidth: 95,
allowBlank: false,
- editable: true
+ editable: true,
+ hidden: true
+ }, {
+ xtype: 'messstelle',
+ name: 'laborMstId',
+ fieldLabel: 'Messstelle/Labor',
+ margin: '0, 5, 5, 5',
+ width: '35%',
+ labelWidth: 95,
+ allowBlank: false,
+ editable: true,
+ hidden: true
}, {
xtype: 'netzbetreiber',
name: 'netzbetreiberId',
@@ -127,7 +157,7 @@
fieldLabel: 'Hauptprobennr.',
margin: '0, 5, 5, 5',
width: '35%',
- labelWidth: 90,
+ labelWidth: 95,
maxLength: 20,
allowBlank: true
}, {
@@ -163,7 +193,7 @@
width: '50%',
minValue: 0,
anchor: '100%',
- labelWidth: 90
+ labelWidth: 95
}, {
xtype: 'tfield',
name: 'x11',
@@ -316,9 +346,46 @@
this.clearMessages();
},
- setRecord: function(record) {
+ setRecord: function(probeRecord) {
this.clearMessages();
- this.getForm().loadRecord(record);
+ this.getForm().loadRecord(probeRecord);
+ if (!probeRecord.raw) {
+ return;
+ }
+ var mstStore = Ext.data.StoreManager.get('messstellen');
+ if (!probeRecord.get('owner')) {
+ var mstId = mstStore.getById(probeRecord.get('mstId'));
+ var laborMstId = mstStore.getById(probeRecord.get('laborMstId'));
+ if (laborMstId) {
+ laborMstId = laborMstId.get('messStelle');
+ }
+ else {
+ laborMstId = '';
+ }
+ var id = this.down('messstellelabor').store.count() + 1;
+ var newStore = Ext.create('Ext.data.Store', {
+ model: 'Lada.model.MessstelleLabor',
+ data: [{
+ id: id,
+ laborMst: probeRecord.get('laborMstId'),
+ messStelle: probeRecord.get('mstId'),
+ displayCombi: mstId.get('messStelle') +
+ '/' + laborMstId
+ }]
+ });
+ this.down('messstellelabor').down('combobox').store = newStore;
+ this.down('messstellelabor').setValue(id);
+ }
+ else {
+ var mstLaborStore = Ext.data.StoreManager.get('messstellelabor');
+ var items = mstLaborStore.queryBy(function(record) {
+ if (record.get('messStelle') === probeRecord.get('mstId') &&
+ record.get('laborMst') === probeRecord.get('laborMstId')) {
+ return true;
+ }
+ });
+ this.down('messstellelabor').setValue(items.getAt(0));
+ }
},
setMediaDesk: function(record) {
diff -r 7fa853864d9b -r d198946e5540 app/view/widget/MessstelleLabor.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/view/widget/MessstelleLabor.js Fri Mar 11 13:58:04 2016 +0100
@@ -0,0 +1,33 @@
+/* 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.
+ */
+
+/**
+ * Combobox for Messstelle
+ */
+Ext.define('Lada.view.widget.MessstelleLabor', {
+ extend: 'Lada.view.widget.base.ComboBox',
+ alias: 'widget.messstellelabor',
+ store: 'MessstelleLabor',
+ displayField: 'displayCombi',
+ valueField: 'id',
+ editable: this.editable || false,
+ forceSelection: true,
+ emptyText: 'Wählen Sie eine Kombination',
+ // Enable filtering of comboboxes
+ autoSelect: true,
+ queryMode: 'local',
+ triggerAction: 'all',
+ typeAhead: false,
+ minChars: 0,
+
+ initComponent: function() {
+ this.store = Ext.data.StoreManager.get('messstellelabor');
+ this.callParent(arguments);
+ this.down('combobox').isFormField = false;
+ }
+});
More information about the Lada-commits
mailing list