<%-- The contents of this file are subject to the license and copyright detailed in the LICENSE and NOTICE files at the root of the source tree and available online at http://www.dspace.org/license/ --%> <%-- - Edit metadata form - - Attributes to pass in to this page: - submission.info - the SubmissionInfo object - submission.inputs - the DCInputSet - submission.page - the step in submission --%> <%@ page contentType="text/html;charset=UTF-8" %> <%@ page import="java.util.ArrayList" %> <%@ page import="java.util.Iterator" %> <%@ page import="java.util.List" %> <%@ page import="javax.servlet.jsp.jstl.fmt.LocaleSupport" %> <%@ page import="javax.servlet.jsp.PageContext" %> <%@ page import="org.dspace.core.Context" %> <%@ page import="org.dspace.app.util.DCInput" %> <%@ page import="org.dspace.app.util.DCInputSet" %> <%@ page import="org.dspace.app.webui.servlet.SubmissionController" %> <%@ page import="org.dspace.submit.AbstractProcessingStep" %> <%@ page import="org.dspace.core.I18nUtil" %> <%@ page import="org.dspace.app.util.SubmissionInfo" %> <%@ page import="org.dspace.app.webui.util.UIUtil" %> <%@ page import="org.dspace.content.authority.Choices" %> <%@ page import="org.dspace.core.ConfigurationManager" %> <%@ page import="org.dspace.core.Utils" %> <%@ page import="org.dspace.content.authority.factory.ContentAuthorityServiceFactory" %> <%@ page import="org.dspace.content.authority.service.ChoiceAuthorityService" %> <%@ page import="org.dspace.content.authority.service.MetadataAuthorityService" %> <%@ page import="org.dspace.content.*" %> <%@ page import="org.dspace.content.factory.ContentServiceFactory" %> <%@ page import="java.io.IOException" %> <%@ taglib uri="http://www.dspace.org/dspace-tags.tld" prefix="dspace" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> <% request.setAttribute("LanguageSwitch", "hide"); %> <%! // required by Controlled Vocabulary add-on and authority addon String contextPath; // An unknown value of confidence for new, empty input fields, // so no icon appears yet. int unknownConfidence = Choices.CF_UNSET - 100; // This method is resposible for showing a link next to an input box // that pops up a window that to display a controlled vocabulary. // It should be called from the doOneBox and doTwoBox methods. // It must be extended to work with doTextArea. String doControlledVocabulary(String fieldName, PageContext pageContext, String vocabulary, boolean readonly) { String link = ""; boolean enabled = ConfigurationManager.getBooleanProperty("webui.controlledvocabulary.enable"); boolean useWithCurrentField = vocabulary != null && ! "".equals(vocabulary); if (enabled && useWithCurrentField && !readonly) { // Deal with the issue of _0 being removed from fieldnames in the configurable submission system if (fieldName.endsWith("_0")) { fieldName = fieldName.substring(0, fieldName.length() - 2); } link = "" + "" + LocaleSupport.getLocalizedMessage(pageContext, "jsp.submit.edit-metadata.controlledvocabulary") + "" + ""; } return link; } boolean hasVocabulary(String vocabulary) { boolean enabled = ConfigurationManager.getBooleanProperty("webui.controlledvocabulary.enable"); boolean useWithCurrentField = vocabulary != null && !"".equals(vocabulary); boolean has = false; if (enabled && useWithCurrentField) { has = true; } return has; } // is this field going to be rendered as Choice-driven ") .append(""); } // suggest is not supported for name input type if ("suggest".equals(cam.getPresentation(fieldName)) && !isName) { if (inputBlock != null) sb.insert(0, inputBlock); sb.append("") .append("\"Loading...\"/") .append("
"); sb.append(""); } // put up a SELECT element containing all choices else if (isSelect) { sb.append("\n"); } // use lookup for any other presentation style (i.e "select") else { if (inputBlock != null) sb.insert(0, inputBlock); sb.append(""); } } else if (inputBlock != null) sb = inputBlock; return sb; } void doPersonalName(javax.servlet.jsp.JspWriter out, Item item, String fieldName, String schema, String element, String qualifier, boolean repeatable, boolean required, boolean readonly, int fieldCountIncr, String label, PageContext pageContext, Collection collection) throws java.io.IOException { String authorityType = getAuthorityType(pageContext, fieldName, collection); List defaults = ContentServiceFactory.getInstance().getItemService().getMetadata(item, schema, element, qualifier, Item.ANY); int fieldCount = defaults.size() + fieldCountIncr; StringBuffer headers = new StringBuffer(); StringBuffer sb = new StringBuffer(); org.dspace.content.DCPersonName dpn; String auth; int conf = 0; StringBuffer name = new StringBuffer(); StringBuffer first = new StringBuffer(); StringBuffer last = new StringBuffer(); if (fieldCount == 0) fieldCount = 1; sb.append("
"); sb.append("
"); for (int i = 0; i < fieldCount; i++) { sb.append("
"); if ("lookup".equalsIgnoreCase(authorityType)) { sb.append("
"); } first.setLength(0); first.append(fieldName).append("_first"); if (repeatable) first.append('_').append(i+1); last.setLength(0); last.append(fieldName).append("_last"); if (repeatable) last.append('_').append(i+1); if (i < defaults.size()) { dpn = new org.dspace.content.DCPersonName(defaults.get(i).getValue()); auth = defaults.get(i).getAuthority(); conf = defaults.get(i).getConfidence(); } else { dpn = new org.dspace.content.DCPersonName(); auth = ""; conf = unknownConfidence; } sb.append(""); if ("lookup".equalsIgnoreCase(authorityType)) { sb.append(doAuthority(pageContext, fieldName, i, fieldCount, fieldName, auth, conf, true, repeatable, defaults, null, collection)); sb.append("
"); } if (repeatable && !readonly && i < fieldCount - 1) { name.setLength(0); name.append(Utils.addEntities(dpn.getLastName())) .append(' ') .append(Utils.addEntities(dpn.getFirstNames())); // put a remove button next to filled in values sb.append(""); } else if (repeatable && !readonly && i == fieldCount - 1) { // put a 'more' button next to the last space sb.append(""); } sb.append("
"); } sb.append("

"); out.write(sb.toString()); } void doDate(javax.servlet.jsp.JspWriter out, Item item, String fieldName, String schema, String element, String qualifier, boolean repeatable, boolean required, boolean readonly, int fieldCountIncr, String label, PageContext pageContext, HttpServletRequest request) throws java.io.IOException { List defaults = ContentServiceFactory.getInstance().getItemService().getMetadata(item, schema, element, qualifier, Item.ANY); int fieldCount = defaults.size() + fieldCountIncr; StringBuffer sb = new StringBuffer(); org.dspace.content.DCDate dateIssued; if (fieldCount == 0) fieldCount = 1; sb.append("
"); for (int i = 0; i < fieldCount; i++) { if (i < defaults.size()) dateIssued = new org.dspace.content.DCDate(defaults.get(i).getValue()); else dateIssued = new org.dspace.content.DCDate(""); sb.append("
") .append("") .append(LocaleSupport.getLocalizedMessage(pageContext, "jsp.submit.edit-metadata.month")) .append("") .append("") .append(LocaleSupport.getLocalizedMessage(pageContext, "jsp.submit.edit-metadata.day")) .append(" 0 ? String.valueOf(dateIssued.getDay()) : "" )) .append("\"/>") .append(LocaleSupport.getLocalizedMessage(pageContext, "jsp.submit.edit-metadata.year")) .append(" 0 ? String.valueOf(dateIssued.getYear()) : "" )) .append("\"/>
\n"); if (repeatable && !readonly && i < fieldCount - 1) { // put a remove button next to filled in values sb.append(""); } else if (repeatable && !readonly && i == fieldCount - 1) { // put a 'more' button next to the last space sb.append(""); } // put a blank if nothing else sb.append("
"); } sb.append("

"); out.write(sb.toString()); } void doSeriesNumber(javax.servlet.jsp.JspWriter out, Item item, String fieldName, String schema, String element, String qualifier, boolean repeatable, boolean required, boolean readonly, int fieldCountIncr, String label, PageContext pageContext) throws java.io.IOException { List defaults = ContentServiceFactory.getInstance().getItemService().getMetadata(item, schema, element, qualifier, Item.ANY); int fieldCount = defaults.size() + fieldCountIncr; StringBuffer sb = new StringBuffer(); org.dspace.content.DCSeriesNumber sn; StringBuffer headers = new StringBuffer(); if (fieldCount == 0) fieldCount = 1; sb.append("
"); for (int i = 0; i < fieldCount; i++) { if (i < defaults.size()) sn = new org.dspace.content.DCSeriesNumber(defaults.get(i).getValue()); else sn = new org.dspace.content.DCSeriesNumber(); sb.append("
\n"); if (repeatable && !readonly && i < fieldCount - 1) { // put a remove button next to filled in values sb.append(""); } else if (repeatable && !readonly && i == fieldCount - 1) { // put a 'more' button next to the last space sb.append(""); } // put a blank if nothing else sb.append("
"); } sb.append("

"); out.write(sb.toString()); } void doTextArea(javax.servlet.jsp.JspWriter out, Item item, String fieldName, String schema, String element, String qualifier, boolean repeatable, boolean required, boolean readonly, int fieldCountIncr, String label, PageContext pageContext, String vocabulary, boolean closedVocabulary, Collection collection, boolean language, List valueLanguageList) throws java.io.IOException { String authorityType = getAuthorityType(pageContext, fieldName, collection); List defaults = ContentServiceFactory.getInstance().getItemService().getMetadata(item, schema, element, qualifier, Item.ANY); int fieldCount = defaults.size() + fieldCountIncr; StringBuffer sb = new StringBuffer(); String val, auth; int conf = unknownConfidence; if (fieldCount == 0) fieldCount = 1; sb.append("
"); for (int i = 0; i < fieldCount; i++) { String lang = null; if (i < defaults.size()) { val = defaults.get(i).getValue(); lang = defaults.get(i).getLanguage(); auth = defaults.get(i).getAuthority(); conf = defaults.get(i).getConfidence(); } else { val = ""; auth = ""; } sb.append("
\n"); String fieldNameIdx = fieldName + ((repeatable)?"_" + (i+1):""); if (language) { sb.append("
"); } else { sb.append("
"); } if (authorityType != null) { sb.append("
"); } sb.append("") .append(doControlledVocabulary(fieldNameIdx, pageContext, vocabulary, readonly)) .append("
"); if (language) { if (null == lang) { lang = ConfigurationManager.getProperty("default.language"); } sb.append("
"); sb = doLanguageTag(sb, fieldNameIdx, valueLanguageList, lang); sb.append("
"); } if (authorityType != null) { sb.append("
"); sb.append(doAuthority(pageContext, fieldName, i, fieldCount, fieldName, auth, conf, false, repeatable, defaults, null, collection)); sb.append("
"); } if (repeatable && !readonly && i < fieldCount - 1) { // put a remove button next to filled in values sb.append(""); } else if (repeatable && !readonly && i == fieldCount - 1) { // put a 'more' button next to the last space sb.append(""); } // put a blank if nothing else sb.append("
"); } sb.append("

"); out.write(sb.toString()); } void doOneBox(javax.servlet.jsp.JspWriter out, Item item, String fieldName, String schema, String element, String qualifier, boolean repeatable, boolean required, boolean readonly, int fieldCountIncr, String label, PageContext pageContext, String vocabulary, boolean closedVocabulary, Collection collection, boolean language, List valueLanguageList) throws java.io.IOException { String authorityType = getAuthorityType(pageContext, fieldName, collection); List defaults = ContentServiceFactory.getInstance().getItemService().getMetadata(item, schema, element, qualifier, Item.ANY); int fieldCount = defaults.size() + fieldCountIncr; StringBuffer sb = new StringBuffer(); String val, auth; int conf= 0; if (fieldCount == 0) fieldCount = 1; sb.append("
"); sb.append("
"); for (int i = 0; i < fieldCount; i++) { String lang = null; if (i < defaults.size()) { val = defaults.get(i).getValue().replaceAll("\"", """); lang = defaults.get(i).getLanguage(); auth = defaults.get(i).getAuthority(); conf = defaults.get(i).getConfidence(); } else { val = ""; auth = ""; conf= unknownConfidence; } sb.append("
"); String fieldNameIdx = fieldName + ((repeatable)?"_" + (i+1):""); if (language) { sb.append("
"); } else { sb.append("
"); } if (authorityType != null) { sb.append("
"); } sb.append("") .append(doControlledVocabulary(fieldNameIdx, pageContext, vocabulary, readonly)) .append("
"); if (language) { if(null == lang) { lang = ConfigurationManager.getProperty("default.language"); } sb.append("
"); sb = doLanguageTag(sb, fieldNameIdx, valueLanguageList, lang); sb.append("
"); } if (authorityType != null) { sb.append("
"); sb.append(doAuthority(pageContext, fieldName, i, fieldCount, fieldName, auth, conf, false, repeatable, defaults, null, collection)); sb.append("
"); } if (repeatable && !readonly && i < fieldCount - 1) { // put a remove button next to filled in values sb.append(""); } else if (repeatable && !readonly && i == fieldCount - 1) { // put a 'more' button next to the last space sb.append(""); } sb.append("
"); } sb.append("
"); sb.append("

"); out.write(sb.toString()); } void doTwoBox(javax.servlet.jsp.JspWriter out, Item item, String fieldName, String schema, String element, String qualifier, boolean repeatable, boolean required, boolean readonly, int fieldCountIncr, String label, PageContext pageContext, String vocabulary, boolean closedVocabulary, boolean language, List valueLanguageList) throws java.io.IOException { /*
*/ List defaults = ContentServiceFactory.getInstance().getItemService().getMetadata(item, schema, element, qualifier, Item.ANY); int fieldCount = defaults.size() + fieldCountIncr; StringBuffer sb = new StringBuffer(); StringBuffer headers = new StringBuffer(); String fieldParam = ""; if (fieldCount == 0) fieldCount = 1; sb.append("
"); sb.append("
"); for (int i = 0; i < fieldCount; i++) { sb.append("
\n"); sb.append("
"); if(repeatable) { //param is field name and index, starting from 1 (e.g. myfield_2) fieldParam = fieldName + "_" + (i+1); } else { //param is just the field name fieldParam = fieldName; } if (i < defaults.size()) { sb.append(""); sb.append(doControlledVocabulary(fieldParam, pageContext, vocabulary, readonly)); sb.append(""); if (language) { String lang = defaults.get(i).getLanguage(); if(null == lang) { lang = ConfigurationManager.getProperty("default.language"); } sb.append(""); sb = doLanguageTag(sb, fieldParam, valueLanguageList, lang); sb.append(""); } if (repeatable && !readonly) { // put a remove button next to filled in values sb.append(""); } else { sb.append(" "); } } else { sb.append("") .append(doControlledVocabulary(fieldParam, pageContext, vocabulary, readonly)) .append("\n"); if (language) { String lang = ConfigurationManager.getProperty("default.language"); sb.append(""); sb = doLanguageTag(sb, fieldParam, valueLanguageList, lang); sb.append(""); } sb.append(" "); // no remove button } sb.append("
\n"); //
"); if(repeatable) { //param is field name and index, starting from 1 (e.g. myfield_2) fieldParam = fieldName + "_" + (i+1); } else { //param is just the field name fieldParam = fieldName; } if (i < defaults.size()) { sb.append(""); sb.append(doControlledVocabulary(fieldParam, pageContext, vocabulary, readonly)); sb.append(""); if (language) { String lang = defaults.get(i).getLanguage(); if(null == lang) { lang = ConfigurationManager.getProperty("default.language"); } sb.append(""); sb = doLanguageTag(sb, fieldParam, valueLanguageList, lang); sb.append(""); } if (repeatable && !readonly) { // put a remove button next to filled in values sb.append(" "); } else { sb.append(" "); } } else { sb.append("") .append(doControlledVocabulary(fieldParam, pageContext, vocabulary, readonly)) .append("\n"); if (language) { String lang = ConfigurationManager.getProperty("default.language"); sb.append(""); sb = doLanguageTag(sb, fieldParam, valueLanguageList, lang); sb.append(""); } sb.append(" "); // no remove button } sb.append("
\n"); //
  "+LocaleSupport.getLocalizedMessage(pageContext, "jsp.submit.edit-metadata.button.add")+"\n"); } else { sb.append(""); } sb.append("
"); //
} sb.append("

"); //
...
out.write(sb.toString()); } void doQualdropValue(JspWriter out, Item item, String fieldName, String schema, String element, DCInputSet inputs, boolean repeatable, boolean required, boolean readonly, int fieldCountIncr, List qualMap, String label, PageContext pageContext) throws IOException { List unfiltered = ContentServiceFactory.getInstance().getItemService().getMetadata(item, schema, element, Item.ANY, Item.ANY); // filter out both unqualified and qualified values occurring elsewhere in inputs List filtered = new ArrayList(); for (int i = 0; i < unfiltered.size(); i++) { String unfilteredFieldName = unfiltered.get(i).getMetadataField().getElement(); if(unfiltered.get(i).getMetadataField().getQualifier() != null && unfiltered.get(i).getMetadataField().getQualifier().length()>0) unfilteredFieldName += "." + unfiltered.get(i).getMetadataField().getQualifier(); if ( ! inputs.isFieldPresent(unfilteredFieldName) ) { filtered.add(unfiltered.get(i)); } } List defaults = filtered; int fieldCount = defaults.size() + fieldCountIncr; StringBuffer sb = new StringBuffer(); String q, v, currentQual, currentVal; if (fieldCount == 0) fieldCount = 1; sb.append("
"); sb.append("
"); for (int j = 0; j < fieldCount; j++) { if (j < defaults.size()) { currentQual = defaults.get(j).getMetadataField().getQualifier(); if(currentQual==null) currentQual=""; currentVal = defaults.get(j).getValue(); } else { currentQual = ""; currentVal = ""; } // do the dropdown box sb.append("
\n"); if (repeatable && !readonly && j < fieldCount - 1) { // put a remove button next to filled in values sb.append(""); } else if (repeatable && !readonly && j == fieldCount - 1) { // put a 'more' button next to the last space sb.append(""); } // put a blank if nothing else sb.append("
"); } sb.append("

"); out.write(sb.toString()); } void doDropDown(javax.servlet.jsp.JspWriter out, Item item, String fieldName, String schema, String element, String qualifier, boolean repeatable, boolean required, boolean readonly, List valueList, String label) throws java.io.IOException { List defaults = ContentServiceFactory.getInstance().getItemService().getMetadata(item, schema, element, qualifier, Item.ANY); StringBuffer sb = new StringBuffer(); Iterator vals; String display, value; int j; sb.append("
"); sb.append("") .append("

"); out.write(sb.toString()); } void doChoiceSelect(javax.servlet.jsp.JspWriter out, PageContext pageContext, Item item, String fieldName, String schema, String element, String qualifier, boolean repeatable, boolean required, boolean readonly, List valueList, String label, Collection collection) throws java.io.IOException { List defaults = ContentServiceFactory.getInstance().getItemService().getMetadata(item, schema, element, qualifier, Item.ANY); StringBuffer sb = new StringBuffer(); sb.append("
"); sb.append("") .append(doAuthority(pageContext, fieldName, 0, defaults.size(), fieldName, null, Choices.CF_UNSET, false, repeatable, defaults, null, collection)) .append("

"); out.write(sb.toString()); } /** Display Checkboxes or Radio buttons, depending on if repeatable! **/ void doList(javax.servlet.jsp.JspWriter out, Item item, String fieldName, String schema, String element, String qualifier, boolean repeatable, boolean required,boolean readonly, List valueList, String label) throws java.io.IOException { List defaults = ContentServiceFactory.getInstance().getItemService().getMetadata(item, schema, element, qualifier, Item.ANY); int valueCount = valueList.size(); StringBuffer sb = new StringBuffer(); String display, value; int j; int numColumns = 1; //if more than 3 display+value pairs, display in 2 columns to save space if(valueCount > 6) numColumns = 2; //print out the field label sb.append("
"); sb.append("
"); if(numColumns > 1) sb.append("
"); else sb.append("
"); //flag that lets us know when we are in Column2 boolean inColumn2 = false; //loop through all values for (int i = 0; i < valueList.size(); i += 2) { //get display value and actual value display = (String)valueList.get(i); value = (String)valueList.get(i+1); boolean checked = false; //check if this value has been selected previously for (j = 0; j < defaults.size(); j++) { if (value.equals(defaults.get(j).getValue())) { checked = true; break; } } // print input field sb.append("
"); sb.append(""); sb.append(""); //print display name immediately after input sb.append("") .append(display) .append("
"); // if we are writing values in two columns, // then start column 2 after half of the values if((numColumns == 2) && (i+2 >= (valueList.size()/2)) && !inColumn2) { //end first column, start second column sb.append("
"); sb.append("
"); inColumn2 = true; } }//end for each value sb.append("

"); out.write(sb.toString()); }//end doList /** Display language tags **/ StringBuffer doLanguageTag(StringBuffer sb, String fieldNameIdx, List valueLanguageList, String lang) { sb.append(""); return sb; } %> <% // Obtain DSpace context Context context = UIUtil.obtainContext(request); SubmissionInfo si = SubmissionController.getSubmissionInfo(context, request); Item item = si.getSubmissionItem().getItem(); final int halfWidth = 23; final int fullWidth = 50; final int twothirdsWidth = 34; DCInputSet inputSet = (DCInputSet) request.getAttribute("submission.inputs"); Integer pageNumStr = (Integer) request.getAttribute("submission.page"); int pageNum = pageNumStr.intValue(); // for later use, determine whether we are in submit or workflow mode String scope = si.isInWorkflow() ? "workflow" : "submit"; // owning Collection ID for choice authority calls Collection collection = si.getSubmissionItem().getCollection(); // Fetch the document type (dc.type) String documentType = ""; if( (ContentServiceFactory.getInstance().getItemService().getMetadataByMetadataString(item, "dc.type") != null) && (ContentServiceFactory.getInstance().getItemService().getMetadataByMetadataString(item, "dc.type").size() >0) ) { documentType = ContentServiceFactory.getInstance().getItemService().getMetadataByMetadataString(item, "dc.type").get(0).getValue(); } %> <% contextPath = request.getContextPath(); %>

<% //figure out which help page to display if (pageNum <= 1) { %> "> <% } else { %> "> <% } %>

<% //figure out which help page to display if (pageNum <= 1) { %>

<% } else { %>

<% } int pageIdx = pageNum - 1; DCInput[] inputs = inputSet.getPageRows(pageIdx, si.getSubmissionItem().hasMultipleTitles(), si.getSubmissionItem().isPublishedBefore() ); for (int z = 0; z < inputs.length; z++) { boolean readonly = false; // Omit fields not allowed for this document type if(!inputs[z].isAllowedFor(documentType)) { continue; } // ignore inputs invisible in this scope if (!inputs[z].isVisible(scope)) { if (inputs[z].isReadOnly(scope)) { readonly = true; } else { continue; } } String dcElement = inputs[z].getElement(); String dcQualifier = inputs[z].getQualifier(); String dcSchema = inputs[z].getSchema(); boolean language = inputs[z].getLanguage(); String fieldName; int fieldCountIncr; boolean repeatable; String vocabulary; boolean required; vocabulary = inputs[z].getVocabulary(); required = inputs[z].isRequired(); if (dcQualifier != null && !dcQualifier.equals("*")) fieldName = dcSchema + "_" + dcElement + '_' + dcQualifier; else fieldName = dcSchema + "_" + dcElement; if ((si.getMissingFields() != null) && (si.getMissingFields().contains(fieldName))) { if(inputs[z].getWarning() != null) { if(si.getJumpToField()==null || si.getJumpToField().length()==0) si.setJumpToField(fieldName); String req = "
" + inputs[z].getWarning() + "
"; out.write(req); } } else { //print out hints, if not null if(inputs[z].getHints() != null) { %>
<%= inputs[z].getHints() %> <% if (hasVocabulary(vocabulary) && !readonly) { %> <% } %>
<% } } repeatable = inputs[z].getRepeatable(); fieldCountIncr = 0; if (si.getMoreBoxesFor() != null && si.getMoreBoxesFor().equals(fieldName)) { fieldCountIncr = 1; } String inputType = inputs[z].getInputType(); String label = inputs[z].getLabel(); boolean closedVocabulary = inputs[z].isClosedVocabulary(); if (inputType.equals("name")) { doPersonalName(out, item, fieldName, dcSchema, dcElement, dcQualifier, repeatable, required, readonly, fieldCountIncr, label, pageContext, collection); } else if (isSelectable(fieldName)) { doChoiceSelect(out, pageContext, item, fieldName, dcSchema, dcElement, dcQualifier, repeatable, required, readonly, inputs[z].getPairs(), label, collection); } else if (inputType.equals("date")) { doDate(out, item, fieldName, dcSchema, dcElement, dcQualifier, repeatable, required, readonly, fieldCountIncr, label, pageContext, request); } else if (inputType.equals("series")) { doSeriesNumber(out, item, fieldName, dcSchema, dcElement, dcQualifier, repeatable, required, readonly, fieldCountIncr, label, pageContext); } else if (inputType.equals("qualdrop_value")) { doQualdropValue(out, item, fieldName, dcSchema, dcElement, inputSet, repeatable, required, readonly, fieldCountIncr, inputs[z].getPairs(), label, pageContext); } else if (inputType.equals("textarea")) { doTextArea(out, item, fieldName, dcSchema, dcElement, dcQualifier, repeatable, required, readonly, fieldCountIncr, label, pageContext, vocabulary, closedVocabulary, collection, language, inputs[z].getValueLanguageList()); } else if (inputType.equals("dropdown")) { doDropDown(out, item, fieldName, dcSchema, dcElement, dcQualifier, repeatable, required, readonly, inputs[z].getPairs(), label); } else if (inputType.equals("twobox")) { doTwoBox(out, item, fieldName, dcSchema, dcElement, dcQualifier, repeatable, required, readonly, fieldCountIncr, label, pageContext, vocabulary, closedVocabulary, language, inputs[z].getValueLanguageList()); } else if (inputType.equals("list")) { doList(out, item, fieldName, dcSchema, dcElement, dcQualifier, repeatable, required, readonly, inputs[z].getPairs(), label); } else { doOneBox(out, item, fieldName, dcSchema, dcElement, dcQualifier, repeatable, required, readonly, fieldCountIncr, label, pageContext, vocabulary, closedVocabulary, collection, language, inputs[z].getValueLanguageList()); } } // end of 'for rows' %> <%-- Hidden fields needed for SubmissionController servlet to know which item to deal with --%> <%= SubmissionController.getSubmissionParameters(context, request) %>
<% //if not first page & step, show "Previous" button if(!(SubmissionController.isFirstStep(request, si) && pageNum<=1)) { %>
" /> "/> "/> <% } else { %>
"/> "/> <% } %>