=== modified file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/ajax/jsonOrganisationUnitTree.vm' --- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/ajax/jsonOrganisationUnitTree.vm 2012-10-31 09:36:23 +0000 +++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/ajax/jsonOrganisationUnitTree.vm 2013-11-26 12:30:24 +0000 @@ -1,5 +1,6 @@ { "version":"$!encoder.jsonEncode( $version )" +,"username":"$!encoder.jsonEncode( $username )" ,"realRoot":$realRoot ,"roots": [ #foreach( $root in $rootOrganisationUnits )$root.id#if( $velocityCount < $rootOrganisationUnits.size() ),#end#end ] #if( ! $versionOnly ) === modified file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/ajax/jsonOrganisationUnitTreePartial.vm' --- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/ajax/jsonOrganisationUnitTreePartial.vm 2012-06-29 15:11:05 +0000 +++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/ajax/jsonOrganisationUnitTreePartial.vm 2013-11-26 12:30:24 +0000 @@ -1,4 +1,7 @@ -{"organisationUnits": { +{ +"version":"$!encoder.jsonEncode( $version )" +,"username":"$!encoder.jsonEncode( $username )" +,"organisationUnits": { #foreach( $unit in $organisationUnits ) "${unit.id}":{"id":${unit.id},"n":"$!encoder.jsonEncode( ${unit.name} )",#if( $unit.parent )"pid":${unit.parent.id},#end"c":[#foreach( $child in $unit.sortedChildren )${child.id}#if( $velocityCount < $unit.children.size() ),#end#end]} #if( $velocityCount < $organisationUnits.size() ),#end#end === 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 2013-09-09 11:23:06 +0000 +++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/ouwt/ouwt.js 2013-11-26 12:30:24 +0000 @@ -29,6 +29,7 @@ var OU_PARTIAL_KEY = "ouPartial"; var OU_ROOTS_KEY = "ouRoots"; var OU_VERSION_KEY = "ouVersion"; +var OU_USERNAME_KEY = "ouUsername"; var OU_SELECTED_KEY = "ouSelected"; dhis2.ou.store = new dhis2.storage.Store( { @@ -135,6 +136,18 @@ localStorage.removeItem( OU_VERSION_KEY ); }; + this.getUsername = function() { + return localStorage[ OU_USERNAME_KEY ] ? localStorage[ OU_USERNAME_KEY ] : ""; + }; + + this.setUsername = function( username ) { + localStorage[ OU_USERNAME_KEY ] = username; + }; + + this.clearUsername = function() { + localStorage.removeItem( OU_USERNAME_KEY ); + }; + this.getAllOrganisationUnits = function() { var def = $.Deferred(); @@ -149,7 +162,18 @@ this.setOrganisationUnits = function( ous ) { $.extend( organisationUnits, ous ); ous = ous ? _.values( ous ) : []; - return dhis2.ou.store.setAll( OU_KEY, ous ); + + var def = $.Deferred(); + + // clear out old tree + dhis2.ou.store.clear(OU_KEY).always(function() { + // set new tree + dhis2.ou.store.setAll(OU_KEY, ous).always(function() {  + def.resolve(); + }); + }); + + return def.promise(); }; this.getOrganisationUnit = function( id ) { @@ -239,14 +263,19 @@ } ); } - function update_required( remoteVersion, remoteRoots ) { + function update_required( remoteVersion, remoteRoots, remoteUsername ) { var localVersion = selection.getVersion(); + var localUsername = selection.getUsername(); var localRoots = selection.getRoots(); if ( localVersion != remoteVersion ) { return true; } + if( localUsername != remoteUsername ) { + return true; + } + if ( localRoots == null || localRoots.length == 0 ) { return true; } @@ -271,13 +300,14 @@ if ( data.indexOf( "