=== modified file 'dhis-2/dhis-web/dhis-web-event-visualizer/src/main/webapp/dhis-web-event-visualizer/app/scripts/app.js' --- dhis-2/dhis-web/dhis-web-event-visualizer/src/main/webapp/dhis-web-event-visualizer/app/scripts/app.js 2014-07-11 12:35:42 +0000 +++ dhis-2/dhis-web/dhis-web-event-visualizer/src/main/webapp/dhis-web-event-visualizer/app/scripts/app.js 2014-07-13 10:09:36 +0000 @@ -5783,8 +5783,6 @@ return; } - web.mask.show(ns.app.centerRegion, 'Error while creating table..'); - ns.app.paramString = paramString; web.report.createReport(layout, response, isUpdateGui); @@ -5807,6 +5805,11 @@ xResponse = service.response.aggregate.getExtendedResponse(xLayout, response); xLayout = getSXLayout(xLayout, xResponse); + if (!xLayout) { + web.mask.hide(ns.app.centerRegion); + return; + } + web.mask.show(ns.app.centerRegion, 'Error while rendering chart..'); chart = web.report.aggregate.createChart(layout, xLayout, xResponse, ns.app.centerRegion); === modified file 'dhis-2/dhis-web/dhis-web-event-visualizer/src/main/webapp/dhis-web-event-visualizer/app/scripts/core.js' --- dhis-2/dhis-web/dhis-web-event-visualizer/src/main/webapp/dhis-web-event-visualizer/app/scripts/core.js 2014-07-13 08:38:49 +0000 +++ dhis-2/dhis-web/dhis-web-event-visualizer/src/main/webapp/dhis-web-event-visualizer/app/scripts/core.js 2014-07-13 10:09:36 +0000 @@ -1196,7 +1196,8 @@ service.layout.getSyncronizedXLayout = function(xLayout, xResponse) { var removeDimensionFromXLayout, getHeaderNames, - dimensions = Ext.Array.clean([].concat(xLayout.columns || [], xLayout.rows || [], xLayout.filters || [])); + dimensions = Ext.Array.clean([].concat(xLayout.columns || [], xLayout.rows || [], xLayout.filters || [])), + getSeriesValidatedLayout; removeDimensionFromXLayout = function(objectName) { var getUpdatedAxis; @@ -1239,6 +1240,19 @@ return headerNames; }; + getSeriesValidatedLayout = function(xLayout) { + var nSeries = xLayout.columns[0].ids.length * xLayout.rows[0].ids.length, + message = 'This chart is potentially very large due to the high number of series and category items. Create the chart anyway?'; + + if (nSeries > 200) { + if (!confirm(message)) { + return null; + } + } + + return xLayout; + }; + return function() { // items @@ -1262,11 +1276,20 @@ // Re-layout layout = api.layout.Layout(xLayout); - if (layout) { - return service.layout.getExtendedLayout(layout); - } - - return null; + if (!layout) { + return null; + } + + xLayout = service.layout.getExtendedLayout(layout); + + // validate number of series + xLayout = getSeriesValidatedLayout(xLayout); + + if (!xLayout) { + return null; + } + + return xLayout; }(); }; === modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/app/scripts/core.js' --- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/app/scripts/core.js 2014-07-03 12:55:11 +0000 +++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/app/scripts/core.js 2014-07-13 10:09:36 +0000 @@ -60,7 +60,7 @@ }) ], displayProjection: new OpenLayers.Projection('EPSG:4326'), - maxExtent: new OpenLayers.Bounds(-20037508, -20037508, 20037508, 20037508), + //maxExtent: new OpenLayers.Bounds(-1160037508, -1160037508, 1160037508, 1160037508), mouseMove: {}, // Track all mouse moves relocate: {} // Relocate organisation units });