=== modified file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/ouwt/ouwt.js' --- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/ouwt/ouwt.js 2014-07-01 08:23:39 +0000 +++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/ouwt/ouwt.js 2014-09-11 12:33:22 +0000 @@ -415,11 +415,19 @@ var selected = selection.getSelected(); if( multipleSelectionAllowed ) { + var def = $.Deferred(); + var p = def.promise(); + $.each( selected, function( i, item ) { - $.post( organisationUnitTreePath + "addorgunit.action", { - id: item - } ).complete( fn ); + p = p.then(function() { + return $.post(organisationUnitTreePath + "addorgunit.action", { + id: item + }); + }); } ); + + p.done(fn); + def.resolve(); } else { selected = $.isArray( selected ) ? selected[0] : selected; === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/UpdateUserAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/UpdateUserAction.java 2014-08-15 07:40:20 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/java/org/hisp/dhis/user/action/UpdateUserAction.java 2014-09-11 12:33:22 +0000 @@ -28,14 +28,10 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import static org.hisp.dhis.setting.SystemSettingManager.KEY_ONLY_MANAGE_WITHIN_USER_GROUPS; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - +import com.google.common.collect.Lists; +import com.opensymphony.xwork2.Action; import org.hisp.dhis.attribute.AttributeService; +import org.hisp.dhis.common.IdentifiableObjectManager; import org.hisp.dhis.dataelement.CategoryOptionGroupSet; import org.hisp.dhis.dataelement.DataElementCategory; import org.hisp.dhis.dataelement.DataElementCategoryService; @@ -60,7 +56,12 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.StringUtils; -import com.opensymphony.xwork2.Action; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import static org.hisp.dhis.setting.SystemSettingManager.KEY_ONLY_MANAGE_WITHIN_USER_GROUPS; /** * @author Torgeir Lorange Ostby @@ -121,6 +122,9 @@ this.attributeService = attributeService; } + @Autowired + private IdentifiableObjectManager manager; + private I18n i18n; public void setI18n( I18n i18n ) @@ -239,6 +243,13 @@ return message; } + private String ouwtSelected; + + public void setOuwtSelected( String ouwtSelected ) + { + this.ouwtSelected = ouwtSelected; + } + // ------------------------------------------------------------------------- // Action implementation // ------------------------------------------------------------------------- @@ -263,7 +274,7 @@ // --------------------------------------------------------------------- Boolean canManageGroups = (Boolean) systemSettingManager.getSystemSetting( KEY_ONLY_MANAGE_WITHIN_USER_GROUPS, false ); - + if ( canManageGroups && !currentUser.getUserCredentials().getAllAuthorities().contains( "ALL" ) ) { boolean groupFound = false; @@ -382,7 +393,7 @@ // --------------------------------------------------------------------- // Update User // --------------------------------------------------------------------- - + userService.updateUserCredentials( userCredentials ); userService.updateUser( user ); @@ -390,13 +401,26 @@ // Update organisation unit trees if current user is being updated // --------------------------------------------------------------------- - if ( user.equals( currentUserService.getCurrentUser() ) && !dataCaptureOrgUnits.isEmpty() ) + if ( user.equals( currentUser ) && !dataCaptureOrgUnits.isEmpty() ) { selectionManager.setRootOrganisationUnits( dataCaptureOrgUnits ); selectionManager.setSelectedOrganisationUnits( dataCaptureOrgUnits ); } - - if ( user.equals( currentUserService.getCurrentUser() ) && !dataViewOrgUnits.isEmpty() ) + else + { + selectionManager.setRootOrganisationUnits( currentUser.getOrganisationUnits() ); + + if ( ouwtSelected != null && manager.search( OrganisationUnit.class, ouwtSelected ) != null ) + { + selectionManager.setSelectedOrganisationUnits( Lists.newArrayList( manager.search( OrganisationUnit.class, ouwtSelected ) ) ); + } + else + { + selectionManager.setSelectedOrganisationUnits( currentUser.getOrganisationUnits() ); + } + } + + if ( user.equals( currentUser ) && !dataViewOrgUnits.isEmpty() ) { selectionTreeManager.setRootOrganisationUnits( dataViewOrgUnits ); selectionTreeManager.setSelectedOrganisationUnits( dataViewOrgUnits ); === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/webapp/dhis-web-maintenance-user/updateUserForm.vm' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/webapp/dhis-web-maintenance-user/updateUserForm.vm 2014-07-03 05:48:31 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/webapp/dhis-web-maintenance-user/updateUserForm.vm 2014-09-11 12:33:22 +0000 @@ -1,4 +1,6 @@