=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementCategoryService.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementCategoryService.java 2009-10-18 22:44:41 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/DataElementCategoryService.java 2009-10-20 12:49:32 +0000 @@ -141,14 +141,6 @@ Collection getDataElementCategoryOptions( Collection identifiers ); /** - * Retrieves the DataElementCategoryOption with the given name. - * - * @param name the name of the DataElementCategoryOption. - * @return the DataElementCategoryOption. - */ - DataElementCategoryOption getDataElementCategoryOptionByName( String name ); - - /** * Returns all DataElementCategoryOptions. * * @return a collection of all DataElementCategoryOptions, or an empty collection if there === modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/DefaultDataElementCategoryService.java' --- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/DefaultDataElementCategoryService.java 2009-10-18 22:44:41 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataelement/DefaultDataElementCategoryService.java 2009-10-20 12:49:32 +0000 @@ -62,9 +62,9 @@ this.dataElementCategoryStore = dataElementCategoryStore; } - private GenericNameStore dataElementCategoryOptionStore; + private GenericStore dataElementCategoryOptionStore; - public void setDataElementCategoryOptionStore( GenericNameStore dataElementCategoryOptionStore ) + public void setDataElementCategoryOptionStore( GenericStore dataElementCategoryOptionStore ) { this.dataElementCategoryOptionStore = dataElementCategoryOptionStore; } @@ -211,11 +211,6 @@ return categoryOptions; } - public DataElementCategoryOption getDataElementCategoryOptionByName( String name ) - { - return dataElementCategoryOptionStore.getByName( name ); - } - public Collection getAllDataElementCategoryOptions() { return dataElementCategoryOptionStore.getAll(); === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/java/org/hisp/dhis/dd/action/category/GetDataElementCategoryAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/java/org/hisp/dhis/dd/action/category/GetDataElementCategoryAction.java 2009-10-19 17:10:19 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/java/org/hisp/dhis/dd/action/category/GetDataElementCategoryAction.java 2009-10-20 12:49:32 +0000 @@ -80,8 +80,6 @@ { dataElementCategory = dataElementCategoryService.getDataElementCategory( id ); - System.out.println( "options " + dataElementCategory.getCategoryOptions().size() ); - return SUCCESS; } } === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/java/org/hisp/dhis/dd/action/category/UpdateDataElementCategoryAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/java/org/hisp/dhis/dd/action/category/UpdateDataElementCategoryAction.java 2009-10-19 17:10:19 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/java/org/hisp/dhis/dd/action/category/UpdateDataElementCategoryAction.java 2009-10-20 12:49:32 +0000 @@ -27,6 +27,9 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +import java.util.ArrayList; +import java.util.List; + import org.hisp.dhis.dataelement.DataElementCategory; import org.hisp.dhis.dataelement.DataElementCategoryService; @@ -68,6 +71,13 @@ this.name = name; } + private List categoryOptions = new ArrayList(); + + public void setCategoryOptions( List categoryOptions ) + { + this.categoryOptions = categoryOptions; + } + // ------------------------------------------------------------------------- // Action implementation // ------------------------------------------------------------------------- @@ -75,9 +85,19 @@ public String execute() { DataElementCategory dataElementCategory = dataElementCategoryService.getDataElementCategory( id ); - dataElementCategory.setName( name ); + // --------------------------------------------------------------------- + // CategoryOptions can only be sorted on update + // --------------------------------------------------------------------- + + dataElementCategory.getCategoryOptions().clear(); + + for ( String id : categoryOptions ) + { + dataElementCategory.getCategoryOptions().add( dataElementCategoryService.getDataElementCategoryOption( Integer.parseInt( id ) ) ); + } + dataElementCategoryService.updateDataElementCategory( dataElementCategory ); return SUCCESS; === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/java/org/hisp/dhis/dd/action/category/ValidateDataElementCategoryAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/java/org/hisp/dhis/dd/action/category/ValidateDataElementCategoryAction.java 2009-10-19 17:10:19 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/java/org/hisp/dhis/dd/action/category/ValidateDataElementCategoryAction.java 2009-10-20 12:49:32 +0000 @@ -27,9 +27,6 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import java.util.ArrayList; -import java.util.List; - import org.hisp.dhis.dataelement.DataElementCategory; import org.hisp.dhis.dataelement.DataElementCategoryService; import org.hisp.dhis.i18n.I18n; @@ -78,13 +75,6 @@ { this.name = name; } - - private List categoryOptionNames = new ArrayList(); - - public void setCategoryOptionNames( List categoryOptionNames ) - { - this.categoryOptionNames = categoryOptionNames; - } // ------------------------------------------------------------------------- // Output @@ -130,13 +120,8 @@ } } - if ( categoryOptionNames == null || categoryOptionNames.size() == 0 ) - { - message = i18n.getString( "must_include_category_option" ); - - return INPUT; - } - + message = "ok"; + return SUCCESS; } } === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/java/org/hisp/dhis/dd/action/categorycombo/GetDataElementCategoryComboAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/java/org/hisp/dhis/dd/action/categorycombo/GetDataElementCategoryComboAction.java 2009-10-19 17:10:19 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/java/org/hisp/dhis/dd/action/categorycombo/GetDataElementCategoryComboAction.java 2009-10-20 12:49:32 +0000 @@ -92,8 +92,7 @@ public String execute() { - dataElementCategoryCombo = dataElementCategoryService - .getDataElementCategoryCombo( id ); + dataElementCategoryCombo = dataElementCategoryService.getDataElementCategoryCombo( id ); dataElementCategories = dataElementCategoryCombo.getCategories(); === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/javascript/category.js' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/javascript/category.js 2009-10-19 17:10:19 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/javascript/category.js 2009-10-20 12:49:32 +0000 @@ -79,50 +79,55 @@ function validateAddDataElementCategory() { - var request = new Request(); - request.setResponseTypeXML( 'message' ); - request.setCallbackSuccess( addDataElementCategoryValidationCompleted ); - - var requestString = 'validateDataElementCategory.action?name=' + document.getElementById( 'name' ).value; - - requestString += "&" + getParamString( 'categoryOptionNames' ); - - request.send( requestString ); - - return false; + var request = new Request(); + request.setResponseTypeXML( 'message' ); + request.setCallbackSuccess( addDataElementCategoryValidationCompleted ); + + if ( document.getElementById( 'categoryOptionNames' ).options.length == 0 ) + { + setMessage( i18n_must_include_category_option ); + return; + } + + var requestString = 'validateDataElementCategory.action?name=' + htmlEncode( document.getElementById( 'name' ).value ); + + requestString += "&" + getParamString( 'categoryOptionNames' ); + + request.send( requestString ); + + return false; } function addDataElementCategoryValidationCompleted( messageElement ) { - var type = messageElement.getAttribute( 'type' ); - var message = messageElement.firstChild.nodeValue; + var type = messageElement.getAttribute( 'type' ); + var message = messageElement.firstChild.nodeValue; - if ( type == 'success' ) - { - selectAllById( 'categoryOptionNames' ); - document.forms['addDataElementCategoryForm'].submit(); - } - - else if ( type == 'input' ) - { - document.getElementById( 'message' ).innerHTML = message; - document.getElementById( 'message' ).style.display = 'block'; - } + if ( type == 'success' ) + { + selectAllById( 'categoryOptionNames' ); + document.getElementById( 'addDataElementCategoryForm' ).submit(); + } + else if ( type == 'input' ) + { + setMessage( message ); + } } function validateEditDataElementCategory() { - var request = new Request(); - request.setResponseTypeXML( 'message' ); - request.setCallbackSuccess( editDataElementCategoryValidationCompleted ); - - var requestString = 'validateDataElementCategory.action?name=' + document.getElementById( 'name' ).value; - - requestString += "&" + getParamString( 'categoryOptionNames' ); - - request.send( requestString ); + var request = new Request(); + request.setResponseTypeXML( 'message' ); + request.setCallbackSuccess( editDataElementCategoryValidationCompleted ); + + var requestString = 'validateDataElementCategory.action?id=' + document.getElementById( 'id' ).value + + '&name=' + htmlEncode( document.getElementById( 'name' ).value ); + + requestString += "&" + getParamString( 'categoryOptions' ); + + request.send( requestString ); - return false; + return false; } function editDataElementCategoryValidationCompleted( messageElement ) @@ -132,13 +137,11 @@ if ( type == 'success' ) { - selectAllById( 'categoryOptionNames' ); - document.forms['editDataElementCategoryForm'].submit(); + selectAllById( 'categoryOptions' ); + document.getElementById( 'editDataElementCategoryForm' ).submit(); } else if ( type == 'input' ) { - document.getElementById( 'message' ).innerHTML = message; - document.getElementById( 'message' ).style.display = 'block'; + setMessage( message ); } } - === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/javascript/categoryCombo.js' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/javascript/categoryCombo.js 2009-09-03 19:34:03 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/javascript/categoryCombo.js 2009-10-20 12:49:32 +0000 @@ -1,10 +1,10 @@ -function showDataElementCategoryComboDetails( dataElementCategoryComboId ) +function showDataElementCategoryComboDetails( categoryComboId ) { var request = new Request(); request.setResponseTypeXML( 'dataElementCategoryCombo' ); request.setCallbackSuccess( dataElementCategoryComboReceived ); - request.send( 'getDataElementCategoryCombo.action?dataElementCategoryComboId=' + dataElementCategoryComboId ); + request.send( 'getDataElementCategoryCombo.action?id=' + categoryComboId ); } function dataElementCategoryComboReceived( dataElementCategoryComboElement ) @@ -19,14 +19,14 @@ // Delete Category // ----------------------------------------------------------------------------- -function removeDataElementCategoryCombo( dataElementCategoryComboId, dataElementCategoryComboName ) +function removeDataElementCategoryCombo( categoryComboId, categoryComboName ) { - var result = window.confirm( i18n_confirm_delete + '\n\n' + dataElementCategoryComboName ); + var result = window.confirm( i18n_confirm_delete + '\n\n' + categoryComboName ); - if ( result ) - { - window.location.href = 'removeDataElementCategoryCombo.action?dataElementCategoryComboId=' + dataElementCategoryComboId; - } + if ( result ) + { + window.location.href = 'removeDataElementCategoryCombo.action?id=' + categoryComboId; + } } // ---------------------------------------------------------------------- @@ -35,68 +35,64 @@ function validateAddDataElementCategoryCombo() { - var request = new Request(); - request.setResponseTypeXML( 'message' ); - request.setCallbackSuccess( addDataElementCategoryComboValidationCompleted ); - - var requestString = 'validateDataElementCategoryCombo.action'; - - var selectedList = document.getElementById( 'selectedList' ); - - var params = 'name=' + document.getElementById( 'nameField' ).value; - - for ( var i = 0; i < selectedList.options.length; ++i) - { - params += '&selectedCategories=' + selectedList.options[i].value; - } - - request.sendAsPost( params ); - - request.send( requestString ); - - return false; + var request = new Request(); + request.setResponseTypeXML( 'message' ); + request.setCallbackSuccess( addDataElementCategoryComboValidationCompleted ); + + var requestString = 'validateDataElementCategoryCombo.action'; + + var selectedList = document.getElementById( 'selectedList' ); + + var params = 'name=' + htmlEncode( document.getElementById( 'name' ).value ); + + for ( var i = 0; i < selectedList.options.length; ++i) + { + params += '&selectedCategories=' + selectedList.options[i].value; + } + + request.sendAsPost( params ); + request.send( requestString ); + + return false; } function addDataElementCategoryComboValidationCompleted( messageElement ) { - var type = messageElement.getAttribute( 'type' ); - var message = messageElement.firstChild.nodeValue; + var type = messageElement.getAttribute( 'type' ); + var message = messageElement.firstChild.nodeValue; - if ( type == 'success' ) - { - document.forms['addDataElementCategoryComboForm'].submit(); - } - - else if ( type == 'input' ) - { - document.getElementById( 'message' ).innerHTML = message; - document.getElementById( 'message' ).style.display = 'block'; - } + if ( type == 'success' ) + { + document.getElementById( 'addDataElementCategoryComboForm' ).submit(); + } + else if ( type == 'input' ) + { + setMessage( message ); + } } function validateEditDataElementCategoryCombo() { - var request = new Request(); - request.setResponseTypeXML( 'message' ); - request.setCallbackSuccess( editDataElementCategoryComboValidationCompleted ); + var request = new Request(); + request.setResponseTypeXML( 'message' ); + request.setCallbackSuccess( editDataElementCategoryComboValidationCompleted ); - var requestString = 'validateDataElementCategoryCombo.action'; + var requestString = 'validateDataElementCategoryCombo.action'; - var selectedList = document.getElementById( 'selectedList' ); + var selectedList = document.getElementById( 'selectedList' ); - var params = 'name=' + document.getElementById( 'nameField' ).value; - params += '&dataElementCategoryComboId=' + document.getElementById( 'dataElementCategoryComboId' ).value; + var params = 'id=' + document.getElementById( 'id' ).value; + params += '&name=' + htmlEncode( document.getElementById( 'name' ).value ); - for ( var i = 0; i < selectedList.options.length; ++i) - { - params += '&selectedCategories=' + selectedList.options[i].value; - } + for ( var i = 0; i < selectedList.options.length; ++i) + { + params += '&selectedCategories=' + selectedList.options[i].value; + } - request.sendAsPost( params ); - - request.send( requestString ); + request.sendAsPost( params ); + request.send( requestString ); - return false; + return false; } function editDataElementCategoryComboValidationCompleted( messageElement ) @@ -106,13 +102,11 @@ if ( type == 'success' ) { - // Both edit and add form has id='dataSetForm' - document.forms['editDataElementCategoryComboForm'].submit(); + document.getElementById( 'editDataElementCategoryComboForm' ).submit(); } else if ( type == 'input' ) { - document.getElementById( 'message' ).innerHTML = message; - document.getElementById( 'message' ).style.display = 'block'; + setMessage( message ); } } === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/multidimensional/addDataElementCategoryComboForm.vm' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/multidimensional/addDataElementCategoryComboForm.vm 2009-03-31 15:36:54 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/multidimensional/addDataElementCategoryComboForm.vm 2009-10-20 12:49:32 +0000 @@ -11,7 +11,7 @@ - + === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/multidimensional/addDataElementCategoryForm.vm' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/multidimensional/addDataElementCategoryForm.vm 2009-10-19 17:10:19 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/multidimensional/addDataElementCategoryForm.vm 2009-10-20 12:49:32 +0000 @@ -60,4 +60,5 @@ === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/multidimensional/categoryCombo.vm' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/multidimensional/categoryCombo.vm 2009-09-03 19:34:03 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/multidimensional/categoryCombo.vm 2009-10-20 12:49:32 +0000 @@ -25,7 +25,7 @@ #if( $dataElementCategoryCombo.id != $defaultCombo.id ) $encoder.htmlEncode( $dataElementCategoryCombo.name ) - $i18n.getString( + $i18n.getString( $i18n.getString( $i18n.getString( === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/multidimensional/updateDataElementCategoryComboForm.vm' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/multidimensional/updateDataElementCategoryComboForm.vm 2009-03-31 15:36:54 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/multidimensional/updateDataElementCategoryComboForm.vm 2009-10-20 12:49:32 +0000 @@ -2,9 +2,7 @@

$i18n.getString( "edit_data_element_category_combo" )

-
- -
+ @@ -15,7 +13,7 @@ - + === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/multidimensional/updateDataElementCategoryForm.vm' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/multidimensional/updateDataElementCategoryForm.vm 2009-10-19 17:10:19 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/multidimensional/updateDataElementCategoryForm.vm 2009-10-20 12:49:32 +0000 @@ -23,29 +23,17 @@ - - - - - - - - -
- -
- #foreach( $categoryOption in $dataElementCategory.categoryOptions ) - + #end -

-

- +

+