view app/controller/Messwert.js @ 362:6a7a9267e00f

Issue56: Changed way how to set the form and window to readonly. Now all dialogs should habe proper readonly settings. Now the Save and Cancel button are displayed as needed.
author Torsten Irländer <torsten.irlaender@intevation.de>
date Thu, 15 Aug 2013 14:07:35 +0200
parents fe51239321d9
children 2b886fc38282
line wrap: on
line source
/**
 * Controller for Messwerte
 */
Ext.define('Lada.controller.Messwert', {
    extend: 'Lada.controller.Base',
    views: [
        'messwerte.Create'
    ],
    stores: [
        'Proben',
        'Messungen',
        'Messwerte',
        'Messeinheit',
        'Messgroessen'
    ],
    init: function() {
        console.log('Initialising the Messwert controller');
        this.callParent();
    },
    addListeners: function() {
        this.control({
            'messwertelist': {
                itemdblclick: this.editItem
            },
            'messwertelist toolbar button[action=add]': {
                click: this.addItem
            },
            'messwertelist toolbar button[action=delete]': {
                click: this.deleteItem
            },
            'messwertecreate button[action=save]': {
                click: this.saveItem
            },
            'messwertecreate form': {
                savesuccess: this.createSuccess,
                savefailure: this.createFailure
            }
        });
    },
    saveItem: function(button) {
        console.log('Saving MesswerMesswert');
        var form = button.up('window').down('form');
        form.commit();
    },
    addItem: function(button) {
        console.log('Adding new Messwert for Messung ' + button.parentId + ' for Probe ' + button.probeId);
        var messung = Ext.create('Lada.model.Messwert');
        messung.set('probeId', button.probeId);
        messung.set('messungsId', button.parentId);
        var view = Ext.widget('messwertecreate', {model: messung});
    },
    editItem: function(grid, record) {
        console.log('Editing Messwert');
        record.getAuthInfo(this.initEditWindow)
        console.log("Loaded Messwert with ID " + record.getId()); //outputs ID
    },
    initEditWindow: function(record, readonly, owner) {
        var view = Ext.widget('messwertecreate', {model: record});
        var ignore = Array();
        if (readonly) {
            var form = view.down('form');
            form.setReadOnly(true, ignore);
        }
    },
    deleteItem: function(button) {
        var grid = button.up('grid');
        var selection = grid.getView().getSelectionModel().getSelection()[0];
        Ext.MessageBox.confirm('Löschen', 'Sind Sie sicher?', function(btn){
            if(btn === 'yes'){
                var store = grid.getStore();
                var deleteUrl = selection.getProxy().url + selection.getEidi();
                Ext.Ajax.request({
                    url: deleteUrl,
                    method: 'DELETE',
                    success: function(response, opts) {
                        store.reload();
                    }
                });
                console.log('Deleting Messwert');
            } else {
                console.log('Cancel Deleting Messwert');
            }
        });
    },
    createSuccess: function(form, record, operation) {
        // Reload store
        var store = this.getMessungenStore();
        store.reload();
        var win = form.up('window');
        win.close();
    },
    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.getMessungenStore();
        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
        });
    }
});

http://lada.wald.intevation.org