← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 6265: (DV) UI made more consistent and more touch screen friendly.

 

Merge authors:
  Jan Henrik Øverland (janhenrik-overland)
------------------------------------------------------------
revno: 6265 [merge]
committer: Jan Henrik Overland <janhenrik.overland@xxxxxxxxx>
branch nick: dhis2
timestamp: Thu 2012-03-15 00:45:30 +0100
message:
  (DV) UI made more consistent and more touch screen friendly.
modified:
  dhis-2/dhis-web/dhis-web-visualizer/src/main/resources/org/hisp/dhis/visualizer/i18n_module.properties
  dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/app.js
  dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/css/style.css


--
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-visualizer/src/main/resources/org/hisp/dhis/visualizer/i18n_module.properties'
--- dhis-2/dhis-web/dhis-web-visualizer/src/main/resources/org/hisp/dhis/visualizer/i18n_module.properties	2012-03-07 14:33:51 +0000
+++ dhis-2/dhis-web/dhis-web-visualizer/src/main/resources/org/hisp/dhis/visualizer/i18n_module.properties	2012-03-14 23:25:58 +0000
@@ -40,7 +40,7 @@
 trend_line=Trend line
 hide_subtitle=Hide subtitle
 hide_legend=Hide legend
-user_orgunit=User org unit
+user_orgunit=User orgunit
 domain_axis_label=Domain axis label
 range_axis_label=Range axis label
 target=Target

=== modified file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/app.js'
--- dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/app.js	2012-03-09 16:50:49 +0000
+++ dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/app.js	2012-03-14 23:37:10 +0000
@@ -112,7 +112,7 @@
             },
             dataelement: {
                 value: 'dataelement',
-                rawvalue: DV.i18n.dataelement
+                rawvalue: DV.i18n.data_element
             },
             dataset: {
 				value: 'dataset',
@@ -183,7 +183,18 @@
     layout: {
         west_width: 424,
         west_fieldset_width: 402,
-        west_fill_height: 440,
+        west_width_subtractor: 18,
+        west_fill: 117,
+        west_fill_accordion_indicator: 77,
+        west_fill_accordion_dataelement: 77,
+        west_fill_accordion_dataset: 45,
+        west_fill_accordion_organisationunit: 75,
+        west_maxheight_accordion_indicator: 450,
+        west_maxheight_accordion_dataelement: 450,
+        west_maxheight_accordion_dataset: 450,
+        west_maxheight_accordion_period: 340,
+        west_maxheight_accordion_organisationunit: 700,
+        west_maxheight_accordion_options: 367,
         center_tbar_height: 31,
         east_tbar_height: 31,
         east_gridcolumn_height: 30,
@@ -216,9 +227,8 @@
             
     DV.init = DV.conf.init.ajax.jsonfy(r);    
     DV.init.initialize = function() {
-		DV.c = DV.chart.chart;
+		DV.c = DV.chart.model;
         DV.util.combobox.filter.category();
-        DV.util.fieldset.toggleIndicator();
         
         DV.init.cmd = DV.util.getUrlParam(DV.conf.finals.cmd.urlparam) || DV.conf.finals.cmd.init;
         DV.exe.execute(DV.init.cmd);
@@ -228,12 +238,13 @@
         region: {},
         charttype: [],
         settings: {},
-        fieldset: {},
         dimension: {
             indicator: {},
             dataelement: {},
             dataset: {},
-            period: [],
+            period: {
+				checkbox: []
+			},
             organisationunit: {}
         },
         options: {},
@@ -280,7 +291,16 @@
             },
             getPageCenterY: function(cmp) {
                 return ((screen.height/2)-((cmp.height/2)-100));
-            }
+            },
+            resizeDimensions: function() {
+				var a = [DV.cmp.dimension.indicator.panel, DV.cmp.dimension.dataelement.panel, DV.cmp.dimension.dataset.panel,
+						DV.cmp.dimension.period.panel, DV.cmp.dimension.organisationunit.panel, DV.cmp.options.panel];
+				for (var i = 0; i < a.length; i++) {
+					if (!a[i].collapsed) {
+						a[i].fireEvent('expand');
+					}
+				}
+			}
         },
         multiselect: {
             select: function(a, s) {
@@ -327,48 +347,9 @@
                 });
                 a.store.sort('name', 'ASC');
             },
-            setHeight: function(ms, fill) {
-				var h1 = DV.cmp.region.west.getHeight();
-				var h2 = DV.cmp.options.panel.getHeight();
-				var h = h1 - h2 - fill;
-				var mx = DV.conf.layout.multiselect_maxheight;
-				var mn = DV.conf.layout.multiselect_minheight;
+            setHeight: function(ms, panel, fill) {
 				for (var i = 0; i < ms.length; i++) {
-					ms[i].setHeight(h > mx ? mx : h < mn ? mn : h);
-				}
-			}
-        },
-        fieldset: {
-            toggleIndicator: function() {
-                DV.cmp.fieldset.indicator.toggle();
-            },
-            toggleDataElement: function() {
-                DV.cmp.fieldset.dataelement.toggle();
-            },
-            toggleDataSet: function() {
-                DV.cmp.fieldset.dataset.toggle();
-            },
-            togglePeriod: function() {
-                DV.cmp.fieldset.period.toggle();
-            },
-            toggleOrganisationUnit: function() {
-                DV.cmp.fieldset.organisationunit.toggle();
-            },
-            toggleOptions: function() {
-                DV.cmp.fieldset.options.toggle();
-            },
-            collapseFieldsets: function(fieldsets) {
-                for (var i = 0; i < fieldsets.length; i++) {
-                    fieldsets[i].collapse();
-                }
-            },
-            reloadExpanded: function() {
-				var fs = DV.cmp.fieldset;
-				for (var f in fs) {
-					if (!fs[f].collapsed) {
-						fs[f].collapse();
-						fs[f].expand();
-					}
+					ms[i].setHeight(panel.getHeight() - fill);
 				}
 			}
         },
@@ -587,7 +568,7 @@
                 },
                 getRelativePeriodObject: function(exception) {
                     var a = {},
-                        cmp = DV.cmp.dimension.period,
+                        cmp = DV.cmp.dimension.period.checkbox,
                         valid = false;
                     Ext.Array.each(cmp, function(item) {
                         a[item.paramName] = item.getValue();
@@ -665,7 +646,7 @@
 					return a;
 				},
                 getGroupSetId: function() {
-					var value = DV.cmp.fieldset.organisationunit.groupsets.getValue();
+					var value = DV.cmp.dimension.organisationunit.panel.groupsets.getValue();
 					return !value || value === DV.i18n.none || value === DV.conf.finals.cmd.none ? null : value;
 				},
 				getGroupNameByGroupId: function(id) {
@@ -679,7 +660,13 @@
 					}
 					return null;
 				}
-            }
+            },
+            panel: {
+				setHeight: function(mx) {
+					var h = DV.cmp.region.west.getHeight() - DV.conf.layout.west_fill;
+					DV.cmp.dimension.panel.setHeight(h > mx ? mx : h);
+				}
+			}
         },
         notification: {
 			error: function(title, text) {
@@ -1687,18 +1674,18 @@
 			
 			if (DV.c.organisationunit.groupsetid) {
 				if (DV.store.groupset.isloaded) {
-					DV.cmp.fieldset.organisationunit.groupsets.setValue(DV.c.organisationunit.groupsetid);
+					DV.cmp.dimension.organisationunit.panel.groupsets.setValue(DV.c.organisationunit.groupsetid);
 				}
 				else {
 					DV.store.groupset.load({
 						callback: function() {
-							DV.cmp.fieldset.organisationunit.groupsets.setValue(DV.c.organisationunit.groupsetid);
+							DV.cmp.dimension.organisationunit.panel.groupsets.setValue(DV.c.organisationunit.groupsetid);
 						}
 					});
 				}
 			}
 			else {
-				DV.cmp.fieldset.organisationunit.groupsets.setValue(DV.store.isloaded ? DV.conf.finals.cmd.none : DV.i18n.none);
+				DV.cmp.dimension.organisationunit.panel.groupsets.setValue(DV.store.isloaded ? DV.conf.finals.cmd.none : DV.i18n.none);
 			}
 		},
         validation: {
@@ -1892,7 +1879,7 @@
     };
     
     DV.chart = {
-		chart: {
+		model: {
 			type: DV.conf.finals.chart.column,
 			dimension: {},
 			indicator: {},
@@ -1913,31 +1900,30 @@
 			isrendered: false
 		},
 		reset: function() {
-			this.chart.type = DV.conf.finals.chart.column;
-			this.chart.dimension = {};
-			this.chart.series = null;
-			this.chart.category = null;
-			this.chart.filter = null;
-			this.chart.indicator = {};
-			this.chart.dataelement = {};
-			this.chart.dataset = {};
-			this.chart.period = {};
-			this.chart.organisationunit = {};
-			this.chart.hidesubtitle = false;
-			this.chart.hidelegend = false;
-			this.chart.trendline = false;
-			this.chart.userorganisationunit = false;
-			this.chart.domainaxislabel = null;
-			this.chart.rangeaxislabel = null;
-			this.chart.targetlinevalue = null;
-			this.chart.targetlinelabel = null;
-			this.chart.baselinevalue = null;
-			this.chart.baselinelabel = null;
+			this.model.type = DV.conf.finals.chart.column;
+			this.model.dimension = {};
+			this.model.series = null;
+			this.model.category = null;
+			this.model.filter = null;
+			this.model.indicator = {};
+			this.model.dataelement = {};
+			this.model.dataset = {};
+			this.model.period = {};
+			this.model.organisationunit = {};
+			this.model.hidesubtitle = false;
+			this.model.hidelegend = false;
+			this.model.trendline = false;
+			this.model.userorganisationunit = false;
+			this.model.domainaxislabel = null;
+			this.model.rangeaxislabel = null;
+			this.model.targetlinevalue = null;
+			this.model.targetlinelabel = null;
+			this.model.baselinevalue = null;
+			this.model.baselinelabel = null;
 		},
         data: [],
         getData: function(exe) {
             this.data = [];
-            
             Ext.Array.each(DV.c.category.names, function(item) {
                 var obj = {};
                 obj[DV.conf.finals.data.domain] = item;
@@ -2002,7 +1988,7 @@
         },
         chart: null,
         getChart: function(exe) {
-            this[DV.c.type]();
+            this[this.model.type]();
             if (exe) {
                 this.reload();
             }
@@ -2270,6 +2256,7 @@
     DV.viewport = Ext.create('Ext.container.Viewport', {
         layout: 'border',
         renderTo: Ext.getBody(),
+        isrendered: false,
         items: [
             {
                 region: 'west',
@@ -2459,971 +2446,959 @@
                     {
                         xtype: 'panel',
                         bodyStyle: 'border-style:none; border-top:2px groove #eee; padding:10px 10px 0 10px;',
+                        layout: 'fit',
                         items: [
-                            {
-                                xtype: 'fieldset',
-                                cls: 'dv-fieldset',
-                                name: DV.conf.finals.dimension.indicator.value,
-                                title: '<a href="javascript:DV.util.fieldset.toggleIndicator();" class="dv-fieldset-title-link">' + DV.i18n.indicators + '</a>',
-                                collapsed: true,
-                                collapsible: true,
-                                width: DV.conf.layout.west_fieldset_width,
-                                items: [
-                                    {
-                                        xtype: 'combobox',
-                                        cls: 'dv-combo',
-                                        style: 'margin-bottom:8px',
-                                        width: DV.conf.layout.west_fieldset_width - 22,
-                                        valueField: 'id',
-                                        displayField: 'name',
-                                        fieldLabel: DV.i18n.select_group,
-                                        labelStyle: 'padding-left:7px;',
-                                        labelWidth: 90,
-                                        editable: false,
-                                        queryMode: 'remote',
-                                        store: Ext.create('Ext.data.Store', {
-                                            fields: ['id', 'name', 'index'],
-                                            proxy: {
-                                                type: 'ajax',
-                                                url: DV.conf.finals.ajax.path_commons + DV.conf.finals.ajax.indicatorgroup_get,
-                                                reader: {
-                                                    type: 'json',
-                                                    root: 'indicatorGroups'
-                                                }
-                                            },
-                                            listeners: {
-                                                load: function(s) {
-                                                    s.add({id: 0, name: DV.i18n.all_indicator_groups, index: -1});
-                                                    s.sort('index', 'ASC');
-                                                }
-                                            }
-                                        }),
-                                        listeners: {
-                                            select: function(cb) {
-                                                var store = DV.store.indicator.available;
-                                                store.parent = cb.getValue();
-                                                
-                                                if (DV.util.store.containsParent(store)) {
-                                                    DV.util.store.loadFromStorage(store);
-                                                    DV.util.multiselect.filterAvailable(DV.cmp.dimension.indicator.available, DV.cmp.dimension.indicator.selected);
-                                                }
-                                                else {
-                                                    store.load({params: {id: cb.getValue()}});
-                                                }
-                                            }
-                                        }
-                                    },
-                                    {
-                                        xtype: 'panel',
-                                        layout: 'column',
-                                        bodyStyle: 'border-style:none',
-                                        items: [
-                                            {
-                                                xtype: 'multiselect',
-                                                name: 'availableIndicators',
-                                                cls: 'dv-toolbar-multiselect-left',
-                                                width: (DV.conf.layout.west_fieldset_width - 22) / 2,
-                                                valueField: 'id',
-                                                displayField: 'name',
-                                                queryMode: 'remote',
-                                                store: DV.store.indicator.available,
-                                                tbar: [
-                                                    {
-                                                        xtype: 'label',
-                                                        text: DV.i18n.available,
-                                                        cls: 'dv-toolbar-multiselect-left-label'
-                                                    },
-                                                    '->',
-                                                    {
-                                                        xtype: 'button',
-                                                        icon: 'images/arrowright.png',
-                                                        width: 22,
-                                                        handler: function() {
-                                                            DV.util.multiselect.select(DV.cmp.dimension.indicator.available, DV.cmp.dimension.indicator.selected);
-                                                        }
-                                                    },
-                                                    {
-                                                        xtype: 'button',
-                                                        icon: 'images/arrowrightdouble.png',
-                                                        width: 22,
-                                                        handler: function() {
-                                                            DV.util.multiselect.selectAll(DV.cmp.dimension.indicator.available, DV.cmp.dimension.indicator.selected);
-                                                        }
-                                                    },
-                                                    ' '
-                                                ],
-                                                listeners: {
-                                                    added: function() {
-                                                        DV.cmp.dimension.indicator.available = this;
-                                                    },
-                                                    afterrender: function() {
-                                                        this.boundList.on('itemdblclick', function() {
-                                                            DV.util.multiselect.select(this, DV.cmp.dimension.indicator.selected);
-                                                        }, this);
-                                                    }
-                                                }
-                                            },                                            
-                                            {
-                                                xtype: 'multiselect',
-                                                name: 'selectedIndicators',
-                                                cls: 'dv-toolbar-multiselect-right',
-                                                width: (DV.conf.layout.west_fieldset_width - 22) / 2,
-                                                displayField: 'name',
-                                                valueField: 'id',
-                                                ddReorder: true,
-                                                queryMode: 'local',
-                                                store: DV.store.indicator.selected,
-                                                tbar: [
-                                                    ' ',
-                                                    {
-                                                        xtype: 'button',
-                                                        icon: 'images/arrowleftdouble.png',
-                                                        width: 22,
-                                                        handler: function() {
-                                                            DV.util.multiselect.unselectAll(DV.cmp.dimension.indicator.available, DV.cmp.dimension.indicator.selected);
-                                                        }
-                                                    },
-                                                    {
-                                                        xtype: 'button',
-                                                        icon: 'images/arrowleft.png',
-                                                        width: 22,
-                                                        handler: function() {
-                                                            DV.util.multiselect.unselect(DV.cmp.dimension.indicator.available, DV.cmp.dimension.indicator.selected);
-                                                        }
-                                                    },
-                                                    '->',
-                                                    {
-                                                        xtype: 'label',
-                                                        text: DV.i18n.selected,
-                                                        cls: 'dv-toolbar-multiselect-right-label'
-                                                    }
-                                                ],
-                                                listeners: {
-                                                    added: function() {
-                                                        DV.cmp.dimension.indicator.selected = this;
-                                                    },
-                                                    afterrender: function() {
-                                                        this.boundList.on('itemdblclick', function() {
-                                                            DV.util.multiselect.unselect(DV.cmp.dimension.indicator.available, this);
-                                                        }, this);
-                                                    }
-                                                }
-                                            }
-                                        ]
-                                    }
-                                ],
-                                listeners: {
-                                    afterrender: function() {
-                                        DV.cmp.fieldset.indicator = this;
-                                    },
-                                    expand: function() {
-                                        DV.util.fieldset.collapseFieldsets([DV.cmp.fieldset.dataelement, DV.cmp.fieldset.dataset, DV.cmp.fieldset.period, DV.cmp.fieldset.organisationunit]);
-                                        DV.util.multiselect.setHeight([DV.cmp.dimension.indicator.available, DV.cmp.dimension.indicator.selected], DV.conf.layout.multiselect_fill_default);
-                                    }
-                                }
-                            },
-                            {
-                                xtype: 'fieldset',
-                                cls: 'dv-fieldset',
-                                name: DV.conf.finals.dimension.dataelement.value,
-                                title: '<a href="javascript:DV.util.fieldset.toggleDataElement();" class="dv-fieldset-title-link">' + DV.i18n.data_elements + '</a>',
-                                collapsed: true,
-                                collapsible: true,
-                                items: [
-                                    {
-                                        xtype: 'combobox',
-                                        cls: 'dv-combo',
-                                        style: 'margin-bottom:8px',
-                                        width: DV.conf.layout.west_fieldset_width - 22,
-                                        valueField: 'id',
-                                        displayField: 'name',
-                                        fieldLabel: DV.i18n.select_group,
-                                        labelStyle: 'padding-left:7px;',
-                                        labelWidth: 90,
-                                        editable: false,
-                                        queryMode: 'remote',
-                                        store: Ext.create('Ext.data.Store', {
-                                            fields: ['id', 'name', 'index'],
-                                            proxy: {
-                                                type: 'ajax',
-                                                url: DV.conf.finals.ajax.path_commons + DV.conf.finals.ajax.dataelementgroup_get,
-                                                reader: {
-                                                    type: 'json',
-                                                    root: 'dataElementGroups'
-                                                }
-                                            },
-                                            listeners: {
-                                                load: function(s) {
-                                                    s.add({id: 0, name: '[ All data element groups ]', index: -1});
-                                                    s.sort('index', 'ASC');
-                                                }
-                                            }
-                                        }),
-                                        listeners: {
-                                            select: function(cb) {
-                                                var store = DV.store.dataelement.available;
-                                                store.parent = cb.getValue();
-                                                
-                                                if (DV.util.store.containsParent(store)) {
-                                                    DV.util.store.loadFromStorage(store);
-                                                    DV.util.multiselect.filterAvailable(DV.cmp.dimension.dataelement.available, DV.cmp.dimension.dataelement.selected);
-                                                }
-                                                else {
-                                                    store.load({params: {id: cb.getValue()}});
-                                                }
-                                            }
-                                        }
-                                    },                                    
-                                    {
-                                        xtype: 'panel',
-                                        layout: 'column',
-                                        bodyStyle: 'border-style:none',
-                                        items: [
-                                            Ext.create('Ext.ux.form.MultiSelect', {
-                                                name: 'availableDataElements',
-                                                cls: 'dv-toolbar-multiselect-left',
-                                                width: (DV.conf.layout.west_fieldset_width - 22) / 2,
-                                                displayField: 'name',
-                                                valueField: 'id',
-                                                queryMode: 'remote',
-                                                store: DV.store.dataelement.available,
-                                                tbar: [
-                                                    {
-                                                        xtype: 'label',
-                                                        text: DV.i18n.available,
-                                                        cls: 'dv-toolbar-multiselect-left-label'
-                                                    },
-                                                    '->',
-                                                    {
-                                                        xtype: 'button',
-                                                        icon: 'images/arrowright.png',
-                                                        width: 22,
-                                                        handler: function() {
-                                                            DV.util.multiselect.select(DV.cmp.dimension.dataelement.available, DV.cmp.dimension.dataelement.selected);
-                                                        }
-                                                    },
-                                                    {
-                                                        xtype: 'button',
-                                                        icon: 'images/arrowrightdouble.png',
-                                                        width: 22,
-                                                        handler: function() {
-                                                            DV.util.multiselect.selectAll(DV.cmp.dimension.dataelement.available, DV.cmp.dimension.dataelement.selected);
-                                                        }
-                                                    },
-                                                    ' '
-                                                ],
-                                                listeners: {
-                                                    added: function() {
-                                                        DV.cmp.dimension.dataelement.available = this;
-                                                    },                                                                
-                                                    afterrender: function() {
-                                                        this.boundList.on('itemdblclick', function() {
-                                                            DV.util.multiselect.select(this, DV.cmp.dimension.dataelement.selected);
-                                                        }, this);
-                                                    }
-                                                }
-                                            }),                                            
-                                            {
-                                                xtype: 'multiselect',
-                                                name: 'selectedDataElements',
-                                                cls: 'dv-toolbar-multiselect-right',
-                                                width: (DV.conf.layout.west_fieldset_width - 22) / 2,
-                                                displayField: 'name',
-                                                valueField: 'id',
-                                                ddReorder: true,
-                                                queryMode: 'remote',
-                                                store: DV.store.dataelement.selected,
-                                                tbar: [
-                                                    ' ',
-                                                    {
-                                                        xtype: 'button',
-                                                        icon: 'images/arrowleftdouble.png',
-                                                        width: 22,
-                                                        handler: function() {
-                                                            DV.util.multiselect.unselectAll(DV.cmp.dimension.dataelement.available, DV.cmp.dimension.dataelement.selected);
-                                                        }
-                                                    },
-                                                    {
-                                                        xtype: 'button',
-                                                        icon: 'images/arrowleft.png',
-                                                        width: 22,
-                                                        handler: function() {
-                                                            DV.util.multiselect.unselect(DV.cmp.dimension.dataelement.available, DV.cmp.dimension.dataelement.selected);
-                                                        }
-                                                    },
-                                                    '->',
-                                                    {
-                                                        xtype: 'label',
-                                                        text: DV.i18n.selected,
-                                                        cls: 'dv-toolbar-multiselect-right-label'
-                                                    }
-                                                ],
-                                                listeners: {
-                                                    added: function() {
-                                                        DV.cmp.dimension.dataelement.selected = this;
-                                                    },          
-                                                    afterrender: function() {
-                                                        this.boundList.on('itemdblclick', function() {
-                                                            DV.util.multiselect.unselect(DV.cmp.dimension.dataelement.available, this);
-                                                        }, this);
-                                                    }
-                                                }
-                                            }
-                                        ]
-                                    }
-                                ],
-                                listeners: {
-                                    afterrender: function() {
-                                        DV.cmp.fieldset.dataelement = this;
-                                    },
-                                    expand: function() {
-                                        DV.util.fieldset.collapseFieldsets([DV.cmp.fieldset.indicator, DV.cmp.fieldset.dataset, DV.cmp.fieldset.period, DV.cmp.fieldset.organisationunit]);
-                                        DV.util.multiselect.setHeight([DV.cmp.dimension.dataelement.available, DV.cmp.dimension.dataelement.selected], DV.conf.layout.multiselect_fill_default);
-                                    }
-                                }
-                            },
-                            {
-                                xtype: 'fieldset',
-                                cls: 'dv-fieldset',
-                                name: DV.conf.finals.dimension.dataset.value,
-                                title: '<a href="javascript:DV.util.fieldset.toggleDataSet();" class="dv-fieldset-title-link">' + DV.i18n.reporting_rates + '</a>',
-                                collapsed: true,
-                                collapsible: true,
-                                items: [
-                                    {
-                                        xtype: 'panel',
-                                        layout: 'column',
-                                        bodyStyle: 'border-style:none',
-                                        items: [
-                                            Ext.create('Ext.ux.form.MultiSelect', {
-                                                name: 'availableDataSets',
-                                                cls: 'dv-toolbar-multiselect-left',
-                                                width: (DV.conf.layout.west_fieldset_width - 22) / 2,
-                                                displayField: 'name',
-                                                valueField: 'id',
-                                                queryMode: 'remote',
-                                                store: DV.store.dataset.available,
-                                                tbar: [
-                                                    {
-                                                        xtype: 'label',
-                                                        text: DV.i18n.available,
-                                                        cls: 'dv-toolbar-multiselect-left-label'
-                                                    },
-                                                    '->',
-                                                    {
-                                                        xtype: 'button',
-                                                        icon: 'images/arrowright.png',
-                                                        width: 22,
-                                                        handler: function() {
-                                                            DV.util.multiselect.select(DV.cmp.dimension.dataset.available, DV.cmp.dimension.dataset.selected);
-                                                        }
-                                                    },
-                                                    {
-                                                        xtype: 'button',
-                                                        icon: 'images/arrowrightdouble.png',
-                                                        width: 22,
-                                                        handler: function() {
-                                                            DV.util.multiselect.selectAll(DV.cmp.dimension.dataset.available, DV.cmp.dimension.dataset.selected);
-                                                        }
-                                                    },
-                                                    ' '
-                                                ],
-                                                listeners: {
-                                                    added: function() {
-                                                        DV.cmp.dimension.dataset.available = this;
-                                                    },                                                                
-                                                    afterrender: function() {
-                                                        this.boundList.on('itemdblclick', function() {
-                                                            DV.util.multiselect.select(this, DV.cmp.dimension.dataset.selected);
-                                                        }, this);
-                                                    }
-                                                }
-                                            }),                                            
-                                            {
-                                                xtype: 'multiselect',
-                                                name: 'selectedDataSets',
-                                                cls: 'dv-toolbar-multiselect-right',
-                                                width: (DV.conf.layout.west_fieldset_width - 22) / 2,
-                                                displayField: 'name',
-                                                valueField: 'id',
-                                                ddReorder: true,
-                                                queryMode: 'remote',
-                                                store: DV.store.dataset.selected,
-                                                tbar: [
-                                                    ' ',
-                                                    {
-                                                        xtype: 'button',
-                                                        icon: 'images/arrowleftdouble.png',
-                                                        width: 22,
-                                                        handler: function() {
-                                                            DV.util.multiselect.unselectAll(DV.cmp.dimension.dataset.available, DV.cmp.dimension.dataset.selected);
-                                                        }
-                                                    },
-                                                    {
-                                                        xtype: 'button',
-                                                        icon: 'images/arrowleft.png',
-                                                        width: 22,
-                                                        handler: function() {
-                                                            DV.util.multiselect.unselect(DV.cmp.dimension.dataset.available, DV.cmp.dimension.dataset.selected);
-                                                        }
-                                                    },
-                                                    '->',
-                                                    {
-                                                        xtype: 'label',
-                                                        text: DV.i18n.selected,
-                                                        cls: 'dv-toolbar-multiselect-right-label'
-                                                    }
-                                                ],
-                                                listeners: {
-                                                    added: function() {
-                                                        DV.cmp.dimension.dataset.selected = this;
-                                                    },          
-                                                    afterrender: function() {
-                                                        this.boundList.on('itemdblclick', function() {
-                                                            DV.util.multiselect.unselect(DV.cmp.dimension.dataset.available, this);
-                                                        }, this);
-                                                    }
-                                                }
-                                            }
-                                        ]
-                                    }
-                                ],
-                                listeners: {
-                                    afterrender: function() {
-                                        DV.cmp.fieldset.dataset = this;
-                                    },
-                                    expand: function() {
-										if (!DV.store.dataset.available.isloaded) {
-											DV.store.dataset.available.load();
-										}
-                                        DV.util.fieldset.collapseFieldsets([DV.cmp.fieldset.indicator, DV.cmp.fieldset.dataelement, DV.cmp.fieldset.period, DV.cmp.fieldset.organisationunit]);
-                                        DV.util.multiselect.setHeight([DV.cmp.dimension.dataset.available, DV.cmp.dimension.dataset.selected], DV.conf.layout.multiselect_fill_reportingrates);
-                                    }
-                                }
-                            },
-                            {
-                                xtype: 'fieldset',
-                                cls: 'dv-fieldset',
-                                style: 'padding-bottom:7px',
-                                name: DV.conf.finals.dimension.period.value,
-                                title: '<a href="javascript:DV.util.fieldset.togglePeriod();" class="dv-fieldset-title-link">' + DV.i18n.periods +'</a>',
-                                collapsed: true,
-                                collapsible: true,
-                                cmp: [],
-                                items: [
-                                    {
-                                        xtype: 'panel',
-                                        layout: 'column',
-                                        bodyStyle: 'border-style:none',
-                                        items: [
-                                            {
-                                                xtype: 'panel',
-                                                layout: 'anchor',
-                                                bodyStyle: 'border-style:none; padding:0 0 0 10px',
-                                                defaults: {
-                                                    labelSeparator: '',
-                                                    listeners: {
-                                                        added: function(chb) {
-                                                            if (chb.xtype === 'checkbox') {
-                                                                DV.cmp.dimension.period.push(chb);
-                                                            }
-                                                        }
-                                                    }
-                                                },
-                                                items: [
-                                                    {
-                                                        xtype: 'label',
-                                                        text: DV.i18n.months,
-                                                        cls: 'dv-label-period-heading'
-                                                    },
-                                                    {
-                                                        xtype: 'checkbox',
-                                                        paramName: 'lastMonth',
-                                                        boxLabel: DV.i18n.last_month
-                                                    },
-                                                    {
-                                                        xtype: 'checkbox',
-                                                        paramName: 'last12Months',
-                                                        boxLabel: DV.i18n.last_12_months,
-                                                        checked: true
-                                                    }
-                                                ]
-                                            },
-                                            {
-                                                xtype: 'panel',
-                                                layout: 'anchor',
-                                                bodyStyle: 'border-style:none; padding:0 0 0 32px',
-                                                defaults: {
-                                                    labelSeparator: '',
-                                                    listeners: {
-                                                        added: function(chb) {
-                                                            if (chb.xtype === 'checkbox') {
-                                                                DV.cmp.dimension.period.push(chb);
-                                                            }
-                                                        }
-                                                    }
-                                                },
-                                                items: [
-                                                    {
-                                                        xtype: 'label',
-                                                        text: DV.i18n.quarters,
-                                                        cls: 'dv-label-period-heading'
-                                                    },
-                                                    {
-                                                        xtype: 'checkbox',
-                                                        paramName: 'lastQuarter',
-                                                        boxLabel: DV.i18n.last_quarter
-                                                    },
-                                                    {
-                                                        xtype: 'checkbox',
-                                                        paramName: 'last4Quarters',
-                                                        boxLabel: DV.i18n.last_4_quarters
-                                                    }
-                                                ]
-                                            },
-                                            {
-                                                xtype: 'panel',
-                                                layout: 'anchor',
-                                                bodyStyle: 'border-style:none; padding:0 0 0 32px',
-                                                defaults: {
-                                                    labelSeparator: '',
-                                                    listeners: {
-                                                        added: function(chb) {
-                                                            if (chb.xtype === 'checkbox') {
-                                                                DV.cmp.dimension.period.push(chb);
-                                                            }
-                                                        }
-                                                    }
-                                                },
-                                                items: [
-                                                    {
-                                                        xtype: 'label',
-                                                        text: DV.i18n.six_months,
-                                                        cls: 'dv-label-period-heading'
-                                                    },
-                                                    {
-                                                        xtype: 'checkbox',
-                                                        paramName: 'lastSixMonth',
-                                                        boxLabel: DV.i18n.last_six_month
-                                                    },
-                                                    {
-                                                        xtype: 'checkbox',
-                                                        paramName: 'last2SixMonths',
-                                                        boxLabel: DV.i18n.last_two_six_month
-                                                    }
-                                                ]
-                                            }
-                                        ]
-                                    },
-                                    {
-                                        xtype: 'panel',
-                                        layout: 'column',
-                                        bodyStyle: 'border-style:none',
-                                        items: [
-                                            {
-                                                xtype: 'panel',
-                                                layout: 'anchor',
-                                                bodyStyle: 'border-style:none; padding:5px 0 0 10px',
-                                                defaults: {
-                                                    labelSeparator: '',
-                                                    listeners: {
-                                                        added: function(chb) {
-                                                            if (chb.xtype === 'checkbox') {
-                                                                DV.cmp.dimension.period.push(chb);
-                                                            }
-                                                        }
-                                                    }
-                                                },
-                                                items: [
-                                                    {
-                                                        xtype: 'label',
-                                                        text: DV.i18n.years,
-                                                        cls: 'dv-label-period-heading'
-                                                    },
-                                                    {
-                                                        xtype: 'checkbox',
-                                                        paramName: 'thisYear',
-                                                        boxLabel: DV.i18n.this_year
-                                                    },
-                                                    {
-                                                        xtype: 'checkbox',
-                                                        paramName: 'lastYear',
-                                                        boxLabel: DV.i18n.last_year
-                                                    },
-                                                    {
-                                                        xtype: 'checkbox',
-                                                        paramName: 'last5Years',
-                                                        boxLabel: DV.i18n.last_5_years
-                                                    }
-                                                ]
-                                            }
-                                        ]
-                                    }
-                                ],
-                                listeners: {
-                                    afterrender: function() {
-                                        DV.cmp.fieldset.period = this;
-                                    },
-                                    expand: function() {
-                                        DV.util.fieldset.collapseFieldsets([DV.cmp.fieldset.indicator, DV.cmp.fieldset.dataelement, DV.cmp.fieldset.dataset, DV.cmp.fieldset.organisationunit]);
-                                    }
-                                }
-                            },
-                            {
-                                xtype: 'fieldset',
-                                cls: 'dv-fieldset',
-                                name: DV.conf.finals.dimension.organisationunit.value,
-                                title: '<a href="javascript:DV.util.fieldset.toggleOrganisationUnit();" class="dv-fieldset-title-link">' + DV.i18n.organisation_units + '</a>',
-                                collapsed: true,
-                                collapsible: true,
-                                items: [
-									{
-										xtype: 'combobox',
-										cls: 'dv-combo',
-										style: 'margin-bottom:8px',
-										width: DV.conf.layout.west_fieldset_width - 22,
-										valueField: 'id',
-										displayField: 'name',
-										fieldLabel: DV.i18n.group_sets,
-										labelWidth: 85,
-                                        labelStyle: 'padding-left:7px;',
-										editable: false,
-										queryMode: 'remote',
-										value: DV.i18n.none,
-										store: DV.store.groupset,
-										listeners: {
-											added: function() {
-												this.up('fieldset').groupsets = this;
-											}
-										}
-									},
-                                    {
-                                        xtype: 'treepanel',
-                                        cls: 'dv-tree',
-                                        width: DV.conf.layout.west_fieldset_width - 22,
-                                        autoScroll: true,
-                                        multiSelect: true,
-                                        isrendered: false,
-                                        storage: {},
-                                        addToStorage: function(objects) {
-											for (var i = 0; i < objects.length; i++) {
-												this.storage[objects[i].id] = objects[i];
-											}
-										},
-                                        selectRoot: function() {
-                                            if (this.isrendered) {
-                                                if (!this.getSelectionModel().getSelection().length) {
-                                                    this.getSelectionModel().select(this.getRootNode());
-                                                }
-                                            }
-                                        },
-                                        findNameById: function(id) {
-                                            var name = this.store.getNodeById(id) ? this.store.getNodeById(id).data.text : null;
-                                            if (!name) {
-                                                for (var k in this.storage) {
-                                                    if (k == id) {
-                                                        name = this.storage[k].name;
-                                                    }
-                                                }
-                                            }
-                                            return name;
-                                        },
-                                        store: Ext.create('Ext.data.TreeStore', {
-                                            proxy: {
-                                                type: 'ajax',
-                                                url: DV.conf.finals.ajax.path_visualizer + DV.conf.finals.ajax.organisationunitchildren_get
-                                            },
-                                            root: {
-                                                id: DV.init.system.rootnode.id,
-                                                text: DV.init.system.rootnode.name,
-                                                expanded: false
-                                            }
-                                        }),
-                                        listeners: {
-                                            added: function() {
-                                                DV.cmp.dimension.organisationunit.treepanel = this;
-                                            },
-                                            itemcontextmenu: function(v, r, h, i, e) {
-                                                if (v.menu) {
-                                                    v.menu.destroy();
-                                                }
-                                                v.menu = Ext.create('Ext.menu.Menu', {
-                                                    id: 'treepanel-contextmenu',
-                                                    showSeparator: false
-                                                });
-                                                if (!r.data.leaf) {
-                                                    v.menu.add({
-                                                        id: 'treepanel-contextmenu-item',
-                                                        text: DV.i18n.select_all_children,
-                                                        icon: 'images/node-select-child.png',
-                                                        handler: function() {
-                                                            r.expand(false, function() {
-                                                                v.getSelectionModel().select(r.childNodes, true);
-                                                                v.getSelectionModel().deselect(r);
-                                                            });
-                                                        }
-                                                    });
-                                                }
-                                                else {
-                                                    return;
-                                                }
-                                                
-                                                v.menu.showAt(e.xy);
-                                            }
-                                        }
-                                    }
-                                ],
-                                listeners: {
-                                    afterrender: function() {
-                                        DV.cmp.fieldset.organisationunit = this;
-                                    },
-                                    collapse: function(fs) {
-										if (DV.cmp.fieldset.organisationunit) {
-											DV.cmp.fieldset.organisationunit.setHeight(25);
-										}
-									},
-                                    expand: function(fs) {
-										var h = DV.util.treepanel.getHeight();
-										DV.cmp.dimension.organisationunit.treepanel.setHeight(h);
-										fs.setHeight(h + 60);
-
-                                        DV.util.fieldset.collapseFieldsets([DV.cmp.fieldset.indicator, DV.cmp.fieldset.dataelement, DV.cmp.fieldset.dataset, DV.cmp.fieldset.period]);
-                                        var tp = DV.cmp.dimension.organisationunit.treepanel;
-                                        if (!tp.isrendered) {
-                                            tp.isrendered = true;
-                                            tp.getRootNode().expand();
-                                            tp.selectRoot();
-                                        }
-                                    }
-                                }
-                            }
-                        ]
-                    },
-					{
-						xtype: 'toolbar',
-						id: 'chartoptions_tb',
-						layout: 'fit',
-						items: [
 							{
 								xtype: 'panel',
-								bodyStyle: 'border-style:none; background-color:transparent; padding:0 2px',
+								layout: 'accordion',
+								activeOnTop: true,
+								cls: 'dv-accordion',
+								bodyStyle: 'border:0 none',
+								height: 430,
 								items: [
 									{
-										bodyStyle: 'border-style:none; background-color:transparent; padding:0 0 10px 3px; font-size:11px; font-weight:bold',
-										html: DV.i18n.chart_options
-									},
-									{
-										xtype: 'panel',
-										layout: 'column',
-										bodyStyle: 'border-style:none; background-color:transparent; padding-bottom:15px',
-										items: [
-											{
-												xtype: 'checkbox',
-												cls: 'dv-checkbox-alt1',
-												style: 'margin-right:26px',
-												boxLabel: DV.i18n.hide_subtitle,
-												labelWidth: DV.conf.layout.form_label_width,
-												listeners: {
-													added: function() {
-														DV.cmp.favorite.hidesubtitle = this;
-													}
-												}
-											},
-											{
-												xtype: 'checkbox',
-												cls: 'dv-checkbox-alt1',
-												style: 'margin-right:25px',
-												boxLabel: DV.i18n.hide_legend,
-												labelWidth: DV.conf.layout.form_label_width,
-												listeners: {
-													added: function() {
-														DV.cmp.favorite.hidelegend = this;
-													}
-												}
-											},
-											{
-												xtype: 'checkbox',
-												cls: 'dv-checkbox-alt1',
-												style: 'margin-right:26px',
-												boxLabel: DV.i18n.trend_line,
-												labelWidth: DV.conf.layout.form_label_width,
-												listeners: {
-													added: function() {
-														DV.cmp.favorite.trendline = this;
-													}
-												}
-											},
-											{
-												xtype: 'checkbox',
-												cls: 'dv-checkbox-alt1',
-												boxLabel: DV.i18n.user_orgunit,
-												labelWidth: DV.conf.layout.form_label_width,
-												listeners: {
-													added: function() {
-														DV.cmp.favorite.userorganisationunit = this;
-													}
-												}
-											}
-										]
-									},
-									{
-										xtype: 'panel',
-										layout: 'column',
-										bodyStyle: 'border:0 none; background-color:transparent; padding-bottom:8px',
-										items: [
-											{
-												xtype: 'textfield',
-												cls: 'dv-textfield-alt1',
-												style: 'margin-right:4px',
-												fieldLabel: DV.i18n.domain_axis_label,
-												labelAlign: 'top',
-												labelSeparator: '',
-												maxLength: 100,
-												enforceMaxLength: true,
-												labelWidth: DV.conf.layout.form_label_width,
-												width: 199,
-												listeners: {
-													added: function() {
-														DV.cmp.favorite.domainaxislabel = this;
-													}
-												}
-											},
-											{
-												xtype: 'textfield',
-												cls: 'dv-textfield-alt1',
-												fieldLabel: DV.i18n.range_axis_label,
-												labelAlign: 'top',
-												labelSeparator: '',
-												maxLength: 100,
-												enforceMaxLength: true,
-												labelWidth: DV.conf.layout.form_label_width,
-												width: 199,
-												listeners: {
-													added: function() {
-														DV.cmp.favorite.rangeaxislabel = this;
-													}
-												}
-											}
-										]
-									},
-									{
-										xtype: 'panel',
-										layout: 'column',
-										bodyStyle: 'border:0 none; background-color:transparent; padding-bottom:8px',
-										items: [
-											{
-												xtype: 'numberfield',
-												cls: 'dv-textfield-alt1',
-												style: 'margin-right:5px',
-												hideTrigger: true,
-												fieldLabel: DV.i18n.target_line_value,
-												labelAlign: 'top',
-												labelSeparator: '',
-												maxLength: 100,
-												enforceMaxLength: true,
-												width: 199,
-												spinUpEnabled: true,
-												spinDownEnabled: true,
-												listeners: {
-													added: function() {
-														DV.cmp.favorite.targetlinevalue = this;
-													},
-													change: function() {
-														DV.cmp.favorite.targetlinelabel.xable();
-													}
-												}
-											},
-											{
-												xtype: 'textfield',
-												cls: 'dv-textfield-alt1',
-												fieldLabel: DV.i18n.target_line_label,
-												labelAlign: 'top',
-												labelSeparator: '',
-												maxLength: 100,
-												enforceMaxLength: true,
-												width: 199,
-												disabled: true,
-												xable: function() {
-													if (DV.cmp.favorite.targetlinevalue.getValue()) {
-														this.enable();
-													}
-													else {
-														this.disable();
-													}
-												},
-												listeners: {
-													added: function() {
-														DV.cmp.favorite.targetlinelabel = this;
-													}
-												}
-											}
-										]
-									},
-									{
-										xtype: 'panel',
-										layout: 'column',
-										bodyStyle: 'border:0 none; background-color:transparent; padding-bottom:5px',
-										items: [
-											{
-												xtype: 'numberfield',
-												cls: 'dv-textfield-alt1',
-												style: 'margin-right:5px',
-												hideTrigger: true,
-												fieldLabel: DV.i18n.base_line_value,
-												labelAlign: 'top',
-												labelSeparator: '',
-												maxLength: 100,
-												enforceMaxLength: true,
-												width: 199,
-												spinUpEnabled: true,
-												spinDownEnabled: true,
-												listeners: {
-													added: function() {
-														DV.cmp.favorite.baselinevalue = this;
-													},
-													change: function() {
-														DV.cmp.favorite.baselinelabel.xable();
-													}
-												}
-											},
-											{
-												xtype: 'textfield',
-												cls: 'dv-textfield-alt1',
-												fieldLabel: DV.i18n.base_line_label,
-												labelAlign: 'top',
-												labelSeparator: '',
-												maxLength: 100,
-												enforceMaxLength: true,
-												width: 199,
-												disabled: true,
-												xable: function() {
-													if (DV.cmp.favorite.baselinevalue.getValue()) {
-														this.enable();
-													}
-													else {
-														this.disable();
-													}
-												},
-												listeners: {
-													added: function() {
-														DV.cmp.favorite.baselinelabel = this;
-													}
-												}
-											}
-										]
+										title: '<div style="height:17px">' + DV.i18n.indicators + '</div>',
+										hideCollapseTool: true,
+										layout: 'anchor',
+										items: [
+											{
+												xtype: 'combobox',
+												cls: 'dv-combo',
+												style: 'margin-bottom:8px',
+												width: DV.conf.layout.west_fieldset_width - DV.conf.layout.west_width_subtractor,
+												valueField: 'id',
+												displayField: 'name',
+												fieldLabel: DV.i18n.select_group,
+												labelStyle: 'padding-left:7px;',
+												labelWidth: 90,
+												editable: false,
+												queryMode: 'remote',
+												store: Ext.create('Ext.data.Store', {
+													fields: ['id', 'name', 'index'],
+													proxy: {
+														type: 'ajax',
+														url: DV.conf.finals.ajax.path_commons + DV.conf.finals.ajax.indicatorgroup_get,
+														reader: {
+															type: 'json',
+															root: 'indicatorGroups'
+														}
+													},
+													listeners: {
+														load: function(s) {
+															s.add({id: 0, name: DV.i18n.all_indicator_groups, index: -1});
+															s.sort('index', 'ASC');
+														}
+													}
+												}),
+												listeners: {
+													select: function(cb) {
+														var store = DV.store.indicator.available;
+														store.parent = cb.getValue();
+														
+														if (DV.util.store.containsParent(store)) {
+															DV.util.store.loadFromStorage(store);
+															DV.util.multiselect.filterAvailable(DV.cmp.dimension.indicator.available, DV.cmp.dimension.indicator.selected);
+														}
+														else {
+															store.load({params: {id: cb.getValue()}});
+														}
+													}
+												}
+											},
+											{
+												xtype: 'panel',
+												layout: 'column',
+												bodyStyle: 'border-style:none',
+												items: [
+													{
+														xtype: 'multiselect',
+														name: 'availableIndicators',
+														cls: 'dv-toolbar-multiselect-left',
+														width: (DV.conf.layout.west_fieldset_width - DV.conf.layout.west_width_subtractor) / 2,
+														valueField: 'id',
+														displayField: 'name',
+														queryMode: 'remote',
+														store: DV.store.indicator.available,
+														tbar: [
+															{
+																xtype: 'label',
+																text: DV.i18n.available,
+																cls: 'dv-toolbar-multiselect-left-label'
+															},
+															'->',
+															{
+																xtype: 'button',
+																icon: 'images/arrowright.png',
+																width: 22,
+																handler: function() {
+																	DV.util.multiselect.select(DV.cmp.dimension.indicator.available, DV.cmp.dimension.indicator.selected);
+																}
+															},
+															{
+																xtype: 'button',
+																icon: 'images/arrowrightdouble.png',
+																width: 22,
+																handler: function() {
+																	DV.util.multiselect.selectAll(DV.cmp.dimension.indicator.available, DV.cmp.dimension.indicator.selected);
+																}
+															},
+															' '
+														],
+														listeners: {
+															added: function() {
+																DV.cmp.dimension.indicator.available = this;
+															},
+															afterrender: function() {
+																this.boundList.on('itemdblclick', function() {
+																	DV.util.multiselect.select(this, DV.cmp.dimension.indicator.selected);
+																}, this);
+															}
+														}
+													},                                            
+													{
+														xtype: 'multiselect',
+														name: 'selectedIndicators',
+														cls: 'dv-toolbar-multiselect-right',
+														width: (DV.conf.layout.west_fieldset_width - DV.conf.layout.west_width_subtractor) / 2,
+														displayField: 'name',
+														valueField: 'id',
+														ddReorder: true,
+														queryMode: 'local',
+														store: DV.store.indicator.selected,
+														tbar: [
+															' ',
+															{
+																xtype: 'button',
+																icon: 'images/arrowleftdouble.png',
+																width: 22,
+																handler: function() {
+																	DV.util.multiselect.unselectAll(DV.cmp.dimension.indicator.available, DV.cmp.dimension.indicator.selected);
+																}
+															},
+															{
+																xtype: 'button',
+																icon: 'images/arrowleft.png',
+																width: 22,
+																handler: function() {
+																	DV.util.multiselect.unselect(DV.cmp.dimension.indicator.available, DV.cmp.dimension.indicator.selected);
+																}
+															},
+															'->',
+															{
+																xtype: 'label',
+																text: DV.i18n.selected,
+																cls: 'dv-toolbar-multiselect-right-label'
+															}
+														],
+														listeners: {
+															added: function() {
+																DV.cmp.dimension.indicator.selected = this;
+															},
+															afterrender: function() {
+																this.boundList.on('itemdblclick', function() {
+																	DV.util.multiselect.unselect(DV.cmp.dimension.indicator.available, this);
+																}, this);
+															}
+														}
+													}
+												]
+											}
+										],
+										listeners: {
+											added: function() {
+												DV.cmp.dimension.indicator.panel = this;
+											},
+											expand: function() {
+												DV.util.dimension.panel.setHeight(DV.conf.layout.west_maxheight_accordion_indicator);
+												DV.util.multiselect.setHeight(
+													[DV.cmp.dimension.indicator.available, DV.cmp.dimension.indicator.selected],
+													DV.cmp.dimension.indicator.panel,
+													DV.conf.layout.west_fill_accordion_indicator
+												);
+											}
+										}
+									},
+									{
+										title: '<div style="height:17px">' + DV.i18n.data_elements + '</div>',
+										hideCollapseTool: true,
+										items: [
+											{
+												xtype: 'combobox',
+												cls: 'dv-combo',
+												style: 'margin-bottom:8px',
+												width: DV.conf.layout.west_fieldset_width - DV.conf.layout.west_width_subtractor,
+												valueField: 'id',
+												displayField: 'name',
+												fieldLabel: DV.i18n.select_group,
+												labelStyle: 'padding-left:7px;',
+												labelWidth: 90,
+												editable: false,
+												queryMode: 'remote',
+												store: Ext.create('Ext.data.Store', {
+													fields: ['id', 'name', 'index'],
+													proxy: {
+														type: 'ajax',
+														url: DV.conf.finals.ajax.path_commons + DV.conf.finals.ajax.dataelementgroup_get,
+														reader: {
+															type: 'json',
+															root: 'dataElementGroups'
+														}
+													},
+													listeners: {
+														load: function(s) {
+															s.add({id: 0, name: '[ All data element groups ]', index: -1});
+															s.sort('index', 'ASC');
+														}
+													}
+												}),
+												listeners: {
+													select: function(cb) {
+														var store = DV.store.dataelement.available;
+														store.parent = cb.getValue();
+														
+														if (DV.util.store.containsParent(store)) {
+															DV.util.store.loadFromStorage(store);
+															DV.util.multiselect.filterAvailable(DV.cmp.dimension.dataelement.available, DV.cmp.dimension.dataelement.selected);
+														}
+														else {
+															store.load({params: {id: cb.getValue()}});
+														}
+													}
+												}
+											},                                    
+											{
+												xtype: 'panel',
+												layout: 'column',
+												bodyStyle: 'border-style:none',
+												items: [
+													Ext.create('Ext.ux.form.MultiSelect', {
+														name: 'availableDataElements',
+														cls: 'dv-toolbar-multiselect-left',
+														width: (DV.conf.layout.west_fieldset_width - DV.conf.layout.west_width_subtractor) / 2,
+														displayField: 'name',
+														valueField: 'id',
+														queryMode: 'remote',
+														store: DV.store.dataelement.available,
+														tbar: [
+															{
+																xtype: 'label',
+																text: DV.i18n.available,
+																cls: 'dv-toolbar-multiselect-left-label'
+															},
+															'->',
+															{
+																xtype: 'button',
+																icon: 'images/arrowright.png',
+																width: 22,
+																handler: function() {
+																	DV.util.multiselect.select(DV.cmp.dimension.dataelement.available, DV.cmp.dimension.dataelement.selected);
+																}
+															},
+															{
+																xtype: 'button',
+																icon: 'images/arrowrightdouble.png',
+																width: 22,
+																handler: function() {
+																	DV.util.multiselect.selectAll(DV.cmp.dimension.dataelement.available, DV.cmp.dimension.dataelement.selected);
+																}
+															},
+															' '
+														],
+														listeners: {
+															added: function() {
+																DV.cmp.dimension.dataelement.available = this;
+															},                                                                
+															afterrender: function() {
+																this.boundList.on('itemdblclick', function() {
+																	DV.util.multiselect.select(this, DV.cmp.dimension.dataelement.selected);
+																}, this);
+															}
+														}
+													}),                                            
+													{
+														xtype: 'multiselect',
+														name: 'selectedDataElements',
+														cls: 'dv-toolbar-multiselect-right',
+														width: (DV.conf.layout.west_fieldset_width - DV.conf.layout.west_width_subtractor) / 2,
+														displayField: 'name',
+														valueField: 'id',
+														ddReorder: true,
+														queryMode: 'remote',
+														store: DV.store.dataelement.selected,
+														tbar: [
+															' ',
+															{
+																xtype: 'button',
+																icon: 'images/arrowleftdouble.png',
+																width: 22,
+																handler: function() {
+																	DV.util.multiselect.unselectAll(DV.cmp.dimension.dataelement.available, DV.cmp.dimension.dataelement.selected);
+																}
+															},
+															{
+																xtype: 'button',
+																icon: 'images/arrowleft.png',
+																width: 22,
+																handler: function() {
+																	DV.util.multiselect.unselect(DV.cmp.dimension.dataelement.available, DV.cmp.dimension.dataelement.selected);
+																}
+															},
+															'->',
+															{
+																xtype: 'label',
+																text: DV.i18n.selected,
+																cls: 'dv-toolbar-multiselect-right-label'
+															}
+														],
+														listeners: {
+															added: function() {
+																DV.cmp.dimension.dataelement.selected = this;
+															},          
+															afterrender: function() {
+																this.boundList.on('itemdblclick', function() {
+																	DV.util.multiselect.unselect(DV.cmp.dimension.dataelement.available, this);
+																}, this);
+															}
+														}
+													}
+												]
+											}
+										],
+										listeners: {
+											added: function() {
+												DV.cmp.dimension.dataelement.panel = this;
+											},
+											expand: function() {
+												DV.util.dimension.panel.setHeight(DV.conf.layout.west_maxheight_accordion_dataelement);
+												DV.util.multiselect.setHeight(
+													[DV.cmp.dimension.dataelement.available, DV.cmp.dimension.dataelement.selected],
+													DV.cmp.dimension.dataelement.panel,
+													DV.conf.layout.west_fill_accordion_dataelement
+												);
+											}
+										}
+									},
+									{
+										title: '<div style="height:17px">' + DV.i18n.reporting_rates + '</div>',
+										hideCollapseTool: true,
+										items: [
+											{
+												xtype: 'panel',
+												layout: 'column',
+												bodyStyle: 'border-style:none',
+												items: [
+													Ext.create('Ext.ux.form.MultiSelect', {
+														name: 'availableDataSets',
+														cls: 'dv-toolbar-multiselect-left',
+														width: (DV.conf.layout.west_fieldset_width - DV.conf.layout.west_width_subtractor) / 2,
+														displayField: 'name',
+														valueField: 'id',
+														queryMode: 'remote',
+														store: DV.store.dataset.available,
+														tbar: [
+															{
+																xtype: 'label',
+																text: DV.i18n.available,
+																cls: 'dv-toolbar-multiselect-left-label'
+															},
+															'->',
+															{
+																xtype: 'button',
+																icon: 'images/arrowright.png',
+																width: 22,
+																handler: function() {
+																	DV.util.multiselect.select(DV.cmp.dimension.dataset.available, DV.cmp.dimension.dataset.selected);
+																}
+															},
+															{
+																xtype: 'button',
+																icon: 'images/arrowrightdouble.png',
+																width: 22,
+																handler: function() {
+																	DV.util.multiselect.selectAll(DV.cmp.dimension.dataset.available, DV.cmp.dimension.dataset.selected);
+																}
+															},
+															' '
+														],
+														listeners: {
+															added: function() {
+																DV.cmp.dimension.dataset.available = this;
+															},                                                                
+															afterrender: function() {
+																this.boundList.on('itemdblclick', function() {
+																	DV.util.multiselect.select(this, DV.cmp.dimension.dataset.selected);
+																}, this);
+															}
+														}
+													}),                                            
+													{
+														xtype: 'multiselect',
+														name: 'selectedDataSets',
+														cls: 'dv-toolbar-multiselect-right',
+														width: (DV.conf.layout.west_fieldset_width - DV.conf.layout.west_width_subtractor) / 2,
+														displayField: 'name',
+														valueField: 'id',
+														ddReorder: true,
+														queryMode: 'remote',
+														store: DV.store.dataset.selected,
+														tbar: [
+															' ',
+															{
+																xtype: 'button',
+																icon: 'images/arrowleftdouble.png',
+																width: 22,
+																handler: function() {
+																	DV.util.multiselect.unselectAll(DV.cmp.dimension.dataset.available, DV.cmp.dimension.dataset.selected);
+																}
+															},
+															{
+																xtype: 'button',
+																icon: 'images/arrowleft.png',
+																width: 22,
+																handler: function() {
+																	DV.util.multiselect.unselect(DV.cmp.dimension.dataset.available, DV.cmp.dimension.dataset.selected);
+																}
+															},
+															'->',
+															{
+																xtype: 'label',
+																text: DV.i18n.selected,
+																cls: 'dv-toolbar-multiselect-right-label'
+															}
+														],
+														listeners: {
+															added: function() {
+																DV.cmp.dimension.dataset.selected = this;
+															},          
+															afterrender: function() {
+																this.boundList.on('itemdblclick', function() {
+																	DV.util.multiselect.unselect(DV.cmp.dimension.dataset.available, this);
+																}, this);
+															}
+														}
+													}
+												]
+											}
+										],
+										listeners: {
+											added: function() {
+												DV.cmp.dimension.dataset.panel = this;
+											},
+											expand: function() {
+												DV.util.dimension.panel.setHeight(DV.conf.layout.west_maxheight_accordion_dataset);
+												DV.util.multiselect.setHeight(
+													[DV.cmp.dimension.dataset.available, DV.cmp.dimension.dataset.selected],
+													DV.cmp.dimension.dataset.panel,
+													DV.conf.layout.west_fill_accordion_dataset
+												);
+											}
+										}
+									},
+									{
+										title: '<div style="height:17px">' + DV.i18n.periods + '</div>',
+										hideCollapseTool: true,
+										items: [
+											{
+												xtype: 'panel',
+												layout: 'column',
+												bodyStyle: 'border-style:none',
+												items: [
+													{
+														xtype: 'panel',
+														layout: 'anchor',
+														bodyStyle: 'border-style:none; padding:0 0 0 10px',
+														defaults: {
+															labelSeparator: '',
+															listeners: {
+																added: function(chb) {
+																	if (chb.xtype === 'checkbox') {
+																		DV.cmp.dimension.period.checkbox.push(chb);
+																	}
+																}
+															}
+														},
+														items: [
+															{
+																xtype: 'label',
+																text: DV.i18n.months,
+																cls: 'dv-label-period-heading'
+															},
+															{
+																xtype: 'checkbox',
+																paramName: 'lastMonth',
+																boxLabel: DV.i18n.last_month
+															},
+															{
+																xtype: 'checkbox',
+																paramName: 'last12Months',
+																boxLabel: DV.i18n.last_12_months,
+																checked: true
+															}
+														]
+													},
+													{
+														xtype: 'panel',
+														layout: 'anchor',
+														bodyStyle: 'border-style:none; padding:0 0 0 32px',
+														defaults: {
+															labelSeparator: '',
+															listeners: {
+																added: function(chb) {
+																	if (chb.xtype === 'checkbox') {
+																		DV.cmp.dimension.period.checkbox.push(chb);
+																	}
+																}
+															}
+														},
+														items: [
+															{
+																xtype: 'label',
+																text: DV.i18n.quarters,
+																cls: 'dv-label-period-heading'
+															},
+															{
+																xtype: 'checkbox',
+																paramName: 'lastQuarter',
+																boxLabel: DV.i18n.last_quarter
+															},
+															{
+																xtype: 'checkbox',
+																paramName: 'last4Quarters',
+																boxLabel: DV.i18n.last_4_quarters
+															}
+														]
+													},
+													{
+														xtype: 'panel',
+														layout: 'anchor',
+														bodyStyle: 'border-style:none; padding:0 0 0 32px',
+														defaults: {
+															labelSeparator: '',
+															listeners: {
+																added: function(chb) {
+																	if (chb.xtype === 'checkbox') {
+																		DV.cmp.dimension.period.checkbox.push(chb);
+																	}
+																}
+															}
+														},
+														items: [
+															{
+																xtype: 'label',
+																text: DV.i18n.six_months,
+																cls: 'dv-label-period-heading'
+															},
+															{
+																xtype: 'checkbox',
+																paramName: 'lastSixMonth',
+																boxLabel: DV.i18n.last_six_month
+															},
+															{
+																xtype: 'checkbox',
+																paramName: 'last2SixMonths',
+																boxLabel: DV.i18n.last_two_six_month
+															}
+														]
+													}
+												]
+											},
+											{
+												xtype: 'panel',
+												layout: 'column',
+												bodyStyle: 'border-style:none',
+												items: [
+													{
+														xtype: 'panel',
+														layout: 'anchor',
+														bodyStyle: 'border-style:none; padding:5px 0 0 10px',
+														defaults: {
+															labelSeparator: '',
+															listeners: {
+																added: function(chb) {
+																	if (chb.xtype === 'checkbox') {
+																		DV.cmp.dimension.period.checkbox.push(chb);
+																	}
+																}
+															}
+														},
+														items: [
+															{
+																xtype: 'label',
+																text: DV.i18n.years,
+																cls: 'dv-label-period-heading'
+															},
+															{
+																xtype: 'checkbox',
+																paramName: 'thisYear',
+																boxLabel: DV.i18n.this_year
+															},
+															{
+																xtype: 'checkbox',
+																paramName: 'lastYear',
+																boxLabel: DV.i18n.last_year
+															},
+															{
+																xtype: 'checkbox',
+																paramName: 'last5Years',
+																boxLabel: DV.i18n.last_5_years
+															}
+														]
+													}
+												]
+											}
+										],
+										listeners: {
+											added: function() {
+												DV.cmp.dimension.period.panel = this;
+											},
+											expand: function() {
+												DV.util.dimension.panel.setHeight(DV.conf.layout.west_maxheight_accordion_period);
+											}
+										}
+									},
+									{
+										title: '<div style="height:17px">' + DV.i18n.organisation_units + '</div>',
+										hideCollapseTool: true,
+										items: [
+											{
+												xtype: 'combobox',
+												cls: 'dv-combo',
+												style: 'margin-bottom:8px',
+												width: DV.conf.layout.west_fieldset_width - DV.conf.layout.west_width_subtractor,
+												valueField: 'id',
+												displayField: 'name',
+												fieldLabel: DV.i18n.group_sets,
+												labelWidth: 85,
+												labelStyle: 'padding-left:7px;',
+												editable: false,
+												queryMode: 'remote',
+												value: DV.i18n.none,
+												store: DV.store.groupset,
+												listeners: {
+													added: function() {
+														this.up('panel').groupsets = this;
+													}
+												}
+											},
+											{
+												xtype: 'treepanel',
+												cls: 'dv-tree',
+												width: DV.conf.layout.west_fieldset_width - DV.conf.layout.west_width_subtractor,
+												autoScroll: true,
+												multiSelect: true,
+												isrendered: false,
+												storage: {},
+												addToStorage: function(objects) {
+													for (var i = 0; i < objects.length; i++) {
+														this.storage[objects[i].id] = objects[i];
+													}
+												},
+												selectRoot: function() {
+													if (this.isrendered) {
+														if (!this.getSelectionModel().getSelection().length) {
+															this.getSelectionModel().select(this.getRootNode());
+														}
+													}
+												},
+												findNameById: function(id) {
+													var name = this.store.getNodeById(id) ? this.store.getNodeById(id).data.text : null;
+													if (!name) {
+														for (var k in this.storage) {
+															if (k == id) {
+																name = this.storage[k].name;
+															}
+														}
+													}
+													return name;
+												},
+												store: Ext.create('Ext.data.TreeStore', {
+													proxy: {
+														type: 'ajax',
+														url: DV.conf.finals.ajax.path_visualizer + DV.conf.finals.ajax.organisationunitchildren_get
+													},
+													root: {
+														id: DV.init.system.rootnode.id,
+														text: DV.init.system.rootnode.name,
+														expanded: false
+													}
+												}),
+												listeners: {
+													added: function() {
+														DV.cmp.dimension.organisationunit.treepanel = this;
+													},
+													itemcontextmenu: function(v, r, h, i, e) {
+														if (v.menu) {
+															v.menu.destroy();
+														}
+														v.menu = Ext.create('Ext.menu.Menu', {
+															id: 'treepanel-contextmenu',
+															showSeparator: false
+														});
+														if (!r.data.leaf) {
+															v.menu.add({
+																id: 'treepanel-contextmenu-item',
+																text: DV.i18n.select_all_children,
+																icon: 'images/node-select-child.png',
+																handler: function() {
+																	r.expand(false, function() {
+																		v.getSelectionModel().select(r.childNodes, true);
+																		v.getSelectionModel().deselect(r);
+																	});
+																}
+															});
+														}
+														else {
+															return;
+														}
+														
+														v.menu.showAt(e.xy);
+													}
+												}
+											}
+										],
+										listeners: {
+											added: function() {
+												DV.cmp.dimension.organisationunit.panel = this;
+											},
+											expand: function() {
+												DV.util.dimension.panel.setHeight(DV.conf.layout.west_maxheight_accordion_organisationunit);
+												DV.cmp.dimension.organisationunit.treepanel.setHeight(DV.cmp.dimension.organisationunit.panel.getHeight() - DV.conf.layout.west_fill_accordion_organisationunit);
+											}
+										}
+									},
+									{
+										title: '<div style="height:17px">' + DV.i18n.chart_options + '</div>',
+										hideCollapseTool: true,
+										cls: 'dv-accordion-options',
+										items: [
+											{
+												xtype: 'panel',
+												bodyStyle: 'border-style:none; background-color:transparent; padding:0 2px',
+												items: [
+													{
+														xtype: 'panel',
+														layout: 'column',
+														bodyStyle: 'border-style:none; background-color:transparent; padding-bottom:15px',
+														items: [
+															{
+																xtype: 'checkbox',
+																cls: 'dv-checkbox-alt1',
+																style: 'margin-right:23px',
+																boxLabel: DV.i18n.hide_subtitle,
+																labelWidth: DV.conf.layout.form_label_width,
+																listeners: {
+																	added: function() {
+																		DV.cmp.favorite.hidesubtitle = this;
+																	}
+																}
+															},
+															{
+																xtype: 'checkbox',
+																cls: 'dv-checkbox-alt1',
+																style: 'margin-right:23px',
+																boxLabel: DV.i18n.hide_legend,
+																labelWidth: DV.conf.layout.form_label_width,
+																listeners: {
+																	added: function() {
+																		DV.cmp.favorite.hidelegend = this;
+																	}
+																}
+															},
+															{
+																xtype: 'checkbox',
+																cls: 'dv-checkbox-alt1',
+																style: 'margin-right:23px',
+																boxLabel: DV.i18n.trend_line,
+																labelWidth: DV.conf.layout.form_label_width,
+																listeners: {
+																	added: function() {
+																		DV.cmp.favorite.trendline = this;
+																	}
+																}
+															},
+															{
+																xtype: 'checkbox',
+																cls: 'dv-checkbox-alt1',
+																boxLabel: DV.i18n.user_orgunit,
+																labelWidth: DV.conf.layout.form_label_width,
+																listeners: {
+																	added: function() {
+																		DV.cmp.favorite.userorganisationunit = this;
+																	}
+																}
+															}
+														]
+													},
+													{
+														xtype: 'panel',
+														layout: 'column',
+														bodyStyle: 'border:0 none; background-color:transparent; padding-bottom:8px',
+														items: [
+															{
+																xtype: 'textfield',
+																cls: 'dv-textfield-alt1',
+																style: 'margin-right:6px',
+																fieldLabel: DV.i18n.domain_axis_label,
+																labelAlign: 'top',
+																labelSeparator: '',
+																maxLength: 100,
+																enforceMaxLength: true,
+																labelWidth: DV.conf.layout.form_label_width,
+																width: 187,
+																listeners: {
+																	added: function() {
+																		DV.cmp.favorite.domainaxislabel = this;
+																	}
+																}
+															},
+															{
+																xtype: 'textfield',
+																cls: 'dv-textfield-alt1',
+																fieldLabel: DV.i18n.range_axis_label,
+																labelAlign: 'top',
+																labelSeparator: '',
+																maxLength: 100,
+																enforceMaxLength: true,
+																labelWidth: DV.conf.layout.form_label_width,
+																width: 187,
+																listeners: {
+																	added: function() {
+																		DV.cmp.favorite.rangeaxislabel = this;
+																	}
+																}
+															}
+														]
+													},
+													{
+														xtype: 'panel',
+														layout: 'column',
+														bodyStyle: 'border:0 none; background-color:transparent; padding-bottom:8px',
+														items: [
+															{
+																xtype: 'numberfield',
+																cls: 'dv-textfield-alt1',
+																style: 'margin-right:6px',
+																hideTrigger: true,
+																fieldLabel: DV.i18n.target_line_value,
+																labelAlign: 'top',
+																labelSeparator: '',
+																maxLength: 100,
+																enforceMaxLength: true,
+																width: 187,
+																spinUpEnabled: true,
+																spinDownEnabled: true,
+																listeners: {
+																	added: function() {
+																		DV.cmp.favorite.targetlinevalue = this;
+																	},
+																	change: function() {
+																		DV.cmp.favorite.targetlinelabel.xable();
+																	}
+																}
+															},
+															{
+																xtype: 'textfield',
+																cls: 'dv-textfield-alt1',
+																fieldLabel: DV.i18n.target_line_label,
+																labelAlign: 'top',
+																labelSeparator: '',
+																maxLength: 100,
+																enforceMaxLength: true,
+																width: 187,
+																disabled: true,
+																xable: function() {
+																	if (DV.cmp.favorite.targetlinevalue.getValue()) {
+																		this.enable();
+																	}
+																	else {
+																		this.disable();
+																	}
+																},
+																listeners: {
+																	added: function() {
+																		DV.cmp.favorite.targetlinelabel = this;
+																	}
+																}
+															}
+														]
+													},
+													{
+														xtype: 'panel',
+														layout: 'column',
+														bodyStyle: 'border:0 none; background-color:transparent; padding-bottom:5px',
+														items: [
+															{
+																xtype: 'numberfield',
+																cls: 'dv-textfield-alt1',
+																style: 'margin-right:6px',
+																hideTrigger: true,
+																fieldLabel: DV.i18n.base_line_value,
+																labelAlign: 'top',
+																labelSeparator: '',
+																maxLength: 100,
+																enforceMaxLength: true,
+																width: 187,
+																spinUpEnabled: true,
+																spinDownEnabled: true,
+																listeners: {
+																	added: function() {
+																		DV.cmp.favorite.baselinevalue = this;
+																	},
+																	change: function() {
+																		DV.cmp.favorite.baselinelabel.xable();
+																	}
+																}
+															},
+															{
+																xtype: 'textfield',
+																cls: 'dv-textfield-alt1',
+																fieldLabel: DV.i18n.base_line_label,
+																labelAlign: 'top',
+																labelSeparator: '',
+																maxLength: 100,
+																enforceMaxLength: true,
+																width: 187,
+																disabled: true,
+																xable: function() {
+																	if (DV.cmp.favorite.baselinevalue.getValue()) {
+																		this.enable();
+																	}
+																	else {
+																		this.disable();
+																	}
+																},
+																listeners: {
+																	added: function() {
+																		DV.cmp.favorite.baselinelabel = this;
+																	}
+																}
+															}
+														]
+													}
+												]
+											}
+										],
+										listeners: {
+											added: function() {
+												DV.cmp.options.panel = this;
+											},
+											expand: function() {
+												DV.util.dimension.panel.setHeight(DV.conf.layout.west_maxheight_accordion_options);
+											}
+										}
 									}
 								],
 								listeners: {
 									added: function() {
-										DV.cmp.options.panel = this;
+										DV.cmp.dimension.panel = this;
 									}
 								}
 							}
 						]
-					}
-				],				
+					}					
+				],
                 listeners: {
-                    afterrender: function() {
+                    added: function() {
                         DV.cmp.region.west = this;
                     },
                     collapse: function() {                    
@@ -4146,7 +4121,7 @@
                         DV.cmp.region.center = this;
                     },
                     resize: function() {
-						if (DV.chart.chart.isrendered && DV.cmp.statusbar.panel) {
+						if (DV.cmp.statusbar.panel) {
 							DV.cmp.statusbar.panel.setWidth(DV.cmp.region.center.getWidth());
 						}
 					}
@@ -4167,12 +4142,13 @@
             }
         ],
         listeners: {
-            afterrender: function() {
-                DV.init.initialize();
+            afterrender: function(vp) {
+                DV.init.initialize(vp);
             },
             resize: function(vp) {
                 DV.cmp.region.west.setWidth(DV.conf.layout.west_width);
-                DV.util.fieldset.reloadExpanded();
+                
+				DV.util.viewport.resizeDimensions();
                 
                 if (DV.datatable.datatable) {
                     DV.datatable.datatable.setHeight(DV.util.viewport.getSize().y - DV.conf.layout.east_tbar_height);

=== modified file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/css/style.css'
--- dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/css/style.css	2012-02-28 08:28:39 +0000
+++ dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/css/style.css	2012-03-14 23:41:59 +0000
@@ -2,10 +2,10 @@
     font: normal 10px arial,sans-serif,ubuntu,consolas;
 }
 
-.x-body, .x-btn-default-toolbar-small .x-btn-inner, .x-form-item {
+.x-body, .x-btn-default-toolbar-small .x-btn-inner, .x-form-item, .x-panel-header-text-default {
 	font-family: arial,sans-serif,ubuntu,consolas;
 }
-
+	
 .x-panel-body {
     font-size: 11px;
 }
@@ -230,7 +230,7 @@
 /* Boundlist (multiselect, comboboxlist etc) */
 .x-boundlist-item {
     color: #333;
-    padding: 2px 2px 2px 4px;
+    padding: 3px 2px 3px 4px;
     font-size: 10px;
     border: 1px solid transparent;
 }
@@ -442,8 +442,8 @@
     border-color: transparent;
 }
 .dv-toolbar-multiselect-left .x-boundlist-selected {
-    background-color: #d3d3d3;
-    border-color: #d3d3d3;
+    background-color: #e5e5e5;
+    border-color: #e5e5e5;
 }
 
 .dv-toolbar-multiselect-right .x-boundlist-item-over {
@@ -451,8 +451,8 @@
     border-color: transparent;
 }
 .dv-toolbar-multiselect-right .x-boundlist-selected {
-    background-color: #d3d3d3;
-    border-color: #d3d3d3;
+    background-color: #e5e5e5;
+    border-color: #e5e5e5;
 }
 
 /* Menu */
@@ -535,7 +535,7 @@
 .dv-label-period-heading {
     font-size: 11px;
     font-weight: bold;
-    color: #666;
+    color: #444;
     line-height: 20px;
 }
 
@@ -643,3 +643,96 @@
 	font-size: 10px;
 	line-height: 14px;
 }
+
+/* DV accordion */
+.dv-accordion .x-accordion-item .x-accordion-hd, .dv-accordion .dv-accordion-options .x-accordion-hd { /* accordion title bar, shared */
+	padding: 6px 5px 4px 8px;
+	border: 0 none;
+	cursor: pointer;
+    -o-border-top-left-radius: 1px;
+	-icab-border-top-left-radius: 1px;
+	-khtml-border-top-left-radius: 1px;
+    -moz-border-radius-topleft: 1px;
+	-webkit-border-top-left-radius: 1px;
+	border-top-left-radius: 1px;
+    -o-border-top-right-radius: 1px;
+	-icab-border-top-right-radius: 1px;
+	-khtml-border-top-right-radius: 1px;
+    -moz-border-radius-topright: 1px;
+	-webkit-border-top-right-radius: 1px;
+	border-top-right-radius: 1px;
+}
+.dv-accordion .x-accordion-item .x-accordion-hd { /* accordion title dock, default */
+    background-image: none;
+    background-color: #e0e0e0;
+    background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #dcdcdc), color-stop(100%, #e5e5e5)) !important;
+    background-image: -webkit-linear-gradient(top, #dcdcdc, #e5e5e5) !important;
+    background-image: -moz-linear-gradient(top, #dcdcdc, #e5e5e5) !important;
+    background-image: -o-linear-gradient(top, #dcdcdc, #e5e5e5) !important;
+    background-image: -ms-linear-gradient(top, #dcdcdc, #e5e5e5) !important;
+    background-image: linear-gradient(top, #dcdcdc, #e5e5e5) !important;
+}
+.dv-accordion .dv-accordion-options .x-accordion-hd { /* accordion title dock, options */
+    background-image: none;
+    background-color: #d0d0d0;
+    background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #cccccc), color-stop(100%, #d3d3d3)) !important;
+    background-image: -webkit-linear-gradient(top, #cccccc, #d3d3d3) !important;
+    background-image: -moz-linear-gradient(top, #cccccc, #d3d3d3) !important;
+    background-image: -o-linear-gradient(top, #cccccc, #d3d3d3) !important;
+    background-image: -ms-linear-gradient(top, #cccccc, #d3d3d3) !important;
+    background-image: linear-gradient(top, #cccccc, #d3d3d3) !important;
+}
+.dv-accordion .collapsed .x-accordion-hd { /* accordion title dock, default, collapsed */
+	padding-bottom: 5px !important;
+}
+
+.dv-accordion .x-accordion-item, .dv-accordion-options .x-accordion-item { /* accordion title dock outer, shared */
+    -o-border-top-left-radius: 2px;
+	-icab-border-top-left-radius: 2px;
+	-khtml-border-top-left-radius: 2px;
+    -moz-border-radius-topleft: 2px;
+	-webkit-border-top-left-radius: 2px;
+	border-top-left-radius: 2px;
+    -o-border-top-right-radius: 2px;
+	-icab-border-top-right-radius: 2px;
+	-khtml-border-top-right-radius: 2px;
+    -moz-border-radius-topright: 2px;
+	-webkit-border-top-right-radius: 2px;
+	border-top-right-radius: 2px;
+}
+.dv-accordion .x-accordion-item { /* accordion title dock outer, default */
+	border: 1px solid #c5c5c5;
+	border-bottom: 0 none;
+}
+.dv-accordion .dv-accordion-options { /* accordion title dock outer, options */
+	border: 1px solid #c0c0c0;
+}
+
+.dv-accordion .x-accordion-hd .x-panel-header-text { /* accordion title dock text, shared */
+	font-weight: bold;
+	cursor: pointer;
+}
+
+.dv-accordion .x-accordion-body { /* accordion item body */
+	padding: 8px 8px 2px 8px;
+	border-top: 1px solid #c5c5c5 !important;
+}
+
+.dv-accordion .x-accordion-hd-sibling-expanded {
+	-moz-box-shadow: none;
+	-webkit-box-shadow: none;
+	-o-box-shadow: none;
+	box-shadow: none;
+}
+
+.dv-accordion .dv-toolbar-multiselect-left, .dv-accordion .dv-toolbar-multiselect-right {
+	margin-bottom: 0;
+}
+
+.dv-accordion .dv-combo .x-form-text, .dv-accordion .dv-combo .x-form-trigger { /* accordion combo box */
+	height: 24px;
+	padding-top: 2px;
+}
+.dv-accordion .dv-combo .x-form-item-label {
+	padding: 4px 0 0;
+}