Mercurial > lada > lada-client
view app/controller/Kommentare.js @ 60:5db7ab34af6d
Implemented Adding und Editing Kommentare
author | Torsten Irländer <torsten.irlaender@intevation.de> |
---|---|
date | Wed, 29 May 2013 16:06:43 +0200 |
parents | 9e23eca8dfc7 |
children | 20a4f9aaecde |
line wrap: on
line source
Ext.define('Lada.controller.Kommentare', { extend: 'Ext.app.Controller', views: [ 'kommentare.List', 'kommentare.Edit' ], stores: [ 'Kommentare' ], models: [ 'Kommentar' ], init: function() { console.log('Initialising the Kommentare controller'); this.control({ // 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]': { click: this.addKommentar }, 'kommentarelist toolbar button[action=delete]': { click: this.deleteKommentar }, 'kommentaredit button[action=save]': { click: this.saveKommentar } //'probenedit button[action=save]': { // click: this.updateProbe //} }); }, addKommentar: function(button) { console.log('Adding new Kommentar'); var view = Ext.widget('kommentaredit'); var form = view.down('form'); // Create a new Kommentar var record = Ext.create('Lada.model.Kommentar'); form.loadRecord(record); }, deleteKommentar: function(button) { // Get selected item in grid var grid = button.up('grid'); var selection = grid.getView().getSelectionModel().getSelection()[0]; console.log("Searching grid"); Ext.MessageBox.confirm('Löschen', 'Sind Sie sicher?', function(btn){ if(btn === 'yes'){ var store = grid.getStore(); store.remove(selection); store.sync(); console.log('Deleting Kommentar'); } else { console.log('Cancel Deleting Kommentar'); } }); }, editKommentar: function(grid, record) { console.log('Double click on ' + record.get('id')); // Create new window to edit the seletced record. var view = Ext.widget('kommentaredit'); var form = view.down('form'); form.loadRecord(record); }, updateKommentar: 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(); saveKommentar: function(button) { var win = button.up('window'); var form = win.down('form'); var record = form.getRecord(); var values = form.getValues(); var store = this.getKommentareStore(); record.set(values); store.add(record); store.sync(); console.log('Saving Kommentar'); win.close(); } });