Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McResources.properties =================================================================== diff -u -rf6991bff0a6a158b9432f338079cc3fc650dd389 -r32fc4979f5d351d85b0b1d751810fe1433ee0fcc --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McResources.properties (.../McResources.properties) (revision f6991bff0a6a158b9432f338079cc3fc650dd389) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McResources.properties (.../McResources.properties) (revision 32fc4979f5d351d85b0b1d751810fe1433ee0fcc) @@ -36,6 +36,9 @@ label.redo.questions =Redo Questions label.view.summary =View Summary label.view.answers =View Answers +label.view =View +label.download =Download +label.delete =Delete label.finished =Finished label.attempt =Attempt Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/AuthoringUtil.java =================================================================== diff -u -rf6991bff0a6a158b9432f338079cc3fc650dd389 -r32fc4979f5d351d85b0b1d751810fe1433ee0fcc --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/AuthoringUtil.java (.../AuthoringUtil.java) (revision f6991bff0a6a158b9432f338079cc3fc650dd389) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/AuthoringUtil.java (.../AuthoringUtil.java) (revision 32fc4979f5d351d85b0b1d751810fe1433ee0fcc) @@ -1759,6 +1759,36 @@ } + public static List removeFileItem(List listFilesMetaData, String uuid) + { + McAttachmentDTO deletableAttachmentDTO=null; + + Iterator itList = listFilesMetaData.iterator(); + int mainIndex=0; + while (itList.hasNext()) + { + mainIndex++; + McAttachmentDTO currentAttachmentDTO=(McAttachmentDTO) itList.next(); + logger.debug("currentAttachmentDTO :" + currentAttachmentDTO); + logger.debug("currentAttachmentDTO uuid :" + currentAttachmentDTO.getUuid()); + + if (currentAttachmentDTO.getUuid().equals(uuid)) + { + logger.debug("equal uuid found uuid :" + uuid); + deletableAttachmentDTO=currentAttachmentDTO; + break; + } + } + + logger.debug("equal uuid found at index :" + mainIndex); + logger.debug("deletable attachment is:" + deletableAttachmentDTO); + + listFilesMetaData.remove(deletableAttachmentDTO); + logger.debug("listOfflineFilesMetaData after remove:" + listFilesMetaData); + + return listFilesMetaData; + } + public static void persistFilesMetaData(HttpServletRequest request, boolean isOfflineFile, McContent mcContent) { IMcService mcService =McUtils.getToolService(request); @@ -1801,14 +1831,34 @@ } + public static List extractFileNames(List listFilesMetaData) + { + Iterator itList = listFilesMetaData.iterator(); + LinkedList listFilenames= new LinkedList(); + + while (itList.hasNext()) + { + McAttachmentDTO mcAttachmentDTO=(McAttachmentDTO)itList.next(); + String filename=mcAttachmentDTO.getFilename(); + logger.debug("extracted filename: " + filename); + listFilenames.add(filename); + } + logger.debug("final extracted listFilenames: " + listFilenames); + return listFilenames; + } + + public static void removeRedundantOfflineFileItems(HttpServletRequest request, McContent mcContent) { IMcService mcService =McUtils.getToolService(request); List allOfflineFilenames=mcService.retrieveMcUploadedOfflineFilesName(mcContent.getUid()); logger.debug("allOfflineFilenames:" + allOfflineFilenames); - List listUploadedOfflineFileNames=(List)request.getSession().getAttribute(LIST_UPLOADED_OFFLINE_FILENAMES); + List listOfflineFilesMetaData =(List)request.getSession().getAttribute(LIST_OFFLINEFILES_METADATA); + logger.debug("listOfflineFilesMetaData:" + listOfflineFilesMetaData); + + List listUploadedOfflineFileNames=extractFileNames(listOfflineFilesMetaData); logger.debug("listUploadedOfflineFileNames:" + listUploadedOfflineFileNames); boolean matchFound=false; @@ -1852,9 +1902,13 @@ List allOnlineFilenames=mcService.retrieveMcUploadedOnlineFilesName(mcContent.getUid()); logger.debug("allOnlineFilenames:" + allOnlineFilenames); - List listUploadedOnlineFileNames=(List)request.getSession().getAttribute(LIST_UPLOADED_ONLINE_FILENAMES); + List listOnlineFilesMetaData =(List)request.getSession().getAttribute(LIST_ONLINEFILES_METADATA); + logger.debug("listOnlineFilesMetaData:" + listOnlineFilesMetaData); + + List listUploadedOnlineFileNames=extractFileNames(listOnlineFilesMetaData); logger.debug("listUploadedOnlineFileNames:" + listUploadedOnlineFileNames); + boolean matchFound=false; Iterator itAllOnlineFiles = allOnlineFilenames.iterator(); while (itAllOnlineFiles.hasNext()) Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAction.java =================================================================== diff -u -rf6991bff0a6a158b9432f338079cc3fc650dd389 -r32fc4979f5d351d85b0b1d751810fe1433ee0fcc --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAction.java (.../McAction.java) (revision f6991bff0a6a158b9432f338079cc3fc650dd389) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAction.java (.../McAction.java) (revision 32fc4979f5d351d85b0b1d751810fe1433ee0fcc) @@ -1463,8 +1463,8 @@ /** - * prepares data to view the contents of uploaded files - * viewFileItem(ActionMapping mapping, + * removes offline file data + * deleteFileItem(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) @@ -1474,136 +1474,41 @@ * @param mapping * @return ActionForward */ - public ActionForward viewFileItem(ActionMapping mapping, + public ActionForward deleteOfflineFile(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { - logger.debug("dispatching viewFileItem..."); + logger.debug("dispatching deleteOfflineFile..."); McAuthoringForm mcAuthoringForm = (McAuthoringForm) form; IMcService mcService =McUtils.getToolService(request); AuthoringUtil.readData(request, mcAuthoringForm); - String userAction="viewFileItem"; - request.setAttribute(USER_ACTION, userAction); - logger.debug("userAction:" + userAction); - - String filename= request.getParameter("fileItem"); - logger.debug("filename:" + filename); - - String uuid=mcService.getFileUuid(filename); - logger.debug("uuid:" + uuid); - - if (uuid == null) - { - ActionMessages errors= new ActionMessages(); - errors= new ActionMessages(); - errors.add(Globals.ERROR_KEY,new ActionMessage("error.file.notPersisted")); - saveErrors(request,errors); - mcAuthoringForm.resetUserAction(); - persistError(request,"error.file.notPersisted"); - - request.getSession().setAttribute(EDIT_OPTIONS_MODE, new Integer(2)); - logger.debug("setting EDIT_OPTIONS_MODE :" + 2); - return (mapping.findForward(LOAD_QUESTIONS)); - } - - InputStream fileInputStream=mcService.downloadFile(new Long(uuid), null); - logger.debug("fileInputStream:" + fileInputStream); - - DataInputStream dis = new DataInputStream(fileInputStream); - logger.debug("dis:" + dis); - - String allFileText=""; - try - { - String input=""; - while ((input = dis.readLine()) != null) - { - logger.debug("input:" + input); - allFileText = allFileText + input + "\r\n"; - } - } catch (EOFException e) { - logger.debug("error reading the file :" + e); - logger.debug("error msg reading the file :" + e.getMessage()); - } - catch (IOException e) { - logger.debug("error reading the file :" + e); - logger.debug("error msg reading the file :" + e.getMessage()); - } - - logger.debug("allFileText:" + allFileText); - request.getSession().setAttribute(FILE_CONTENT, allFileText); - - request.setAttribute(FILE_CONTENT_READY, new Integer(1)); - logger.debug("set FILE_CONTENT_READY to 1"); - - request.getSession().setAttribute(FILE_NAME, filename); - - mcAuthoringForm.resetUserAction(); - request.getSession().setAttribute(EDIT_OPTIONS_MODE, new Integer(0)); - logger.debug("setting EDIT_OPTIONS_MODE :" + 0); - return (mapping.findForward(LOAD_QUESTIONS)); - } - + String userAction="deleteOfflineFile"; + request.setAttribute(USER_ACTION, userAction); + logger.debug("userAction:" + userAction); - /** - * removes file data - * deleteFileItem(ActionMapping mapping, - ActionForm form, - HttpServletRequest request, - HttpServletResponse response) - * - * @param request - * @param form - * @param mapping - * @return ActionForward - */ - public ActionForward deleteFileItem(ActionMapping mapping, - ActionForm form, - HttpServletRequest request, - HttpServletResponse response) throws IOException, - ServletException - - { - logger.debug("dispatching deleteFileItem..."); - McAuthoringForm mcAuthoringForm = (McAuthoringForm) form; - IMcService mcService =McUtils.getToolService(request); + String uuid =mcAuthoringForm.getUuid(); + logger.debug("uuid:" + uuid); - AuthoringUtil.readData(request, mcAuthoringForm); + List listOfflineFilesMetaData =(List)request.getSession().getAttribute(LIST_OFFLINEFILES_METADATA); + logger.debug("listOfflineFilesMetaData:" + listOfflineFilesMetaData); + listOfflineFilesMetaData=AuthoringUtil.removeFileItem(listOfflineFilesMetaData, uuid); + logger.debug("listOfflineFilesMetaData after remove:" + listOfflineFilesMetaData); + request.getSession().setAttribute(LIST_OFFLINEFILES_METADATA, listOfflineFilesMetaData); - String userAction="deleteFileItem"; - request.setAttribute(USER_ACTION, userAction); - logger.debug("userAction:" + userAction); - - String filename= request.getParameter("fileItem"); - logger.debug("filename:" + filename); - - String offlineFile= request.getParameter("offlineFile"); - logger.debug("offlineFile:" + offlineFile); - - logger.debug("start removing file:" + filename + " it is an:" + offlineFile); - - if (!filename.equals("")) - { - AuthoringUtil.removeFileItem(request, filename, offlineFile); - logger.debug("done removing offline file"); - } - - mcAuthoringForm.resetUserAction(); - request.getSession().setAttribute(EDIT_OPTIONS_MODE, new Integer(0)); - logger.debug("setting EDIT_OPTIONS_MODE :" + 0); - return (mapping.findForward(LOAD_QUESTIONS)); + mcAuthoringForm.resetUserAction(); + return (mapping.findForward(LOAD_QUESTIONS)); + } - - + /** - * moves from Advanced Tab to Basic Tab - * doneAdvancedTab(ActionMapping mapping, + * removes online file data + * deleteFileItem(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) @@ -1613,60 +1518,38 @@ * @param mapping * @return ActionForward */ - public ActionForward doneAdvancedTab(ActionMapping mapping, + public ActionForward deleteOnlineFile(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException + { - logger.debug("dispatching doneAdvancedTab..."); + logger.debug("dispatching deleteOnlineFile..."); McAuthoringForm mcAuthoringForm = (McAuthoringForm) form; IMcService mcService =McUtils.getToolService(request); AuthoringUtil.readData(request, mcAuthoringForm); - - String userAction="advancedTabDone"; + + String userAction="deleteOnlineFile"; request.setAttribute(USER_ACTION, userAction); logger.debug("userAction:" + userAction); - - mcAuthoringForm.resetUserAction(); - return (mapping.findForward(LOAD_QUESTIONS)); - } - - - /** - * moves from Instructions Tab to Basic Tab - * doneInstructionsTab(ActionMapping mapping, - ActionForm form, - HttpServletRequest request, - HttpServletResponse response) - * - * @param request - * @param form - * @param mapping - * @return ActionForward - */ - public ActionForward doneInstructionsTab(ActionMapping mapping, - ActionForm form, - HttpServletRequest request, - HttpServletResponse response) throws IOException, - ServletException - { - logger.debug("dispatching doneInstructionsTab..."); - McAuthoringForm mcAuthoringForm = (McAuthoringForm) form; - IMcService mcService =McUtils.getToolService(request); + + String uuid =mcAuthoringForm.getUuid(); + logger.debug("uuid:" + uuid); - AuthoringUtil.readData(request, mcAuthoringForm); + List listOnlineFilesMetaData =(List)request.getSession().getAttribute(LIST_ONLINEFILES_METADATA); + logger.debug("listOnlineFilesMetaData:" + listOnlineFilesMetaData); + listOnlineFilesMetaData=AuthoringUtil.removeFileItem(listOnlineFilesMetaData, uuid); + logger.debug("listOnlineFilesMetaData after remove:" + listOnlineFilesMetaData); + request.getSession().setAttribute(LIST_ONLINEFILES_METADATA, listOnlineFilesMetaData); - String userAction="dispinstructionsTabDone"; - request.setAttribute(USER_ACTION, userAction); - logger.debug("userAction:" + userAction); - mcAuthoringForm.resetUserAction(); - return (mapping.findForward(LOAD_QUESTIONS)); + mcAuthoringForm.resetUserAction(); + return (mapping.findForward(LOAD_QUESTIONS)); } - - /** + + /** * adds the offline file information in the content repository. * submitOfflineFiles(ActionMapping mapping, ActionForm form, @@ -1787,6 +1670,71 @@ } + /** + * moves from Advanced Tab to Basic Tab + * doneAdvancedTab(ActionMapping mapping, + ActionForm form, + HttpServletRequest request, + HttpServletResponse response) + * + * @param request + * @param form + * @param mapping + * @return ActionForward + */ + public ActionForward doneAdvancedTab(ActionMapping mapping, + ActionForm form, + HttpServletRequest request, + HttpServletResponse response) throws IOException, + ServletException + { + logger.debug("dispatching doneAdvancedTab..."); + McAuthoringForm mcAuthoringForm = (McAuthoringForm) form; + IMcService mcService =McUtils.getToolService(request); + + AuthoringUtil.readData(request, mcAuthoringForm); + + String userAction="advancedTabDone"; + request.setAttribute(USER_ACTION, userAction); + logger.debug("userAction:" + userAction); + + mcAuthoringForm.resetUserAction(); + return (mapping.findForward(LOAD_QUESTIONS)); + } + + + /** + * moves from Instructions Tab to Basic Tab + * doneInstructionsTab(ActionMapping mapping, + ActionForm form, + HttpServletRequest request, + HttpServletResponse response) + * + * @param request + * @param form + * @param mapping + * @return ActionForward + */ + public ActionForward doneInstructionsTab(ActionMapping mapping, + ActionForm form, + HttpServletRequest request, + HttpServletResponse response) throws IOException, + ServletException + { + logger.debug("dispatching doneInstructionsTab..."); + McAuthoringForm mcAuthoringForm = (McAuthoringForm) form; + IMcService mcService =McUtils.getToolService(request); + + AuthoringUtil.readData(request, mcAuthoringForm); + + String userAction="dispinstructionsTabDone"; + request.setAttribute(USER_ACTION, userAction); + logger.debug("userAction:" + userAction); + mcAuthoringForm.resetUserAction(); + return (mapping.findForward(LOAD_QUESTIONS)); + } + + /** * ensures that the weight valued entered are valid * validateQuestionWeights(HttpServletRequest request, McAuthoringForm mcAuthoringForm) Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAuthoringForm.java =================================================================== diff -u -ra94de5ff6e0fa1bf65e068d94c81ccdd232c06df -r32fc4979f5d351d85b0b1d751810fe1433ee0fcc --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAuthoringForm.java (.../McAuthoringForm.java) (revision a94de5ff6e0fa1bf65e068d94c81ccdd232c06df) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAuthoringForm.java (.../McAuthoringForm.java) (revision 32fc4979f5d351d85b0b1d751810fe1433ee0fcc) @@ -23,6 +23,8 @@ protected String removeOptionContent; protected String fileItem; + protected String uuid; + protected FormFile receivedFile; protected String offlineFile; @@ -113,6 +115,7 @@ this.removeOptionContent=null; this.fileItem=null; + this.uuid=null; this.receivedFile=null; this.addContent=null; @@ -741,4 +744,16 @@ public void setOfflineFile(String offlineFile) { this.offlineFile = offlineFile; } + /** + * @return Returns the uuid. + */ + public String getUuid() { + return uuid; + } + /** + * @param uuid The uuid to set. + */ + public void setUuid(String uuid) { + this.uuid = uuid; + } } Index: lams_tool_lamc/web/AdvancedContent.jsp =================================================================== diff -u -rb7285ac977222460053f4293718569503f17fe1e -r32fc4979f5d351d85b0b1d751810fe1433ee0fcc --- lams_tool_lamc/web/AdvancedContent.jsp (.../AdvancedContent.jsp) (revision b7285ac977222460053f4293718569503f17fe1e) +++ lams_tool_lamc/web/AdvancedContent.jsp (.../AdvancedContent.jsp) (revision 32fc4979f5d351d85b0b1d751810fe1433ee0fcc) @@ -7,10 +7,10 @@ - - - - - - - - - - - - -
+ : + @@ -22,10 +22,10 @@
+ : + @@ -37,10 +37,10 @@
+ : + @@ -53,37 +53,37 @@
+ : +
+ : +
+   
+    + Index: lams_tool_lamc/web/BasicContent.jsp =================================================================== diff -u -r885c702d472ffd26ddc8c506553a2e053bd2d175 -r32fc4979f5d351d85b0b1d751810fe1433ee0fcc --- lams_tool_lamc/web/BasicContent.jsp (.../BasicContent.jsp) (revision 885c702d472ffd26ddc8c506553a2e053bd2d175) +++ lams_tool_lamc/web/BasicContent.jsp (.../BasicContent.jsp) (revision 32fc4979f5d351d85b0b1d751810fe1433ee0fcc) @@ -19,34 +19,34 @@ - - + - - + - -
: + :
: + :
+
+
- @@ -56,14 +56,14 @@ - + - - - - - - - + - - + + - - - - + - - + + -
+
: : + " value="" size="50" maxlength="255" > + ','moveQuestionDown');"> @@ -78,7 +78,7 @@ + " value="" @@ -88,15 +88,15 @@ + ','editOptions');"> ','removeQuestion');">
+ @@ -113,36 +113,33 @@
: + :
- +
- +
+
Index: lams_tool_lamc/web/CombinedAnswersContent.jsp =================================================================== diff -u -r80a1f85da1de7f647aeee20ecbeffd25e4173573 -r32fc4979f5d351d85b0b1d751810fe1433ee0fcc --- lams_tool_lamc/web/CombinedAnswersContent.jsp (.../CombinedAnswersContent.jsp) (revision 80a1f85da1de7f647aeee20ecbeffd25e4173573) +++ lams_tool_lamc/web/CombinedAnswersContent.jsp (.../CombinedAnswersContent.jsp) (revision 32fc4979f5d351d85b0b1d751810fe1433ee0fcc) @@ -7,31 +7,31 @@ - - - - @@ -42,7 +42,7 @@ - -
+
+
+
+ ( )
+ @@ -51,7 +51,7 @@
+ @@ -69,7 +69,7 @@ - - @@ -101,7 +101,7 @@ - - @@ -139,13 +139,13 @@ - -
+ - onclick="javascript:document.forms[0].optionCheckBoxSelected.value=1; @@ -87,7 +87,7 @@ } document.forms[0].submit();" CHECKED> +
+ - onclick="javascript:document.forms[0].optionCheckBoxSelected.value=1; @@ -119,7 +119,7 @@ } document.forms[0].submit();"> +
+  
+ Index: lams_tool_lamc/web/IndividualLearnerResults.jsp =================================================================== diff -u -rb7285ac977222460053f4293718569503f17fe1e -r32fc4979f5d351d85b0b1d751810fe1433ee0fcc --- lams_tool_lamc/web/IndividualLearnerResults.jsp (.../IndividualLearnerResults.jsp) (revision b7285ac977222460053f4293718569503f17fe1e) +++ lams_tool_lamc/web/IndividualLearnerResults.jsp (.../IndividualLearnerResults.jsp) (revision 32fc4979f5d351d85b0b1d751810fe1433ee0fcc) @@ -7,30 +7,30 @@ - - - - - - - -
+
+
+
+     @@ -40,14 +40,14 @@
+
+       @@ -63,7 +63,7 @@
+ @@ -72,37 +72,37 @@
+ - - - - - - @@ -179,7 +179,7 @@ - -
+  
+
+ - @@ -115,7 +115,7 @@
+
+ @@ -139,7 +139,7 @@
+ @@ -170,7 +170,7 @@
+  
+ @@ -199,7 +199,7 @@
+ Index: lams_tool_lamc/web/InstructionsContent.jsp =================================================================== diff -u -rf6991bff0a6a158b9432f338079cc3fc650dd389 -r32fc4979f5d351d85b0b1d751810fe1433ee0fcc --- lams_tool_lamc/web/InstructionsContent.jsp (.../InstructionsContent.jsp) (revision f6991bff0a6a158b9432f338079cc3fc650dd389) +++ lams_tool_lamc/web/InstructionsContent.jsp (.../InstructionsContent.jsp) (revision 32fc4979f5d351d85b0b1d751810fe1433ee0fcc) @@ -8,37 +8,28 @@ - - - - - - - - - - - + + - - - - - - Index: lams_tool_lamc/web/WEB-INF/struts-config.xml =================================================================== diff -u -ra94de5ff6e0fa1bf65e068d94c81ccdd232c06df -r32fc4979f5d351d85b0b1d751810fe1433ee0fcc --- lams_tool_lamc/web/WEB-INF/struts-config.xml (.../struts-config.xml) (revision a94de5ff6e0fa1bf65e068d94c81ccdd232c06df) +++ lams_tool_lamc/web/WEB-INF/struts-config.xml (.../struts-config.xml) (revision 32fc4979f5d351d85b0b1d751810fe1433ee0fcc) @@ -87,13 +87,11 @@ redirect="true" /> - - Index: lams_tool_lamc/web/authoringMaincontent.jsp =================================================================== diff -u -raba443e2b63edbcb50c172615f2c323b3ee048b3 -r32fc4979f5d351d85b0b1d751810fe1433ee0fcc --- lams_tool_lamc/web/authoringMaincontent.jsp (.../authoringMaincontent.jsp) (revision aba443e2b63edbcb50c172615f2c323b3ee048b3) +++ lams_tool_lamc/web/authoringMaincontent.jsp (.../authoringMaincontent.jsp) (revision 32fc4979f5d351d85b0b1d751810fe1433ee0fcc) @@ -115,7 +115,7 @@

+ : +
+ @@ -50,38 +41,53 @@
+ + - - - - - - + + + + + + +
- ','viewFileItem');"> - - ','deleteFileItem', '1');"> -
+ + + + + + + + + + + + + + + + + ','deleteOfflineFile');"> +
+ +
+ @@ -93,67 +99,83 @@
+ + - - - - - - + + + + + + +
- ','viewFileItem');"> - - ','deleteFileItem', '0');"> -
+ + + + + + + + + + + + + + + + + ','deleteOnlineFile');"> +
+  
+ +
+  
+ : + - - +
+
- @@ -139,7 +139,7 @@
+ <%@ include file="errorbox.jsp" %>
- @@ -156,7 +156,7 @@
+ <%@ include file="errorbox.jsp" %>
- Index: lams_tool_lamc/web/errorList.jsp =================================================================== diff -u -re6a6fd9fc56102261bd0a7b65ad6b41eb19105bc -r32fc4979f5d351d85b0b1d751810fe1433ee0fcc --- lams_tool_lamc/web/errorList.jsp (.../errorList.jsp) (revision e6a6fd9fc56102261bd0a7b65ad6b41eb19105bc) +++ lams_tool_lamc/web/errorList.jsp (.../errorList.jsp) (revision 32fc4979f5d351d85b0b1d751810fe1433ee0fcc) @@ -27,7 +27,7 @@
+ <%@ include file="errorbox.jsp" %>
-
+