diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/person/person.sites.get.js b/config/alfresco/templates/webscripts/org/alfresco/repository/person/person.sites.get.js index 17b88cb105..0bc652c46d 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/person/person.sites.get.js +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/person/person.sites.get.js @@ -57,29 +57,46 @@ function main() } } - var i = 0; - while (i < sites.length) - { - for (var key in filterObj) - { - if (filterObj[key] == sites[i].shortName || key == sites[i].shortName) - { - if (filter != "favourites" || - filterObj[key] == true) - { - filteredSites.push(sites[i]); - - // If the caller of this webscript has requested a specific result size (non-zero) then do not return more than they asked for - if (size > 0 && filteredSites.length == size) - { - break; - } - - } - } - } - i++; - } + var i = 0; + while (i < sites.length) + { + var filterObjIndex = 0; + for (var key in filterObj) + { + if (filterObj[key] == sites[i].shortName || key == sites[i].shortName) + { + if (filter != "favourites" ) + { + // ACE-379 fix. Fill filteredSites array according to the position of elements in the array 'filterObj' + filteredSites[filterObjIndex] = sites[i]; + + // If the caller of this webscript has requested a specific result size (non-zero) then do not return + // more than they asked for + if (size > 0 && filteredSites.length == size) + { + break; + } + } + // if filter equals to "favourites" and site is favourite. + else + { + if (filterObj[key] == true) + { + filteredSites.push(sites[i]); + } + + // If the caller of this webscript has requested a specific result size (non-zero) then do not return + // more than they asked for + if (size > 0 && filteredSites.length == size) + { + break; + } + } + } + filterObjIndex++; + } + i++; + } model.sites = filteredSites; }