=== 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-07-03 05:50:10 +0000 +++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/ouwt/ouwt.js 2013-07-11 05:42:16 +0000 @@ -446,7 +446,13 @@ names.push( name ); } - listenerFunction( ids, names, children ); + if ( !$.isArray( selected ) ) { + subtree.getChildren( selected ).done(function() { + listenerFunction( ids, names, children ); + }); + } else { + listenerFunction( ids, names, children ); + } }; function getTagId( unitId ) @@ -694,6 +700,26 @@ } } + this.getChildren = function( parentId ) { + return $.post( '../dhis-web-commons-ajax-json/getOrganisationUnitTree.action?parentId=' + parentId, function ( data, textStatus, jqXHR ) + { + // load additional organisationUnits into sessionStorage + if ( sessionStorage["organisationUnits"] === undefined ) + { + sessionStorage["organisationUnits"] = JSON.stringify( data.organisationUnits ); + } + else + { + var units = JSON.parse( sessionStorage["organisationUnits"] ); + $.extend(units, data.organisationUnits); + sessionStorage["organisationUnits"] = JSON.stringify( units ); + } + + $.extend(organisationUnits, data.organisationUnits); + } + ); + } + function getAndCreateChildren(parentTag, parent) { if ( parent.c !== undefined ) @@ -704,25 +730,9 @@ } else { - $.post( '../dhis-web-commons-ajax-json/getOrganisationUnitTree.action?parentId=' + parent.id, - function ( data, textStatus, jqXHR ) - { - // load additional organisationUnits into sessionStorage - if ( sessionStorage["organisationUnits"] === undefined ) - { - sessionStorage["organisationUnits"] = JSON.stringify( data.organisationUnits ); - } - else - { - var units = JSON.parse( sessionStorage["organisationUnits"] ); - $.extend(units, data.organisationUnits); - sessionStorage["organisationUnits"] = JSON.stringify( units ); - } - - $.extend(organisationUnits, data.organisationUnits); - createChildren( parentTag, parent ); - } - ); + subtree.getChildren( parent.id ).done( function () { + createChildren( parentTag, parent ); + } ); } }