diff app/controller/form/Messprogramm.js @ 784:f0b26df02157

Handle deskriptoren in messprogramm like in probe.
author Raimund Renkert <raimund.renkert@intevation.de>
date Wed, 13 May 2015 10:23:39 +0200
parents 5a153d36ed4e
children b8fd43021c29
line wrap: on
line diff
--- a/app/controller/form/Messprogramm.js	Wed May 13 10:22:53 2015 +0200
+++ b/app/controller/form/Messprogramm.js	Wed May 13 10:23:39 2015 +0200
@@ -39,6 +39,9 @@
             },
              'messprogrammform probenintervall combobox': {
                 select: this.updateIntervalls
+            },
+            'messprogrammform panel[xtype="deskriptor] combobox': {
+                select: this.deskriptorSelect
             }
         });
     },
@@ -231,4 +234,51 @@
                 field.up('fieldset').clearMessages();
             }
         }
-    }});
+    },
+
+    deskriptorSelect: function(field, records) {
+        var desk = field.up('deskriptor');
+        var media = field.up('messprogrammform').down('textfield[name="mediaDesk"]');
+        var current = media.getValue().split(' ');
+        this.clearChildDesk(field.up('deskriptor'), current);
+        if (current.length < 13) {
+            for (var i = 0; i <= 12; i++) {
+                if (i === 0) {
+                    current.push('D:');
+                }
+                else if (i === desk.layer + 1) {
+                    var value;
+                    if (records[0].get('sn') < 10) {
+                        value = '0' + records[0].get('sn');
+                    }
+                    else {
+                        value = records[0].get('sn');
+                    }
+                    current.push(value);
+                }
+                else {
+                    current.push('00');
+                }
+            }
+        }
+        else {
+            var value;
+            if (records[0].get('sn') < 10) {
+                value = '0' + records[0].get('sn');
+            }
+            else {
+                value = records[0].get('sn');
+            }
+            current[desk.layer + 1] = value;
+        }
+        media.setValue(current.join(' ').trim());
+    },
+
+    clearChildDesk: function(field, media) {
+        var allS = field.up('fieldset').items.items;
+        for (var i = field.layer + 1; i < 12; i++) {
+            allS[i].clearValue();
+            media[i + 1] = '00';
+        }
+    }
+});

http://lada.wald.intevation.org