@QueryParam("offset") @DefaultValue("0") int offset,
@QueryParam("details") @DefaultValue("false") boolean details) {
// Create search query
Site site = getSite(request);
SearchQuery q = new SearchQueryImpl(site);
q.withVersion(Resource.WORK);
// Only take resources that have not been modified
q.withoutPublication();
// Type
q.withTypes(Page.TYPE);
// Filter query
if (StringUtils.isNotBlank(filter))
q.withFilter(filter);
// Limit and Offset
q.withLimit(limit);
q.withOffset(offset);
// Sort order
if (StringUtils.equalsIgnoreCase("modified-asc", sort)) {
q.sortByModificationDate(Order.Ascending);
} else if (StringUtils.equalsIgnoreCase("modified-desc", sort)) {
q.sortByModificationDate(Order.Descending);
} else if (StringUtils.equalsIgnoreCase("created-asc", sort)) {
q.sortByCreationDate(Order.Ascending);
} else if (StringUtils.equalsIgnoreCase("created-desc", sort)) {
q.sortByCreationDate(Order.Descending);
} else if (StringUtils.equalsIgnoreCase("published-asc", sort)) {
q.sortByPublishingDate(Order.Ascending);
} else if (StringUtils.equalsIgnoreCase("published-desc", sort)) {
q.sortByPublishingDate(Order.Descending);
}
// Load the result
String result = loadResultSet(q, details);