From b3d33f8b7bc8d898749702ff820704dfaef2a50d Mon Sep 17 00:00:00 2001 From: Patrick Schmitz Date: Fri, 2 Sep 2011 22:52:35 +0000 Subject: [PATCH] CSPACE-4356 Made AuthorityItem searches and lists default to sorting by displayName, instead of the global default (updatedAt). --- .../common/vocabulary/AuthorityResource.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/services/authority/src/main/java/org/collectionspace/services/common/vocabulary/AuthorityResource.java b/services/authority/src/main/java/org/collectionspace/services/common/vocabulary/AuthorityResource.java index 05695cb7b..328067fe0 100644 --- a/services/authority/src/main/java/org/collectionspace/services/common/vocabulary/AuthorityResource.java +++ b/services/authority/src/main/java/org/collectionspace/services/common/vocabulary/AuthorityResource.java @@ -23,6 +23,7 @@ */ package org.collectionspace.services.common.vocabulary; +import org.collectionspace.services.client.IClientQueryParams; import org.collectionspace.services.client.IQueryManager; import org.collectionspace.services.client.PoxPayloadIn; import org.collectionspace.services.client.PoxPayloadOut; @@ -78,6 +79,8 @@ import javax.ws.rs.core.Request; import javax.ws.rs.core.Response; import javax.ws.rs.core.UriBuilder; import javax.ws.rs.core.UriInfo; + +import java.util.ArrayList; import java.util.List; /** @@ -587,7 +590,10 @@ public abstract class AuthorityResource String partialTerm = queryParams.getFirst(IQueryManager.SEARCH_TYPE_PARTIALTERM); String keywords = queryParams.getFirst(IQueryManager.SEARCH_TYPE_KEYWORDS_KW); String advancedSearch = queryParams.getFirst(IQueryManager.SEARCH_TYPE_KEYWORDS_AS); - + + String qualifiedDisplayNameField = authorityItemCommonSchemaName + ":" + + AuthorityItemJAXBSchema.DISPLAY_NAME; + // Note that docType defaults to the ServiceName, so we're fine with that. ServiceContext ctx = null; @@ -598,6 +604,13 @@ public abstract class AuthorityResource DocumentHandler handler = createItemDocumentHandler(ctx, parentcsid, null); DocumentFilter myFilter = handler.getDocumentFilter(); + // Need to make the default sort order for authority items + // be on the displayName field + String sortBy = queryParams.getFirst(IClientQueryParams.SORT_BY_PARAM); + if(sortBy==null || sortBy.isEmpty()) { + myFilter.setOrderByClause(qualifiedDisplayNameField); + } + myFilter.appendWhereClause(authorityItemCommonSchemaName + ":" + AuthorityItemJAXBSchema.IN_AUTHORITY + "=" + "'" + parentcsid + "'", @@ -608,8 +621,7 @@ public abstract class AuthorityResource // the PT query param trumps the KW and AS query params. if (partialTerm != null && !partialTerm.isEmpty()) { String ptClause = QueryManager.createWhereClauseForPartialMatch( - authorityItemCommonSchemaName + ":" - + AuthorityItemJAXBSchema.DISPLAY_NAME, partialTerm ); + qualifiedDisplayNameField, partialTerm ); myFilter.appendWhereClause(ptClause, IQueryManager.SEARCH_QUALIFIER_AND); } else if (keywords != null || advancedSearch != null) { // String kwdClause = QueryManager.createWhereClauseFromKeywords(keywords); -- 2.47.3