# HG changeset patch # User Dustin Demuth # Date 1425898551 -3600 # Node ID ea2c35cd9c196e481be6b70f6ee4601162f2f408 # Parent 98dee81664595ff2044f8dad83faaf689e94cc3f Ein grid für Messungen hinzugefügt und im Window ProbeEdit eingesetzt. Ohne Funktion sind die Felder: Status, OK-Flag, Anzahl Nuklide/Kommentare diff -r 98dee8166459 -r ea2c35cd9c19 app/view/grid/Messungen.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/view/grid/Messungen.js Mon Mar 09 11:55:51 2015 +0100 @@ -0,0 +1,207 @@ +/* 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 Messungen + */ +Ext.define('Lada.view.grid.Messungen', { + extend: 'Ext.grid.Panel', + alias: 'widget.messungengrid', + + maxHeight: 350, + emptyText: 'Keine Messungen gefunden', + minHeight: 110, + viewConfig: { + deferEmptyText: false + }, + margin: '0, 5, 5, 5', + + recordId: null, + + warnings: null, + errors: null, + + initComponent: function() { + var rowEditing = Ext.create('Ext.grid.plugin.RowEditing', { + clicksToMoveEditor: 1, + autoCancel: false, + itemId: 'rowedit' + }); + this.plugins = [rowEditing]; + this.dockedItems = [{ + xtype: 'toolbar', + dock: 'bottom', + items: ['->', { + text: 'Details', + icon: 'resources/img/document-open.png', + action: 'open', + disabled: true + }, { + text: 'Hinzufügen', + icon: 'resources/img/list-add.png', + action: 'add', + probeId: this.recordId + }, { + text: 'Löschen', + icon: 'resources/img/list-remove.png', + action: 'delete' + }] + }]; + this.columns = [{ + header: 'Mess-ID', + dataIndex: 'id', + flex: 1, + editor: { + allowBlank: false + } + }, { + /* + header: 'Probe-ID', + dataIndex: 'probeId', + flex: 1, + editor: { + allowBlank: false + } + }, { + */ + header: 'Nebenproben-Nr.', + dataIndex: 'nebenprobenNr', + flex: 1, + editor: { + allowBlank: false + } + }, { + header: 'MMT', + dataIndex: 'mmtId', + flex: 1, + editor: { + allowBlank: false + } + }, { + header: 'Messzeit', + dataIndex: 'messzeitpunkt', + flex: 2, + editor: { + xtype: 'datefield', + allowBlank: false, + format: 'd.m.Y', + //minValue: '01.01.2001', //todo: gibt es das? + //minText: 'Das Datum der Messung darf nicht vor dem 01.01.2001 liegen.', + maxValue: Ext.Date.format(new Date(), 'd.m.Y') + } + } + /* + , { + header: 'Messdauer', + dataIndex: 'messdauer', + width: 50, + editor: { + allowBlank: false + } + }, { + header: 'Geplant', + dataIndex: 'geplant', + width: 10, + editor: { + xtype: 'checkboxfield', + allowBlank: false + } + }, { + header: 'Letzte Änderung', + dataIndex: 'letzteAenderung', + width: 50, + editor: { + xtype: 'datefield', + allowBlank: false, + format: 'd.m.Y', + //minValue: '01.01.2001', //todo: gibt es das? + //minText: 'Das Datum der letzten Änderung darf nicht vor dem 01.01.2001 liegen.', + maxValue: Ext.Date.format(new Date(), 'd.m.Y') + } + }*/ + , { + header: 'Status', + dataIndex: 'id', + flex: 1, + renderer: function(value) { + var sstore = Ext.getStore('Status'); // Es existiert derzeit kein StatusModel. Der Status Store referenziert jedoch darauf. + sstore.load({ + params: { + probeId: value.recordId, + messungsId: value.id + } + }); + if (sstore.getTotalCount() === 0) { + return 'unbekannt'; + } + return sstore.last().get('status'); + } + }, { + header: 'OK-Flag', + dataIndex: 'fertig', + flex: 1, + renderer: function(value){ + if(value){ + return 'Ja'; + } + return 'Nein'; + }, + editor: { + xtype: 'checkboxfield', + allowBlank: false + } + }, { + header: 'Anzahl Nuklide', + flex: 1, + renderer: function(value) { + var mstore = Ext.getStore('Messwerte'); + mstore.load({ + params: { + probeId: value.recordId, + messungsId: value.id + } + }); + return mstore.getTotalCount(); + } + }, { + header: 'Anzahl Kommentare', + flex: 1, + renderer: function(value) { + var kstore = Ext.getStore('MKommentare'); + kstore.load({ + params: { + probeId: value.probeId, + messungsId: value.id + } + }); + return kstore.getTotalCount(); + } + }]; + this.initData(); + this.callParent(arguments); + }, + + initData: function(){ + this.store = Ext.create('Lada.store.Messungen'); + this.store.load({ + params: { + probeId: this.recordId + } + }); + }, + listeners: { + selectionchange: function(model, selected, eOpts) { + /* + * Enable the 'details' button only when an item is selected + */ + if (selected.length > 0) { + this.down('button[action=open]').enable(); + } + } + } +}); diff -r 98dee8166459 -r ea2c35cd9c19 app/view/window/ProbeEdit.js --- a/app/view/window/ProbeEdit.js Fri Mar 06 17:06:01 2015 +0100 +++ b/app/view/window/ProbeEdit.js Mon Mar 09 11:55:51 2015 +0100 @@ -17,7 +17,8 @@ 'Lada.view.form.Probe', 'Lada.view.grid.Ort', 'Lada.view.grid.Probenzusatzwert', - 'Lada.view.grid.PKommentar' + 'Lada.view.grid.PKommentar', + 'Lada.view.grid.Messungen' ], collapsible: true, @@ -86,6 +87,18 @@ xtype: 'pkommentargrid', recordId: this.record.get('id') }] + }, { + xtype: 'fset', + name: 'messungen', + title: 'Messungen', + padding: '5, 5', + margin: 5, + collapsible: false, + collapsed: false, + items: [{ + xtype: 'messungengrid', + recordId: this.record.get('id') + }] }] }]; this.callParent(arguments);