# HG changeset patch # User Torsten Irländer # Date 1371826577 -7200 # Node ID a7bfaeb1655dc48d9bf37355e2ac50b2102dd41d # Parent c05fda928b82073db5af721d3e698dc57a770d22 Cleanup part three. Reenabled Zusatzwerte and implemented sending nested data. diff -r c05fda928b82 -r a7bfaeb1655d app.js --- 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; + } +}); diff -r c05fda928b82 -r a7bfaeb1655d app/controller/Proben.js --- 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) { diff -r c05fda928b82 -r a7bfaeb1655d app/controller/Zusatzwerte.js --- 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'); diff -r c05fda928b82 -r a7bfaeb1655d app/model/Probenzusatzwert.js --- /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' + } + } +}); diff -r c05fda928b82 -r a7bfaeb1655d app/model/Zusatzwert.js --- 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'); } diff -r c05fda928b82 -r a7bfaeb1655d app/store/Probenzusatzwert.js --- 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' - } - } -}); diff -r c05fda928b82 -r a7bfaeb1655d app/store/Probenzusatzwerte.js --- /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' +}); diff -r c05fda928b82 -r a7bfaeb1655d app/view/proben/Edit.js --- 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(); diff -r c05fda928b82 -r a7bfaeb1655d app/view/proben/EditForm.js --- 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', diff -r c05fda928b82 -r a7bfaeb1655d app/view/widgets/Probenzusatzwert.js --- /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); + } +}); diff -r c05fda928b82 -r a7bfaeb1655d app/view/widgets/Zusatzwert.js --- 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); - } -}); diff -r c05fda928b82 -r a7bfaeb1655d app/view/zusatzwerte/Create.js --- 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(); diff -r c05fda928b82 -r a7bfaeb1655d app/view/zusatzwerte/CreateForm.js --- 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' }, {