# HG changeset patch # User Torsten Irländer # Date 1371643895 -7200 # Node ID 6273b73b4b27d6835ad32e0b28877644c9d13d9d # Parent c4f97a5a99396a269552f8627af45bbe70f1092f Replaced Logic for Kommentare. Use copied code form Orte. diff -r c4f97a5a9939 -r 6273b73b4b27 app/controller/Kommentare.js --- a/app/controller/Kommentare.js Wed Jun 19 14:10:54 2013 +0200 +++ b/app/controller/Kommentare.js Wed Jun 19 14:11:35 2013 +0200 @@ -2,7 +2,6 @@ extend: 'Ext.app.Controller', views: [ 'kommentare.List', - 'kommentare.Edit', 'kommentare.Create' ], stores: [ @@ -17,7 +16,6 @@ // CSS like selector to select element in the viewport. See // ComponentQuery documentation for more details. 'kommentarelist': { - // Map Doubleclick on rows of the probenlist. itemdblclick: this.editKommentar }, 'kommentarelist toolbar button[action=add]': { @@ -26,20 +24,24 @@ 'kommentarelist toolbar button[action=delete]': { click: this.deleteKommentar }, - 'kommentaredit button[action=save]': { - click: this.saveKommentar + 'kommentarecreate form': { + savesuccess: this.createSuccess, + savefailure: this.createFailure + }, + 'kommentareedit form': { + savesuccess: this.editSuccess, + savefailure: this.editFailure } }); }, addKommentar: function(button) { console.log('Adding new Kommentar'); - var view = Ext.create('Lada.view.kommentare.Create'); - var form = view.down('form'); - // Set probeId - var probenform = button.up('form'); - var probe = probenform.getRecord(); - var probeId = probe.get('probeId'); - form.model.set('probeId', probeId); + var view = Ext.widget('kommentarecreate'); + }, + editKommentar: function(grid, record) { + console.log('Editing Kommentar'); + var view = Ext.widget('kommentarecreate', {model: record}); + console.log("Loaded Kommentar with ID " + record.getId()); //outputs ID }, deleteKommentar: function(button) { // Get selected item in grid @@ -56,22 +58,34 @@ } }); }, - editKommentar: function(grid, record) { - // Create new window to edit the seletced record. - var view = Ext.widget('kommentaredit'); - var form = view.down('form'); - form.loadRecord(record); + createSuccess: function(form, record, operation) { + // Reload store + var store = this.getKommentareStore(); + store.reload(); + var win = form.up('window'); + win.close(); }, - saveKommentar: function(button) { - var win = button.up('window'); - var form = win.down('form'); - var record = form.getRecord(); - var values = form.getValues(); + createFailure: function(form, record, operation) { + Ext.MessageBox.show({ + title: 'Fehler beim Speichern', + msg: form.message, + icon: Ext.MessageBox.ERROR, + buttons: Ext.Msg.OK + }); + }, + editSuccess: function(form, record, operation) { + // Reload store var store = this.getKommentareStore(); - record.set(values); - store.add(record); - store.sync(); - console.log('Saving Kommentar'); + store.reload(); + var win = form.up('window'); win.close(); + }, + editFailure: function(form, record, operation) { + Ext.MessageBox.show({ + title: 'Fehler beim Speichern', + msg: form.message, + icon: Ext.MessageBox.ERROR, + buttons: Ext.Msg.OK + }); } }); diff -r c4f97a5a9939 -r 6273b73b4b27 app/view/kommentare/Create.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/view/kommentare/Create.js Wed Jun 19 14:11:35 2013 +0200 @@ -0,0 +1,29 @@ +Ext.define('Lada.view.kommentare.Create', { + extend: 'Ext.window.Window', + alias: 'widget.kommentarecreate', + + title: 'Maske für Kommentare', + // Make size of the dialog dependend of the available space. + // TODO: Handle resizing the browser window. + width: Ext.getBody().getViewSize().width - 30, + height: Ext.getBody().getViewSize().height - 30, + autoShow: true, + autoScroll: true, + modal: true, + + requires: [ + 'Lada.view.kommentare.CreateForm' + ], + initComponent: function() { + var form = Ext.create('Lada.view.kommentare.CreateForm'); + this.items = [form]; + this.buttons = [ + { + text: 'Speichern', + handler: form.commit, + scope: form + } + ]; + this.callParent(); + } +}); diff -r c4f97a5a9939 -r 6273b73b4b27 app/view/kommentare/CreateForm.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/view/kommentare/CreateForm.js Wed Jun 19 14:11:35 2013 +0200 @@ -0,0 +1,31 @@ +Ext.define('Lada.view.kommentare.CreateForm', { + extend: 'Lada.view.widgets.LadaForm', + model: 'Lada.model.Kommentar', + initComponent: function() { + this.items = [ + { + xtype: 'textfield', + name: 'erzeuger', + fieldLabel: 'Erzeuger' + }, + { + xtype: 'datefield', + name: 'kdatum', + fieldLabel: 'Datum' + }, + { + xtype: 'textareafield', + name: 'ktext', + fieldLabel: 'Text' + } + ]; + //this.buttons = [ + // { + // text: 'Speichern', + // handler: this.commit, + // scope: this + // } + //]; + this.callParent(); + } +}); diff -r c4f97a5a9939 -r 6273b73b4b27 app/view/kommentare/Edit.js --- a/app/view/kommentare/Edit.js Wed Jun 19 14:10:54 2013 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,58 +0,0 @@ -Ext.define('Lada.view.kommentare.Edit', { - extend: 'Ext.window.Window', - alias: 'widget.kommentaredit', - - title: 'Maske für Kommentare', - // Make size of the dialog dependend of the available space. - // TODO: Handle resizing the browser window. - width: Ext.getBody().getViewSize().width - 30, - maxHeight: Ext.getBody().getViewSize().height - 30, - autoShow: true, - autoScroll: true, - modal: true, - - requires: [ - ], - - initComponent: function() { - this.items = [ - { - //Define the form - xtype: 'form', - bodyPadding: '10 10', - border: 0, - layout: 'fit', - items: [ - { - xtype: 'textfield', - name: 'erzeuger', - fieldLabel: 'Erzeuger' - }, - { - xtype: 'datefield', - name: 'kdatum', - fieldLabel: 'Datum' - }, - { - xtype: 'textareafield', - name: 'ktext', - fieldLabel: 'Text' - } - ] - } - ]; - this.buttons = [ - { - text: 'Speichern', - action: 'save' - }, - { - text: 'Verwerfen', - scope: this, - handler: this.close - } - ]; - this.callParent(arguments); - } -}); -