=== modified file 'dhis-2/dhis-web/dhis-web-event-reports/src/main/webapp/dhis-web-event-reports/app/scripts/app.js' --- dhis-2/dhis-web/dhis-web-event-reports/src/main/webapp/dhis-web-event-reports/app/scripts/app.js 2014-05-27 12:45:32 +0000 +++ dhis-2/dhis-web/dhis-web-event-reports/src/main/webapp/dhis-web-event-reports/app/scripts/app.js 2014-06-02 09:26:33 +0000 @@ -6631,7 +6631,7 @@ // root nodes requests.push({ - url: init.contextPath + '/api/organisationUnits.json?userDataViewFallback=true&include=id,name,children[id,name]', + url: init.contextPath + '/api/organisationUnits.json?userDataViewFallback=true&paging=false&include=id,name,children[id,name]', success: function(r) { init.rootNodes = Ext.decode(r.responseText).organisationUnits || []; fn(); @@ -6643,6 +6643,11 @@ url: init.contextPath + '/api/organisationUnitLevels.json?include=id,name,level&paging=false', success: function(r) { init.organisationUnitLevels = Ext.decode(r.responseText).organisationUnitLevels || []; + + if (!init.organisationUnitLevels.length) { + alert('No organisation unit levels'); + } + fn(); } }); === modified file 'dhis-2/dhis-web/dhis-web-event-visualizer/src/main/resources/org/hisp/dhis/eventvisualizer/i18n_module.properties' --- dhis-2/dhis-web/dhis-web-event-visualizer/src/main/resources/org/hisp/dhis/eventvisualizer/i18n_module.properties 2014-04-24 15:09:41 +0000 +++ dhis-2/dhis-web/dhis-web-event-visualizer/src/main/resources/org/hisp/dhis/eventvisualizer/i18n_module.properties 2014-05-30 09:55:33 +0000 @@ -155,4 +155,19 @@ start_end_dates=Start-end dates top=Top bottom=Bottom -limit=Limit \ No newline at end of file +limit=Limit +title=DHIS 2 Event Visualizer +chart_type=Chart type +column_chart=Column chart +stacked_column_chart=Stacked column chart +bar_chart=Bar chart +stacked_bar_chart=Stacked bar chart +line_chart=Line chart +area_chart=Area chart +pie_chart=Pie chart +radar_chart=Radar chart +series=Series +category=Category +events=Events +tracked_entity_instances=Tracked entity instances +count_type=Count type \ No newline at end of file === modified file 'dhis-2/dhis-web/dhis-web-event-visualizer/src/main/webapp/dhis-web-event-visualizer/app/i18n.json' --- dhis-2/dhis-web/dhis-web-event-visualizer/src/main/webapp/dhis-web-event-visualizer/app/i18n.json 2014-04-24 15:09:41 +0000 +++ dhis-2/dhis-web/dhis-web-event-visualizer/src/main/webapp/dhis-web-event-visualizer/app/i18n.json 2014-05-30 09:55:33 +0000 @@ -155,5 +155,19 @@ "start_end_dates", "top", "bottom", -"limit" +"limit", +"title", +"chart_type", +"column_chart", +"stacked_column_chart", +"bar_chart", +"stacked_bar_chart", +"line_chart", +"area_chart", +"pie_chart", +"series", +"category", +"events", +"tracked_entity_instances", +"count_type" ] === 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-05-23 16:09:18 +0000 +++ dhis-2/dhis-web/dhis-web-event-visualizer/src/main/webapp/dhis-web-event-visualizer/app/scripts/app.js 2014-05-30 10:23:05 +0000 @@ -2,7 +2,6 @@ var NS = ER, AggregateLayoutWindow, - QueryLayoutWindow, AggregateOptionsWindow, FavoriteWindow, SharingWindow, @@ -819,11 +818,13 @@ this.activateCmp.setValue(!!(sortOrder > 0 && topLimit > 0)); }, initComponent: function() { - var container = this; + var container = this, + activateWidth = 135, + sortWidth = (this.comboboxWidth - activateWidth) / 2; this.activateCmp = Ext.create('Ext.form.field.Checkbox', { boxLabel: container.boxLabel, - width: 135, + width: activateWidth, style: 'margin-bottom:4px', listeners: { change: function(cmp, newValue) { @@ -835,7 +836,7 @@ this.sortOrderCmp = Ext.create('Ext.form.field.ComboBox', { cls: 'ns-combo', style: 'margin-bottom:2px', - width: 70, + width: sortWidth, queryMode: 'local', valueField: 'id', editable: false, @@ -850,7 +851,7 @@ }); this.topLimitCmp = Ext.create('Ext.form.field.Number', { - width: 56, + width: sortWidth - 1, style: 'margin-bottom:2px; margin-left:1px', minValue: 1, maxValue: 10000, @@ -968,7 +969,7 @@ height: 25, items: { xtype: 'label', - text: NS.i18n.column, + text: NS.i18n.series, cls: 'ns-toolbar-multiselect-leftright-label' } }, @@ -1002,7 +1003,7 @@ height: 25, items: { xtype: 'label', - text: NS.i18n.row, + text: NS.i18n.category, cls: 'ns-toolbar-multiselect-leftright-label' } }, @@ -1190,7 +1191,6 @@ autoShow: true, modal: true, resizable: false, - dataType: dataType, colStore: colStore, rowStore: rowStore, fixedFilterStore: fixedFilterStore, @@ -2695,18 +2695,12 @@ isOugc = false, levels = [], groups = [], - - winMap = { - 'aggregated_values': ns.app.aggregateOptionsWindow, - 'individual_cases': ns.app.queryOptionsWindow - }, - optionsWindow = winMap[layout.dataType]; + + optionsWindow = ns.app.aggregateOptionsWindow; reset(); - ns.app.typeToolbar.setType(layout.dataType); ns.app.aggregateLayoutWindow.reset(); - ns.app.queryLayoutWindow.reset(); // data programStore.add(layout.program); @@ -2840,7 +2834,6 @@ stagesByProgramStore.loadData(stages); ns.app.aggregateLayoutWindow.resetData(); - ns.app.queryLayoutWindow.resetData(); stageId = (layout ? layout.programStage.id : null) || (stages.length === 1 ? stages[0].id : null); @@ -2919,7 +2912,6 @@ if (!layout) { dataElementSelected.removeAll(); ns.app.aggregateLayoutWindow.resetData(); - ns.app.queryLayoutWindow.resetData(); } loadDataElements(stageId, layout); @@ -3126,7 +3118,6 @@ dataElementsByStageStore.sort(); ns.app.aggregateLayoutWindow.removeDimension(element.id); - ns.app.queryLayoutWindow.removeDimension(element.id); } }; @@ -3144,7 +3135,6 @@ var dataElements = [], allElements = [], aggWindow = ns.app.aggregateLayoutWindow, - queryWindow = ns.app.queryLayoutWindow, includeKeys = ['int', 'number', 'boolean', 'bool'], ignoreKeys = ['pe', 'ou'], recordMap = { @@ -3215,36 +3205,35 @@ } aggWindow.addDimension(element, store); - queryWindow.colStore.add(element); } - if (layout && layout.dataType === 'aggregated_values') { - aggWindow.reset(true); - - if (layout.startDate && layout.endDate) { - aggWindow.fixedFilterStore.add({id: dimConf.startEndDate.value, name: dimConf.startEndDate.name}); - } - - if (layout.columns) { - for (var i = 0; i < layout.columns.length; i++) { - aggWindow.colStore.add(recordMap[layout.columns[i].dimension]); - } - } - - if (layout.rows) { - for (var i = 0; i < layout.rows.length; i++) { - aggWindow.rowStore.add(recordMap[layout.rows[i].dimension]); - } - } - - if (layout.filters) { - for (var i = 0, store, record; i < layout.filters.length; i++) { - record = recordMap[layout.filters[i].dimension]; - store = Ext.Array.contains(includeKeys, element.type) || element.optionSet ? aggWindow.filterStore : aggWindow.fixedFilterStore; - - store.add(record); - } - } + if (layout) { // && layout.dataType === 'aggregated_values') { + aggWindow.reset(true); + + if (layout.startDate && layout.endDate) { + aggWindow.fixedFilterStore.add({id: dimConf.startEndDate.value, name: dimConf.startEndDate.name}); + } + + if (layout.columns) { + for (var i = 0; i < layout.columns.length; i++) { + aggWindow.colStore.add(recordMap[layout.columns[i].dimension]); + } + } + + if (layout.rows) { + for (var i = 0; i < layout.rows.length; i++) { + aggWindow.rowStore.add(recordMap[layout.rows[i].dimension]); + } + } + + if (layout.filters) { + for (var i = 0, store, record; i < layout.filters.length; i++) { + record = recordMap[layout.filters[i].dimension]; + store = Ext.Array.contains(includeKeys, element.type) || element.optionSet ? aggWindow.filterStore : aggWindow.fixedFilterStore; + + store.add(record); + } + } } }; @@ -4468,19 +4457,18 @@ getView = function(config) { var view = {}, - dataType = ns.app.typeToolbar.getType(), - layoutWindow = ns.app.viewport.getLayoutWindow(dataType), + layoutWindow = ns.app.viewport.getLayoutWindow(), map = {}, columns = [], rows = [], filters = [], a; - view.dataType = dataType; + view.type = ns.app.viewport.chartType.getChartType(); view.program = program.getRecord(); view.programStage = stage.getRecord(); - if (!(view.dataType && view.program && view.programStage)) { + if (!(view.program && view.programStage)) { return; } @@ -5148,28 +5136,18 @@ return; } - if (view.dataType === 'aggregated_values') { - options = ns.app.aggregateOptionsWindow.getOptions(); - Ext.applyIf(view, options); - - // if order and limit -> sort - if (view.sortOrder && view.topLimit) { - view.sorting = { - id: 1, - direction: view.sortOrder == 1 ? 'DESC' : 'ASC' - }; - } - } - - if (view.dataType === 'individual_cases') { - options = ns.app.queryOptionsWindow.getOptions(); - Ext.applyIf(view, options); - - view.paging = { - page: ns.app.statusBar.getCurrentPage(), - pageSize: 100 + //if (view.dataType === 'aggregated_values') { + options = ns.app.aggregateOptionsWindow.getOptions(); + Ext.applyIf(view, options); + + // if order and limit -> sort + if (view.sortOrder && view.topLimit) { + view.sorting = { + id: 1, + direction: view.sortOrder == 1 ? 'DESC' : 'ASC' }; } + //} return view; }; @@ -5264,117 +5242,90 @@ web.report.createReport = function(layout, response, isUpdateGui) { var map = {}; - map['aggregated_values'] = function() { - var xLayout, - xColAxis, - xRowAxis, - table, - getHtml, - getXLayout = service.layout.getExtendedLayout, - getSXLayout = service.layout.getSyncronizedXLayout, - getXResponse = service.response.aggregate.getExtendedResponse, - getXAxis = service.layout.getExtendedAxis; - - response = response || ns.app.response; - - getHtml = function(xLayout, xResponse) { - xColAxis = getXAxis(xLayout, 'col'); - xRowAxis = getXAxis(xLayout, 'row'); - - return web.report.aggregate.getHtml(xLayout, xResponse, xColAxis, xRowAxis); - }; - - xLayout = getXLayout(layout); - xResponse = service.response.aggregate.getExtendedResponse(xLayout, response); - xLayout = getSXLayout(xLayout, xResponse); - - table = getHtml(xLayout, xResponse); - - if (table.tdCount > 20000 || (layout.hideEmptyRows && table.tdCount > 10000)) { - alert('Table has too many cells. Please reduce the table and try again.'); - web.mask.hide(ns.app.centerRegion); - return; - } - - if (layout.sorting) { - xResponse = web.report.aggregate.sort(xLayout, xResponse, xColAxis); - xLayout = getSXLayout(xLayout, xResponse); - table = getHtml(xLayout, xResponse); - } - - web.mask.show(ns.app.centerRegion, 'Rendering table..'); - - // timing - ns.app.dateRender = new Date(); - - ns.app.centerRegion.removeAll(true); - ns.app.centerRegion.update(table.html); - - // timing - ns.app.dateTotal = new Date(); - - // after render - ns.app.layout = layout; - ns.app.xLayout = xLayout; - ns.app.response = response; - ns.app.xResponse = xResponse; - ns.app.xColAxis = xColAxis; - ns.app.xRowAxis = xRowAxis; - ns.app.uuidDimUuidsMap = table.uuidDimUuidsMap; - ns.app.uuidObjectMap = Ext.applyIf((xColAxis ? xColAxis.uuidObjectMap : {}), (xRowAxis ? xRowAxis.uuidObjectMap : {})); - - if (NS.isSessionStorage) { - //web.events.setValueMouseHandlers(layout, response || xResponse, ns.app.uuidDimUuidsMap, ns.app.uuidObjectMap); - web.events.setColumnHeaderMouseHandlers(layout, response, xResponse); - web.storage.session.set(layout, 'table'); - } - - ns.app.widget.setGui(layout, xLayout, response, isUpdateGui, table); - - web.mask.hide(ns.app.centerRegion); - - if (NS.isDebug) { - console.log("Number of cells", table.tdCount); - console.log("DATA", (ns.app.dateCreate - ns.app.dateData) / 1000); - console.log("CREATE", (ns.app.dateRender - ns.app.dateCreate) / 1000); - console.log("RENDER", (ns.app.dateTotal - ns.app.dateRender) / 1000); - console.log("TOTAL", (ns.app.dateTotal - ns.app.dateData) / 1000); - console.log("layout", layout); - console.log("response", response); - console.log("xResponse", xResponse); - console.log("xLayout", xLayout); - console.log("core", ns.core); - console.log("app", ns.app); - } - }; - - map['individual_cases'] = function() { - var xResponse = service.response.query.getExtendedResponse(layout, response), - table = web.report.query.getHtml(layout, xResponse); - - if (layout.sorting) { - xResponse = web.report.query.sort(layout, xResponse); - table = web.report.query.getHtml(layout, xResponse); - } - - ns.app.centerRegion.removeAll(true); - ns.app.centerRegion.update(table.html); - - // after render - ns.app.layout = layout; - ns.app.response = response; - ns.app.xResponse = xResponse; - - if (NS.isSessionStorage) { - web.events.setColumnHeaderMouseHandlers(layout, response, xResponse); - } - - ns.app.widget.setGui(layout, null, response, isUpdateGui, table); - - web.mask.hide(ns.app.centerRegion); - }; - - map[layout.dataType](); + //map['aggregated_values'] = function() { + var xLayout, + xColAxis, + xRowAxis, + table, + getHtml, + getXLayout = service.layout.getExtendedLayout, + getSXLayout = service.layout.getSyncronizedXLayout, + getXResponse = service.response.aggregate.getExtendedResponse, + getXAxis = service.layout.getExtendedAxis; + + response = response || ns.app.response; + + getHtml = function(xLayout, xResponse) { + xColAxis = getXAxis(xLayout, 'col'); + xRowAxis = getXAxis(xLayout, 'row'); + + return web.report.aggregate.getHtml(xLayout, xResponse, xColAxis, xRowAxis); + }; + + xLayout = getXLayout(layout); + xResponse = service.response.aggregate.getExtendedResponse(xLayout, response); + xLayout = getSXLayout(xLayout, xResponse); + + table = getHtml(xLayout, xResponse); + + if (table.tdCount > 20000 || (layout.hideEmptyRows && table.tdCount > 10000)) { + alert('Table has too many cells. Please reduce the table and try again.'); + web.mask.hide(ns.app.centerRegion); + return; + } + + if (layout.sorting) { + xResponse = web.report.aggregate.sort(xLayout, xResponse, xColAxis); + xLayout = getSXLayout(xLayout, xResponse); + table = getHtml(xLayout, xResponse); + } + + web.mask.show(ns.app.centerRegion, 'Rendering table..'); + + // timing + ns.app.dateRender = new Date(); + + ns.app.centerRegion.removeAll(true); + ns.app.centerRegion.update(table.html); + + // timing + ns.app.dateTotal = new Date(); + + // after render + ns.app.layout = layout; + ns.app.xLayout = xLayout; + ns.app.response = response; + ns.app.xResponse = xResponse; + ns.app.xColAxis = xColAxis; + ns.app.xRowAxis = xRowAxis; + ns.app.uuidDimUuidsMap = table.uuidDimUuidsMap; + ns.app.uuidObjectMap = Ext.applyIf((xColAxis ? xColAxis.uuidObjectMap : {}), (xRowAxis ? xRowAxis.uuidObjectMap : {})); + + if (NS.isSessionStorage) { + //web.events.setValueMouseHandlers(layout, response || xResponse, ns.app.uuidDimUuidsMap, ns.app.uuidObjectMap); + web.events.setColumnHeaderMouseHandlers(layout, response, xResponse); + web.storage.session.set(layout, 'table'); + } + + ns.app.widget.setGui(layout, xLayout, response, isUpdateGui, table); + + web.mask.hide(ns.app.centerRegion); + + if (NS.isDebug) { + console.log("Number of cells", table.tdCount); + console.log("DATA", (ns.app.dateCreate - ns.app.dateData) / 1000); + console.log("CREATE", (ns.app.dateRender - ns.app.dateCreate) / 1000); + console.log("RENDER", (ns.app.dateTotal - ns.app.dateRender) / 1000); + console.log("TOTAL", (ns.app.dateTotal - ns.app.dateData) / 1000); + console.log("layout", layout); + console.log("response", response); + console.log("xResponse", xResponse); + console.log("xLayout", xLayout); + console.log("core", ns.core); + console.log("app", ns.app); + } + //}; + }; }()); }; @@ -5562,7 +5513,7 @@ chartType = Ext.create('Ext.toolbar.Toolbar', { height: 45, - style: 'padding-top:0px; border-style:none', + style: 'padding-top:1px; border:0 none; border-bottom:1px solid #ddd', getChartType: function() { for (var i = 0; i < buttons.length; i++) { if (buttons[i].pressed) { @@ -5613,183 +5564,7 @@ radar ] }); - - getDimensionStore = function() { - return Ext.create('Ext.data.Store', { - fields: ['id', 'name'], - data: function() { - var data = [ - {id: dimConf.data.dimensionName, name: dimConf.data.name}, - {id: dimConf.period.dimensionName, name: dimConf.period.name}, - {id: dimConf.organisationUnit.dimensionName, name: dimConf.organisationUnit.name} - ]; - - return data.concat(Ext.clone(ns.core.init.dimensions)); - }() - }); - }; - - colStore = getDimensionStore(); - ns.app.stores.col = colStore; - - rowStore = getDimensionStore(); - ns.app.stores.row = rowStore; - - filterStore = getDimensionStore(); - ns.app.stores.filter = filterStore; - - series = Ext.create('Ext.form.field.ComboBox', { - cls: 'ns-combo', - baseBodyCls: 'small', - style: 'margin-bottom:0', - name: ns.core.conf.finals.chart.series, - queryMode: 'local', - editable: false, - valueField: 'id', - displayField: 'name', - width: (ns.core.conf.layout.west_fieldset_width / 3), - value: ns.core.conf.finals.dimension.data.dimensionName, - filterNext: function() { - category.filter(this.getValue()); - filter.filter([this.getValue(), category.getValue()]); - }, - store: colStore, - listeners: { - added: function(cb) { - cb.filterNext(); - }, - select: function(cb) { - cb.filterNext(); - } - } - }); - - category = Ext.create('Ext.form.field.ComboBox', { - cls: 'ns-combo', - baseBodyCls: 'small', - style: 'margin-bottom:0', - name: ns.core.conf.finals.chart.category, - queryMode: 'local', - editable: false, - lastQuery: '', - valueField: 'id', - displayField: 'name', - width: (ns.core.conf.layout.west_fieldset_width / 3), - value: ns.core.conf.finals.dimension.period.dimensionName, - filter: function(value) { - if (Ext.isString(value)) { - if (value === this.getValue()) { - this.clearValue(); - } - - this.store.clearFilter(); - - this.store.filterBy(function(record, id) { - return id !== value; - }); - } - }, - filterNext: function() { - filter.filter([series.getValue(), this.getValue()]); - }, - store: rowStore, - listeners: { - added: function(cb) { - cb.filterNext(); - }, - select: function(cb) { - cb.filterNext(); - } - } - }); - - filter = Ext.create('Ext.form.field.ComboBox', { - cls: 'ns-combo', - multiSelect: true, - baseBodyCls: 'small', - style: 'margin-bottom:0', - name: ns.core.conf.finals.chart.filter, - queryMode: 'local', - editable: false, - lastQuery: '', - valueField: 'id', - displayField: 'name', - width: (ns.core.conf.layout.west_fieldset_width / 3) + 1, - value: ns.core.conf.finals.dimension.organisationUnit.dimensionName, - filter: function(values) { - var a = Ext.clone(this.getValue()), - b = []; - - for (var i = 0; i < a.length; i++) { - if (!Ext.Array.contains(values, a[i])) { - b.push(a[i]); - } - } - - this.clearValue(); - this.setValue(b); - - this.store.filterBy(function(record, id) { - return !Ext.Array.contains(values, id); - }); - }, - store: filterStore, - listeners: { - beforedeselect: function(cb) { - return cb.getValue().length !== 1; - } - } - }); - - layout = Ext.create('Ext.toolbar.Toolbar', { - id: 'chartlayout_tb', - style: 'padding:2px 0 0 1px; background:#f5f5f5; border:0 none; border-top:1px dashed #ccc; border-bottom:1px solid #ccc', - height: 45, - items: [ - { - xtype: 'container', - bodyStyle: 'border-style:none; background-color:transparent; padding:0', - style: 'margin:0', - items: [ - { - xtype: 'label', - text: NS.i18n.series, - style: 'font-size:11px; font-weight:bold; padding:0 4px' - }, - { bodyStyle: 'padding:1px 0; border-style:none; background-color:transparent' }, - series - ] - }, - { - xtype: 'container', - bodyStyle: 'border-style:none; background-color:transparent; padding:0', - style: 'margin:0', - items: [ - { - xtype: 'label', - text: NS.i18n.category, - style: 'font-size:11px; font-weight:bold; padding:0 4px' - }, - { bodyStyle: 'padding:1px 0; border-style:none; background-color:transparent' }, - category - ] - }, - { - xtype: 'container', - bodyStyle: 'border-style:none; background-color:transparent; padding:0', - items: [ - { - xtype: 'label', - text: NS.i18n.filters, - style: 'font-size:11px; font-weight:bold; padding:0 4px' - }, - { bodyStyle: 'padding:1px 0; border-style:none; background-color:transparent' }, - filter - ] - } - ] - }); - + widget = LayerWidgetEvent(); accordion = Ext.create('Ext.panel.Panel', { @@ -5841,7 +5616,7 @@ } // state - ns.app.viewport.getLayoutWindow(config.dataType).saveState(); + ns.app.viewport.getLayoutWindow().saveState(); ns.core.web.report.getData(config, false); }; @@ -5864,7 +5639,6 @@ }(), items: [ chartType, - layout, accordion ], listeners: { @@ -5878,7 +5652,7 @@ text: 'Layout', menu: {}, handler: function() { - getLayoutWindow(typeToolbar.getType()).show(); + getLayoutWindow().show(); }, listeners: { added: function() { @@ -5891,7 +5665,7 @@ text: NS.i18n.options, menu: {}, handler: function() { - getOptionsWindow(typeToolbar.getType()).show(); + getOptionsWindow().show(); }, listeners: { added: function() { @@ -6233,33 +6007,18 @@ } }); - getLayoutWindow = function(dataType) { - if (dataType === 'aggregated_values') { - return ns.app.aggregateLayoutWindow; - } - - if (dataType === 'individual_cases') { - return ns.app.queryLayoutWindow; - } - - return null; + getLayoutWindow = function() { + return ns.app.aggregateLayoutWindow; }; - getOptionsWindow = function(dataType) { - if (dataType === 'aggregated_values') { - return ns.app.aggregateOptionsWindow; - } - - if (dataType === 'individual_cases') { - return ns.app.queryOptionsWindow; - } - - return null; + getOptionsWindow = function() { + return ns.app.aggregateOptionsWindow; }; viewport = Ext.create('Ext.container.Viewport', { layout: 'border', getLayoutWindow: getLayoutWindow, + chartType: chartType, items: [ westRegion, centerRegion @@ -6372,7 +6131,7 @@ // i18n requests.push({ - url: init.contextPath + '/api/i18n?package=org.hisp.dhis.eventchart', + url: init.contextPath + '/api/i18n?package=org.hisp.dhis.eventvisualizer', method: 'POST', headers: { 'Content-Type': 'application/json', === 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-05-23 16:09:18 +0000 +++ dhis-2/dhis-web/dhis-web-event-visualizer/src/main/webapp/dhis-web-event-visualizer/app/scripts/core.js 2014-05-30 10:23:05 +0000 @@ -1822,15 +1822,11 @@ var paramString, dimensions = Ext.Array.clean([].concat(view.columns || [], view.rows || [])), ignoreKeys = ['longitude', 'latitude'], - dataTypeMap = { - 'aggregated_values': 'aggregate', - 'individual_cases': 'query' - }, nameItemsMap; format = format || 'json'; - paramString = '/api/analytics/events/' + dataTypeMap[view.dataType] + '/' + view.program.id + '.' + format + '?'; + paramString = '/api/analytics/events/aggregate/' + view.program.id + '.' + format + '?'; // stage paramString += 'stage=' + view.programStage.id; === modified file 'dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/app/scripts/app.js' --- dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/app/scripts/app.js 2014-05-30 08:47:33 +0000 +++ dhis-2/dhis-web/dhis-web-mapping/src/main/webapp/dhis-web-mapping/app/scripts/app.js 2014-06-02 09:26:33 +0000 @@ -8601,7 +8601,7 @@ // root nodes requests.push({ - url: init.contextPath + '/api/organisationUnits.json?userDataViewFallback=true&include=id,name,children[id,name]', + url: init.contextPath + '/api/organisationUnits.json?userDataViewFallback=true&paging=false&include=id,name,children[id,name]', success: function(r) { init.rootNodes = Ext.decode(r.responseText).organisationUnits || []; fn(); @@ -8613,6 +8613,11 @@ url: init.contextPath + '/api/organisationUnitLevels.json?include=id,name,level&paging=false', success: function(r) { init.organisationUnitLevels = Ext.decode(r.responseText).organisationUnitLevels || []; + + if (!init.organisationUnitLevels.length) { + alert('No organisation unit levels'); + } + fn(); } }); === modified file 'dhis-2/dhis-web/dhis-web-pivot/src/main/webapp/dhis-web-pivot/app/scripts/app.js' --- dhis-2/dhis-web/dhis-web-pivot/src/main/webapp/dhis-web-pivot/app/scripts/app.js 2014-05-28 08:59:08 +0000 +++ dhis-2/dhis-web/dhis-web-pivot/src/main/webapp/dhis-web-pivot/app/scripts/app.js 2014-06-02 09:26:33 +0000 @@ -5846,7 +5846,7 @@ // root nodes requests.push({ - url: init.contextPath + '/api/organisationUnits.json?userDataViewFallback=true&include=id,name,children[id,name]', + url: init.contextPath + '/api/organisationUnits.json?userDataViewFallback=true&paging=false&include=id,name,children[id,name]', success: function(r) { init.rootNodes = Ext.decode(r.responseText).organisationUnits || []; fn(); @@ -5858,6 +5858,11 @@ url: init.contextPath + '/api/organisationUnitLevels.json?include=id,name,level&paging=false', success: function(r) { init.organisationUnitLevels = Ext.decode(r.responseText).organisationUnitLevels || []; + + if (!init.organisationUnitLevels.length) { + alert('No organisation unit levels'); + } + fn(); } }); @@ -5878,10 +5883,9 @@ ouc = Ext.Array.clean(ouc.concat(Ext.Array.pluck(org.children, 'id') || [])); } - init.user = { - ou: ou, - ouc: ouc - } + init.user = init.user || {}; + init.user.ou = ou; + init.user.ouc = ouc; } else { alert('User is not assigned to any organisation units'); === 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 2014-05-28 08:59:08 +0000 +++ dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/scripts/app.js 2014-06-02 09:26:33 +0000 @@ -5501,7 +5501,7 @@ // root nodes requests.push({ - url: init.contextPath + '/api/organisationUnits.json?userDataViewFallback=true&include=id,name,children[id,name]', + url: init.contextPath + '/api/organisationUnits.json?userDataViewFallback=true&paging=false&include=id,name,children[id,name]', success: function(r) { init.rootNodes = Ext.decode(r.responseText).organisationUnits || []; fn(); @@ -5513,6 +5513,11 @@ url: init.contextPath + '/api/organisationUnitLevels.json?include=id,name,level&paging=false', success: function(r) { init.organisationUnitLevels = Ext.decode(r.responseText).organisationUnitLevels || []; + + if (!init.organisationUnitLevels.length) { + alert('No organisation unit levels'); + } + fn(); } }); @@ -5533,10 +5538,9 @@ ouc = Ext.Array.clean(ouc.concat(Ext.Array.pluck(org.children, 'id') || [])); } - init.user = { - ou: ou, - ouc: ouc - } + init.user = init.user || {}; + init.user.ou = ou; + init.user.ouc = ouc; } else { alert('User is not assigned to any organisation units');