Merged 5.1-MNT1 (5.1.0) to HEAD (5.1)

115473 adavis: Merged 5.1.N (5.1.1) to 5.1-MNT1 (5.1.0)
      114742 rmunteanu: Merged 5.0.N (5.0.3) to 5.1.N (5.1.1)
         114701 amorarasu: Merged V4.2-BUG-FIX (4.2.6) to 5.0.N (5.0.3)
            114590 amorarasu: Merged V4.2.5 (4.2.5) to V4.2-BUG-FIX (4.2.6)
               114466 abozianu: MNT-14994 : CLONE - Alfresco Mobile: All Sites is throwing error when listing sites


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@115682 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Alan Davis
2015-10-30 00:15:02 +00:00
parent b1577072fc
commit 8361ff9820

View File

@@ -33,12 +33,14 @@ import java.util.TreeSet;
import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.model.ContentModel;
import org.alfresco.query.CannedQuerySortDetails.SortOrder;
import org.alfresco.query.PageDetails;
import org.alfresco.query.PagingRequest;
import org.alfresco.query.PagingResults;
import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.security.authority.UnknownAuthorityException;
import org.alfresco.repo.site.SiteMembership;
import org.alfresco.repo.site.SiteMembershipComparator;
import org.alfresco.repo.site.SiteModel;
import org.alfresco.rest.api.Nodes;
import org.alfresco.rest.api.People;
@@ -59,6 +61,7 @@ import org.alfresco.rest.framework.jacksonextensions.BeanPropertiesFilter;
import org.alfresco.rest.framework.resource.parameters.CollectionWithPagingInfo;
import org.alfresco.rest.framework.resource.parameters.Paging;
import org.alfresco.rest.framework.resource.parameters.Parameters;
import org.alfresco.rest.framework.resource.parameters.SortColumn;
import org.alfresco.service.cmr.dictionary.DictionaryService;
import org.alfresco.service.cmr.favourites.FavouritesService;
import org.alfresco.service.cmr.model.FileInfo;
@@ -416,17 +419,43 @@ public class SitesImpl implements Sites
PagingRequest pagingRequest = Util.getPagingRequest(paging);
final Collator collator = Collator.getInstance();
final Set<SiteMembership> sortedSiteMembers = new TreeSet<SiteMembership>(new Comparator<SiteMembership>()
// get the sorting options
List<Pair<? extends Object, SortOrder>> sortPairs = new ArrayList<Pair<? extends Object, SortOrder>>(parameters.getSorting().size());
for (SortColumn sortColumn : parameters.getSorting())
{
@Override
public int compare(SiteMembership o1, SiteMembership o2)
SiteService.SortFields sortField;
try
{
return collator.compare(o1.getSiteInfo().getTitle(), o2.getSiteInfo().getTitle());
sortField= SiteService.SortFields.valueOf(sortColumn.column);
}
catch (IllegalArgumentException ex)
{
// invalid sort field
continue;
}
});
sortPairs.add(new Pair<SiteService.SortFields, SortOrder>(
sortField,
(sortColumn.asc ? SortOrder.ASCENDING : SortOrder.DESCENDING)));
}
List<SiteMembership> siteMembers = siteService.listSiteMemberships (personId, -1);
// if no sorting options were specify, sort by title
if(sortPairs.size() == 0)
{
sortPairs.add(new Pair<SiteService.SortFields, SortOrder>(
SiteService.SortFields.SiteTitle,
SortOrder.ASCENDING ));
}
final Set<SiteMembership> sortedSiteMembers = new TreeSet<SiteMembership>(
new SiteMembershipComparator(
sortPairs,
SiteMembershipComparator.Type.SITES));
// get the unsorted list of site memberships
List<SiteMembership> siteMembers = siteService.listSiteMemberships (personId, 0);
// sort the list of site memberships
int totalSize = siteMembers.size();
sortedSiteMembers.addAll(siteMembers);
PageDetails pageDetails = PageDetails.getPageDetails(pagingRequest, totalSize);