<%@ 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.crosswire.repo.VersionedRepo" %> <%@ page import="org.crosswire.utils.Utils" %> <%@ page import="org.apache.log4j.Logger" %> <% Logger logger = Logger.getLogger("transcript/put"); boolean pushOnCommit = "true".equals(Utils.getSysConfig(session).getProperty("VersionedRepoPushOnCommit")); // who we are String userName = Sessions.getSessionStringValue(request, "userName"); // who we'd like to save transcription as String saveAsUserName = request.getParameter("userName"); int docID = -1; try { docID = Integer.parseInt(request.getParameter("docID")); } catch (Exception e) {} int pageID = -1; try { pageID = Integer.parseInt(request.getParameter("pageID")); } catch (Exception e) {} String transcript = request.getParameter("transcript"); String push = request.getParameter("push"); boolean updateIndexing = ("true".equals(request.getParameter("updateIndexing"))); if (transcript != null) transcript = new String(transcript.getBytes("iso8859-1"), "UTF-8"); if (transcript != null && !transcript.trim().startsWith("" + transcript; String role="VMR Administrator"; String role2="Transcription Manager"; if (docID != -1 && pageID != -1 && transcript != null) { response.setContentType("text/xml"); // let's check to see if we're a privileged user boolean isAdmin = RightsAndRoles.hasRole(request, response, role); if (!isAdmin) isAdmin = RightsAndRoles.hasRole(request, response, role2); if (userName == null || userName.length() < 1) { out.print(""); return; } if (!isAdmin && (saveAsUserName == null || saveAsUserName.length() < 1)) { out.print(""); return; } if (!isAdmin && !userName.equals(saveAsUserName)) { out.print(""); return; } Document doc = Document.getDocument(docID); if (doc != null) { logger.debug("setting transcription (docID: " + doc.getDocumentID() + "; pageID: " + pageID + "; saveAsUserName: " + saveAsUserName + "; true; updateIndexing: " + updateIndexing + "; false) : " + transcript); doc.setTranscriptionPage(pageID, transcript, saveAsUserName, true, updateIndexing, false, saveAsUserName == null || saveAsUserName.length() < 1 ? userName : saveAsUserName); if (!"false".equals(push)) { if (pushOnCommit) { VersionedRepo.push(); } } out.print(""); return; } } %>

transcription/put

set transcription of a manuscript

Parameters

docIDmanuscript id for which to set a transcript, e.g., 10006
pageIDmanscript page id for which to set a transcript, e.g., 10
transcripttranscription body to set, as TEI
push[(true)|false] should repository be pushed
updateIndexing[(true)|false] should indexing data be extracted from transcription page and saved as global index info for page. This will only happen if no indexing data exists or if current indexing data is owned by this same user