Index: lams_tool_sbmt/conf/hibernate/mappings/org/lamsfoundation/lams/tool/sbmt/SubmitFilesContent.hbm.xml =================================================================== RCS file: /usr/local/cvsroot/lams_tool_sbmt/conf/hibernate/mappings/org/lamsfoundation/lams/tool/sbmt/Attic/SubmitFilesContent.hbm.xml,v diff -u -r1.6 -r1.7 --- lams_tool_sbmt/conf/hibernate/mappings/org/lamsfoundation/lams/tool/sbmt/SubmitFilesContent.hbm.xml 10 Oct 2005 04:41:20 -0000 1.6 +++ lams_tool_sbmt/conf/hibernate/mappings/org/lamsfoundation/lams/tool/sbmt/SubmitFilesContent.hbm.xml 17 Aug 2006 02:16:05 -0000 1.7 @@ -99,14 +99,6 @@ /> - - - - - - - - - - - - - - - - - - - - - - - Index: lams_tool_sbmt/conf/xdoclet/validation-forms.xml =================================================================== RCS file: /usr/local/cvsroot/lams_tool_sbmt/conf/xdoclet/Attic/validation-forms.xml,v diff -u -r1.3 -r1.4 --- lams_tool_sbmt/conf/xdoclet/validation-forms.xml 9 Nov 2005 04:51:54 -0000 1.3 +++ lams_tool_sbmt/conf/xdoclet/validation-forms.xml 17 Aug 2006 02:16:09 -0000 1.4 @@ -4,8 +4,3 @@ - -
- - - \ No newline at end of file Index: lams_tool_sbmt/db/sql/create_lams_tool_sbmt.sql =================================================================== RCS file: /usr/local/cvsroot/lams_tool_sbmt/db/sql/create_lams_tool_sbmt.sql,v diff -u -r1.20 -r1.21 --- lams_tool_sbmt/db/sql/create_lams_tool_sbmt.sql 2 Aug 2006 03:30:43 -0000 1.20 +++ lams_tool_sbmt/db/sql/create_lams_tool_sbmt.sql 17 Aug 2006 02:16:08 -0000 1.21 @@ -15,7 +15,6 @@ run_offline bit not null, offline_instruction text, online_instruction text, - run_offline_instruction text, content_in_use bit, lock_on_finished bit, primary key (content_id) Index: lams_tool_sbmt/db/sql/table-schema.sql =================================================================== RCS file: /usr/local/cvsroot/lams_tool_sbmt/db/sql/table-schema.sql,v diff -u -r1.15 -r1.16 --- lams_tool_sbmt/db/sql/table-schema.sql 14 Jun 2006 23:55:28 -0000 1.15 +++ lams_tool_sbmt/db/sql/table-schema.sql 17 Aug 2006 02:16:07 -0000 1.16 @@ -1,70 +1,22 @@ alter table tl_lasbmt11_instruction_files drop foreign key FKA75538F9785A173A; alter table tl_lasbmt11_session drop foreign key FKEC8C77C9785A173A; alter table tl_lasbmt11_session_learners drop foreign key FKC56CD05893C861A; -alter table tl_lasbmt11_submission_details drop foreign key FK1411A53C93C861A; alter table tl_lasbmt11_submission_details drop foreign key FK1411A53C10BBAB1B; +alter table tl_lasbmt11_submission_details drop foreign key FK1411A53C93C861A; drop table if exists tl_lasbmt11_content; drop table if exists tl_lasbmt11_instruction_files; drop table if exists tl_lasbmt11_report; drop table if exists tl_lasbmt11_session; drop table if exists tl_lasbmt11_session_learners; drop table if exists tl_lasbmt11_submission_details; -create table tl_lasbmt11_content ( - content_id bigint not null, - title varchar(64) not null, - instruction text, - define_later bit not null, - run_offline bit not null, - offline_instruction text, - online_instruction text, - run_offline_instruction text, - content_in_use bit, - lock_on_finished bit, - primary key (content_id) -); -create table tl_lasbmt11_instruction_files ( - uid bigint not null auto_increment, - uuid bigint, - version_id bigint, - type varchar(20), - name varchar(255), - content_id bigint, - primary key (uid) -); -create table tl_lasbmt11_report ( - report_id bigint not null auto_increment, - comments varchar(250), - marks bigint, - date_marks_released datetime, - primary key (report_id) -); -create table tl_lasbmt11_session ( - session_id bigint not null, - status integer not null, - content_id bigint, - session_name varchar(250), - primary key (session_id) -); -create table tl_lasbmt11_session_learners ( - learner_id bigint not null auto_increment, - user_id bigint, - finished bit, - session_id bigint, - primary key (learner_id) -); -create table tl_lasbmt11_submission_details ( - submission_id bigint not null auto_increment, - filePath varchar(250), - fileDescription varchar(250), - date_of_submission datetime, - uuid bigint, - version_id bigint, - session_id bigint, - learner_id bigint, - primary key (submission_id) -); +create table tl_lasbmt11_content (content_id bigint not null, title varchar(64) not null, instruction text, define_later bit not null, run_offline bit not null, offline_instruction text, online_instruction text, content_in_use bit, lock_on_finished bit, primary key (content_id)); +create table tl_lasbmt11_instruction_files (uid bigint not null auto_increment, uuid bigint, version_id bigint, type varchar(20), name varchar(255), content_id bigint, primary key (uid)); +create table tl_lasbmt11_report (report_id bigint not null auto_increment, comments varchar(250), marks bigint, date_marks_released datetime, primary key (report_id)); +create table tl_lasbmt11_session (session_id bigint not null, status integer not null, content_id bigint, session_name varchar(250), primary key (session_id)); +create table tl_lasbmt11_session_learners (learner_id bigint not null auto_increment, user_id bigint, finished bit, session_id bigint, primary key (learner_id)); +create table tl_lasbmt11_submission_details (submission_id bigint not null auto_increment, filePath varchar(250), fileDescription varchar(250), date_of_submission datetime, uuid bigint, version_id bigint, session_id bigint, learner_id bigint, primary key (submission_id)); alter table tl_lasbmt11_instruction_files add index FKA75538F9785A173A (content_id), add constraint FKA75538F9785A173A foreign key (content_id) references tl_lasbmt11_content (content_id); alter table tl_lasbmt11_session add index FKEC8C77C9785A173A (content_id), add constraint FKEC8C77C9785A173A foreign key (content_id) references tl_lasbmt11_content (content_id); alter table tl_lasbmt11_session_learners add index FKC56CD05893C861A (session_id), add constraint FKC56CD05893C861A foreign key (session_id) references tl_lasbmt11_session (session_id); -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); +alter table tl_lasbmt11_submission_details add index FK1411A53C93C861A (session_id), add constraint FK1411A53C93C861A foreign key (session_id) references tl_lasbmt11_session (session_id); Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/SubmitFilesContent.hbm.xml =================================================================== RCS file: /usr/local/cvsroot/lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/Attic/SubmitFilesContent.hbm.xml,v diff -u -r1.4 -r1.5 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/SubmitFilesContent.hbm.xml 10 Oct 2005 04:41:20 -0000 1.4 +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/SubmitFilesContent.hbm.xml 17 Aug 2006 02:16:07 -0000 1.5 @@ -99,14 +99,6 @@ /> - - + * Define later will use this method to initial page as well. + * @see org.apache.struts.actions.DispatchAction#unspecified(org.apache.struts.action.ActionMapping, + * org.apache.struts.action.ActionForm, + * javax.servlet.http.HttpServletRequest, + * javax.servlet.http.HttpServletResponse) + */ + protected ActionForward unspecified(ActionMapping mapping, ActionForm form, + HttpServletRequest request, HttpServletResponse response) { + + ToolAccessMode mode = SbmtWebUtils.getAccessMode(request); + SessionMap sessionMap = new SessionMap(); + request.getSession().setAttribute(sessionMap.getSessionID(), sessionMap); + + Long contentID = new Long(WebUtil.readLongParam(request,AttributeNames.PARAM_TOOL_CONTENT_ID)); + //get back the upload file list and display them on page + submitFilesService = getService(); + + SubmitFilesContent persistContent = submitFilesService.getSubmitFilesContent(contentID); + + if(mode.isTeacher()){ + boolean isForumEditable = SbmtWebUtils.isSbmtEditable(persistContent); + if(!isForumEditable){ + request.setAttribute(SbmtConstants.PAGE_EDITABLE, new Boolean(isForumEditable)); + return mapping.findForward("forbidden"); + } + + if(!persistContent.isContentInUse()){ + persistContent.setDefineLater(true); + submitFilesService.saveOrUpdateContent(persistContent); + } + } + + //if this content does not exist(empty without id), create a content by default content record. + if(persistContent == null){ + persistContent = submitFilesService.createDefaultContent(contentID); + } + + //initialize attachmentList + List attachmentList = getAttachmentList(sessionMap); + attachmentList.clear(); + attachmentList.addAll(persistContent.getInstructionFiles()); + List delAttachmentList = getDeletedAttachmentList(sessionMap); + delAttachmentList.clear(); + + //set back STRUTS component value + AuthoringForm authForm = (AuthoringForm) form; + authForm.initContentValue(persistContent); + //session map + authForm.setSessionMapID(sessionMap.getSessionID()); + //current tab + authForm.setCurrentTab(request.getParameter("currentTab")); + + return mapping.findForward("success"); + } + + + /** * Update all content for submit tool except online/offline instruction files list. * * @param mapping @@ -87,12 +151,13 @@ public ActionForward updateContent(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { - ToolAccessMode mode = getAccessMode(request); + AuthoringForm authForm = (AuthoringForm) form; + SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(authForm.getSessionMapID()); + ToolAccessMode mode = SbmtWebUtils.getAccessMode(request); SubmitFilesContent content = getContent(form); - submitFilesService = SubmitFilesServiceProxy.getSubmitFilesService(this - .getServlet().getServletContext()); + submitFilesService = getService(); try { SubmitFilesContent persistContent = submitFilesService.getSubmitFilesContent(content.getContentID()); @@ -107,8 +172,8 @@ Set attPOSet = persistContent.getInstructionFiles(); if(attPOSet == null) attPOSet = new HashSet(); - List attachmentList = getAttachmentList(request); - List deleteAttachmentList = getDeletedAttachmentList(request); + List attachmentList = getAttachmentList(sessionMap); + List deleteAttachmentList = getDeletedAttachmentList(sessionMap); Iterator iter = attachmentList.iterator(); while(iter.hasNext()){ InstructionFiles newAtt = (InstructionFiles) iter.next(); @@ -155,12 +220,11 @@ } submitFilesService.saveOrUpdateContent(persistContent); - request.setAttribute("sbmtSuccess", new Boolean(true)); - setUp(request, persistContent); } catch (Exception e) { log.error(e); } + //to jump to common success page in lams_central request.setAttribute(AuthoringConstants.LAMS_AUTHORING_SUCCESS_FLAG,Boolean.TRUE); return mapping.findForward("success"); } @@ -202,24 +266,22 @@ private ActionForward uploadFile(ActionMapping mapping, ActionForm form, String type,HttpServletRequest request) { - DynaActionForm authForm = (DynaActionForm) form; + AuthoringForm authForm = (AuthoringForm) form; + SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(authForm.getSessionMapID()); FormFile file; if(StringUtils.equals(IToolContentHandler.TYPE_OFFLINE,type)) - file = (FormFile) authForm.get("offlineFile"); + file = (FormFile) authForm.getOfflineFile(); else - file = (FormFile) authForm.get("onlineFile"); + file = (FormFile) authForm.getOnlineFile(); - SubmitFilesContent content = getContent(form); - //Call setUp() as early as possible , so never loss the screen value if any exception happen. - setUp(request,content); - //upload to repository - InstructionFiles att = submitFilesService.uploadFileToContent(content.getContentID(), file, type); + InstructionFiles att = submitFilesService.uploadFileToContent(authForm.getToolContentID(), file, type); //handle session value - List attachmentList = getAttachmentList(request); - List deleteAttachmentList = getDeletedAttachmentList(request); + List attachmentList = getAttachmentList(sessionMap); + List deleteAttachmentList = getDeletedAttachmentList(sessionMap); + //first check exist attachment and delete old one (if exist) to deletedAttachmentList Iterator iter = attachmentList.iterator(); InstructionFiles existAtt; @@ -234,150 +296,117 @@ } //add to attachmentList attachmentList.add(att); + + //update Html FORM, this will echo back to web page for display + List onlineFileList = new ArrayList(); + List offlineFileList = new ArrayList(); + iter = attachmentList.iterator(); + while(iter.hasNext()){ + InstructionFiles attFile = (InstructionFiles) iter.next(); + if(StringUtils.equalsIgnoreCase(attFile.getType(),IToolContentHandler.TYPE_OFFLINE)) + offlineFileList.add(attFile); + else + onlineFileList.add(attFile); + } + authForm.setOnlineFileList(onlineFileList); + authForm.setOfflineFileList(offlineFileList); - //add new uploaded file into DTO becuase content instruction file list comes from persistCotent. - //so it is not need refresh content again. - //content change, so call setup again. - content.setInstructionFiles(new HashSet(attachmentList)); - setUp(request,content); return mapping.getInputForward(); } - /** - * This page will display initial submit tool content. Or just a blank page if the toolContentID does not - * exist before. - * - *
- * Define later will use this method to initial page as well. - * @see org.apache.struts.actions.DispatchAction#unspecified(org.apache.struts.action.ActionMapping, - * org.apache.struts.action.ActionForm, - * javax.servlet.http.HttpServletRequest, - * javax.servlet.http.HttpServletResponse) - */ - protected ActionForward unspecified(ActionMapping mapping, ActionForm form, + public ActionForward deleteOfflineFile(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { + return deleteFile(mapping, form,request, response,IToolContentHandler.TYPE_OFFLINE); + } + public ActionForward deleteOnlineFile(ActionMapping mapping, ActionForm form, + HttpServletRequest request, HttpServletResponse response) { + return deleteFile(mapping, form,request, response,IToolContentHandler.TYPE_ONLINE); + } - ToolAccessMode mode = getAccessMode(request); + /** + * @param request + * @param response + * @param type + * @return + */ + private ActionForward deleteFile(ActionMapping mapping,ActionForm form,HttpServletRequest request, HttpServletResponse response, String type) { + Long versionID = new Long(WebUtil.readLongParam(request,"fileVersionId")); + Long uuID = new Long(WebUtil.readLongParam(request,"fileUuid")); + String sessionMapID = WebUtil.readStrParam(request, "sessionMapID"); - Long contentID = new Long(WebUtil.readLongParam(request,AttributeNames.PARAM_TOOL_CONTENT_ID)); - request.getSession().setAttribute(AttributeNames.PARAM_TOOL_CONTENT_ID,contentID); - //get back the upload file list and display them on page - submitFilesService = SubmitFilesServiceProxy.getSubmitFilesService(this - .getServlet().getServletContext()); + SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID); - SubmitFilesContent persistContent = submitFilesService.getSubmitFilesContent(contentID); - - if(mode.isTeacher()){ - boolean isForumEditable = SbmtWebUtils.isSbmtEditable(persistContent); - if(!isForumEditable){ - request.setAttribute(SbmtConstants.PAGE_EDITABLE, new Boolean(isForumEditable)); - return mapping.findForward("forbidden"); + //handle session value + List attachmentList = getAttachmentList(sessionMap); + List deleteAttachmentList = getDeletedAttachmentList(sessionMap); + //first check exist attachment and delete old one (if exist) to deletedAttachmentList + Iterator iter = attachmentList.iterator(); + InstructionFiles existAtt; + List leftAttachments = new ArrayList(); + while(iter.hasNext()){ + existAtt = (InstructionFiles) iter.next(); + if(existAtt.getUuID().equals(uuID) && existAtt.getVersionID().equals(versionID)){ + //if there is same name attachment, delete old one + deleteAttachmentList.add(existAtt); + iter.remove(); + }else if(StringUtils.equals(existAtt.getType(),type) ){ + leftAttachments.add(existAtt); } - - if(!persistContent.isContentInUse()){ - persistContent.setDefineLater(true); - submitFilesService.saveOrUpdateContent(persistContent); - } + } - - //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(); - persistContent.setContentID(contentID); - } - setUp(request,persistContent); - //initialize attachmentList - List attachmentList = getAttachmentList(request); - attachmentList.clear(); - attachmentList.addAll(persistContent.getInstructionFiles()); - List delAttachmentList = getDeletedAttachmentList(request); - delAttachmentList.clear(); - - //set back STRUTS component value - DynaActionForm authForm = (DynaActionForm) form; - authForm.set(AttributeNames.PARAM_TOOL_CONTENT_ID,contentID); - authForm.set("title",persistContent.getTitle()); - authForm.set("lockOnFinished",persistContent.isLockOnFinished()?"1":null); - return mapping.findForward("success"); + if(StringUtils.equals(IToolContentHandler.TYPE_OFFLINE,type)){ + request.setAttribute("offlineFileList",leftAttachments); + return mapping.findForward("offlineFileList"); + }else{ + request.setAttribute("onlineFileList",leftAttachments); + return mapping.findForward("onlineFileList"); + } } //*********************************************************** // Private/protected methods //*********************************************************** /** - * Depreciated: Just for STRUTS LookupDispatchAction mapping function. - */ - protected Map getKeyMethodMap() { - Map map = new HashMap(); - map.put("label.authoring.upload.online.button", "uploadOnline"); - map.put("label.authoring.upload.offline.button", "uploadOffline"); - map.put("label.authoring.save.button", "updateContent"); - - return map; - } - - /** * The private method to get content from ActionForm parameters (web page). * * @param form * @return */ private SubmitFilesContent getContent(ActionForm form) { - DynaActionForm authForm = (DynaActionForm) form; - Long contentID = (Long) authForm.get(AttributeNames.PARAM_TOOL_CONTENT_ID); - String title = (String) authForm.get("title"); - String instructions = (String) authForm.get("instructions"); - String online_instruction = (String) authForm.get("onlineInstruction"); - String offline_instruction = (String) authForm.get("offlineInstruction"); - String value = (String) authForm.get("lockOnFinished"); - boolean lock_on_finished = StringUtils.isEmpty(value)?false:true; + AuthoringForm authForm = (AuthoringForm) form; + Long contentID = authForm.getToolContentID(); + String title = authForm.getTitle(); + String instructions = authForm.getInstructions(); + String online_instruction = authForm.getOnlineInstruction(); + String offline_instruction = authForm.getOfflineInstruction(); + boolean lock_on_finished = authForm.isLockOnFinished(); + SubmitFilesContent content = new SubmitFilesContent(); content.setContentID(contentID); - content.setContentInUse(false); - content.setDefineLater(false); - content.setRunOffline(false); content.setInstruction(instructions); content.setOfflineInstruction(offline_instruction); content.setOnlineInstruction(online_instruction); - content.setRunOfflineInstruction(""); content.setTitle(title); content.setLockOnFinished(lock_on_finished); // content.setInstrctionFiles() // content.setToolSession(); return content; } /** - * This method will set initial values in authroing web page. Any method which handle request/response - * will call setUp() as early as possible , so never loss the screen value if any exception happen. * @param request - * @param content - */ - private void setUp(HttpServletRequest request, SubmitFilesContent content) { - String currTab = request.getParameter("currentTab"); - request.setAttribute("currentTab",currTab); - AuthoringDTO authorDto = new AuthoringDTO(content); - request.setAttribute(SbmtConstants.AUTHORING_DTO,authorDto); - } - /** - * @param request * @return */ - private List getAttachmentList(HttpServletRequest request) { - return getListFromSession(request,SbmtConstants.ATTACHMENT_LIST); + private List getAttachmentList(SessionMap sessionMap) { + return getListFromSession(sessionMap,SbmtConstants.ATTACHMENT_LIST); } /** * @param request * @return */ - private List getDeletedAttachmentList(HttpServletRequest request) { - return getListFromSession(request,SbmtConstants.DELETED_ATTACHMENT_LIST); + private List getDeletedAttachmentList(SessionMap sessionMap) { + return getListFromSession(sessionMap,SbmtConstants.DELETED_ATTACHMENT_LIST); } /** * Get java.util.List from HttpSession by given name. @@ -386,29 +415,25 @@ * @param name * @return */ - private List getListFromSession(HttpServletRequest request,String name) { - List list = (List) request.getSession().getAttribute(name); + private List getListFromSession(SessionMap sessionMap,String name) { + List list = (List) sessionMap.get(name); if(list == null){ list = new ArrayList(); - request.getSession().setAttribute(name,list); + sessionMap.put(name,list); } return list; } /** - * Get ToolAccessMode from HttpRequest parameters. Default value is AUTHOR mode. - * @param request + * Get submit file service bean. * @return */ - private ToolAccessMode getAccessMode(HttpServletRequest request) { - ToolAccessMode mode; - String modeStr = request.getParameter(AttributeNames.ATTR_MODE); - if(StringUtils.equalsIgnoreCase(modeStr,ToolAccessMode.TEACHER.toString())) - mode = ToolAccessMode.TEACHER; + private ISubmitFilesService getService() { + if(submitFilesService == null) + return SubmitFilesServiceProxy.getSubmitFilesService(this.getServlet().getServletContext()); else - mode = ToolAccessMode.AUTHOR; - return mode; + return submitFilesService; } - + } Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/ClearSessionAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/ClearSessionAction.java,v diff -u -r1.2 -r1.3 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/ClearSessionAction.java 11 Jul 2006 00:58:26 -0000 1.2 +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/ClearSessionAction.java 17 Aug 2006 02:16:07 -0000 1.3 @@ -42,9 +42,7 @@ @Override public void clearSession(String customiseSessionID,HttpSession session, ToolAccessMode mode) { if(mode.isAuthor()){ - session.removeAttribute(AttributeNames.PARAM_TOOL_CONTENT_ID); - session.removeAttribute(SbmtConstants.ATTACHMENT_LIST); - session.removeAttribute(SbmtConstants.DELETED_ATTACHMENT_LIST); + session.removeAttribute(customiseSessionID); } } Fisheye: Tag 1.7 refers to a dead (removed) revision in file `lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/DeleteFileAction.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/LearnerAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/LearnerAction.java,v diff -u -r1.29 -r1.30 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/LearnerAction.java 30 Jun 2006 04:10:31 -0000 1.29 +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/LearnerAction.java 17 Aug 2006 02:16:07 -0000 1.30 @@ -55,6 +55,7 @@ import org.lamsfoundation.lams.tool.sbmt.service.ISubmitFilesService; import org.lamsfoundation.lams.tool.sbmt.service.SubmitFilesServiceProxy; import org.lamsfoundation.lams.tool.sbmt.util.SbmtConstants; +import org.lamsfoundation.lams.tool.sbmt.util.SbmtWebUtils; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.session.SessionManager; @@ -94,8 +95,6 @@ //set the mode into http session ToolAccessMode mode = WebUtil.readToolAccessModeParam(request, AttributeNames.PARAM_MODE,MODE_OPTIONAL); - request.getSession().setAttribute(AttributeNames.ATTR_MODE, mode); - if(mode.equals(ToolAccessMode.LEARNER) || mode.equals(ToolAccessMode.AUTHOR) ){ request.setAttribute(AttributeNames.ATTR_MODE,mode); return listFiles(mapping, form, request, response); @@ -104,7 +103,9 @@ request.setAttribute(AttributeNames.ATTR_MODE,mode); return listFiles(mapping, form, request, response); } + logger.error("Requested mode + '" + mode.toString() + "' not supported"); + return returnErrors(mapping,request,"submit.modenotsupported","upload"); } @@ -172,6 +173,10 @@ HttpServletRequest request, HttpServletResponse response){ + //set the mode into http session + ToolAccessMode mode = WebUtil.readToolAccessModeParam(request, AttributeNames.PARAM_MODE,MODE_OPTIONAL); + request.setAttribute(AttributeNames.ATTR_MODE,mode); + DynaActionForm authForm= (DynaActionForm)form; if(!isTokenValid(request,true)){ Long sessionID =(Long) authForm.get(AttributeNames.PARAM_TOOL_SESSION_ID); @@ -235,7 +240,8 @@ HttpServletResponse response){ DynaActionForm authForm = (DynaActionForm) form; - ToolAccessMode mode = (ToolAccessMode) request.getSession().getAttribute(AttributeNames.ATTR_MODE); + ToolAccessMode mode = SbmtWebUtils.getAccessMode(request); + if (mode == ToolAccessMode.LEARNER || mode.equals(ToolAccessMode.AUTHOR) ) { ToolSessionManager sessionMgrService = SubmitFilesServiceProxy.getToolSessionManager(getServlet().getServletContext()); submitFilesService = SubmitFilesServiceProxy.getSubmitFilesService(this.getServlet().getServletContext()); @@ -262,7 +268,6 @@ return null; } - request.getSession().setAttribute(SbmtConstants.READ_ONLY_MODE, "true"); return returnErrors(mapping,request,"error.read.only.mode","upload"); } Index: lams_tool_sbmt/web/WEB-INF/struts/struts-config.xml =================================================================== RCS file: /usr/local/cvsroot/lams_tool_sbmt/web/WEB-INF/struts/Attic/struts-config.xml,v diff -u -r1.32 -r1.33 --- lams_tool_sbmt/web/WEB-INF/struts/struts-config.xml 2 Aug 2006 01:08:47 -0000 1.32 +++ lams_tool_sbmt/web/WEB-INF/struts/struts-config.xml 17 Aug 2006 02:16:07 -0000 1.33 @@ -13,30 +13,11 @@ - - - - - - - - - + - - - - @@ -147,28 +128,30 @@ /> - - + + Index: lams_tool_sbmt/web/WEB-INF/struts/validation.xml =================================================================== RCS file: /usr/local/cvsroot/lams_tool_sbmt/web/WEB-INF/struts/Attic/validation.xml,v diff -u -r1.4 -r1.5 --- lams_tool_sbmt/web/WEB-INF/struts/validation.xml 18 Nov 2005 04:42:32 -0000 1.4 +++ lams_tool_sbmt/web/WEB-INF/struts/validation.xml 17 Aug 2006 02:16:07 -0000 1.5 @@ -12,10 +12,5 @@ -
- - - - Index: lams_tool_sbmt/web/WEB-INF/tags/AuthoringButton.tag =================================================================== RCS file: /usr/local/cvsroot/lams_tool_sbmt/web/WEB-INF/tags/AuthoringButton.tag,v diff -u -r1.4 -r1.5 --- lams_tool_sbmt/web/WEB-INF/tags/AuthoringButton.tag 29 Jun 2006 04:59:46 -0000 1.4 +++ lams_tool_sbmt/web/WEB-INF/tags/AuthoringButton.tag 17 Aug 2006 02:16:05 -0000 1.5 @@ -45,6 +45,7 @@ <%@ attribute name="saveButtonLabelKey" required="false" rtexprvalue="true" %> <%@ attribute name="cancelConfirmMsgKey" required="false" rtexprvalue="true" %> <%@ attribute name="defineLater" required="false" rtexprvalue="true" %> +<%@ attribute name="customiseSessionID" required="false" rtexprvalue="true" %> <%-- Default value for message key --%> @@ -63,14 +64,14 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ <%@ include file="parts/onlinefilelist.jsp" %> +
+
+ : + + + + + + + +
+ +
+ +
+ <%@ include file="parts/offlinefilelist.jsp" %> +
+
+ : + + + + + + + +

 

+
+ \ No newline at end of file Index: lams_tool_sbmt/web/authoring/parts/offlinefilelist.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_sbmt/web/authoring/parts/Attic/offlinefilelist.jsp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ lams_tool_sbmt/web/authoring/parts/offlinefilelist.jsp 17 Aug 2006 02:16:09 -0000 1.1 @@ -0,0 +1,31 @@ +<%@ include file="/common/taglibs.jsp" %> + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
\ No newline at end of file Index: lams_tool_sbmt/web/authoring/parts/onlinefilelist.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_sbmt/web/authoring/parts/Attic/onlinefilelist.jsp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ lams_tool_sbmt/web/authoring/parts/onlinefilelist.jsp 17 Aug 2006 02:16:09 -0000 1.1 @@ -0,0 +1,31 @@ +<%@ include file="/common/taglibs.jsp" %> + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
\ No newline at end of file Fisheye: Tag 1.2 refers to a dead (removed) revision in file `lams_tool_sbmt/web/includes/javascript/common.js'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.2 refers to a dead (removed) revision in file `lams_tool_sbmt/web/includes/javascript/xmlrequest.js'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_sbmt/web/learner/sbmtLearner.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_sbmt/web/learner/Attic/sbmtLearner.jsp,v diff -u -r1.14 -r1.15 --- lams_tool_sbmt/web/learner/sbmtLearner.jsp 3 Jul 2006 07:24:06 -0000 1.14 +++ lams_tool_sbmt/web/learner/sbmtLearner.jsp 17 Aug 2006 02:16:09 -0000 1.15 @@ -14,7 +14,7 @@ function finish(){ var lockOnFinished = ; var uploadFileNum = 01; - var finishUrl= ""; + var finishUrl= ""; if(lockOnFinished && uploadFileNum==0){ if(confirm("")) location.href= finishUrl; @@ -134,6 +134,7 @@ +