diff app/controller/Proben.js @ 18:9e1a40312bbe

Implemented a basic edit dialog. Data will be set to data/proben2.json url which is currently just a dummy file to make to request work. But currently no data is actually saved. The urls need to be replaced with the correct urls in the application backend.
author Torsten Irländer <torsten.irlaender@intevation.de>
date Mon, 06 May 2013 16:41:39 +0200
parents a8efc4b96888
children f9b6de636ad0
line wrap: on
line diff
--- a/app/controller/Proben.js	Tue Apr 30 17:55:48 2013 +0200
+++ b/app/controller/Proben.js	Mon May 06 16:41:39 2013 +0200
@@ -1,7 +1,8 @@
 Ext.define('Lada.controller.Proben', {
     extend: 'Ext.app.Controller',
     views: [
-        'proben.List'
+        'proben.List',
+        'proben.Edit'
     ],
     stores: [
         'Proben'
@@ -14,11 +15,14 @@
         this.control({
             // CSS like selector to select element in the viewport. See
             // ComponentQuery documentation for more details.
-            'viewport > probenlist': {
+            'probenlist': {
                 // Map the "render" event to the given function.
                 render: this.onPanelRendered,
                 // Map Doubleclick on rows of the probenlist.
                 itemdblclick: this.editProbe
+            },
+            'probenedit button[action=save]': {
+                click: this.updateProbe
             }
         });
     },
@@ -27,5 +31,25 @@
     },
     editProbe: function(grid, record) {
         console.log('Double click on ' + record.get('name'));
+        // Create new window to edit the seletced record.
+        var view = Ext.widget('probenedit');
+        view.down('form').loadRecord(record);
+    },
+    updateProbe: function(button) {
+        console.log('Click save');
+        // We only have a reference to the button here but we really wnat to
+        // get the form and the window. So first get the window and form and
+        // the the record an values.
+        var win = button.up('window');
+        var form = win.down('form');
+        var record = form.getRecord();
+        var values = form.getValues();
+
+        record.set(values);
+        win.close();
+        // synchronize the store after editing the record
+        // NOTE: The function 'getProbenStore' will be generated
+        // dynamically based on the Name of the configured Store!!!
+        this.getProbenStore().sync();
     }
 });

http://lada.wald.intevation.org