=== modified file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/java/org/hisp/dhis/visualizer/action/InitializeAction.java' --- dhis-2/dhis-web/dhis-web-visualizer/src/main/java/org/hisp/dhis/visualizer/action/InitializeAction.java 2013-06-26 12:18:21 +0000 +++ dhis-2/dhis-web/dhis-web-visualizer/src/main/java/org/hisp/dhis/visualizer/action/InitializeAction.java 2013-08-02 12:12:32 +0000 @@ -86,8 +86,24 @@ } // ------------------------------------------------------------------------- + // Input + // ------------------------------------------------------------------------- + + private String callback; + + public void setCallback( String callback ) + { + this.callback = callback; + } + + // ------------------------------------------------------------------------- // Output // ------------------------------------------------------------------------- + + public String getCallback() + { + return callback; + } private String contextPath; === modified file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/index.html' --- dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/index.html 2013-07-01 15:58:16 +0000 +++ dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/index.html 2013-08-02 12:12:32 +0000 @@ -8,7 +8,6 @@ - === renamed file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/plugin/index.html' => 'dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/plugin.html' --- dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/plugin/index.html 2012-06-16 21:17:34 +0000 +++ dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/plugin.html 2013-08-03 10:23:34 +0000 @@ -1,173 +1,44 @@ + - - + + + + - - - -

My chart 1

+

CHART 1

-

My chart 2

+

CHART 2

- -

My chart 3

-
- -

My table 1

-
- -

My table 2

-
- -

My URL

-
=== modified file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/scripts/app.js' --- dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/scripts/app.js 2013-07-24 10:23:02 +0000 +++ dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/scripts/app.js 2013-08-03 09:41:28 +0000 @@ -532,12 +532,6 @@ } }; - util.str = { - replaceAll: function(str, find, replace) { - return str.replace(new RegExp(find, 'g'), replace); - } - }; - return util; }; === modified file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/scripts/core.js' --- dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/scripts/core.js 2013-07-24 10:23:02 +0000 +++ dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/scripts/core.js 2013-08-03 10:00:57 +0000 @@ -1,3 +1,13 @@ +if (!('DV' in window)) { + DV = {}; +} + +if(!('i18n' in DV)) { + DV.i18n = {}; +} + +DV.debug = false; + DV.core = { instances: [] }; @@ -366,15 +376,15 @@ util.mask = { showMask: function(cmp, str) { - if (DV.mask) { - DV.mask.destroy(); + if (dv.mask) { + dv.mask.destroy(); } - DV.mask = new Ext.LoadMask(cmp, {msg: str}); - DV.mask.show(); + dv.mask = new Ext.LoadMask(cmp, {msg: str}); + dv.mask.show(); }, hideMask: function() { - if (DV.mask) { - DV.mask.hide(); + if (dv.mask) { + dv.mask.hide(); } } }; @@ -401,6 +411,12 @@ } }; + util.str = { + replaceAll: function(str, find, replace) { + return str.replace(new RegExp(find, 'g'), replace); + } + }; + util.value = { jsonfy: function(values) { var a = []; @@ -1044,14 +1060,15 @@ return Ext.Array.max(sums); }; - - -console.log("data", data); -console.log("rangeFields", store.rangeFields); -console.log("domainFields", store.domainFields); -console.log("trendLineFields", store.trendLineFields); -console.log("targetLineFields", store.targetLineFields); -console.log("baseLineFields", store.baseLineFields); + + if (DV.debug) { + console.log("data", data); + console.log("rangeFields", store.rangeFields); + console.log("domainFields", store.domainFields); + console.log("trendLineFields", store.trendLineFields); + console.log("targetLineFields", store.targetLineFields); + console.log("baseLineFields", store.baseLineFields); + } return store; }; @@ -1789,7 +1806,7 @@ return; } - dv.util.mask.showMask(dv.viewport); + dv.util.mask.showMask(dv.viewport.centerRegion); Ext.Ajax.request({ method: 'GET', @@ -1844,42 +1861,71 @@ dv.layout = layout; dv.xLayout = xLayout; dv.xResponse = xResponse; - -console.log("xResponse", xResponse); -console.log("xLayout", xLayout); -console.log("layout", layout); + + if (DV.debug) { + console.log("xResponse", xResponse); + console.log("xLayout", xLayout); + console.log("layout", layout); + } } }); }(); }, - loadChart: function(id) { + loadChart: function(id, isJsonP) { + var url = dv.baseUrl + '/api/charts/' + id, + params = '?viewClass=dimensional&links=false', + method = 'GET', + success, + failure; + if (!Ext.isString(id)) { alert('Invalid id'); return; } - - Ext.Ajax.request({ - url: dv.baseUrl + '/api/charts/' + id + '.json?viewClass=dimensional&links=false', - method: 'GET', - failure: function(r) { - dv.util.mask.hideMask(); - alert(r.responseText); - }, - success: function(r) { - var layoutConfig = Ext.decode(r.responseText), - layout = dv.api.layout.Layout(layoutConfig); - - if (layout) { - dv.favorite = Ext.clone(layout); - dv.favorite.id = layoutConfig.id; - dv.favorite.name = layoutConfig.name; - - dv.viewport.setFavorite(layout); - } + + success = function(layoutConfig) { + var layout = dv.api.layout.Layout(layoutConfig); + + if (layout) { + dv.favorite = Ext.clone(layout); + dv.favorite.id = layoutConfig.id; + dv.favorite.name = layoutConfig.name; + + dv.viewport.setFavorite(layout); } - }); + }; + + failure = function(responseText) { + dv.util.mask.hideMask(); + alert(responseText); + }; + + if (isJsonP) { + Ext.data.JsonP.request({ + url: url + '.jsonp' + params, + method: method, + failure: function(r) { + failure(r); + }, + success: function(r) { + success(r); + } + }); + } + else { + Ext.Ajax.request({ + url: url + '.json' + params, + method: method, + failure: function(r) { + failure(r.responseText); + }, + success: function(r) { + success(Ext.decode(r.responseText)); + } + }); + } }, analytical2layout: function(analytical) { === added file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/scripts/plugin.js' --- dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/scripts/plugin.js 1970-01-01 00:00:00 +0000 +++ dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/scripts/plugin.js 2013-08-03 09:55:27 +0000 @@ -0,0 +1,94 @@ +DV.plugin = {}; +DV.plugin.init = {}; + +Ext.onReady(function() { + Ext.Ajax.method = 'GET'; + + document.body.oncontextmenu = function() { + return false; + }; + + DV.plugin.getChart = function(config) { + var validateConfig, + afterRender, + createViewport, + dv, + initialize; + + validateConfig = function(config) { + if (!Ext.isObject(config)) { + console.log('Invalid chart configuration'); + return; + } + + if (!Ext.isString(config.el)) { + console.log('No element provided'); + return; + } + + if (!Ext.isString(config.uid)) { + console.log('No chart uid provided'); + return; + } + + return true; + }; + + afterRender = function() {}; + + createViewport = function() { + var el = Ext.get(dv.el), + setFavorite, + centerRegion, + width, + height; + + width = el.getWidth() - parseInt(el.getStyle('border-left-width')) - parseInt(el.getStyle('border-right-width')); + height = el.getHeight() - parseInt(el.getStyle('border-top-width')) - parseInt(el.getStyle('border-bottom-width')); + + setFavorite = function(layout) { + dv.util.chart.createChart(layout, dv); + }; + + centerRegion = Ext.create('Ext.panel.Panel', { + renderTo: el, + bodyStyle: 'border: 0 none', + width: config.width || width, + height: config.height || height, + layout: 'fit', + listeners: { + afterrender: function() { + afterRender(); + } + } + }); + + return { + setFavorite: setFavorite, + centerRegion: centerRegion + }; + }; + + initialize = function() { + if (!validateConfig(config)) { + return; + } + + dv = DV.core.getInstance({ + baseUrl: config.url, + el: config.el + }); + + dv.viewport = createViewport(); + + Ext.data.JsonP.request({ + url: dv.baseUrl + '/dhis-web-visualizer/initialize.action', + success: function(r) { + dv.init = r; + + dv.util.chart.loadChart(config.uid, true); + } + }); + }(); + }; +}); === modified file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/jsonInitialize.vm' --- dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/jsonInitialize.vm 2013-06-26 12:18:21 +0000 +++ dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/jsonInitialize.vm 2013-08-02 12:12:32 +0000 @@ -1,4 +1,8 @@ -#set($oucSize = $currentUser.getOrganisationUnit().getSortedChildren().size()){ +#set($oucSize = $currentUser.getOrganisationUnit().getSortedChildren().size()) +#if($callback)$!{callback} +( +#end +{ "contextPath":"$!{contextPath}", "user":{"id":"$!currentUser.uid","name":"$currentUser.name","isAdmin":true, "ou":{"id":"$currentUser.getOrganisationUnit().uid","name":"$currentUser.getOrganisationUnit().name"}, @@ -6,4 +10,7 @@ "rootNodes":[#foreach($node in $rootNodes){"id": "$!{node.uid}","text": "$!encoder.jsonEncode( ${node.name} )","level": 1,"hasChildrenWithCoordinates": $!{node.hasChildrenWithCoordinates()},"expanded": true}#if($velocityCount<$rootNodes.size()),#end#end], "dimensions":[#foreach($dim in $dimensions){"id":"$!{dim.uid}","name":"$!encoder.jsonEncode($!{dim.name})"}#if($velocityCount<$dimensions.size()),#end#end], "organisationUnitLevels":[#foreach($level in $levels){"id":"$!{level.uid}","name":"$!encoder.jsonEncode($!{level.name})","level":"$!{level.level}"}#if($velocityCount<$levels.size()),#end#end] -} \ No newline at end of file +} +#if($callback) +) +#end \ No newline at end of file