diff app/view/widget/Deskriptor.js @ 770:3185a77e8501

Added combobox widget for deskriptoren.
author Raimund Renkert <raimund.renkert@intevation.de>
date Tue, 12 May 2015 15:11:15 +0200
parents
children afdbe3770b99
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/view/widget/Deskriptor.js	Tue May 12 15:11:15 2015 +0200
@@ -0,0 +1,64 @@
+/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz
+ * Software engineering by Intevation GmbH
+ *
+ * This file is Free Software under the GNU GPL (v>=3)
+ * and comes with ABSOLUTELY NO WARRANTY! Check out
+ * the documentation coming with IMIS-Labordaten-Application for details.
+ */
+
+/**
+ * Combobox for Deskriptor
+ */
+Ext.define('Lada.view.widget.Deskriptor', {
+    extend: 'Lada.view.widget.base.ComboBox',
+    alias: 'widget.deskriptor',
+    displayField: 'beschreibung',
+    valueField: 'id',
+    // Enable filtering of comboboxes
+    triggerAction: 'all',
+    typeAhead: false,
+    layer: null,
+    queryMode: 'local',
+    listeners: {
+        expand: {
+            fn: function(field) {
+                if (field.up('deskriptor').layer === 0) {
+                    field.store.proxy.extraParams = {'layer': field.up('deskriptor').layer};
+                    field.store.load();
+                }
+                else {
+                    var parents = field.up('deskriptor').getParents(this);
+                    if (parents !== '') {
+                        field.store.proxy.extraParams = {
+                            'layer': field.up('deskriptor').layer,
+                            'parents': parents
+                        };
+                        field.store.load();
+                    }
+                }
+            }
+        }
+    },
+
+    initComponent: function() {
+        this.store = Ext.create('Lada.store.Deskriptoren');
+
+        this.callParent(arguments);
+    },
+
+    getParents: function(field) {
+        var set = field.up('fieldset');
+        var allS = set.items.items;
+        var p = '';
+
+        for (var i = 0; i < field.up('deskriptor').layer; i++) {
+            if (allS[i].getValue() > 0) {
+                p += allS[i].getValue();
+                if (i < field.up('deskriptor').layer - 1) {
+                    p += ', ';
+                }
+            }
+        }
+        return p;
+    }
+});

http://lada.wald.intevation.org