[Lada-commits] [PATCH 3 of 3] Added grid (+controller) for messwerte
Wald Commits
scm-commit at wald.intevation.org
Wed Mar 11 15:22:33 CET 2015
# HG changeset patch
# User Raimund Renkert <raimund.renkert at intevation.de>
# Date 1426083796 -3600
# Node ID e440b66a859fa4f1668095725af99e5e4515354f
# Parent 4c97717b92da240d7253a0353b2d66c177635406
Added grid (+controller) for messwerte.
diff -r 4c97717b92da -r e440b66a859f app.js
--- a/app.js Wed Mar 11 15:21:55 2015 +0100
+++ b/app.js Wed Mar 11 15:23:16 2015 +0100
@@ -108,5 +108,6 @@
'Lada.controller.grid.Probenzusatzwert',
'Lada.controller.grid.PKommentar',
'Lada.controller.grid.Messung',
+ 'Lada.controller.grid.Messwert'
]
});
diff -r 4c97717b92da -r e440b66a859f app/controller/grid/Messwert.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/controller/grid/Messwert.js Wed Mar 11 15:23:16 2015 +0100
@@ -0,0 +1,64 @@
+/* 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.
+ */
+
+Ext.define('Lada.controller.grid.Messwert', {
+ extend: 'Ext.app.Controller',
+
+ init: function() {
+ this.control({
+ 'messwertgrid': {
+ edit: this.gridSave
+ },
+ 'messwertgrid button[action=add]': {
+ click: this.add
+ },
+ 'messwertgrid button[action=delete]': {
+ click: this.remove
+ }
+ });
+ },
+
+ gridSave: function(editor, context) {
+ context.record.save({
+ success: function() {
+ context.grid.store.reload();
+ context.grid.up('window').initData();
+ },
+ failure: function() {
+ // TODO
+ }
+ });
+ },
+
+ add: function(button) {
+ console.log('add');
+ var record = Ext.create('Lada.model.Messwert', {
+ messungsId: button.up('messwertgrid').recordId
+ });
+ button.up('messwertgrid').store.insert(0, record);
+ button.up('messwertgrid').rowEditing.startEdit(0, 1);
+ },
+
+ remove: function(button) {
+ var grid = button.up('grid');
+ var selection = grid.getView().getSelectionModel().getSelection()[0];
+ Ext.MessageBox.confirm('Messwert löschen', 'Sind Sie sicher?', function(btn) {
+ if (btn === 'yes') {
+ selection.destroy({
+ success: function() {
+ button.up('window').initData();
+ grid.initData();
+ },
+ failure: function() {
+ // TODO
+ }
+ });
+ }
+ });
+ }
+});
diff -r 4c97717b92da -r e440b66a859f app/view/grid/Messwert.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/app/view/grid/Messwert.js Wed Mar 11 15:23:16 2015 +0100
@@ -0,0 +1,146 @@
+/* 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.
+ */
+
+/*
+ * Grid to list Messwerte
+ */
+Ext.define('Lada.view.grid.Messwert', {
+ extend: 'Ext.grid.Panel',
+ alias: 'widget.messwertgrid',
+
+ requires: [
+ 'Lada.view.widget.Messgroesse',
+ 'Lada.view.widget.Messeinheit'
+ ],
+
+ maxHeight: 350,
+ emptyText: 'Keine Messwerte gefunden.',
+ minHeight: 110,
+ viewConfig: {
+ deferEmptyText: false
+ },
+ margin: '0, 5, 5, 5',
+
+ recordId: null,
+
+ initComponent: function() {
+ this.rowEditing = Ext.create('Ext.grid.plugin.RowEditing', {
+ clicksToMoveEditor: 1,
+ autoCancel: false
+ });
+
+ this.plugins = [this.rowEditing];
+
+ this.dockedItems = [{
+ xtype: 'toolbar',
+ dock: 'bottom',
+ items: ['->', {
+ text: 'Hinzufügen',
+ icon: 'resources/img/list-add.png',
+ action: 'add',
+ probeId: this.probeId,
+ parentId: this.parentId
+ }, {
+ text: 'Löschen',
+ icon: 'resources/img/list-remove.png',
+ action: 'delete'
+ }]
+ }];
+ this.columns = [{
+ header: 'Messgröße',
+ dataIndex: 'messgroesseId',
+ width: 80,
+ renderer: function(value) {
+ if (!value || value === '') {
+ return '';
+ }
+ var store = Ext.data.StoreManager.get('messgroessen');
+ return store.findRecord('id', value).get('messgroesse');
+ },
+ editor: {
+ xtype: 'combobox',
+ store: Ext.data.StoreManager.get('messgroessen'),
+ displayField: 'messgroesse',
+ valueField: 'id',
+ allowBlank: false
+ }
+ }, {
+ header: 'Messwert',
+ dataIndex: 'messwert',
+ width: 80,
+ editor: {
+ xtype: 'numberfield',
+ allowBlank: false
+ }
+ }, {
+ header: 'Messeinheit',
+ dataIndex: 'mehId',
+ width: 90,
+ renderer: function(value) {
+ if (!value || value === '') {
+ return '';
+ }
+ var store = Ext.data.StoreManager.get('messeinheiten');
+ return store.findRecord('id', value).get('einheit');
+ },
+ editor: {
+ xtype: 'combobox',
+ store: Ext.data.StoreManager.get('messeinheiten'),
+ displayField: 'einheit',
+ valueField: 'id',
+ allowBlank: false
+ }
+ }, {
+ header: '<NWG',
+ width: 60,
+ dataIndex: 'messwertNwg'
+ }, {
+ header: 'Nachweisgrenze',
+ width: 110,
+ dataIndex: 'nwgZuMesswert'
+ }, {
+ header: 'Messfehler',
+ dataIndex: 'messfehler',
+ width: 80,
+ editor: {
+ xtype: 'numberfield',
+ allowBlank: false
+ }
+ }, {
+ header: 'Grenzwertüberschreitung',
+ dataIndex: 'grenzwertueberschreitung',
+ flex: 1,
+ renderer: function(value) {
+ if (value === true) {
+ return 'Ja';
+ }
+ return 'Nein';
+ },
+ editor: {
+ xtype: 'checkbox'
+ }
+ }];
+ this.initData();
+ this.callParent(arguments);
+ },
+
+ initData: function() {
+ console.log('init messwert data');
+ if (this.store) {
+ this.store.removeAll();
+ }
+ else {
+ this.store = Ext.create('Lada.store.Messwerte');
+ }
+ this.store.load({
+ params: {
+ messungsId: this.recordId
+ }
+ });
+ }
+});
diff -r 4c97717b92da -r e440b66a859f app/view/window/MessungEdit.js
--- a/app/view/window/MessungEdit.js Wed Mar 11 15:21:55 2015 +0100
+++ b/app/view/window/MessungEdit.js Wed Mar 11 15:23:16 2015 +0100
@@ -7,15 +7,15 @@
*/
/*
- * Window to edit a Messung
+ * Window to edit a Messung
*/
Ext.define('Lada.view.window.MessungEdit', {
extend: 'Ext.window.Window',
alias: 'widget.messungedit',
requires: [
- 'Lada.view.form.Messung'
- // 'Lada.view.grid.Messwert',
+ 'Lada.view.form.Messung',
+ 'Lada.view.grid.Messwert'
// 'Lada.view.grid.Messstatus',
// 'Lada.view.grid.MKommentar'
],
@@ -28,13 +28,13 @@
record: null,
- initComponent: function(){
+ initComponent: function() {
if (this.record === null) {
Ext.Msg.alert('Keine valide Messung ausgewählt!');
this.callParent(arguments);
return;
}
- this.title = 'Messung ';// + this.record.get('messungId');
+ this.title = 'Messung ' + this.record.get('nebenprobenNr');
this.buttons = [{
text: 'Schließen',
scope: this,
@@ -48,22 +48,28 @@
autoScroll: true,
items: [{
xtype: 'messungform',
-// recordId: record.get('id')
+ recordId: this.record.get('id')
}, {
xtype: 'fset',
name: 'messwerte',
- title: 'Messwerte - Stub'
- //todo
+ title: 'Messwerte',
+ padding: '5, 5',
+ margin: 5,
+ items: [{
+ xtype: 'messwertgrid',
+ recordId: this.record.get('id')
+ }]
+ // TODO
}, {
xtype: 'fset',
name: 'messungstatus',
title: 'Messungstatus - Stub'
- //todo
+ // TODO
}, {
xtype: 'fset',
name: 'messungskommentare',
title: 'Messungskommentare - Stub'
- //todo
+ // TODO
}]
}];
this.callParent(arguments);
@@ -72,12 +78,16 @@
initData: function() {
this.clearMessages();
Ext.ClassManager.get('Lada.model.Messung').load(this.record.get('id'), {
- failure: function(record, action){
- // todo
- console.log("failure");
+ failure: function(record) {
+ // TODO
+ console.log(record);
},
- success: function(record, action){
- console.log("success");
+ success: function(record, response) {
+ this.down('messungform').setRecord(record);
+ var json = Ext.decode(response.response.responseText);
+ if (json) {
+ this.setMessages(json.errors, json.warnings);
+ }
},
scope: this
}
More information about the Lada-commits
mailing list