=== 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 2011-12-21 20:36:01 +0000 +++ dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/app.js 2011-12-21 23:12:40 +0000 @@ -999,7 +999,7 @@ success: function(r) { if (!r.responseText) { DV.mask.hide(); - alert("Invalid uid parameter"); + alert('Invalid uid'); return; } var f = Ext.JSON.decode(r.responseText), === modified file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/plugin/plugin.html' --- dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/plugin/plugin.html 2011-12-21 20:36:01 +0000 +++ dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/plugin/plugin.html 2011-12-21 23:12:40 +0000 @@ -11,16 +11,18 @@

My chart 1

+ +

My chart 2

+
=== modified file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/plugin/plugin.js' --- dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/plugin/plugin.js 2011-12-21 20:36:01 +0000 +++ dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/plugin/plugin.js 2011-12-21 23:16:44 +0000 @@ -2,10 +2,8 @@ DHIS.conf = { finals: { ajax: { - url_visualizer: '../', - url_commons: '../../dhis-web-commons-ajax-json/', - url_portal: '../../dhis-web-portal/', - url_data: 'getAggregatedValuesPlugin' + data_get: 'dhis-web-visualizer/app/getAggregatedValuesPlugin.action', + favorite_get: 'api/charts/' }, dimension: { data: { @@ -35,9 +33,9 @@ category: 'category', filter: 'filter', column: 'column', - column_stacked: 'column_stacked', + stackedcolumn: 'stackedcolumn', bar: 'bar', - bar_stacked: 'bar_stacked', + stackedbar: 'stackedbar', line: 'line', area: 'area', pie: 'pie' @@ -49,8 +47,8 @@ DHIS.initialize = function() { DHIS.store.column = DHIS.store.defaultChartStore; - DHIS.store.column_stacked = DHIS.store.defaultChartStore; - DHIS.store.bar_stacked = DHIS.store.bar; + DHIS.store.stackedcolumn = DHIS.store.defaultChartStore; + DHIS.store.stackedbar = DHIS.store.bar; DHIS.store.line = DHIS.store.defaultChartStore; DHIS.store.area = DHIS.store.defaultChartStore; DHIS.store.pie = DHIS.store.defaultChartStore; @@ -62,6 +60,24 @@ DHIS.util = { dimension: { + indicator: { + getIdsFromObjects: function(indicators) { + var a = [] + for (var i = 0; i < indicators.length; i++) { + a.push(indicators[i].internalId); + } + return a; + } + }, + dataelement: { + getIdsFromObjects: function(dataelements) { + var a = [] + for (var i = 0; i < dataelements.length; i++) { + a.push(dataelements[i].internalId); + } + return a; + } + }, data: { getUrl: function(isFilter) { var a = []; @@ -81,6 +97,15 @@ a.push(r + '=true') }); return (isFilter && a.length > 1) ? a.slice(0,1) : a; + }, + getRelativesFromObject: function(obj) { + var a = []; + for (var k in obj) { + if (obj[k]) { + a.push(k); + } + } + return a; } }, organisationunit: { @@ -90,6 +115,13 @@ a.push('organisationUnitIds=' + r) }); return (isFilter && a.length > 1) ? a.slice(0,1) : a; + }, + getIdsFromObjects: function(organisationunits) { + var a = [] + for (var i = 0; i < organisationunits.length; i++) { + a.push(organisationunits[i].internalId); + } + return a; } } }, @@ -351,6 +383,37 @@ DHIS.state.state = project.state; DHIS.value.getValues(project); + }, + setState: function(conf) { + if (conf.uid) { + Ext.Ajax.request({ + url: conf.url + DHIS.conf.finals.ajax.favorite_get + conf.uid + '.json', + scope: this, + success: function(r) { + if (!r.responseText) { + alert('Invalid uid'); + return; + } + var f = Ext.JSON.decode(r.responseText); + conf.type = f.type.toLowerCase(); + conf.periods = DHIS.util.dimension.period.getRelativesFromObject(f.relativePeriods); + conf.organisationunits = DHIS.util.dimension.organisationunit.getIdsFromObjects(f.organisationUnits); + conf.series = f.series.toLowerCase(); + conf.category = f.category.toLowerCase(); + conf.filter = f.filter.toLowerCase(); + conf.legendPosition = conf.legendPosition || false; + + if (f.indicators) { + conf.indicators = DHIS.util.dimension.indicator.getIdsFromObjects(f.indicators); + } + if (f.dataelements) { + conf.dataelements = DHIS.util.dimension.dataelement.getIdsFromObjects(f.dataelements); + } + + this.getState(conf); + } + }); + } } }; @@ -361,7 +424,7 @@ params = params.concat(DHIS.util.dimension[project.state.category.dimension].getUrl()); params = params.concat(DHIS.util.dimension[project.state.filter.dimension].getUrl(true)); - var baseUrl = DHIS.util.string.extendUrl(project.state.conf.url) + DHIS.conf.finals.ajax.url_data + '.action'; + var baseUrl = DHIS.util.string.extendUrl(project.state.conf.url) + DHIS.conf.finals.ajax.data_get; Ext.Array.each(params, function(item) { baseUrl = Ext.String.urlAppend(baseUrl, item); }); @@ -439,7 +502,7 @@ this[project.state.type](project); DHIS.exe.execute(); }, - column: function(project) { + column: function(project, isStacked) { project.chart = Ext.create('Ext.chart.Chart', { renderTo: project.state.conf.el, width: project.state.conf.width || this.el.getWidth(), @@ -472,7 +535,7 @@ axis: 'left', xField: project.store.bottom, yField: project.store.left, - stacked: project.state.conf.stacked, + stacked: isStacked, style: { opacity: 0.8 } @@ -482,7 +545,10 @@ DHIS.projects.push(project); }, - bar: function(project) { + stackedcolumn: function(project) { + this.column(project, true); + }, + bar: function(project, isStacked) { project.chart = Ext.create('Ext.chart.Chart', { renderTo: project.state.conf.el, width: project.state.conf.width || this.el.getWidth(), @@ -515,7 +581,7 @@ axis: 'bottom', xField: project.store.left, yField: project.store.bottom, - stacked: project.state.conf.stacked, + stacked: isStacked, style: { opacity: 0.8 } @@ -525,6 +591,9 @@ DHIS.projects.push(project); }, + stackedbar: function(project) { + this.bar(project, true); + }, line: function(project) { project.chart = Ext.create('Ext.chart.Chart', { renderTo: project.state.conf.el, @@ -634,9 +703,8 @@ DHIS.exe = { allow: true, queue: [], - addToQueue: function(obj) { - DHIS.exe.queue.push(obj); - + addToQueue: function(conf) { + DHIS.exe.queue.push(conf); if (DHIS.exe.allow) { DHIS.exe.allow = false; DHIS.exe.execute(); @@ -644,7 +712,13 @@ }, execute: function() { if (this.queue.length) { - DHIS.state.getState(this.queue.shift()); + var conf = this.queue.shift(); + if (conf.uid) { + DHIS.state.setState(conf); + } + else { + DHIS.state.getState(conf); + } } } };