<%@ 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.webtools.RightsAndRoles" %> <%@ page import="org.crosswire.community.projects.ntmss.data.ShelfInstance" %> <%@ page import="org.crosswire.community.projects.ntmss.data.Transcription" %> <%@ page import="org.crosswire.xml.XMLBlock" %> <%@ page import="org.crosswire.webtools.annotation.*" %> <%@ page import="org.crosswire.webtools.*" %> <%@ page import="javax.validation.constraints.NotNull" %> <%! @Description(value = "Create a new or update an existing shelf instance record.", name = "shelfinstance/put") public static class MyParameters extends Parameters { @Description(value = "shelf instance id, supply to edit an existing shelf instance; otherwise, do not include when adding a new shelf instance", example = "146789") public Integer shelfID; @Description(value = "institution id of the holding institute", example = "49") public Integer instID; @Description(value = "shelf number, assigned by the holding institute", example = "s.n.27") public String shelfNum; @Description(value = "if this shelf instance was given a Gregory Aland number previously, which is now deprecated", example = "l 3323") public String formerGA; @Description(value = "content overview", example = "eapr") public String contentOverview; @Description(value = "leaves description", example = "12 fragments") public String leavesDesc; @Description(value = "leaves count", example = "12") public Integer leavesCount; @Description(value = "origin year description", example = "III") public String origYearDesc; @Override protected void afterLoad() { shelfNum = Transcription.assureUnicode(shelfNum); formerGA = Transcription.assureUnicode(formerGA); contentOverview = Transcription.assureUnicode(contentOverview); leavesDesc = Transcription.assureUnicode(leavesDesc); origYearDesc = Transcription.assureUnicode(origYearDesc); } @Override protected void customValidation() { if (getUser() == null) { addError(-5, "Must be logged in."); return; } if (shelfID == null && instID == null) { addError(-4, "Must supply {instID} when creating a new shelf instance."); return; } } } %> <% MyParameters params = new MyParameters().loadFromRequest(request, response, false); if (params.getErrors().size() == 0) { do { String role = "VMR Administrator"; boolean permission = params.getUser().hasRole(role); if (!permission) { params.addError(-6, "No permission to edit shelf instance records. Must have the role: " + role + "."); break; } ShelfInstance orig = null; ShelfInstance inst = null; if (params.shelfID == null) { inst = new ShelfInstance(); } else { orig = ShelfInstance.getShelfInstance(params.shelfID); if (orig == null) { params.addError(-8, "Couldn't find Shelf Instance ID: " + params.shelfID + "."); break; } inst = (ShelfInstance)orig.clone(); } if (params.instID != null) inst.setInstitutionID(params.instID); if (params.shelfNum != null) inst.setShelfNumber(params.shelfNum); if (params.formerGA != null) inst.setFormerGANumber(params.formerGA); if (params.contentOverview != null) inst.setContentOverview(params.contentOverview); if (params.leavesDesc != null) inst.setLeavesDescription(params.leavesDesc); if (params.leavesCount != null) inst.setLeavesCount(params.leavesCount); if (params.origYearDesc != null) inst.setOriginYearDescription(params.origYearDesc); if (orig != null) { inst.save(orig); } else { inst = inst.saveNew(); } Serializer.output(response, out, params, XMLBlock.createXMLBlock("")); return; } while (false); } else params.format = "html"; Serializer.reportErrors(request, response, out, params, true); %>