=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/usergroup/AddUserGroupAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/usergroup/AddUserGroupAction.java 2014-12-18 11:41:20 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/usergroup/AddUserGroupAction.java 2014-12-28 17:51:04 +0000 @@ -29,7 +29,9 @@ */ import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; import org.hisp.dhis.attribute.AttributeService; import org.hisp.dhis.system.util.AttributeUtils; @@ -93,6 +95,13 @@ this.jsonAttributeValues = jsonAttributeValues; } + private Set userGroupsSelected = new HashSet<>(); + + public void setUserGroupsSelected( Set userGroupsSelected ) + { + this.userGroupsSelected = userGroupsSelected; + } + // ------------------------------------------------------------------------- // Action Implementation // ------------------------------------------------------------------------- @@ -112,18 +121,27 @@ { User user = userService.getUser( userUid ); - if( user == null ) + if ( user == null ) { continue; } - userGroup.addUser( user ); } if ( jsonAttributeValues != null ) { - AttributeUtils.updateAttributeValuesFromJson( userGroup.getAttributeValues(), jsonAttributeValues, attributeService ); - } + AttributeUtils.updateAttributeValuesFromJson( userGroup.getAttributeValues(), jsonAttributeValues, + attributeService ); + } + + Set managedGroups = new HashSet<>(); + + for ( String groupUid : userGroupsSelected ) + { + UserGroup group = userGroupService.getUserGroup( groupUid ); + managedGroups.add( group ); + } + userGroup.setManagedGroups( managedGroups ); userGroupService.addUserGroup( userGroup ); === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/usergroup/UpdateUserGroupAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/usergroup/UpdateUserGroupAction.java 2014-12-18 11:41:20 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/usergroup/UpdateUserGroupAction.java 2014-12-28 17:51:04 +0000 @@ -105,7 +105,14 @@ { this.jsonAttributeValues = jsonAttributeValues; } + + private Set userGroupsSelected = new HashSet<>(); + public void setUserGroupsSelected( Set userGroupsSelected ) + { + this.userGroupsSelected = userGroupsSelected; + } + // ------------------------------------------------------------------------- // Action Implementation // ------------------------------------------------------------------------- @@ -151,6 +158,16 @@ AttributeUtils.updateAttributeValuesFromJson( userGroup.getAttributeValues(), jsonAttributeValues, attributeService ); } + + Set managedGroups = new HashSet<>(); + + for ( String groupUid : userGroupsSelected ) + { + UserGroup group = userGroupService.getUserGroup( groupUid ); + managedGroups.add( group ); + } + userGroup.setManagedGroups(managedGroups); + userGroupService.updateUserGroup( userGroup ); return SUCCESS; === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module.properties' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module.properties 2014-12-18 11:41:20 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module.properties 2014-12-28 17:51:04 +0000 @@ -366,4 +366,6 @@ no_of_Users=Number of users user_group=User Group available_users=Available users -group_members=Group members \ No newline at end of file +group_members=Group members +available_managed_user_groups = Available user groups +managed_user_groups = Managed user groups \ No newline at end of file === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/webapp/dhis-web-maintenance-user/addUserGroupForm.vm' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/webapp/dhis-web-maintenance-user/addUserGroupForm.vm 2014-12-18 11:41:20 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/webapp/dhis-web-maintenance-user/addUserGroupForm.vm 2014-12-28 17:51:04 +0000 @@ -6,12 +6,20 @@ search: $( '#usersAvailableSearch' ), iterator: 'users' }); + + $( '#userGroupsAvailable' ).selected( { + url: '../api/userGroups.json', + target: $( '#userGroupsSelected' ), + search: $( '#managedGroupsAvailableSearch' ), + iterator: 'userGroups' + }); validation2( 'addUserGroupForm', function( form ) { form.submit(); }, { 'beforeValidateHandler': function() { $( '#usersSelected' ).find( 'option' ).attr( 'selected', 'selected' ); + $( '#userGroupsSelected' ).find( 'option' ).attr( 'selected', 'selected' ); #tblDynamicAttributesJavascript() }, 'rules': getValidationRules( 'userGroup' ) @@ -27,7 +35,7 @@ #sharingCreateNotification( "userGroup" ) -
+ @@ -50,6 +58,14 @@ "i18n_selected": "group_members" }) + +#jqSelected({ + "prefix": "userGroups", + "i18n_available": "available_managed_user_groups", + "i18n_selected": "managed_user_groups" +}) + +

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/webapp/dhis-web-maintenance-user/updateUserGroupForm.vm' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/webapp/dhis-web-maintenance-user/updateUserGroupForm.vm 2014-12-18 11:41:20 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/webapp/dhis-web-maintenance-user/updateUserGroupForm.vm 2014-12-28 17:51:04 +0000 @@ -7,11 +7,25 @@ iterator: 'users' }); + $( '#userGroupsAvailable' ).selected( { + url: '../api/userGroups.json', + target: $( '#userGroupsSelected' ), + search: $( '#managedGroupsAvailableSearch' ), + iterator: 'userGroups' + }); + + $(document).ajaxStop(function() + { + var selectedGroup = '$group.uid'; + $( "#userGroupsAvailable option[value='" + selectedGroup + "']" ).remove(); + }); + validation2( 'editUserGroupForm', function( form ) { form.submit(); }, { 'beforeValidateHandler': function() { $( '#usersSelected' ).find( 'option' ).attr( 'selected', 'selected' ); + $( '#userGroupsSelected' ).find( 'option' ).attr( 'selected', 'selected' ); #tblDynamicAttributesJavascript() }, 'rules': getValidationRules( 'userGroup' ) @@ -40,7 +54,7 @@

- + #tblDynamicAttributes( { "attributes": $attributes, "attributeValues": $attributeValues } ) #jqSelected({ @@ -50,6 +64,14 @@ "objects": $groupMembers }) +#jqSelected({ + "prefix": "userGroups", + "i18n_available": "available_managed_user_groups", + "i18n_selected": "managed_user_groups", + "objects": $group.managedGroups +}) + +