Index: lams_tool_sbmt/db/sql/create_lams_tool_sbmt.sql =================================================================== diff -u -r6954da79bd77c7eb297c0c30935ea98c7c94d5bb -rc6b6b6b37a75598d144929e5757c4270d704141f --- lams_tool_sbmt/db/sql/create_lams_tool_sbmt.sql (.../create_lams_tool_sbmt.sql) (revision 6954da79bd77c7eb297c0c30935ea98c7c94d5bb) +++ lams_tool_sbmt/db/sql/create_lams_tool_sbmt.sql (.../create_lams_tool_sbmt.sql) (revision c6b6b6b37a75598d144929e5757c4270d704141f) @@ -58,6 +58,6 @@ alter table tl_lasbmt11_submission_details add index FK1411A53C93C861A (session_id), add constraint FK1411A53C93C861A foreign key (session_id) references tl_lasbmt11_session (session_id); alter table tl_lasbmt11_submission_details add index FK1411A53C10BBAB1B (learner_id), add constraint FK1411A53C10BBAB1B foreign key (learner_id) references tl_lasbmt11_session_learners (learner_id); -INSERT INTO `tl_lasbmt11_content` (content_id,title,instruction,define_later,run_offline,content_in_use,lock_on_finished) values(1,"Java Submission","Submit your java programs",0,0,0,0); +INSERT INTO `tl_lasbmt11_content` (content_id,title,instruction,define_later,run_offline,content_in_use,lock_on_finished) values(${default_content_id},"Java Submission","Submit your java programs",0,0,0,0); INSERT INTO `tl_lasbmt11_session` (session_id,content_id,status) values(1,1,1); SET FOREIGN_KEY_CHECKS=1; \ No newline at end of file Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/ISubmitFilesService.java =================================================================== diff -u -rc5a014333e76581f2872fd7c2731e493fcf2caee -rc6b6b6b37a75598d144929e5757c4270d704141f --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/ISubmitFilesService.java (.../ISubmitFilesService.java) (revision c5a014333e76581f2872fd7c2731e493fcf2caee) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/ISubmitFilesService.java (.../ISubmitFilesService.java) (revision c6b6b6b37a75598d144929e5757c4270d704141f) @@ -177,4 +177,20 @@ * @return */ public Learner getLearner(Long sessionID, Long userID); + /** + * Create the default content for the given contentID. These default data will copy from default record in + * Tool Content database table. + * + * @return + * The SubmitFilesContent with default content and given contentID + */ + public SubmitFilesContent createDefaultContent(Long contentID); + + + /** + * This method retrieves the default content id. + * @param toolSignature The tool signature which is defined in lams_tool table. + * @return the default content id + */ + public Long getToolDefaultContentIdBySignature(String toolSignature); } Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java =================================================================== diff -u -r6e5832d17263bc6c6f7683733e91e22f97eab569 -rc6b6b6b37a75598d144929e5757c4270d704141f --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java (.../SubmitFilesService.java) (revision 6e5832d17263bc6c6f7683733e91e22f97eab569) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java (.../SubmitFilesService.java) (revision c6b6b6b37a75598d144929e5757c4270d704141f) @@ -24,6 +24,7 @@ import java.io.FileNotFoundException; import java.io.IOException; +import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; @@ -215,7 +216,7 @@ SubmitFilesContent fromContent = submitFilesContentDAO.getContentByID(fromContentId); if ( fromContent == null ) { - // TODO need to get default content here!!! + fromContent = createDefaultContent(fromContentId); } SubmitFilesContent toContent = (SubmitFilesContent) fromContent.clone(); //reset some new attributes for toContent @@ -323,17 +324,19 @@ submitFilesContentDAO.save(content); } - /** + /* * (non-Javadoc) * * @see org.lamsfoundation.lams.tool.sbmt.service.ISubmitFilesService#updateSubmitFilesContent(org.lamsfoundation.lams.tool.sbmt.SubmitFilesContent) */ public void updateSubmitFilesContent(SubmitFilesContent submitFilesContent) { submitFilesContentDAO.update(submitFilesContent); - } + public void saveSubmitFilesContent(SubmitFilesContent submitFilesContent) { + submitFilesContentDAO.save(submitFilesContent); + } - /** + /* * (non-Javadoc) * * @see org.lamsfoundation.lams.tool.sbmt.service.ISubmitFilesService#getSubmitFilesContent(java.lang.Long) @@ -351,7 +354,7 @@ return content; } - /** + /* * (non-Javadoc) * * @see org.lamsfoundation.lams.tool.sbmt.service.ISubmitFilesService#getSubmitFilesReport(java.lang.Long) @@ -417,7 +420,7 @@ submitFilesContentDAO.deleteInstructionFile(contentID, uuid, versionID, type); } - /** + /* * (non-Javadoc) * * @see org.lamsfoundation.lams.tool.ToolSessionManager#createToolSession(java.lang.Long, @@ -456,7 +459,7 @@ } - /** + /* * (non-Javadoc) * * @see org.lamsfoundation.lams.tool.ToolSessionManager#leaveToolSession(java.lang.Long, @@ -779,5 +782,47 @@ } } - + /* (non-Javadoc) + * @see org.lamsfoundation.lams.tool.sbmt.service.ISubmitFilesService#getToolDefaultContentIdBySignature(java.lang.Long) + */ + public Long getToolDefaultContentIdBySignature(String toolSignature) + { + Long contentId = null; + contentId=new Long(toolService.getToolDefaultContentIdBySignature(toolSignature)); + if (contentId == null) + { + String error="Could not retrieve default content id for this tool"; + log.error(error); + throw new SubmitFilesException(error); + } + return contentId; + } + /* (non-Javadoc) + * @see org.lamsfoundation.lams.tool.sbmt.service.ISubmitFilesService#createDefaultContent(java.lang.Long) + */ + public SubmitFilesContent createDefaultContent(Long contentID) { + if (contentID == null) + { + String error="Could not retrieve default content id for this tool"; + log.error(error); + throw new SubmitFilesException(error); + } + Long defaultToolContentId = getToolDefaultContentIdBySignature(SbmtConstants.TOOLSIGNNATURE); + SubmitFilesContent defaultContent = getSubmitFilesContent(defaultToolContentId); + if(defaultContent == null) + { + String error="Could not retrieve default content record for this tool"; + log.error(error); + throw new SubmitFilesException(error); + } + + //save default content by given ID. + SubmitFilesContent content = new SubmitFilesContent(); + content = (SubmitFilesContent) defaultContent.clone(); + content.setContentID(contentID); + saveSubmitFilesContent(content); + + + return content; + } } \ No newline at end of file Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/AuthoringAction.java =================================================================== diff -u -r400b01498f92003243dfe91f424d0f4e44263874 -rc6b6b6b37a75598d144929e5757c4270d704141f --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/AuthoringAction.java (.../AuthoringAction.java) (revision 400b01498f92003243dfe91f424d0f4e44263874) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/AuthoringAction.java (.../AuthoringAction.java) (revision c6b6b6b37a75598d144929e5757c4270d704141f) @@ -185,7 +185,11 @@ .getServlet().getServletContext()); SubmitFilesContent persistContent = submitFilesService.getSubmitFilesContent(contentID); - //if this content does not exist(empty without id), or find out wrong content(id not match), + //if this content does not exist(empty without id), create a content by default content record. + if(persistContent == null){ + persistContent = submitFilesService.createDefaultContent(contentID); + } + //if find out wrong content(id not match), //then reset the contentID to current value in order to keep it on HTML page. if(!contentID.equals(persistContent.getContentID())){ persistContent = new SubmitFilesContent(); Index: lams_tool_sbmt/web/WEB-INF/struts/struts-config.xml =================================================================== diff -u -re9fa11d8a3c53fff2c6658ceed7660cb12627a6e -rc6b6b6b37a75598d144929e5757c4270d704141f --- lams_tool_sbmt/web/WEB-INF/struts/struts-config.xml (.../struts-config.xml) (revision e9fa11d8a3c53fff2c6658ceed7660cb12627a6e) +++ lams_tool_sbmt/web/WEB-INF/struts/struts-config.xml (.../struts-config.xml) (revision c6b6b6b37a75598d144929e5757c4270d704141f) @@ -13,7 +13,7 @@ - + - http://java.sun.com/jstl/fmt - /WEB-INF/JSTL/tlds/fmt.tld + tags-fmt + /WEB-INF/jstl/tlds/fmt.tld - http://java.sun.com/jstl/fmt-rt - /WEB-INF/JSTL/tlds/fmt-rt.tld + tags-fmt-rt + /WEB-INF/jstl/tlds/fmt-rt.tld - http://java.sun.com/jstl/core - /WEB-INF/JSTL/tlds/c.tld + tags-core + /WEB-INF/jstl/tlds/c.tld - http://java.sun.com/jstl/core-rt - /WEB-INF/JSTL/tlds/c-rt.tld + tags-core-rt + /WEB-INF/jstl/tlds/c-rt.tld