diff app/controller/grid/Ortszuordnung.js @ 1012:2adc329d90fe stammdatengrids

Replaced Locations with Ortszuordnung
author Dustin Demuth <dustin@intevation.de>
date Tue, 26 Jan 2016 10:40:48 +0100
parents app/controller/grid/Ort.js@2362f8ab1e9f
children 75ce503ab296
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/controller/grid/Ortszuordnung.js	Tue Jan 26 10:40:48 2016 +0100
@@ -0,0 +1,106 @@
+/* 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.
+ */
+
+/**
+ * This is a controller for a grid of Orte
+ */
+Ext.define('Lada.controller.grid.Ortszuordnung', {
+    extend: 'Ext.app.Controller',
+
+    requires: [
+        'Lada.view.window.OrtEdit',
+        'Lada.view.window.OrtCreate'
+    ],
+
+    /**
+     * Inhitialize the controller
+     * It has 3 listeners
+     */
+    init: function() {
+        this.control({
+            'ortszuordnunggrid': {
+                itemdblclick: this.open
+            },
+            'ortszuordnunggrid button[action=add]': {
+                click: this.add
+            },
+            'ortszuordnunggrid button[action=delete]': {
+                click: this.remove
+            }
+        });
+    },
+
+    /**
+     * When open is called, a {@link Lada.view.window.OrtEdit}
+     * is created which allows to edit the Orte
+     */
+    open: function(grid, record) {
+        var probe = grid.up('window').record;
+        var win = Ext.create('Lada.view.window.OrtEdit', {
+            parentWindow: grid.up('window'),
+            probe: probe,
+            record: record,
+            grid: grid
+        });
+        win.show();
+        win.initData();
+    },
+
+    /**
+     * This function adds a new row to add an Ort
+     */
+    add: function(button) {
+        var probe = button.up('window').record;
+        var win = Ext.create('Lada.view.window.OrtCreate', {
+            record: probe,
+            grid: button.up('ortszuordnung')
+        });
+        win.show();
+        win.initData();
+    },
+
+    /**
+     * A Ort-row can be removed from the grid with the remove
+     * function. It asks the user for confirmation
+     * If the removal was confirmed, it reloads the parent window on success,
+     * on failure, an error message is shown.
+     */
+    remove: function(button) {
+        var grid = button.up('grid');
+        var selection = grid.getView().getSelectionModel().getSelection()[0];
+        var i18n = Lada.getApplication().bundle;
+        Ext.MessageBox.confirm(i18n.getMsg('delete'), i18n.getMsg('confirmation.question'),
+                                function(btn) {
+                if (btn === 'yes') {
+                selection.destroy({
+                    success: function() {
+                        button.up('window').initData();
+                    },
+                    failure: function(request, response) {
+                        var i18n = Lada.getApplication().bundle;
+                        var json = response.request.scope.reader.jsonData;
+                        if (json) {
+                            if (json.message){
+                                Ext.Msg.alert(i18n.getMsg('err.msg.delete.title')
+                                    +' #'+json.message,
+                                    i18n.getMsg(json.message));
+                            } else {
+                                Ext.Msg.alert(i18n.getMsg('err.msg.delete.title'),
+                                    i18n.getMsg('err.msg.generic.body'));
+                            }
+                        } else {
+                            Ext.Msg.alert(i18n.getMsg('err.msg.delete.title'),
+                                i18n.getMsg('err.msg.response.body'));
+                        }
+                    }
+                });
+            }
+        });
+        grid.down('button[action=delete]').disable();
+    }
+});

http://lada.wald.intevation.org