=== modified file 'dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-mapping/scripts/app.js' --- dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-mapping/scripts/app.js 2015-01-14 13:49:18 +0000 +++ dhis-2/dhis-web/dhis-web-apps/src/main/webapp/dhis-web-mapping/scripts/app.js 2015-01-14 14:56:08 +0000 @@ -9031,6 +9031,19 @@ }() }, listeners: { + render: function() { + var me = this; + + me.getEl().on('mouseleave', function() { + for (var i = 0, cmp; i < me.trash.length; i++) { + cmp = me.trash[i]; + + if (cmp && cmp.destroy) { + cmp.destroy(); + } + } + }); + }, resize: function() { var width = this.getWidth(); === modified file 'dhis-2/dhis-web/dhis-web-dashboard-integration/src/main/webapp/dhis-web-dashboard-integration/dashboard.vm' --- dhis-2/dhis-web/dhis-web-dashboard-integration/src/main/webapp/dhis-web-dashboard-integration/dashboard.vm 2015-01-14 10:27:59 +0000 +++ dhis-2/dhis-web/dhis-web-dashboard-integration/src/main/webapp/dhis-web-dashboard-integration/dashboard.vm 2015-01-14 16:50:54 +0000 @@ -1,7 +1,7 @@ #sharingDialog() - + === modified file 'dhis-2/dhis-web/dhis-web-dashboard-integration/src/main/webapp/dhis-web-dashboard-integration/plugin/eventchart.js' --- dhis-2/dhis-web/dhis-web-dashboard-integration/src/main/webapp/dhis-web-dashboard-integration/plugin/eventchart.js 2015-01-14 12:56:58 +0000 +++ dhis-2/dhis-web/dhis-web-dashboard-integration/src/main/webapp/dhis-web-dashboard-integration/plugin/eventchart.js 2015-01-14 14:56:08 +0000 @@ -3244,10 +3244,9 @@ } ids = Ext.Array.clean(ids.concat(filterIds || [])); -console.log("ids", ids, "xResponse.metaData.names", xResponse.metaData.names); + if (Ext.isArray(ids) && ids.length) { for (var i = 0; i < ids.length; i++) { -console.log(ids[i]); text += xResponse.metaData.names[ids[i]]; text += i < ids.length - 1 ? ', ' : ''; } === modified file 'dhis-2/dhis-web/dhis-web-dashboard-integration/src/main/webapp/dhis-web-dashboard-integration/plugin/eventreport.js' --- dhis-2/dhis-web/dhis-web-dashboard-integration/src/main/webapp/dhis-web-dashboard-integration/plugin/eventreport.js 2015-01-14 12:56:58 +0000 +++ dhis-2/dhis-web/dhis-web-dashboard-integration/src/main/webapp/dhis-web-dashboard-integration/plugin/eventreport.js 2015-01-14 16:57:19 +0000 @@ -3316,9 +3316,9 @@ } }; - applyCss = function() { + applyCss = function(config) { var css = '', - arrowUrl = init.dashboard ? '../dhis-web-commons/javascripts/plugin/images/arrowupdown.png' : '//dhis2-cdn.org/v217/plugin/images/arrowupdown.png'; + arrowUrl = config.dashboard ? '../dhis-web-commons/javascripts/plugin/images/arrowupdown.png' : '//dhis2-cdn.org/v217/plugin/images/arrowupdown.png'; css += 'table.pivot { font-family: arial,sans-serif,ubuntu,consolas; } \n'; css += '.td-nobreak { white-space: nowrap; } \n'; @@ -3807,7 +3807,7 @@ return; } - applyCss(); + applyCss(config); ns.core = ER.getCore(Ext.clone(init)); ns.core.init.el = config.el; === modified file 'dhis-2/dhis-web/dhis-web-dashboard-integration/src/main/webapp/dhis-web-dashboard-integration/plugin/map.js' --- dhis-2/dhis-web/dhis-web-dashboard-integration/src/main/webapp/dhis-web-dashboard-integration/plugin/map.js 2015-01-14 13:49:18 +0000 +++ dhis-2/dhis-web/dhis-web-dashboard-integration/src/main/webapp/dhis-web-dashboard-integration/plugin/map.js 2015-01-14 16:55:31 +0000 @@ -1632,36 +1632,36 @@ createSelectionHandlers, layerNumbers = ['1', '2', '3', '4']; - if (window.google) { - layers.googleStreets = new OpenLayers.Layer.Google('Google Streets', { - numZoomLevels: 20, - animationEnabled: true, - layerType: gis.conf.finals.layer.type_base, - layerOpacity: 1, - setLayerOpacity: function (number) { - if (number) { - this.layerOpacity = parseFloat(number); - } - this.setOpacity(this.layerOpacity); - } - }); - layers.googleStreets.id = 'googleStreets'; + //if (window.google) { + //layers.googleStreets = new OpenLayers.Layer.Google('Google Streets', { + //numZoomLevels: 20, + //animationEnabled: true, + //layerType: gis.conf.finals.layer.type_base, + //layerOpacity: 1, + //setLayerOpacity: function (number) { + //if (number) { + //this.layerOpacity = parseFloat(number); + //} + //this.setOpacity(this.layerOpacity); + //} + //}); + //layers.googleStreets.id = 'googleStreets'; - layers.googleHybrid = new OpenLayers.Layer.Google('Google Hybrid', { - type: google.maps.MapTypeId.HYBRID, - numZoomLevels: 20, - animationEnabled: true, - layerType: gis.conf.finals.layer.type_base, - layerOpacity: 1, - setLayerOpacity: function (number) { - if (number) { - this.layerOpacity = parseFloat(number); - } - this.setOpacity(this.layerOpacity); - } - }); - layers.googleHybrid.id = 'googleHybrid'; - } + //layers.googleHybrid = new OpenLayers.Layer.Google('Google Hybrid', { + //type: google.maps.MapTypeId.HYBRID, + //numZoomLevels: 20, + //animationEnabled: true, + //layerType: gis.conf.finals.layer.type_base, + //layerOpacity: 1, + //setLayerOpacity: function (number) { + //if (number) { + //this.layerOpacity = parseFloat(number); + //} + //this.setOpacity(this.layerOpacity); + //} + //}); + //layers.googleHybrid.id = 'googleHybrid'; + //} layers.openStreetMap = new OpenLayers.Layer.OSM.Mapnik('OpenStreetMap', { layerType: gis.conf.finals.layer.type_base, @@ -4953,9 +4953,9 @@ gis.layer = GIS.core.getLayers(gis); gis.thematicLayers = [gis.layer.thematic1, gis.layer.thematic2, gis.layer.thematic3, gis.layer.thematic4]; - if (window.google) { - layers.push(gis.layer.googleStreets, gis.layer.googleHybrid); - } + //if (window.google) { + //layers.push(gis.layer.googleStreets, gis.layer.googleHybrid); + //} layers.push( gis.layer.openStreetMap, @@ -7111,6 +7111,59 @@ gis = GIS.core.getInstance(init); + // google maps + var gm_fn = function() { + var googleStreets = new OpenLayers.Layer.Google('Google Streets', { + numZoomLevels: 20, + animationEnabled: true, + layerType: gis.conf.finals.layer.type_base, + layerOpacity: 1, + setLayerOpacity: function (number) { + if (number) { + this.layerOpacity = parseFloat(number); + } + this.setOpacity(this.layerOpacity); + } + }); + googleStreets.id = 'googleStreets'; + + var googleHybrid = new OpenLayers.Layer.Google('Google Hybrid', { + type: google.maps.MapTypeId.HYBRID, + numZoomLevels: 20, + animationEnabled: true, + layerType: gis.conf.finals.layer.type_base, + layerOpacity: 1, + setLayerOpacity: function (number) { + if (number) { + this.layerOpacity = parseFloat(number); + } + this.setOpacity(this.layerOpacity); + } + }); + googleHybrid.id = 'googleHybrid'; + + gis.olmap.addLayers([googleStreets, googleHybrid]); + gis.olmap.setBaseLayer(googleStreets); + }; + + if (GIS_GM.ready) { + console.log("(Item " + config.el + ") GM is ready -> skip queue, add layers, set as baselayer"); + gm_fn(); + } + else { + if (GIS_GM.offline) { + console.log("Deactivate base layer"); + gis.olmap.baseLayer.setVisibility(false); + } + else { + console.log("GM is not ready -> add to queue"); + GIS_GM.array.push({ + scope: this, + fn: gm_fn + }); + } + } + gis.el = config.el; gis.plugin = init.plugin; gis.dashboard = init.dashboard; @@ -7142,18 +7195,52 @@ }(); }; - GIS.plugin.getMap = function (config) { + GIS.plugin.getMap = function(config) { if (Ext.isString(config.url) && config.url.split('').pop() === '/') { config.url = config.url.substr(0, config.url.length - 1); } if (isInitComplete) { execute(config); - } else { + } + else { configs.push(config); if (!isInitStarted) { isInitStarted = true; + + // google maps + GIS_GM = { + ready: false, + array: [], + offline: false + }; + + GIS_GM_fn = function() { + console.log("GM called back, queue length: " + GIS_GM.array.length); + GIS_GM.ready = true; + + for (var i = 0, obj; i < GIS_GM.array.length; i++) { + obj = GIS_GM.array[i]; + + if (obj) { + console.log("Running queue obj " + (i + 1)); + obj.fn.call(obj.scope); + } + } + }; + + Ext.Loader.injectScriptElement('//maps.googleapis.com/maps/api/js?callback=GIS_GM_fn', + function() { + console.log("GM available (online)"); + }, + function() { + console.log("GM not available (offline)"); + GIS_GM.offline = true; + } + ); + + // plugin getInit(config); } } === modified file 'dhis-2/dhis-web/dhis-web-dashboard-integration/src/main/webapp/dhis-web-dashboard-integration/plugin/table.js' --- dhis-2/dhis-web/dhis-web-dashboard-integration/src/main/webapp/dhis-web-dashboard-integration/plugin/table.js 2015-01-14 12:56:58 +0000 +++ dhis-2/dhis-web/dhis-web-dashboard-integration/src/main/webapp/dhis-web-dashboard-integration/plugin/table.js 2015-01-14 16:50:54 +0000 @@ -3022,9 +3022,9 @@ } }; - applyCss = function() { + applyCss = function(config) { var css = '', - arrowUrl = init.dashboard ? '../dhis-web-commons/javascripts/plugin/images/arrowupdown.png' : '//dhis2-cdn.org/v217/plugin/images/arrowupdown.png'; + arrowUrl = config.dashboard ? '../dhis-web-commons/javascripts/plugin/images/arrowupdown.png' : '//dhis2-cdn.org/v217/plugin/images/arrowupdown.png'; css += 'table.pivot { font-family: arial,sans-serif,ubuntu,consolas; } \n'; css += '.td-nobreak { white-space: nowrap; } \n'; @@ -3394,7 +3394,7 @@ return; } - applyCss(); + applyCss(config); init.plugin = true; init.dashboard = Ext.isBoolean(config.dashboard) ? config.dashboard : false;