diff --git a/citesphere/pom.xml b/citesphere/pom.xml
index 54f33c5b7..7be2c704a 100644
--- a/citesphere/pom.xml
+++ b/citesphere/pom.xml
@@ -25,7 +25,7 @@
2.2.6.RELEASE
0.13
0.4
- 1.24
+ 1.26-SNAPSHOT
$2a$04$oQo44vqcDIFRoYKiAXoNheurzkwX9dcNmowvTX/hsWuBMwijqn44i
diff --git a/citesphere/src/main/java/edu/asu/diging/citesphere/api/v1/user/ItemsApiController.java b/citesphere/src/main/java/edu/asu/diging/citesphere/api/v1/user/ItemsApiController.java
index b9cd34be3..ee235f1fd 100644
--- a/citesphere/src/main/java/edu/asu/diging/citesphere/api/v1/user/ItemsApiController.java
+++ b/citesphere/src/main/java/edu/asu/diging/citesphere/api/v1/user/ItemsApiController.java
@@ -85,7 +85,7 @@ public ResponseEntity getCollectionsByGroupId(@RequestHeader HttpHeaders
CitationResults results;
try {
- results = citationManager.getGroupItems(user, groupId, collectionId, pageInt, sort, null);
+ results = citationManager.getGroupItems(user, groupId, collectionId, pageInt, sort, null, null);
} catch(AccessForbiddenException ex) {
return new ResponseEntity(HttpStatus.FORBIDDEN);
} catch (ZoteroHttpStatusException e1) {
diff --git a/citesphere/src/main/java/edu/asu/diging/citesphere/core/export/impl/ExportManager.java b/citesphere/src/main/java/edu/asu/diging/citesphere/core/export/impl/ExportManager.java
index 29dbf50aa..57cbc0a16 100644
--- a/citesphere/src/main/java/edu/asu/diging/citesphere/core/export/impl/ExportManager.java
+++ b/citesphere/src/main/java/edu/asu/diging/citesphere/core/export/impl/ExportManager.java
@@ -129,7 +129,7 @@ public void export(ExportType exportType, IUser user, String groupId, String col
}
// FIXME: sort field should not be hard coded!
- CitationResults results = citationManager.getGroupItems(user, groupId, collectionId, 1, "title", null);
+ CitationResults results = citationManager.getGroupItems(user, groupId, collectionId, 1, "title", null, null);
if (results.getTotalResults() > maxExportSize) {
throw new ExportTooBigException("Can't export " + results.getTotalResults() + " records.");
}
@@ -180,7 +180,7 @@ public void distributedExport(ExportType exportType, IUser user, String groupId,
task.setCollectionName(collection.getName());
}
- CitationResults results = citationManager.getGroupItems(user, groupId, collectionId, 1, SORT_BY_TITLE, null);
+ CitationResults results = citationManager.getGroupItems(user, groupId, collectionId, 1, SORT_BY_TITLE, null, null);
task.setTotalRecords(results.getTotalResults());
task = taskManager.saveAndFlush(task);
diff --git a/citesphere/src/main/java/edu/asu/diging/citesphere/core/service/ICitationManager.java b/citesphere/src/main/java/edu/asu/diging/citesphere/core/service/ICitationManager.java
index e434356ad..bf90269e4 100644
--- a/citesphere/src/main/java/edu/asu/diging/citesphere/core/service/ICitationManager.java
+++ b/citesphere/src/main/java/edu/asu/diging/citesphere/core/service/ICitationManager.java
@@ -31,7 +31,7 @@ public interface ICitationManager {
List getGroups(IUser user);
- CitationResults getGroupItems(IUser user, String groupId, String collectionId, int page, String sortBy, List conceptIds)
+ CitationResults getGroupItems(IUser user, String groupId, String collectionId, int page, String sortBy, List conceptIds, String itemType)
throws GroupDoesNotExistException, ZoteroHttpStatusException;
/**
diff --git a/citesphere/src/main/java/edu/asu/diging/citesphere/core/service/impl/CitationManager.java b/citesphere/src/main/java/edu/asu/diging/citesphere/core/service/impl/CitationManager.java
index b934f6e77..2781b9528 100644
--- a/citesphere/src/main/java/edu/asu/diging/citesphere/core/service/impl/CitationManager.java
+++ b/citesphere/src/main/java/edu/asu/diging/citesphere/core/service/impl/CitationManager.java
@@ -381,9 +381,14 @@ public CloseableIterator getAllGroupItems(IUser user, String groupId,
}
@Override
- public CitationResults getGroupItems(IUser user, String groupId, String collectionId, int page, String sortBy, List conceptIds)
+ public CitationResults getGroupItems(IUser user, String groupId, String collectionId, int page, String sortBy, List conceptIds, String itemType)
throws GroupDoesNotExistException, ZoteroHttpStatusException {
+ ItemType citationItemType = null;
+ if (itemType != null && !itemType.trim().isEmpty()) {
+ citationItemType = ItemType.valueOf(itemType);
+ }
+
ICitationGroup group = null;
Optional groupOptional = groupRepository.findFirstByGroupId(new Long(groupId));
if (!groupOptional.isPresent() || !groupOptional.get().getUsers().contains(user.getUsername())) {
@@ -428,7 +433,7 @@ public CitationResults getGroupItems(IUser user, String groupId, String collecti
List citations = null;
long total = 0;
if (collectionId != null && !collectionId.trim().isEmpty()) {
- citations = (List) citationDao.findCitationsInCollection(groupId, collectionId, (page - 1) * zoteroPageSize, zoteroPageSize, conceptIds);
+ citations = (List) citationDao.findCitationsInCollection(groupId, collectionId, (page - 1) * zoteroPageSize, zoteroPageSize, conceptIds, citationItemType);
ICitationCollection collection = collectionManager.getCollection(user, groupId, collectionId);
if (collection != null) {
total = collection.getNumberOfItems();
@@ -436,8 +441,8 @@ public CitationResults getGroupItems(IUser user, String groupId, String collecti
total = citations.size();
}
} else {
- citations = (List) citationDao.findCitations(groupId, (page - 1) * zoteroPageSize,
- zoteroPageSize, false, conceptIds);
+ citations = (List) citationDao.findCitations(groupId,
+ (page - 1) * zoteroPageSize, zoteroPageSize, false, conceptIds, citationItemType);
if (groupOptional.isPresent()) {
updateCitationGroup(user, groupId);
@@ -476,7 +481,7 @@ public List getValidCreatorTypes(IUser user, ItemType itemType) {
@Override
public CitationPage getPrevAndNextCitation(IUser user, String groupId, String collectionId, int page, String sortBy,
int index, List conceptIds) throws GroupDoesNotExistException, ZoteroHttpStatusException {
- CitationResults citationResults = getGroupItems(user, groupId, collectionId, page, sortBy, conceptIds);
+ CitationResults citationResults = getGroupItems(user, groupId, collectionId, page, sortBy, conceptIds, null);
List citations = citationResults.getCitations();
CitationPage result = new CitationPage();
result.setIndex(String.valueOf(index));
@@ -486,7 +491,7 @@ public CitationPage getPrevAndNextCitation(IUser user, String groupId, String co
if (citations != null && citations.size() > 0) {
int maxPage = (int) Math.ceil((citationResults.getTotalResults() / Float.valueOf(zoteroPageSize)));
if (index == citations.size() - 1 && page < maxPage) {
- CitationResults nextPageCitationResults = getGroupItems(user, groupId, collectionId, page + 1, sortBy, conceptIds);
+ CitationResults nextPageCitationResults = getGroupItems(user, groupId, collectionId, page + 1, sortBy, conceptIds, null);
if (nextPageCitationResults != null && nextPageCitationResults.getCitations().size() > 0) {
result.setNext(nextPageCitationResults.getCitations().get(0).getKey());
result.setNextIndex(String.valueOf(0));
@@ -502,8 +507,7 @@ public CitationPage getPrevAndNextCitation(IUser user, String groupId, String co
result.setPrevIndex(String.valueOf(index - 1));
result.setPrevPage(String.valueOf(page));
} else if (index == 0 && page > 1) {
- CitationResults prevPageCitationResults = getGroupItems(user, groupId, collectionId, page - 1, sortBy,
- conceptIds);
+ CitationResults prevPageCitationResults = getGroupItems(user, groupId, collectionId, page - 1, sortBy, conceptIds, null);
int pageSize = prevPageCitationResults.getCitations().size();
result.setPrev(prevPageCitationResults.getCitations().get(pageSize - 1).getKey());
result.setPrevIndex(String.valueOf(pageSize - 1));
diff --git a/citesphere/src/main/java/edu/asu/diging/citesphere/web/user/CollectionItemsController.java b/citesphere/src/main/java/edu/asu/diging/citesphere/web/user/CollectionItemsController.java
index 0bd328a3a..a871e1655 100644
--- a/citesphere/src/main/java/edu/asu/diging/citesphere/web/user/CollectionItemsController.java
+++ b/citesphere/src/main/java/edu/asu/diging/citesphere/web/user/CollectionItemsController.java
@@ -43,7 +43,7 @@ public String show(Authentication authentication, Model model, @PathVariable("zo
}
IUser user = (IUser) authentication.getPrincipal();
- CitationResults results = citationManager.getGroupItems(user, groupId, null, pageInt, sort, null);
+ CitationResults results = citationManager.getGroupItems(user, groupId, null, pageInt, sort, null, null);
model.addAttribute("items", results.getCitations());
model.addAttribute("total", results.getTotalResults());
model.addAttribute("totalPages", Math.ceil(new Float(results.getTotalResults()) / new Float(zoteroPageSize)));
diff --git a/citesphere/src/main/java/edu/asu/diging/citesphere/web/user/GroupItemsController.java b/citesphere/src/main/java/edu/asu/diging/citesphere/web/user/GroupItemsController.java
index b4c7de9ef..6cf566bf0 100644
--- a/citesphere/src/main/java/edu/asu/diging/citesphere/web/user/GroupItemsController.java
+++ b/citesphere/src/main/java/edu/asu/diging/citesphere/web/user/GroupItemsController.java
@@ -60,7 +60,12 @@ public String show(Authentication authentication, Model model, @PathVariable("zo
@RequestParam(defaultValue = "1", required = false, value = "page") String page,
@RequestParam(defaultValue = "title", required = false, value = "sort") String sort,
@RequestParam(required = false, value = "columns") String[] columns,
- @RequestParam(required = false, defaultValue = "", value = "conceptIds") String[] conceptIds) {
+ @RequestParam(required = false, defaultValue = "", value = "conceptIds") String[] conceptIds,
+ @RequestParam(value = "itemType", required = false, defaultValue = "All") String itemType) {
+ String citationType = null;
+ if (!itemType.equals("All")) {
+ citationType = itemType;
+ }
Integer pageInt = 1;
try {
pageInt = new Integer(page);
@@ -70,7 +75,7 @@ public String show(Authentication authentication, Model model, @PathVariable("zo
IUser user = (IUser) authentication.getPrincipal();
CitationResults results;
try {
- results = citationManager.getGroupItems(user, groupId, collectionId, pageInt, sort, Arrays.asList(conceptIds));
+ results = citationManager.getGroupItems(user, groupId, collectionId, pageInt, sort, Arrays.asList(conceptIds), citationType);
} catch(ZoteroHttpStatusException e) {
logger.error("Exception occured", e);
return "error/500";
@@ -88,6 +93,7 @@ public String show(Authentication authentication, Model model, @PathVariable("zo
model.addAttribute("collectionId", collectionId);
model.addAttribute("sort", sort);
model.addAttribute("results", results);
+ model.addAttribute("itemType", itemType);
// more than 200 really don't make sense here, this needs to be changed
try {
model.addAttribute("citationCollections", collectionManager.getAllCollections(user, groupId, collectionId, "title", 200));
diff --git a/citesphere/src/main/java/edu/asu/diging/citesphere/web/user/MoveItemsController.java b/citesphere/src/main/java/edu/asu/diging/citesphere/web/user/MoveItemsController.java
index 0858c497f..81e2385f5 100644
--- a/citesphere/src/main/java/edu/asu/diging/citesphere/web/user/MoveItemsController.java
+++ b/citesphere/src/main/java/edu/asu/diging/citesphere/web/user/MoveItemsController.java
@@ -101,7 +101,7 @@ public class MoveItemsController {
@RequestParam(defaultValue = "1", required = false, value = "page") String page) {
try {
citationManager.getGroupItems((IUser) authentication.getPrincipal(), zoteroGroupId, collectionId,
- new Integer(page), null, null);
+ new Integer(page), null, null, null);
Sync sync = new Sync();
sync.setStatus("sync-started");
return sync;
diff --git a/citesphere/src/main/webapp/WEB-INF/views/auth/group/items.html b/citesphere/src/main/webapp/WEB-INF/views/auth/group/items.html
index 3965aeff8..f2f4fc3e5 100644
--- a/citesphere/src/main/webapp/WEB-INF/views/auth/group/items.html
+++ b/citesphere/src/main/webapp/WEB-INF/views/auth/group/items.html
@@ -664,7 +664,19 @@
-
+
+
+
+
+
+