← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 4487: (GIS) Basic orgunit filtering for facility layer.

 

Merge authors:
  Jan Henrik Øverland (janhenrik-overland)
------------------------------------------------------------
revno: 4487 [merge]
committer: Jan Henrik Overland <janhenrik.overland@xxxxxxxxx>
branch nick: dhis2
timestamp: Wed 2011-08-31 12:00:28 +0200
message:
  (GIS) Basic orgunit filtering for facility layer.
modified:
  dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/javascript/global.js
  dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Choropleth.js
  dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Point.js
  dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Symbol.js


--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk

Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/javascript/global.js'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/javascript/global.js	2011-08-30 14:56:26 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/mapping/javascript/global.js	2011-08-31 09:58:04 +0000
@@ -738,7 +738,7 @@
                             {
                                 text: 'Filter..',
                                 iconCls: 'menu-layeroptions-filter',
-                                hidden: (widget.legendDiv == 'symbollegend' || widget.legendDiv == 'centroidlegend'),
+                                hidden: widget.legendDiv == 'centroidlegend',
                                 scope: this,
                                 handler: function() {
                                     this.widget.filtering.showFilteringWindow.call(this.widget);

=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Choropleth.js'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Choropleth.js	2011-08-30 14:56:26 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Choropleth.js	2011-08-31 09:58:04 +0000
@@ -94,16 +94,21 @@
             var gt = this.filtering.options.gt;
             var lt = this.filtering.options.lt;
             var add = [];
-            for (var i = 0; i < this.filtering.cache.length; i++) {
-                if (gt && lt && this.filtering.cache[i].attributes.value > gt && this.filtering.cache[i].attributes.value < lt) {
-                    add.push(this.filtering.cache[i]);
-                }
-                else {
-                    if (!(gt && lt) && gt && this.filtering.cache[i].attributes.value > gt) {
+            if (!gt && !lt) {
+                add = this.filtering.cache.slice(0);
+            }
+            else {
+                for (var i = 0; i < this.filtering.cache.length; i++) {
+                    if (gt && lt && this.filtering.cache[i].attributes.value > gt && this.filtering.cache[i].attributes.value < lt) {
                         add.push(this.filtering.cache[i]);
                     }
-                    else if (!(gt && lt) && lt && this.filtering.cache[i].attributes.value < lt) {
-                        add.push(this.filtering.cache[i]);
+                    else {
+                        if (!(gt && lt) && gt && this.filtering.cache[i].attributes.value > gt) {
+                            add.push(this.filtering.cache[i]);
+                        }
+                        else if (!(gt && lt) && lt && this.filtering.cache[i].attributes.value < lt) {
+                            add.push(this.filtering.cache[i]);
+                        }
                     }
                 }
             }

=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Point.js'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Point.js	2011-08-30 14:56:26 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Point.js	2011-08-31 09:58:04 +0000
@@ -94,16 +94,21 @@
             var gt = this.filtering.options.gt;
             var lt = this.filtering.options.lt;
             var add = [];
-            for (var i = 0; i < this.filtering.cache.length; i++) {
-                if (gt && lt && this.filtering.cache[i].attributes.value > gt && this.filtering.cache[i].attributes.value < lt) {
-                    add.push(this.filtering.cache[i]);
-                }
-                else {
-                    if (!(gt && lt) && gt && this.filtering.cache[i].attributes.value > gt) {
+            if (!gt && !lt) {
+                add = this.filtering.cache.slice(0);
+            }
+            else {
+                for (var i = 0; i < this.filtering.cache.length; i++) {
+                    if (gt && lt && this.filtering.cache[i].attributes.value > gt && this.filtering.cache[i].attributes.value < lt) {
                         add.push(this.filtering.cache[i]);
                     }
-                    else if (!(gt && lt) && lt && this.filtering.cache[i].attributes.value < lt) {
-                        add.push(this.filtering.cache[i]);
+                    else {
+                        if (!(gt && lt) && gt && this.filtering.cache[i].attributes.value > gt) {
+                            add.push(this.filtering.cache[i]);
+                        }
+                        else if (!(gt && lt) && lt && this.filtering.cache[i].attributes.value < lt) {
+                            add.push(this.filtering.cache[i]);
+                        }
                     }
                 }
             }

=== modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Symbol.js'
--- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Symbol.js	2011-08-29 15:24:44 +0000
+++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/resources/mapfish/widgets/geostat/Symbol.js	2011-08-31 09:58:04 +0000
@@ -82,6 +82,101 @@
     
     requireUpdate: false,
     
+    filtering: {
+        cache: [],
+        options: {
+            type: []
+        },
+        filter: function() {
+            var type = this.filtering.options.type;
+            var add = [];
+            if (!type.length || !type[0]) {
+                add = this.filtering.cache.slice(0);
+            }
+            else {
+                for (var i = 0; i < this.filtering.cache.length; i++) {
+                    for (var j = 0; j < type.length; j++) {
+                        if (this.filtering.cache[i].attributes.type == type[j]) {
+                            add.push(this.filtering.cache[i]);
+                        }
+                    }
+                }
+            }
+            this.layer.removeAllFeatures();
+            this.layer.addFeatures(add);
+        },
+        showFilteringWindow: function() {
+            var window = new Ext.Window({
+                title: '<span class="window-filter-title">Organisation unit filter</span>',
+                layout: 'fit',
+                autoHeight: true,
+                height: 'auto',
+                width: G.conf.window_width,
+                items: [
+                    {
+                        xtype: 'form',
+                        bodyStyle:'padding:8px',
+                        autoHeight: true,
+                        height: 'auto',
+                        labelWidth: G.conf.label_width,
+                        items: [
+                            { html: 'Show organisation units where <b>type</b> is..' },
+                            { html: '<div class="window-p"></div>' },
+                            {
+                                xtype: 'multiselect',
+                                hideLabel: true,
+                                dataFields: ['id', 'name'],
+                                valueField: 'name',
+                                displayField: 'name',
+                                width: G.conf.multiselect_width,
+                                height: G.util.getMultiSelectHeight() / 2,
+                                store: G.stores.groupsByGroupSet,
+                                listeners: {
+                                    'change': {
+                                        scope: this,
+                                        fn: function(ms) {
+                                            this.filtering.options.type = ms.getValue().split(',');
+                                        }
+                                    }
+                                }
+                            }
+                        ]
+                    }
+                ],
+                bbar: [
+                    '->',
+                    {
+                        xtype: 'button',
+                        text: G.i18n.update,
+                        iconCls: 'icon-assign',
+                        scope: this,
+                        handler: function() {
+                            this.filtering.filter.call(this);
+                        }
+                    }
+                ],
+                listeners: {
+                    'afterrender': {
+                        scope: this,
+                        fn: function() {
+                            this.filtering.cache = this.layer.features.slice(0);
+                        }
+                    },
+                    'close': {
+                        scope: this,
+                        fn: function() {
+                            this.layer.removeAllFeatures();
+                            this.layer.addFeatures(this.filtering.cache);
+                            this.filtering.options.type = [];
+                        }
+                    }
+                }
+            });
+            window.setPagePosition(G.conf.window_x_left,G.conf.window_y_left);
+            window.show();
+        }
+    },
+    
     initComponent: function() {
         
         this.initProperties();