diff app/view/window/MessungEdit.js @ 690:e88381fb3bdb

Use treeModiefied timestamp to determine if working with 'old' objects.
author Raimund Renkert <raimund.renkert@intevation.de>
date Wed, 25 Mar 2015 16:46:48 +0100
parents 6a6d1b02a1a3
children 817524db4017
line wrap: on
line diff
--- a/app/view/window/MessungEdit.js	Wed Mar 25 16:45:29 2015 +0100
+++ b/app/view/window/MessungEdit.js	Wed Mar 25 16:46:48 2015 +0100
@@ -26,6 +26,9 @@
     autoscroll: true,
     layout: 'fit',
     constrain: true,
+
+    probe: null,
+    parentWindow: null,
     record: null,
     grid: null,
 
@@ -35,6 +38,11 @@
             this.callParent(arguments);
             return;
         }
+        if (this.probe === null) {
+            Ext.Msg.alert('Zu der Messung existiert keine Probe!');
+            this.callParent(arguments);
+            return;
+        }
         this.title = 'Messung ' + this.record.get('nebenprobenNr');
         this.buttons = [{
             text: 'Schließen',
@@ -88,14 +96,33 @@
 
     initData: function() {
         this.clearMessages();
-        this.down('messungform').setRecord(this.record);
         Ext.ClassManager.get('Lada.model.Messung').load(this.record.get('id'), {
             failure: function(record) {
                 // TODO
                 console.log(record);
             },
             success: function(record, response) {
+                var me = this;
+                if (this.probe.get('treeModified') < record.get('treeModified')) {
+                    Ext.Msg.show({
+                        title: 'Probe nicht aktuell!',
+                        msg: 'Die zugehörige Probe wurde verändert.\nMöchten Sie zu der Probe zurückkehren und neu laden?\nOhne das erneute Laden der Probe wird das Speichern der Messung nicht möglich sein.',
+                        buttons: Ext.Msg.OKCANCEL,
+                        icon: Ext.Msg.WARNING,
+                        closable: false,
+                        fn: function(button) {
+                            if (button === 'ok') {
+                                me.close();
+                                me.parentWindow.initData();
+                            }
+                            else {
+                                me.record.set('treeModified', me.probe.get('treeModified'));
+                            }
+                        }
+                    });
+                }
                 this.down('messungform').setRecord(record);
+                this.record = record;
                 var json = Ext.decode(response.response.responseText);
                 if (json) {
                     this.setMessages(json.errors, json.warnings);
@@ -103,23 +130,6 @@
             },
             scope: this
         });
-
-        if (this.record.get('readonly') == true){
-            this.down('messungform').setReadOnly(true);
-            this.disableChildren();
-        }
-     },
-
-    disableChildren: function(){
-            this.down('fset[name=messwerte]').down('messwertgrid').setReadOnly(true);
-            this.down('fset[name=messungstatus]').down('statusgrid').setReadOnly(true);
-            this.down('fset[name=messungskommentare]').down('mkommentargrid').setReadOnly(true);
-    },
-
-    enableChildren: function(){
-            this.down('fset[name=messwerte]').down('messwertgrid').setReadOnly(false);
-            this.down('fset[name=messungstatus]').down('statusgrid').setReadOnly(false);
-            this.down('fset[name=messungskommentare]').down('mkommentargrid').setReadOnly(false);
     },
 
     setMessages: function(errors, warnings) {

http://lada.wald.intevation.org