<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page trimDirectiveWhitespaces="true" %> <%@ page import="org.crosswire.utils.Sessions" %> <%@ page import="org.crosswire.community.RightsAndRoles" %> <%@ page import="org.crosswire.community.projects.ntmss.data.Document" %> <%@ page import="org.apache.log4j.Logger" %> <% Logger logger = Logger.getLogger("metadata/manuscript/put"); String userName = Sessions.getSessionStringValue(request, "userName"); String userGroup = request.getParameter("userGroup"); if (userGroup != null) userGroup = new String(userGroup.getBytes("iso8859-1"), "UTF-8"); int docID = -2; try {docID = Integer.parseInt(request.getParameter("docID"));} catch (Exception e){} String gaNum = request.getParameter("gaNum"); if (gaNum != null) gaNum = new String(gaNum.getBytes("iso8859-1"), "UTF-8"); String contentOverview = request.getParameter("contentOverview"); if (contentOverview != null) contentOverview = new String(contentOverview.getBytes("iso8859-1"), "UTF-8"); String lang = request.getParameter("lang"); if (lang != null) lang = new String(lang.getBytes("iso8859-1"), "UTF-8"); String leavesDesc = request.getParameter("leavesDesc"); if (leavesDesc != null) leavesDesc = new String(leavesDesc.getBytes("iso8859-1"), "UTF-8"); String originYearDesc = request.getParameter("originYearDesc"); if (originYearDesc != null) originYearDesc = new String(originYearDesc.getBytes("iso8859-1"), "UTF-8"); String lineCountDesc = request.getParameter("lineCountDesc"); if (lineCountDesc != null) lineCountDesc = new String(lineCountDesc.getBytes("iso8859-1"), "UTF-8"); String comment = request.getParameter("comment"); if (comment != null) comment = new String(comment.getBytes("iso8859-1"), "UTF-8"); String v11n = request.getParameter("v11n"); if (v11n != null) v11n = new String(v11n.getBytes("iso8859-1"), "UTF-8"); int originYearEarly = -9999999; try {originYearEarly = Integer.parseInt(request.getParameter("originYearEarly"));} catch (Exception e){} int originYearLate = -9999999; try {originYearLate = Integer.parseInt(request.getParameter("originYearLate"));} catch (Exception e){} int columns = -1; try {columns = Integer.parseInt(request.getParameter("columns"));} catch (Exception e){} int columnsMax = -1; try {columnsMax = Integer.parseInt(request.getParameter("columnsMax"));} catch (Exception e){} int lineCount = -1; try {lineCount = Integer.parseInt(request.getParameter("lineCount"));} catch (Exception e){} int lineCountMax = -1; try {lineCountMax = Integer.parseInt(request.getParameter("lineCountMax"));} catch (Exception e){} int height = -1; try {height = Integer.parseInt(request.getParameter("height"));} catch (Exception e){} int heightMax = -1; try {heightMax = Integer.parseInt(request.getParameter("heightMax"));} catch (Exception e){} int width = -1; try {width = Integer.parseInt(request.getParameter("width"));} catch (Exception e){} int widthMax = -1; try {widthMax = Integer.parseInt(request.getParameter("widthMax"));} catch (Exception e){} boolean isUserDocument = "true".equals(request.getParameter("isUserDocument")); if (docID > -2) { response.setContentType("text/xml"); String role = "VMR Administrator"; // let's check to see if we're a privileged user boolean permission = RightsAndRoles.hasRole(request, response, role); // --------------------------------------------- // assert we have permission if (!isUserDocument && !permission) { out.print(""); return; } if (isUserDocument && userName == null || userName.length() == 0) { out.print(""); return; } if (isUserDocument && docID > -1 && (docID < 9900000 || docID > 9999999)) { if (docID > 9999999) docID %= 100000; docID += 9900000; } Document orig = Document.getDocument(docID); if (!permission && isUserDocument && orig != null && (userName == null || !userName.equals(orig.getUserID()))) { out.print(""); return; } Document doc = null; if (orig == null) { doc = new Document(); doc.setDocumentID(docID); if (gaNum == null) { %> <% return; } } else { doc = (Document)orig.clone(); } if (gaNum != null) doc.setGANumber(gaNum); if (contentOverview != null) doc.setContentOverview(contentOverview); if (lang != null) doc.setLanguage(lang); if (leavesDesc != null) doc.setLeavesDescription(leavesDesc); if (originYearDesc != null) doc.setOriginYearDescription(originYearDesc); if (lineCountDesc != null) doc.setLineCountDescription(lineCountDesc); if (userGroup != null) doc.setGroupID("NONE".equals(userGroup)?null:userGroup); if (comment != null) doc.setComment(comment); if (v11n != null) doc.setV11n("DEFAULT".equals(v11n)?null:v11n); if (originYearEarly > -9999999) doc.setOriginYearEarly(originYearEarly); if (originYearLate > -9999999) doc.setOriginYearLate(originYearLate); if (columns > -1) doc.setColumns(columns); if (columnsMax > -1) doc.setColumnsMax(columnsMax); if (lineCount > -1) doc.setLineCount(lineCount); if (lineCountMax > -1) doc.setLineCountMax(lineCountMax); if (height > -1) doc.setHeight(height); if (heightMax > -1) doc.setHeightMax(heightMax); if (width > -1) doc.setWidth(width); if (widthMax > -1) doc.setWidthMax(widthMax); logger.info("saving: " + doc); if (orig != null) { doc.save(orig); } else { if (isUserDocument) { doc.setUserID(userName); } doc = doc.saveNew(); } out.print(""); return; } %>

manuscript/put

Submit a new or modified manuscript

Parameters

docID(required) manuscript id to modify. if not found in database, a new manuscript will be created (-1 for next available user scoped docID), e.g., 10046
gaNumhuman recognizable identifier for this manuscript, e.g., P46
contentOverviewgeneral overview of the contents of this manuscript, e.g., eapr
langISO 639 / ethnologue language codes for the content of this manuscript. separate multilingual manuscript codes with dash, e.g., grc-lat
leavesDescdescription of leaves, e.g., 5 fragments of 2 leaves
originYearEarlyearly threshold for the date of this manuscript, e.g., 150
originYearLatelate threshold for the date of this manuscript, e.g., 250
originYearDescmanuscript date, in prose, e.g., II/III
columnscolumn count for this manuscript
columnsMaxcolumn count max, if column count varies throughout manuscript; if this is provided, use 'columns' parameter for min
lineCountline count for this manuscript
lineCountMaxline count max, if line count varies throughout manuscript; if this is provided, use 'lineCount' parameter for min
lineCountDescline count description that is displayed, e.g., 11r, 13v
heightheight for this manuscript, in millimeters, e.g., for 19.0cm, 190
heightMaxheight max in millimeters, if height varies throughout manuscript; if this is provided, use 'height' parameter for min
widthwidth for this manuscript, in millimeters, e.g., for 27.5cm, 275
widthMaxwidth max in millimeters, if width varies throughout manuscript; if this is provided, use 'width' parameter for min
commentAny general comments about this manucript
v11nversification of document if different from system default, DEFAULT to reset to default
isUserDocumenttrue, if this document should be "user" scoped, instead of global.
userGrouplimit this manuscript to a user group, 'NONE' to unassign