changeset 566:8ebe4cfca4b8

Added a MessungenGridController. "Delete" causes a Code-500 Server Error.
author Dustin Demuth <dustin@intevation.de>
date Tue, 10 Mar 2015 11:54:02 +0100
parents 83c0f476d825
children fa52f383daf8
files app.js app/controller/MessungenGrid.js app/view/grid/Messungen.js
diffstat 3 files changed, 81 insertions(+), 70 deletions(-) [+]
line wrap: on
line diff
--- a/app.js	Mon Mar 09 17:12:27 2015 +0100
+++ b/app.js	Tue Mar 10 11:54:02 2015 +0100
@@ -95,6 +95,8 @@
         Ext.create('Lada.store.Verwaltungseinheiten', {
             storeId: 'verwaltungseinheiten'
         });
+
+
     },
 
     // Define the controllers of the application. They will be initialized
@@ -104,6 +106,7 @@
         'Lada.controller.FilterResult',
         'Lada.controller.ProbeForm',
         'Lada.controller.OrtGrid',
-        'Lada.controller.ProbenzusatzwertGrid'
+        'Lada.controller.ProbenzusatzwertGrid',
+        'Lada.controller.MessungenGrid'
     ]
 });
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/controller/MessungenGrid.js	Tue Mar 10 11:54:02 2015 +0100
@@ -0,0 +1,76 @@
+/* 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.
+ */
+
+/*
+ * Controller for a Messungengrid
+ */
+Ext.define('Lada.controller.MessungenGrid', {
+    extend: 'Ext.app.Controller',
+
+    init: function() {
+        this.control({
+            'messungengrid': {
+                selectionchange: this.selectionChanged,
+                edit: this.gridSave
+            },
+            'messungengrid button[action=open]': {
+                click: this.open
+            },
+            'messungengrid button[action=add]': {
+                click: this.add
+            },
+            'messungengrid button[action=delete]': {
+                click: this.remove
+            }
+        });
+    },
+
+    selectionChanged: function(grid, record) {
+        if (record) {
+            grid.view.panel.down('button[action=open]').enable();
+        }
+    },
+
+    gridSave: function(editor, context) {
+        context.record.save({
+            success: function() {
+                context.grid.store.reload();
+                context.grid.up('window').initData();
+            },
+            failure: function() {
+                // TODO
+            }
+        });
+    },
+
+    open: function() {
+        // todo
+        console.log('open');
+    },
+
+    add: function() {
+        // todo
+        console.log('add');
+    },
+
+    remove: function(button) {
+        var grid = button.up('grid');
+        var selection = grid.getView().getSelectionModel().getSelection()[0];
+        Ext.MessageBox.confirm('Messung löschen', 'Sind Sie sicher?', function(btn) {
+            if (btn === 'yes') {
+                selection.destroy({
+                    success: function() {
+                        button.up('window').initData();
+                    },
+                    failure: function() {
+                    }
+                });
+            }
+        });
+    }
+});
--- a/app/view/grid/Messungen.js	Mon Mar 09 17:12:27 2015 +0100
+++ b/app/view/grid/Messungen.js	Tue Mar 10 11:54:02 2015 +0100
@@ -45,7 +45,7 @@
                 text: 'Hinzufügen',
                 icon: 'resources/img/list-add.png',
                 action: 'add',
-                probeId: this.recordId
+                probeId: this.probeId
             }, {
                 text: 'Löschen',
                 icon: 'resources/img/list-remove.png',
@@ -60,15 +60,6 @@
                 allowBlank: false
             }
         }, {
-        /*
-            header: 'Probe-ID',
-            dataIndex: 'probeId',
-            flex: 1,
-            editor: {
-                allowBlank: false
-            }
-        }, {
-        */
             header: 'Nebenproben-Nr.',
             dataIndex: 'nebenprobenNr',
             flex: 1,
@@ -94,37 +85,7 @@
                 //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',
             flex: 1,
             dataIndex: 'id',
@@ -213,34 +174,5 @@
                 probeId: this.recordId
             }
         });
-
-/*
-        this.statusStore.load({
-            params: {
-                messungId: this.recordId
-            }
-        });
-        this.messwerteStore.load({
-            params: {
-                messungId: this.recordId
-            }
-        });
-        this.mKommentareStore.load({
-            params: {
-                messungsId: 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();
-            }
-        }
     }
 });

http://lada.wald.intevation.org