=== modified file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/util/commons.ajax.js' --- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/util/commons.ajax.js 2010-08-31 08:12:53 +0000 +++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/util/commons.ajax.js 2010-08-31 08:31:58 +0000 @@ -4,13 +4,17 @@ function DataDictionary() { + var ALL_KEY = 'all'; + var dataElementsGroups = new Array(); - var dataElements = new Array(); + var dataElementGroupList = new Array(); var indicatorGroups = new Array(); - var indicators = new Array(); + var indicatorGroupList = new Array(); + + var categoryOptionComboList = new Array(); this.loadDataElementGroups = function( target ) { @@ -20,8 +24,8 @@ { jQuery.getJSON('../dhis-web-commons-ajax-json/getDataElementGroups.action' , function( json ){ - target.append(''); - dataElementsGroups.push( new DataElementGroup(100, 'ALL') ); + target.append(''); + dataElementsGroups.push( new DataElementGroup(ALL_KEY, 'ALL') ); jQuery.each( json.dataElementGroups, function(i, item){ dataElementsGroups.push( new DataElementGroup(item.id, item.name) ); target.append(''); @@ -34,6 +38,38 @@ } } + this.loadAllDataElements = function( target ) + { + this.loadDataElementsByGroup( ALL_KEY, target); + } + + this.loadDataElementsByGroup = function( id,target ) + { + target.children().remove(); + + var des = dataElementGroupList[id]; + + if( des == null ) + { + des = new Array(); + + jQuery.getJSON('../dhis-web-commons-ajax-json/getDataElements.action' + ,{id:id} + , function( json ){ + jQuery.each( json.dataElements, function(i, item){ + des.push( new DataElement(item.id, item.name) ); + target.append(''); + }); + dataElementGroupList[id] = des; + }); + }else{ + jQuery.each( des, function(i, item){ + target.append(''); + }); + } + } + + this.loadIndicatorGroups = function( target ) { target.children().remove(); @@ -42,6 +78,8 @@ { jQuery.getJSON('../dhis-web-commons-ajax-json/getIndicatorGroups.action' , function( json ){ + target.append(''); + indicatorGroups.push( new IndicatorGroup( ALL_KEY, 'ALL') ); jQuery.each( json.indicatorGroups, function(i, item){ indicatorGroups.push( new IndicatorGroup(item.id, item.name) ); target.append(''); @@ -54,163 +92,78 @@ } } - this.loadDataElements = function( target ) + this.loadAllIndicators = function( target ) { - target.children().remove(); - - if( dataElements.length == 0 ) - { - if(this.id == 100) this.id = ''; - jQuery.getJSON('../dhis-web-commons-ajax-json/getDataElements.action' - , function( json ){ - jQuery.each( json.dataElements, function(i, item){ - dataElements.push( new DataElement(item.id, item.name) ); - target.append(''); - }); - }); - }else{ - jQuery.each( dataElements, function(i, item){ - target.append(''); - }); - } + this.loadIndicatorsByGroup( ALL_KEY, target); } - this.loadIndicators = function( target ) + this.loadIndicatorsByGroup = function( id,target ) { target.children().remove(); - if( indicators.length == 0 ) - { - jQuery.getJSON('../dhis-web-commons-ajax-json/getIndicators.action' - , {id: this.id } + var ins = indicatorGroupList[id]; + + if( ins == null ) + { + ins = new Array(); + + jQuery.getJSON('../dhis-web-commons-ajax-json/getIndicators.action' + ,{id:id} , function( json ){ jQuery.each( json.indicators, function(i, item){ - indicators.push( new Indicator(item.id, item.name) ); - target.append(''); - }); - }); - }else{ - jQuery.each( indicators, function(i, item){ - target.append(''); - }); - } + ins.push( new Indicator(item.id, item.name) ); + target.append(''); + }); + indicatorGroupList[id] = ins; + }); + }else{ + jQuery.each( ins, function(i, item){ + target.append(''); + }); + } + } + + this.loadCategoryOptionComboByDE = function( id, target ) + { + target.children().remove(); + + var options = categoryOptionComboList[id]; + + if( options == null ) + { + options = new Array(); + + jQuery.getJSON('../dhis-web-commons-ajax-json/getCategoryOptionCombos.action' + ,{id:id} + , function( json ){ + jQuery.each( json.categoryOptionCombos, function(i, item){ + options.push( new OptionCombo(item.id, item.name) ); + target.append(''); + }); + categoryOptionComboList[id] = options; + }); + }else{ + jQuery.each( options, function(i, item){ + target.append(''); + }); + } + } } var DataDictionary = new DataDictionary(); - - - -function DataElementGroups() -{ - var groups = new Array(); - - this.load = function( target ) - { - target.children().remove(); - - if( groups.length == 0 ) - { - jQuery.getJSON('../dhis-web-commons-ajax-json/getDataElementGroups.action' - , function( json ){ - target.append(''); - groups.push( new DataElementGroup(100, 'ALL') ); - jQuery.each( json.dataElementGroups, function(i, item){ - groups.push( new DataElementGroup(item.id, item.name) ); - target.append(''); - }); - }); - }else{ - jQuery.each( groups, function(i, item){ - target.append(''); - }); - } - } - - this.members = function() - { - return groups; - } - - this.getDataElementGroup = function( id ) - { - var result = null; - jQuery.each( groups, function(i, item){ - if( id == item.id ) result = item; - }); - return result; - } - -} - function DataElementGroup( id_, name_ ) { this.id = id_; - this.name = name_; - var elements = new Array(); - - this.members = function( target ) - { - target.children().remove(); - - if( elements.length == 0 ) - { - if(this.id == 100) this.id = ''; - jQuery.getJSON('../dhis-web-commons-ajax-json/getDataElements.action' - , {id: this.id } - , function( json ){ - jQuery.each( json.dataElements, function(i, item){ - elements.push( new DataElement(item.id, item.name) ); - target.append(''); - }); - }); - }else{ - jQuery.each( elements, function(i, item){ - target.append(''); - }); - } - } - - this.getDataElement = function( id ) - { - var result = null; - jQuery.each( elements, function(i, item){ - if( id == item.id ) result = item; - }); - - return result; - } + this.name = name_; } function DataElement( id_, name_ ) { this.id = id_; this.name = name_; - - var optionCombos = new Array(); - - this.getCategoryOptionCombos = function( target ) - { - target.children().remove(); - - if( optionCombos.length == 0 ) - { - jQuery.getJSON('../dhis-web-commons-ajax-json/getCategoryOptionCombos.action' - , {id: this.id } - , function( json ){ - jQuery.each( json.categoryOptionCombos, function(i, item){ - optionCombos.push( new OptionCombo(item.id, item.name) ); - target.append(''); - }); - }); - }else{ - jQuery.each( optionCombos, function(i, item){ - target.append(''); - }); - } - } } function OptionCombo( id_, name_ ) @@ -219,89 +172,10 @@ this.name = name_; } -var DATA_ELEMENT_GROUPS = new DataElementGroups(); - -//==================================================================================== -// DATAELEMENT & DATA ELEMENT GROUP & CATEGORY OPTION COMBO -//==================================================================================== - -function IndicatorGroups() -{ - var groups = new Array(); - - this.load = function( target ) - { - target.children().remove(); - - if( groups.length == 0 ) - { - jQuery.getJSON('../dhis-web-commons-ajax-json/getIndicatorGroups.action' - , function( json ){ - jQuery.each( json.indicatorGroups, function(i, item){ - groups.push( new IndicatorGroup(item.id, item.name) ); - target.append(''); - }); - }); - }else{ - jQuery.each( groups, function(i, item){ - target.append(''); - }); - } - } - - this.members = function() - { - return groups; - } - - this.getIndicatorGroup = function( id ) - { - var result = null; - jQuery.each( groups, function(i, item){ - if( id == item.id ) result = item; - }); - - return result; - } - -} - function IndicatorGroup( id_, name_ ) { this.id = id_; - this.name = name_; - var elements = new Array(); - - this.members = function( target ) - { - target.children().remove(); - - if( elements.length == 0 ) - { - jQuery.getJSON('../dhis-web-commons-ajax-json/getIndicators.action' - , {id: this.id } - , function( json ){ - jQuery.each( json.indicators, function(i, item){ - elements.push( new Indicator(item.id, item.name) ); - target.append(''); - }); - }); - }else{ - jQuery.each( elements, function(i, item){ - target.append(''); - }); - } - } - - this.getIndicator = function( id ) - { - var result = null; - jQuery.each( elements, function(i, item){ - if( id == item.id ) result = item; - }); - - return result; - } + this.name = name_; } function Indicator( id_, name_ ) @@ -310,7 +184,4 @@ this.name = name_; } -var INDICATOR_GROUPS = new IndicatorGroups(); - - === modified file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/util/commons.js' --- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/util/commons.js 2010-08-31 08:12:53 +0000 +++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/util/commons.js 2010-08-31 08:31:58 +0000 @@ -308,7 +308,7 @@ * @param parentElement the DOM object. * @param childElementName the name of the element. */ -function getElementValue( parentElement, childElementName ) +function getElementaValue( parentElement, childElementName ) { var textNode = parentElement.getElementsByTagName( childElementName )[0].firstChild; @@ -1018,8 +1018,64 @@ container.show( jQuery.blockUI({message:null})); } +/** +* load All Data Element Groups into select combo box +* @param selectorJQueryString is String fo jQuery selector, this string is anything but it must valid with jQuery format. This component will contain list of result* +*/ function loadDataElementGroups( selectorJQueryString ) { DataDictionary.loadDataElementGroups( jQuery( selectorJQueryString ) ); -} \ No newline at end of file +} +/** +* load data elements by data element group +* @param selectorJQueryString is String fo jQuery selector, this string is anything but it must valid with jQuery format. This component will contain list of result* +* @param id is data element group id +*/ +function loadDataElementsByGroup( id, selectorJQueryString ) +{ + DataDictionary.loadDataElementsByGroup( id, jQuery( selectorJQueryString ) ); +} +/** +* load All Data Elements into select combo box +* @param selectorJQueryString is String fo jQuery selector, this string is anything but it must valid with jQuery format. This component will contain list of result* +*/ +function loadAllDataElements( selectorJQueryString ) +{ + DataDictionary.loadAllDataElements( jQuery( selectorJQueryString ) ); +} +/** +* load Category Option Combo of data element +* @param selectorJQueryString is String fo jQuery selector, this string is anything but it must valid with jQuery format. This component will contain list of result* +* @param id is data element id +*/ +function loadCategoryOptionComboByDE( id, selectorJQueryString) +{ + DataDictionary.loadCategoryOptionComboByDE( id, jQuery( selectorJQueryString ) ); +} +/** +* load all indicator groups into select combo box +* @param selectorJQueryString is String fo jQuery selector, this string is anything but it must valid with jQuery format. This component will contain list of result* +*/ +function loadIndicatorGroups( selectorJQueryString ) +{ + DataDictionary.loadIndicatorGroups( jQuery( selectorJQueryString ) ); +} +/** +* load indicators by group +* @param selectorJQueryString is String fo jQuery selector, this string is anything but it must valid with jQuery format. This component will contain list of result* +* @param id is indicator group id +*/ +function loadIndicatorsByGroup( id, selectorJQueryString ) +{ + DataDictionary.loadIndicatorsByGroup( id, jQuery( selectorJQueryString )); +} +/** +* load all indicator into select combo box +* @param selectorJQueryString is String fo jQuery selector, this string is anything but it must valid with jQuery format. This component will contain list of result* +*/ +function loadAllIndicators( selectorJQueryString ) +{ + DataDictionary.loadAllIndicators( jQuery( selectorJQueryString ) ); +} + === modified file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/util/jquery.ext.js' --- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/util/jquery.ext.js 2010-08-31 08:12:53 +0000 +++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/util/jquery.ext.js 2010-08-31 08:31:58 +0000 @@ -1,29 +1,5 @@ jQuery.extend({ postJSON: function( url, data, callback ) { return jQuery.post(url, data, callback, "json"); - }, - loadDataElementGroups: function( target ){ - DATA_ELEMENT_GROUPS.load( jQuery( target ) ); - }, - loadDataElementByGroup: function( groupId, target ){ - var group = DATA_ELEMENT_GROUPS.getDataElementGroup( groupId ); - if( group == null ){ - group = new DataElementGroup( groupId ); - } - group.members( jQuery( target ) ); - }, - loadCategoryOptionCombos: function( dataElementId, target ){ - var dataElement = new DataElement( dataElementId ); - dataElement.getCategoryOptionCombos( jQuery(target) ); - }, - loadIndicatorGroups: function( target ){ - INDICATOR_GROUPS.load( jQuery( target ) ); - }, - loadIndicatorByGroup: function( groupId, target ){ - var group = INDICATOR_GROUPS.getIndicatorGroup( groupId ); - if( group == null ){ - group = new IndicatorGroup( groupId ); - } - group.members( jQuery( target ) ); } }); \ No newline at end of file === modified file 'dhis-2/dhis-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/report/dataelementExpressionBuilderForm.vm' --- dhis-2/dhis-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/report/dataelementExpressionBuilderForm.vm 2010-08-31 08:12:53 +0000 +++ dhis-2/dhis-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/report/dataelementExpressionBuilderForm.vm 2010-08-31 08:31:58 +0000 @@ -48,7 +48,7 @@ function deExpressionBuilderForm() { - jQuery.loadDataElementGroups("#dataelement select[id=groupSelect]") ; + loadDataElementGroups("#dataelement select[id=groupSelect]") ; setFieldValue( 'dataelement textarea[id=formula]', getFieldValue('expression') ); @@ -57,12 +57,12 @@ function getDataElements( id, target ) { - jQuery.loadDataElementByGroup( id, target ); + loadDataElementsByGroup( id, target ); } function getOptionCombos( id, targetId ) { - jQuery.loadCategoryOptionCombos( id, targetId ); + loadCategoryOptionComboByDE( id, targetId ); } === modified file 'dhis-2/dhis-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/report/indicatorExpressionBuilderForm.vm' --- dhis-2/dhis-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/report/indicatorExpressionBuilderForm.vm 2010-08-31 08:12:53 +0000 +++ dhis-2/dhis-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/report/indicatorExpressionBuilderForm.vm 2010-08-31 08:31:58 +0000 @@ -30,14 +30,14 @@ function inExpressionBuilderForm() { - jQuery.loadIndicatorGroups( "#indicator select[id=groupSelect]"); + loadIndicatorGroups( "#indicator select[id=groupSelect]"); showPopupWindowById( 'indicator', 510, 340 ); } function getIndicators( id, target) { - jQuery.loadIndicatorByGroup( id, target ); + loadIndicatorsByGroup( id, target ); }