changeset 122:a7bfaeb1655d

Cleanup part three. Reenabled Zusatzwerte and implemented sending nested data.
author Torsten Irländer <torsten.irlaender@intevation.de>
date Fri, 21 Jun 2013 16:56:17 +0200
parents c05fda928b82
children d78bb4ca6089
files app.js app/controller/Proben.js app/controller/Zusatzwerte.js app/model/Probenzusatzwert.js app/model/Zusatzwert.js app/store/Probenzusatzwert.js app/store/Probenzusatzwerte.js app/view/proben/Edit.js app/view/proben/EditForm.js app/view/widgets/Probenzusatzwert.js app/view/widgets/Zusatzwert.js app/view/zusatzwerte/Create.js app/view/zusatzwerte/CreateForm.js
diffstat 13 files changed, 135 insertions(+), 107 deletions(-) [+]
line wrap: on
line diff
--- a/app.js	Fri Jun 21 16:55:23 2013 +0200
+++ b/app.js	Fri Jun 21 16:56:17 2013 +0200
@@ -27,11 +27,31 @@
     // first before the application "launch" function is called.
     controllers: [
         'Sql',
-        'Proben'
+        'Proben',
+        'Zusatzwerte'
         //'Kommentare',
         //'Sql',
-        //'Zusatzwerte',
         //'Orte',
         //'Messungen'
     ]
 });
+
+Ext.data.writer.Json.override({
+    getRecordData: function(record, getEverything) {
+        if(this.writeEverything || record.writeEverything){
+            console.log('getRecordData', this,arguments);
+            return record.getAllData();
+        } else {
+            return this.callOverridden(arguments);
+        }
+    }
+});
+
+Ext.data.Model.addMembers({
+    getAllData: function() {
+        var data1 = this.getData();
+        var data2 = this.getAssociatedData( );
+        var dataMerged = Ext.Object.merge(data1, data2);
+        return dataMerged;
+    }
+});
--- a/app/controller/Proben.js	Fri Jun 21 16:55:23 2013 +0200
+++ b/app/controller/Proben.js	Fri Jun 21 16:56:17 2013 +0200
@@ -5,10 +5,10 @@
         'proben.Create'
     ],
     stores: [
-        'Proben'
+        'Proben',
+        'Zusatzwerte'
     //    'Orte',
     //    'Messungen',
-    //    'Zusatzwerte',
     //    'Messeinheit',
     //    'Probenzusatzwert'
     ],
@@ -41,6 +41,14 @@
         console.log('Editing Probe');
         var id = record.get('probeId');
         var view = Ext.widget('probenedit', {modelId: id});
+
+        // Load Zusatzwerte
+        var zstore = this.getZusatzwerteStore();
+        zstore.load({
+            params: {
+                probe: id
+            }
+        });
         console.log("Loaded Probe with ID " + record.getId()); //outputs ID
     },
     createSuccess: function(form, record, operation) {
--- a/app/controller/Zusatzwerte.js	Fri Jun 21 16:55:23 2013 +0200
+++ b/app/controller/Zusatzwerte.js	Fri Jun 21 16:56:17 2013 +0200
@@ -1,13 +1,11 @@
 Ext.define('Lada.controller.Zusatzwerte', {
     extend: 'Ext.app.Controller',
     views: [
-        'zusatzwerte.List',
         'zusatzwerte.Create'
     ],
     stores: [
-    ],
-    models: [
-        'Zusatzwert'
+        'Zusatzwerte',
+        'Probenzusatzwerte'
     ],
     init: function() {
         console.log('Initialising the Zusatzwerte controller');
@@ -27,12 +25,28 @@
                 savesuccess: this.createSuccess,
                 savefailure: this.createFailure
             },
+            'zusatzwertecreate button[action=save]': {
+                click: this.saveZusatzwert
+            },
             'zusatzwerteedit form': {
                 savesuccess: this.editSuccess,
                 savefailure: this.editFailure
             }
         });
     },
+    saveZusatzwert: function(button) {
+        console.log('Saving Zusatzwert');
+        var form = button.up('window').down('form');
+        var values = form.getForm().getValues();
+        var model = form.model;
+        // Set Probenzusatzwert and rebind the model to the form.
+        var xxx = this.getProbenzusatzwerteStore();
+        var probenzusatz = xxx.getAt(xxx.find('pzsId', values.pzsId));
+        model.setProbenzusatz(probenzusatz);
+        // Set ProbenId
+        // model.probeId = 
+        form.commit();
+    },
     addZusatzwert: function(button) {
         console.log('Adding new Zusatzwert');
         var view = Ext.widget('zusatzwertecreate');
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/model/Probenzusatzwert.js	Fri Jun 21 16:56:17 2013 +0200
@@ -0,0 +1,21 @@
+Ext.define('Lada.model.Probenzusatzwert', {
+    extend: 'Ext.data.Model',
+    fields: [
+        {name: "pzsId"},
+        {name: "mehId"},
+        {name: "beschreibung"},
+        {name: "zusatzwert"},
+        {name: "eudfKeyword"}
+    ],
+    idProperty: "pzsId",
+    proxy: {
+        type: 'rest',
+        appendId: true, //default
+        url: 'server/rest/probenzusatz',
+        autoload: true,
+        reader: {
+            type: 'json',
+            root: 'data'
+        }
+    }
+});
--- a/app/model/Zusatzwert.js	Fri Jun 21 16:55:23 2013 +0200
+++ b/app/model/Zusatzwert.js	Fri Jun 21 16:56:17 2013 +0200
@@ -1,25 +1,35 @@
 Ext.define('Lada.model.Zusatzwert', {
     extend: 'Ext.data.Model',
+    requires: [
+        'Lada.model.Probenzusatzwert'
+    ],
     fields: [
         {name: "id"},
-        {name: "probeId"},
-        //{name: "pzsId", mapping: "id.pzsId"},
-        {name: "sprobenZusatz"},
-
-        // Hier muss die tatsächliche Nachweisgrenze eingegeben werden.
+        {name: "pzsId", mapping: "id.pzsId"},
+        {name: "probeId", mapping: "id.probeId"},
         {name: "nwgZuMesswert", type: 'float'},
         {name: "messwertPzs", type: 'float'},
         {name: "messfehler", type: 'float'},
-        {name: "letzteAenderung", type: 'date', convert: ts2date, defaultValue: new Date()},
+        {name: "letzteAenderung", type: 'date', convert: ts2date, defaultValue: new Date()}
 
-        // This are fields from the s_zusatzwert_table. They are currently not
-        // needed for displaying values in the grid.
-        {name: "sprobenZusatz_beschreibung", mapping: "sprobenZusatz.beschreibung"},
-        {name: "sprobenZusatz_pzsId", mapping: "sprobenZusatz.pzsId"},
-        {name: "sprobenZusatz_mehId", mapping: "sprobenZusatz.mehId"}
+        //// This are fields from the s_zusatzwert_table. They are currently not
+        //// needed for displaying values in the grid.
+        //{name: "sprobenZusatz"},
+        //{name: "sprobenZusatz_beschreibung", mapping: "sprobenZusatz.beschreibung"},
+        //{name: "sprobenZusatz_pzsId", mapping: "sprobenZusatz.pzsId"},
+        //{name: "sprobenZusatz_mehId", mapping: "sprobenZusatz.mehId"}
     ],
-    //// we can use the hasOne shortcut on the model to create a hasOne association
-    //associations: [{ type: 'hasOne', model: 'ProbenZusatzwert', foreignKey: 'pzsId'}],
+    hasOne: [
+        {
+            model: 'Lada.model.Probenzusatzwert',
+            primaryKey: 'pzsId',
+            name: 'sprobenZusatz',
+            associationKey: 'sprobenZusatz',
+            foreignKey: 'pzsId',
+            getterName: 'getProbenzusatz',
+            setterName: 'setProbenzusatz'
+        }
+    ],
     idProperty: "id",
     proxy: {
         type: 'rest',
@@ -28,31 +38,14 @@
         reader: {
             type: 'json',
             root: 'data'
+        },
+        writer: {
+            type: 'json',
+            writeEverything : true
         }
     }
 });
 
-//Ext.define('Lada.model.ProbenZusatzwert', {
-//    extend: 'Ext.data.Model',
-//    fields: [
-//        {name: "pzsId"},
-//        {name: "medId"},
-//        {name: "bschreibung"},
-//        {name: "zusatzwert"},
-//        {name: "eudfKeyword"}
-//    ],
-//    idProperty: "pzsId",
-//    proxy: {
-//        type: 'rest',
-//        appendId: true, //default
-//        url: 'server/rest/probenzusatzwert',
-//        reader: {
-//            type: 'json',
-//            root: 'data'
-//        }
-//    }
-//};
-
 function buildId(v, record){
     return record.get('probeId') + ',' + record.get('pzsId');
 }
--- a/app/store/Probenzusatzwert.js	Fri Jun 21 16:55:23 2013 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-Ext.define('Lada.store.Probenzusatzwert', {
-    extend: 'Ext.data.Store',
-    fields: ['pzsId', 'beschreibung', 'zusatzwert'],
-    proxy: {
-        type: 'ajax',
-        api: {
-        read: 'server/rest/probenzusatz'
-        },
-        reader: {
-            type: 'json',
-            root: 'data'
-        }
-    }
-});
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/store/Probenzusatzwerte.js	Fri Jun 21 16:56:17 2013 +0200
@@ -0,0 +1,4 @@
+Ext.define('Lada.store.Probenzusatzwerte', {
+    extend: 'Ext.data.Store',
+    model: 'Lada.model.Probenzusatzwert'
+});
--- a/app/view/proben/Edit.js	Fri Jun 21 16:55:23 2013 +0200
+++ b/app/view/proben/Edit.js	Fri Jun 21 16:56:17 2013 +0200
@@ -11,15 +11,6 @@
     autoScroll: true,
     modal: true,
 
-    requires: [
-        //'Lada.view.proben.EditForm',
-        //'Lada.view.widgets.Uwb',
-        //'Lada.view.kommentare.List',
-        //'Lada.view.orte.List',
-        //'Lada.view.messungen.List',
-        //'Lada.view.zusatzwerte.List'
-    ],
-
     initComponent: function() {
         // InitialConfig is the config object passed to the constructor on
         // creation of this window. We need to pass it throuh to the form as
@@ -44,15 +35,6 @@
         //        //probe: record.data['probeId']
         //    }
         //});
-        //// Load Zusatzwerte
-        //var zwerte = form.down('zusatzwertelist');
-        //var zstore = zwerte.getStore();
-        //zstore.load({
-        //    params: {
-        //        probe: this.initialConfig['modelId']
-        //        //probe: record.data['probeId']
-        //    }
-        //});
         //// Load Messungen 
         //var messungen = form.down('messungenlist');
         //var mstore = messungen.getStore();
--- a/app/view/proben/EditForm.js	Fri Jun 21 16:55:23 2013 +0200
+++ b/app/view/proben/EditForm.js	Fri Jun 21 16:56:17 2013 +0200
@@ -6,7 +6,8 @@
         'Lada.view.widgets.Betriebsart',
         'Lada.view.widgets.Testdatensatz',
         'Lada.view.widgets.Probenart',
-        'Lada.view.widgets.Uwb'
+        'Lada.view.widgets.Uwb',
+        'Lada.view.zusatzwerte.List'
     ],
     model: 'Lada.model.Probe',
     alias: 'widget.probeneditform',
@@ -156,17 +157,17 @@
             //        }
             //    ]
             //},
-            //// Probenzusatzwerte
-            //{
-            //    xtype: 'fieldset',
-            //    title: 'Probenzusatzwerte',
-            //    collapsible: true,
-            //    collapsed: true,
-            //    padding: '10 10',
-            //    items: [
-            //        { xtype: 'zusatzwertelist' }
-            //    ]
-            //},
+            // Probenzusatzwerte
+            {
+                xtype: 'fieldset',
+                title: 'Probenzusatzwerte',
+                collapsible: true,
+                collapsed: true,
+                padding: '10 10',
+                items: [
+                    { xtype: 'zusatzwertelist' }
+                ]
+            }
             //// Probenkommentar
             //{
             //    xtype: 'fieldset',
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/view/widgets/Probenzusatzwert.js	Fri Jun 21 16:56:17 2013 +0200
@@ -0,0 +1,12 @@
+// Combobox for Zusatzwert.
+Ext.define('Lada.view.widgets.Zusatzwert' ,{
+        extend: 'Ext.form.ComboBox',
+        alias: 'widget.probenzusatzwert',
+        store: 'Probenzusatzwerte',
+        displayField: 'beschreibung',
+        valueField: 'pzsId',
+        emptyText:'Wählen Sie einen Zusatzwert',
+    initComponent: function() {
+        this.callParent(arguments);
+    }
+});
--- a/app/view/widgets/Zusatzwert.js	Fri Jun 21 16:55:23 2013 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-// Combobox for Umweltbereich
-Ext.define('Lada.view.widgets.Zusatzwert' ,{
-        extend: 'Ext.form.ComboBox',
-        alias: 'widget.zusatzwert',
-        store: 'Probenzusatzwert',
-        displayField: 'beschreibung',
-        valueField: 'pzsId',
-        emptyText:'Wählen Sie einen Zusatzwert',
-    initComponent: function() {
-        this.callParent(arguments);
-    }
-});
--- a/app/view/zusatzwerte/Create.js	Fri Jun 21 16:55:23 2013 +0200
+++ b/app/view/zusatzwerte/Create.js	Fri Jun 21 16:56:17 2013 +0200
@@ -11,19 +11,15 @@
     autoScroll: true,
     modal: true,
 
-    requires: [
-        'Lada.view.zusatzwerte.CreateForm',
-        'Lada.view.widgets.Zusatzwert',
-        'Lada.view.widgets.Messeinheit'
-    ],
     initComponent: function() {
         var form = Ext.create('Lada.view.zusatzwerte.CreateForm', this.initialConfig);
         this.items = [form];
         this.buttons = [
             {
                 text: 'Speichern',
-                handler: form.commit,
-                scope: form
+                //handler: form.commit,
+                scope: form,
+                action: 'save'
             }
         ];
         this.callParent();
--- a/app/view/zusatzwerte/CreateForm.js	Fri Jun 21 16:55:23 2013 +0200
+++ b/app/view/zusatzwerte/CreateForm.js	Fri Jun 21 16:56:17 2013 +0200
@@ -1,11 +1,14 @@
 Ext.define('Lada.view.zusatzwerte.CreateForm', {
     extend: 'Lada.view.widgets.LadaForm',
+    requires : [
+        'Lada.view.widgets.Probenzusatzwert'
+    ],
     model: 'Lada.model.Zusatzwert',
     initComponent: function() {
         this.items = [
             {
-                xtype: 'zusatzwert',
-                name: 'sprobenZusatz_pzsId',
+                xtype: 'probenzusatzwert',
+                name: 'pzsId',
                 fieldLabel: 'PZW-Größe'
             },
             {

http://lada.wald.intevation.org