<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page trimDirectiveWhitespaces="true" %> <%@ page import="org.crosswire.utils.Utils" %> <%@ page import="org.crosswire.utils.HTTPUtils" %> <%@ page import="java.util.Vector" %> <%@ page import="java.util.Set" %> <%@ page import="java.util.HashSet" %> <%@ page import="org.crosswire.community.projects.ntmss.data.DocumentGroup" %> <%@ page import="org.crosswire.community.RightsAndRoles" %> <%@ page import="org.crosswire.community.RightsAndRoles.UserGroup" %> <%@ page import="org.apache.log4j.Logger" %> <% Logger logger = Logger.getLogger("documentgroup/get"); // who we want to lookup String lookupUserName = request.getParameter("userName"); int primaryDocumentGroupID = Integer.parseInt(Utils.getSysConfig(session).getProperty("PrimaryDocumentGroupID", "0")); if ("undefined".equals(lookupUserName)) lookupUserName = "-1"; int detail = DocumentGroup.DETAIL_COMPLETE; if ("header".equals(request.getParameter("detail"))) detail = DocumentGroup.DETAIL_HEADERONLY; else if ("extra".equals(request.getParameter("detail"))) detail = DocumentGroup.DETAIL_EXTRA; int docID = -1; try {docID = Integer.parseInt(request.getParameter("docID"));} catch (Exception e){} int documentGroupID = -1; try {documentGroupID = Integer.parseInt(request.getParameter("documentGroupID"));} catch (Exception e){} Set userGroups = null; Set shownIDs = new HashSet(); if (documentGroupID > -1 || docID > -1 || (lookupUserName != null && lookupUserName.length() > 0)) { response.setContentType("text/xml"); String role = "VMR Administrator"; // let's check to see if we're a privileged user boolean manager = RightsAndRoles.hasRole(request, response, role); // --------------------------------------------- if (lookupUserName != null && !"-1".equals(lookupUserName) && docID == -1 && documentGroupID == -1) { try { //logger.info("lookupUserName: " + lookupUserName); userGroups = RightsAndRoles.getInstance().getUserGroups(lookupUserName); } catch (Exception e) { //logger.info("Failed! lookupUserName: " + lookupUserName); } } DocumentGroup personalDocGroups[] = null; if (documentGroupID > -1) { DocumentGroup dg = DocumentGroup.getDocumentGroup(documentGroupID); if (dg != null) { personalDocGroups = new DocumentGroup[1]; personalDocGroups[0] = dg; } } else if (docID > -1) { personalDocGroups = DocumentGroup.getDocumentGroups(docID); } else if (lookupUserName != null) { personalDocGroups = DocumentGroup.getDocumentGroups(lookupUserName); } if (personalDocGroups != null) { %> <% if (userGroups != null) { for (UserGroup ug : userGroups) { DocumentGroup docGroups[] = DocumentGroup.getDocumentGroupsByGroup(ug.getUserGroupName()); if (docGroups.length > 0) { %> <% for (DocumentGroup si : docGroups) { out.print(si.toFormattedXML(detail)); shownIDs.add(si.getDocumentGroupID()); } %> <% } } } for (DocumentGroup si : personalDocGroups) { if (!shownIDs.contains(si.getDocumentGroupID())) { out.print(si.toFormattedXML(detail)); } } %> <% } else { out.print(""); } return; } %>

documentgroup/get

Retrieve detailed information about a shelfinstance

Parameters

documentGroupIDid of the individual document group to retrieve (specify either documentGroupID | docID | userName)
docIDid of the manuscript for which to retrieve all document groups
userNameuserName for which to retrieve all document groups
detail[header|(complete)|extra]