Index: lams_tool_assessment/conf/xdoclet/struts-actions.xml =================================================================== diff -u -r6c5d0c6b8ff17d661580df2c265f2dcabfe7d76c -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_assessment/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision 6c5d0c6b8ff17d661580df2c265f2dcabfe7d76c) +++ lams_tool_assessment/conf/xdoclet/struts-actions.xml (.../struts-actions.xml) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -38,41 +38,6 @@ - - - - - - - - - - - - - - - - - + - - - - - - @@ -76,9 +70,6 @@ - - - @@ -88,9 +79,6 @@ - - - @@ -152,8 +140,6 @@ PROPAGATION_REQUIRED,-java.lang.Exception PROPAGATION_REQUIRED,-java.lang.Exception PROPAGATION_REQUIRED,-java.lang.Exception - PROPAGATION_REQUIRED,-java.lang.Exception - PROPAGATION_REQUIRED,-java.lang.Exception PROPAGATION_REQUIRED,-java.lang.Exception PROPAGATION_REQUIRED,-java.lang.Exception PROPAGATION_REQUIRED,-java.lang.Exception Fisheye: Tag ef851974c4dc3f5468b188fab9997a37b73c0e50 refers to a dead (removed) revision in file `lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/AssessmentAttachmentDAO.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag ef851974c4dc3f5468b188fab9997a37b73c0e50 refers to a dead (removed) revision in file `lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dao/hibernate/AssessmentAttachmentDAOHibernate.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dbupdates/patch20140102.sql =================================================================== diff -u --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dbupdates/patch20140102.sql (revision 0) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/dbupdates/patch20140102.sql (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -0,0 +1,19 @@ +-- Turn off autocommit, so nothing is committed if there is an error +SET AUTOCOMMIT = 0; +SET FOREIGN_KEY_CHECKS=0; +----------------------Put all sql statements below here------------------------- + +-- LDEV-3147 Simplify tools: get rid of instructions tab, define in monitor and offline activity options +ALTER TABLE tl_laasse10_assessment DROP COLUMN online_instructions; +ALTER TABLE tl_laasse10_assessment DROP COLUMN offline_instructions; +ALTER TABLE tl_laasse10_assessment DROP COLUMN run_offline; +DROP TABLE IF EXISTS tl_laasse10_attachment; + +UPDATE lams_tool SET tool_version='20140102' WHERE tool_signature='laasse10'; + +----------------------Put all sql statements above here------------------------- + +-- If there were no errors, commit and restore autocommit to on +COMMIT; +SET AUTOCOMMIT = 1; +SET FOREIGN_KEY_CHECKS=1; \ No newline at end of file Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/Assessment.java =================================================================== diff -u -r6c5d0c6b8ff17d661580df2c265f2dcabfe7d76c -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/Assessment.java (.../Assessment.java) (revision 6c5d0c6b8ff17d661580df2c265f2dcabfe7d76c) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/Assessment.java (.../Assessment.java) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -23,19 +23,14 @@ /* $Id$ */ package org.lamsfoundation.lams.tool.assessment.model; -import java.util.ArrayList; import java.util.Date; import java.util.Iterator; -import java.util.List; import java.util.Set; import java.util.TreeSet; -import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.log4j.Logger; -import org.lamsfoundation.lams.contentrepository.client.IToolContentHandler; -import org.lamsfoundation.lams.tool.assessment.util.AssessmentToolContentHandler; import org.lamsfoundation.lams.tool.assessment.util.SequencableComparator; /** @@ -70,8 +65,6 @@ private int attemptsAllowed; private int passingMark; - - private boolean runOffline; private boolean shuffled; @@ -101,13 +94,6 @@ private String reflectInstructions; - // instructions - private String onlineInstructions; - - private String offlineInstructions; - - private Set attachments; - // general infomation private Date created; @@ -125,19 +111,11 @@ private Set overallFeedbacks; - // *************** NON Persist Fields ******************** - private IToolContentHandler toolContentHandler; - - private List onlineFileList; - - private List offlineFileList; - /** * Default contruction method. * */ public Assessment() { - attachments = new TreeSet(); questions = new TreeSet(new SequencableComparator()); questionReferences = new TreeSet(new SequencableComparator()); overallFeedbacks = new TreeSet(new SequencableComparator()); @@ -146,10 +124,8 @@ // ********************************************************** // Function method for Assessment // ********************************************************** - public static Assessment newInstance(Assessment defaultContent, Long contentId, - AssessmentToolContentHandler assessmentToolContentHandler) { + public static Assessment newInstance(Assessment defaultContent, Long contentId) { Assessment toContent = new Assessment(); - defaultContent.toolContentHandler = assessmentToolContentHandler; toContent = (Assessment) defaultContent.clone(); toContent.setContentId(contentId); @@ -225,19 +201,6 @@ set.add(newOverallFeedback); } assessment.overallFeedbacks = set; - } - // clone attachment - if (attachments != null) { - Iterator iter = attachments.iterator(); - Set set = new TreeSet(); - while (iter.hasNext()) { - AssessmentAttachment file = (AssessmentAttachment) iter.next(); - AssessmentAttachment newFile = (AssessmentAttachment) file.clone(); - // just clone old file without duplicate it in repository - - set.add(newFile); - } - assessment.attachments = set; } // clone ReourceUser as well if (createdBy != null) { @@ -262,15 +225,13 @@ final Assessment genericEntity = (Assessment) o; return new EqualsBuilder().append(uid, genericEntity.uid).append(title, genericEntity.title).append( - instructions, genericEntity.instructions).append(onlineInstructions, genericEntity.onlineInstructions) - .append(offlineInstructions, genericEntity.offlineInstructions).append(created, genericEntity.created) + instructions, genericEntity.instructions).append(created, genericEntity.created) .append(updated, genericEntity.updated).append(createdBy, genericEntity.createdBy).isEquals(); } @Override public int hashCode() { - return new HashCodeBuilder().append(uid).append(title).append(instructions).append(onlineInstructions).append( - offlineInstructions).append(created).append(updated).append(createdBy).toHashCode(); + return new HashCodeBuilder().append(uid).append(title).append(instructions).append(updated).append(createdBy).toHashCode(); } /** @@ -285,21 +246,6 @@ this.setUpdated(new Date(now)); } - public void toDTO() { - onlineFileList = new ArrayList(); - offlineFileList = new ArrayList(); - Set fileSet = this.getAttachments(); - if (fileSet != null) { - for (AssessmentAttachment file : fileSet) { - if (StringUtils.equalsIgnoreCase(file.getFileType(), IToolContentHandler.TYPE_OFFLINE)) { - offlineFileList.add(file); - } else { - onlineFileList.add(file); - } - } - } - } - // ********************************************************** // get/set methods // ********************************************************** @@ -406,26 +352,6 @@ public void setTitle(String title) { this.title = title; } - - /** - * @return Returns the runOffline. - * - * @hibernate.property column="run_offline" - * - */ - public boolean getRunOffline() { - return runOffline; - } - - /** - * @param runOffline - * The forceOffLine to set. - * - * - */ - public void setRunOffline(boolean forceOffline) { - runOffline = forceOffline; - } /** * If the tool utilizes leaders from Select Leader tool. @@ -473,52 +399,7 @@ } /** - * @return Returns the onlineInstructions set by the teacher. * - * @hibernate.property column="online_instructions" type="text" - */ - public String getOnlineInstructions() { - return onlineInstructions; - } - - public void setOnlineInstructions(String onlineInstructions) { - this.onlineInstructions = onlineInstructions; - } - - /** - * @return Returns the onlineInstructions set by the teacher. - * - * @hibernate.property column="offline_instructions" type="text" - */ - public String getOfflineInstructions() { - return offlineInstructions; - } - - public void setOfflineInstructions(String offlineInstructions) { - this.offlineInstructions = offlineInstructions; - } - - /** - * - * @hibernate.set lazy="true" cascade="all" inverse="false" order-by="create_date desc" - * @hibernate.collection-key column="assessment_uid" - * @hibernate.collection-one-to-many class="org.lamsfoundation.lams.tool.assessment.model.AssessmentAttachment" - * - * @return a set of Attachments to this Message. - */ - public Set getAttachments() { - return attachments; - } - - /* - * @param attachments The attachments to set. - */ - public void setAttachments(Set attachments) { - this.attachments = attachments; - } - - /** - * * @hibernate.set lazy="true" inverse="false" cascade="all" order-by="sequence_id asc" * @hibernate.collection-key column="assessment_uid" * @hibernate.collection-one-to-many class="org.lamsfoundation.lams.tool.assessment.model.AssessmentQuestion" @@ -755,26 +636,6 @@ this.numbered = numbered; } - public List getOfflineFileList() { - return offlineFileList; - } - - public void setOfflineFileList(List offlineFileList) { - this.offlineFileList = offlineFileList; - } - - public List getOnlineFileList() { - return onlineFileList; - } - - public void setOnlineFileList(List onlineFileList) { - this.onlineFileList = onlineFileList; - } - - public void setToolContentHandler(IToolContentHandler toolContentHandler) { - this.toolContentHandler = toolContentHandler; - } - /** * @hibernate.property column="attempt_completion_notify" * @return Fisheye: Tag ef851974c4dc3f5468b188fab9997a37b73c0e50 refers to a dead (removed) revision in file `lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/model/AssessmentAttachment.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentImportContentVersionFilter.java =================================================================== diff -u --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentImportContentVersionFilter.java (revision 0) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentImportContentVersionFilter.java (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -0,0 +1,43 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ +package org.lamsfoundation.lams.tool.assessment.service; + +import org.lamsfoundation.lams.learningdesign.service.ToolContentVersionFilter; +import org.lamsfoundation.lams.tool.assessment.model.Assessment; + +/** + * Import filter class for different version of Assessment content. + */ +public class AssessmentImportContentVersionFilter extends ToolContentVersionFilter { + + /** + * Import 20140101 version content to 20140102 version tool server. + */ + public void up20140101To20140102() { + this.removeField(Assessment.class, "runOffline"); + this.removeField(Assessment.class, "onlineInstructions"); + this.removeField(Assessment.class, "offlineInstructions"); + this.removeField(Assessment.class, "attachments"); + } +} Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java =================================================================== diff -u -r6c5d0c6b8ff17d661580df2c265f2dcabfe7d76c -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision 6c5d0c6b8ff17d661580df2c265f2dcabfe7d76c) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -23,8 +23,6 @@ /* $$Id$$ */ package org.lamsfoundation.lams.tool.assessment.service; -import java.io.FileNotFoundException; -import java.io.IOException; import java.sql.Timestamp; import java.util.ArrayList; import java.util.Date; @@ -42,19 +40,7 @@ import java.util.regex.Pattern; import org.apache.commons.lang.StringEscapeUtils; -import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; -import org.apache.struts.upload.FormFile; -import org.lamsfoundation.lams.contentrepository.AccessDeniedException; -import org.lamsfoundation.lams.contentrepository.ICredentials; -import org.lamsfoundation.lams.contentrepository.ITicket; -import org.lamsfoundation.lams.contentrepository.InvalidParameterException; -import org.lamsfoundation.lams.contentrepository.LoginException; -import org.lamsfoundation.lams.contentrepository.NodeKey; -import org.lamsfoundation.lams.contentrepository.RepositoryCheckedException; -import org.lamsfoundation.lams.contentrepository.WorkspaceNotFoundException; -import org.lamsfoundation.lams.contentrepository.service.IRepositoryService; -import org.lamsfoundation.lams.contentrepository.service.SimpleCredentials; import org.lamsfoundation.lams.events.IEventNotificationService; import org.lamsfoundation.lams.gradebook.service.IGradebookService; import org.lamsfoundation.lams.learning.service.ILearnerService; @@ -77,7 +63,6 @@ import org.lamsfoundation.lams.tool.ToolSessionExportOutputData; import org.lamsfoundation.lams.tool.ToolSessionManager; import org.lamsfoundation.lams.tool.assessment.AssessmentConstants; -import org.lamsfoundation.lams.tool.assessment.dao.AssessmentAttachmentDAO; import org.lamsfoundation.lams.tool.assessment.dao.AssessmentDAO; import org.lamsfoundation.lams.tool.assessment.dao.AssessmentQuestionDAO; import org.lamsfoundation.lams.tool.assessment.dao.AssessmentQuestionResultDAO; @@ -90,7 +75,6 @@ import org.lamsfoundation.lams.tool.assessment.dto.UserSummary; import org.lamsfoundation.lams.tool.assessment.dto.UserSummaryItem; import org.lamsfoundation.lams.tool.assessment.model.Assessment; -import org.lamsfoundation.lams.tool.assessment.model.AssessmentAttachment; import org.lamsfoundation.lams.tool.assessment.model.AssessmentOptionAnswer; import org.lamsfoundation.lams.tool.assessment.model.AssessmentQuestion; import org.lamsfoundation.lams.tool.assessment.model.AssessmentQuestionOption; @@ -129,8 +113,6 @@ private AssessmentQuestionDAO assessmentQuestionDao; - private AssessmentAttachmentDAO assessmentAttachmentDao; - private AssessmentUserDAO assessmentUserDao; private AssessmentSessionDAO assessmentSessionDao; @@ -147,7 +129,6 @@ private AssessmentOutputFactory assessmentOutputFactory; // system services - private IRepositoryService repositoryService; private ILamsToolService toolService; @@ -300,32 +281,6 @@ return assessmentUserDao.getBySessionID(toolSessionID); } - /** - * This method verifies the credentials of the Assessment Tool and gives it the Ticket to login and - * access the Content Repository. - * - * A valid ticket is needed in order to access the content from the repository. This method would be called evertime - * the tool needs to upload/download files from the content repository. - * - * @return ITicket The ticket for repostory access - * @throws AssessmentApplicationException - */ - private ITicket getRepositoryLoginTicket() throws AssessmentApplicationException { - ICredentials credentials = new SimpleCredentials(assessmentToolContentHandler.getRepositoryUser(), - assessmentToolContentHandler.getRepositoryId()); - try { - ITicket ticket = repositoryService.login(credentials, assessmentToolContentHandler - .getRepositoryWorkspaceName()); - return ticket; - } catch (AccessDeniedException ae) { - throw new AssessmentApplicationException("Access Denied to repository." + ae.getMessage()); - } catch (WorkspaceNotFoundException we) { - throw new AssessmentApplicationException("Workspace not found." + we.getMessage()); - } catch (LoginException e) { - throw new AssessmentApplicationException("Login failed." + e.getMessage()); - } - } - @Override public Assessment getAssessmentByContentId(Long contentId) { Assessment rs = assessmentDao.getByContentId(contentId); @@ -346,7 +301,7 @@ Assessment defaultContent = getDefaultAssessment(); // save default content by given ID. Assessment content = new Assessment(); - content = Assessment.newInstance(defaultContent, contentId, assessmentToolContentHandler); + content = Assessment.newInstance(defaultContent, contentId); return content; } @@ -356,27 +311,6 @@ } @Override - public AssessmentAttachment uploadInstructionFile(FormFile uploadFile, String fileType) - throws UploadAssessmentFileException { - if (uploadFile == null || StringUtils.isEmpty(uploadFile.getFileName())) { - throw new UploadAssessmentFileException(messageService.getMessage("error.msg.upload.file.not.found", - new Object[] { uploadFile })); - } - // upload file to repository - NodeKey nodeKey = processFile(uploadFile, fileType); - - // create new attachement - AssessmentAttachment file = new AssessmentAttachment(); - file.setFileType(fileType); - file.setFileUuid(nodeKey.getUuid()); - file.setFileVersionId(nodeKey.getVersion()); - file.setFileName(uploadFile.getFileName()); - file.setCreated(new Date()); - - return file; - } - - @Override public void createUser(AssessmentUser assessmentUser) { assessmentUserDao.saveObject(assessmentUser); } @@ -392,27 +326,11 @@ } @Override - public void deleteFromRepository(Long fileUuid, Long fileVersionId) throws AssessmentApplicationException { - ITicket ticket = getRepositoryLoginTicket(); - try { - repositoryService.deleteVersion(ticket, fileUuid, fileVersionId); - } catch (Exception e) { - throw new AssessmentApplicationException("Exception occured while deleting files from" + " the repository " - + e.getMessage()); - } - } - - @Override public void saveOrUpdateAssessment(Assessment assessment) { assessmentDao.saveObject(assessment); } @Override - public void deleteAssessmentAttachment(Long attachmentUid) { - assessmentAttachmentDao.removeObject(AssessmentAttachment.class, attachmentUid); - } - - @Override public void deleteAssessmentQuestion(Long uid) { assessmentQuestionDao.removeObject(AssessmentQuestion.class, uid); } @@ -1176,35 +1094,6 @@ return contentId; } - /** - * Process an uploaded file. - * - * @throws AssessmentApplicationException - * @throws FileNotFoundException - * @throws IOException - * @throws RepositoryCheckedException - * @throws InvalidParameterException - */ - private NodeKey processFile(FormFile file, String fileType) throws UploadAssessmentFileException { - NodeKey node = null; - if (file != null && !StringUtils.isEmpty(file.getFileName())) { - String fileName = file.getFileName(); - try { - node = assessmentToolContentHandler.uploadFile(file.getInputStream(), fileName, file.getContentType(), - fileType); - } catch (InvalidParameterException e) { - throw new UploadAssessmentFileException(messageService.getMessage("error.msg.invaid.param.upload")); - } catch (FileNotFoundException e) { - throw new UploadAssessmentFileException(messageService.getMessage("error.msg.file.not.found")); - } catch (RepositoryCheckedException e) { - throw new UploadAssessmentFileException(messageService.getMessage("error.msg.repository")); - } catch (IOException e) { - throw new UploadAssessmentFileException(messageService.getMessage("error.msg.io.exception")); - } - } - return node; - } - // ***************************************************************************** // set methods for Spring Bean // ***************************************************************************** @@ -1221,14 +1110,6 @@ this.messageService = messageService; } - public void setRepositoryService(IRepositoryService repositoryService) { - this.repositoryService = repositoryService; - } - - public void setAssessmentAttachmentDao(AssessmentAttachmentDAO assessmentAttachmentDao) { - this.assessmentAttachmentDao = assessmentAttachmentDao; - } - public void setAssessmentDao(AssessmentDAO assessmentDao) { this.assessmentDao = assessmentDao; } @@ -1278,14 +1159,8 @@ throw new DataMissingException("Unable to find default content for the assessment tool"); } - // set AssessmentToolContentHandler as null to avoid copy file node in repository again. - toolContentObj = Assessment.newInstance(toolContentObj, toolContentId, null); - toolContentObj.setToolContentHandler(null); - toolContentObj.setOfflineFileList(null); - toolContentObj.setOnlineFileList(null); + toolContentObj = Assessment.newInstance(toolContentObj, toolContentId); try { - exportContentService.registerFileClassForExport(AssessmentAttachment.class.getName(), "fileUuid", - "fileVersionId"); exportContentService.exportToolContent(toolContentId, toolContentObj, assessmentToolContentHandler, rootPath); } catch (ExportToolContentException e) { @@ -1297,9 +1172,9 @@ String toVersion) throws ToolException { try { - exportContentService.registerFileClassForImport(AssessmentAttachment.class.getName(), "fileUuid", - "fileVersionId", "fileName", "fileType", null, null); - + // register version filter class + exportContentService.registerImportVersionFilterClass(AssessmentImportContentVersionFilter.class); + Object toolPOJO = exportContentService.importToolContent(toolContentPath, assessmentToolContentHandler, fromVersion, toVersion); if (!(toolPOJO instanceof Assessment)) { @@ -1368,26 +1243,10 @@ } } - Assessment toContent = Assessment.newInstance(assessment, toContentId, assessmentToolContentHandler); + Assessment toContent = Assessment.newInstance(assessment, toContentId); assessmentDao.saveObject(toContent); } - public void setAsDefineLater(Long toolContentId, boolean value) throws DataMissingException, ToolException { - Assessment assessment = assessmentDao.getByContentId(toolContentId); - if (assessment == null) { - throw new ToolException("No found tool content by given content ID:" + toolContentId); - } - assessment.setDefineLater(value); - } - - public void setAsRunOffline(Long toolContentId, boolean value) throws DataMissingException, ToolException { - Assessment assessment = assessmentDao.getByContentId(toolContentId); - if (assessment == null) { - throw new ToolException("No found tool content by given content ID:" + toolContentId); - } - assessment.setRunOffline(value); - } - public void removeToolContent(Long toolContentId, boolean removeSessionData) throws SessionDataExistsException, ToolException { Assessment assessment = assessmentDao.getByContentId(toolContentId); Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java =================================================================== diff -u -r6c5d0c6b8ff17d661580df2c265f2dcabfe7d76c -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java (.../IAssessmentService.java) (revision 6c5d0c6b8ff17d661580df2c265f2dcabfe7d76c) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/IAssessmentService.java (.../IAssessmentService.java) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -30,17 +30,14 @@ import java.util.Map; import java.util.Set; -import org.apache.struts.upload.FormFile; import org.lamsfoundation.lams.events.IEventNotificationService; import org.lamsfoundation.lams.notebook.model.NotebookEntry; import org.lamsfoundation.lams.tool.assessment.dto.QuestionSummary; import org.lamsfoundation.lams.tool.assessment.dto.ReflectDTO; import org.lamsfoundation.lams.tool.assessment.dto.Summary; import org.lamsfoundation.lams.tool.assessment.dto.UserSummary; import org.lamsfoundation.lams.tool.assessment.model.Assessment; -import org.lamsfoundation.lams.tool.assessment.model.AssessmentAttachment; import org.lamsfoundation.lams.tool.assessment.model.AssessmentQuestion; -import org.lamsfoundation.lams.tool.assessment.model.AssessmentQuestionResult; import org.lamsfoundation.lams.tool.assessment.model.AssessmentResult; import org.lamsfoundation.lams.tool.assessment.model.AssessmentSession; import org.lamsfoundation.lams.tool.assessment.model.AssessmentUser; @@ -115,16 +112,6 @@ */ List getAuthoredQuestions(Long assessmentUid); - /** - * Upload instruciton file into repository. - * - * @param file - * @param type - * @return - * @throws UploadAssessmentFileException - */ - AssessmentAttachment uploadInstructionFile(FormFile file, String type) throws UploadAssessmentFileException; - // ********** for user methods ************* /** * Create a new user in database. @@ -148,28 +135,14 @@ */ AssessmentUser getUserByIDAndSession(Long long1, Long sessionId); - // ********** Repository methods *********************** /** - * Delete file from repository. - */ - void deleteFromRepository(Long fileUuid, Long fileVersionId) throws AssessmentApplicationException; - - /** * Save or update assessment into database. * * @param Assessment */ void saveOrUpdateAssessment(Assessment Assessment); /** - * Delete reource attachment(i.e., offline/online instruction file) from database. This method does not delete the - * file from repository. - * - * @param attachmentUid - */ - void deleteAssessmentAttachment(Long attachmentUid); - - /** * Delete resoruce question from database. * * @param uid Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/util/AssessmentBundler.java =================================================================== diff -u -r35a0e719d061c08b52e705135bb2f2126079ed21 -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/util/AssessmentBundler.java (.../AssessmentBundler.java) (revision 35a0e719d061c08b52e705135bb2f2126079ed21) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/util/AssessmentBundler.java (.../AssessmentBundler.java) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -34,7 +34,6 @@ import javax.servlet.http.HttpServletRequest; import org.lamsfoundation.lams.learning.export.web.action.Bundler; -import org.lamsfoundation.lams.tool.assessment.AssessmentConstants; import org.lamsfoundation.lams.util.Configuration; import org.lamsfoundation.lams.util.ConfigurationKeys; import org.lamsfoundation.lams.util.HttpUrlConnectionUtil; Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/AuthoringAction.java =================================================================== diff -u -r07081e89b7d08c6da562606e18cf8616b9540a1d -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision 07081e89b7d08c6da562606e18cf8616b9540a1d) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/AuthoringAction.java (.../AuthoringAction.java) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -33,7 +33,6 @@ import java.util.ArrayList; import java.util.Date; import java.util.HashMap; -import java.util.HashSet; import java.util.Iterator; import java.util.LinkedHashSet; import java.util.List; @@ -58,18 +57,14 @@ import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; -import org.apache.struts.action.ActionMessages; -import org.apache.struts.upload.FormFile; import org.lamsfoundation.lams.authoring.web.AuthoringConstants; -import org.lamsfoundation.lams.contentrepository.client.IToolContentHandler; import org.lamsfoundation.lams.learningdesign.service.ExportToolContentException; import org.lamsfoundation.lams.questions.Answer; import org.lamsfoundation.lams.questions.Question; import org.lamsfoundation.lams.questions.QuestionParser; import org.lamsfoundation.lams.tool.ToolAccessMode; import org.lamsfoundation.lams.tool.assessment.AssessmentConstants; import org.lamsfoundation.lams.tool.assessment.model.Assessment; -import org.lamsfoundation.lams.tool.assessment.model.AssessmentAttachment; import org.lamsfoundation.lams.tool.assessment.model.AssessmentOverallFeedback; import org.lamsfoundation.lams.tool.assessment.model.AssessmentQuestion; import org.lamsfoundation.lams.tool.assessment.model.AssessmentQuestionOption; @@ -78,13 +73,11 @@ import org.lamsfoundation.lams.tool.assessment.model.QuestionReference; import org.lamsfoundation.lams.tool.assessment.service.AssessmentApplicationException; import org.lamsfoundation.lams.tool.assessment.service.IAssessmentService; -import org.lamsfoundation.lams.tool.assessment.service.UploadAssessmentFileException; import org.lamsfoundation.lams.tool.assessment.util.SequencableComparator; import org.lamsfoundation.lams.tool.assessment.web.form.AssessmentForm; import org.lamsfoundation.lams.tool.assessment.web.form.AssessmentQuestionForm; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.util.FileUtil; -import org.lamsfoundation.lams.util.FileValidatorUtil; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; @@ -135,18 +128,6 @@ if (param.equals("updateContent")) { return updateContent(mapping, form, request, response); } - if (param.equals("uploadOnlineFile")) { - return uploadOnline(mapping, form, request, response); - } - if (param.equals("uploadOfflineFile")) { - return uploadOffline(mapping, form, request, response); - } - if (param.equals("deleteOnlineFile")) { - return deleteOnlineFile(mapping, form, request, response); - } - if (param.equals("deleteOfflineFile")) { - return deleteOfflineFile(mapping, form, request, response); - } // ----------------------- Add assessment question functions --------------------------- if (param.equals("newQuestionInit")) { return newQuestionInit(mapping, form, request, response); @@ -261,11 +242,6 @@ } assessmentForm.setAssessment(assessment); - - // initialize instruction attachment list - List attachmentList = getAttachmentList(sessionMap); - attachmentList.clear(); - attachmentList.addAll(assessment.getAttachments()); } catch (Exception e) { AuthoringAction.log.error(e); throw new ServletException(e); @@ -396,47 +372,12 @@ } assessmentPO.setCreatedBy(assessmentUser); - - // **********************************Handle Authoring Instruction Attachement ********************* - // merge attachment info - // so far, attPOSet will be empty if content is existed. because PropertyUtils.copyProperties() is executed - Set attPOSet = assessmentPO.getAttachments(); - if (attPOSet == null) { - attPOSet = new HashSet(); - } - List attachmentList = getAttachmentList(sessionMap); - List deleteAttachmentList = getDeletedAttachmentList(sessionMap); - - // current attachemnt in authoring instruction tab. - attPOSet.addAll(attachmentList); - attachmentList.clear(); - - // deleted attachment. 2 possible types: one is persist another is non-persist before. - Iterator iter = deleteAttachmentList.iterator(); - while (iter.hasNext()) { - AssessmentAttachment delAtt = (AssessmentAttachment) iter.next(); - iter.remove(); - // it is an existed att, then delete it from current attachmentPO - if (delAtt.getUid() != null) { - Iterator attIter = attPOSet.iterator(); - while (attIter.hasNext()) { - AssessmentAttachment att = (AssessmentAttachment) attIter.next(); - if (delAtt.getUid().equals(att.getUid())) { - attIter.remove(); - break; - } - } - service.deleteAssessmentAttachment(delAtt.getUid()); - }// end remove from persist value - } - - // copy back - assessmentPO.setAttachments(attPOSet); + // ************************* Handle assessment questions ******************* // Handle assessment questions Set questions = new LinkedHashSet(); SortedSet topics = getQuestionList(sessionMap); - iter = topics.iterator(); + Iterator iter = topics.iterator(); while (iter.hasNext()) { AssessmentQuestion question = (AssessmentQuestion) iter.next(); if (question != null) { @@ -474,14 +415,6 @@ Set questionReferences = updateQuestionReferencesGrades(request, sessionMap, true); assessmentPO.setQuestionReferences(questionReferences); - // handle assessment question attachment file: - List delQuestionAttList = getDeletedQuestionAttachmentList(sessionMap); - iter = delQuestionAttList.iterator(); - while (iter.hasNext()) { - AssessmentQuestion delAtt = (AssessmentQuestion) iter.next(); - iter.remove(); - } - // ************************* Handle assessment overall feedbacks ******************* if (mode.isAuthor()) { TreeSet overallFeedbackList = getOverallFeedbacksFromForm(request, true); @@ -492,9 +425,6 @@ // finally persist assessmentPO again service.saveOrUpdateAssessment(assessmentPO); - // initialize attachmentList again - attachmentList = getAttachmentList(sessionMap); - attachmentList.addAll(assessment.getAttachments()); assessmentForm.setAssessment(assessmentPO); request.setAttribute(AuthoringConstants.LAMS_AUTHORING_SUCCESS_FLAG, Boolean.TRUE); @@ -506,166 +436,6 @@ } /** - * Handle upload online instruction files request. - * - * @param mapping - * @param form - * @param request - * @param response - * @return - * @throws UploadAssessmentFileException - */ - public ActionForward uploadOnline(ActionMapping mapping, ActionForm form, HttpServletRequest request, - HttpServletResponse response) throws UploadAssessmentFileException { - return uploadFile(mapping, form, IToolContentHandler.TYPE_ONLINE, request); - } - - /** - * Handle upload offline instruction files request. - * - * @param mapping - * @param form - * @param request - * @param response - * @return - * @throws UploadAssessmentFileException - */ - public ActionForward uploadOffline(ActionMapping mapping, ActionForm form, HttpServletRequest request, - HttpServletResponse response) throws UploadAssessmentFileException { - return uploadFile(mapping, form, IToolContentHandler.TYPE_OFFLINE, request); - } - - /** - * Common method to upload online or offline instruction files request. - * - * @param mapping - * @param form - * @param type - * @param request - * @return - * @throws UploadAssessmentFileException - */ - private ActionForward uploadFile(ActionMapping mapping, ActionForm form, String type, HttpServletRequest request) - throws UploadAssessmentFileException { - - AssessmentForm assessmentForm = (AssessmentForm) form; - // get back sessionMAP - SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(assessmentForm.getSessionMapID()); - updateQuestionReferencesGrades(request, sessionMap, true); - - FormFile file; - if (StringUtils.equals(IToolContentHandler.TYPE_OFFLINE, type)) { - file = assessmentForm.getOfflineFile(); - } else { - file = assessmentForm.getOnlineFile(); - } - - if ((file == null) || StringUtils.isBlank(file.getFileName())) { - return mapping.findForward(AssessmentConstants.SUCCESS); - } - - // validate file size - ActionMessages errors = new ActionMessages(); - FileValidatorUtil.validateFileSize(file, true, errors); - if (!errors.isEmpty()) { - this.saveErrors(request, errors); - return mapping.findForward(AssessmentConstants.SUCCESS); - } - - IAssessmentService service = getAssessmentService(); - // upload to repository - AssessmentAttachment att = service.uploadInstructionFile(file, type); - // 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(); - AssessmentAttachment existAtt; - while (iter.hasNext()) { - existAtt = (AssessmentAttachment) iter.next(); - if (StringUtils.equals(existAtt.getFileName(), att.getFileName()) - && StringUtils.equals(existAtt.getFileType(), att.getFileType())) { - // if there is same name attachment, delete old one - deleteAttachmentList.add(existAtt); - iter.remove(); - break; - } - } - // add to attachmentList - attachmentList.add(att); - - return mapping.findForward(AssessmentConstants.SUCCESS); - - } - - /** - * Delete offline instruction file from current Assessment authoring page. - * - * @param mapping - * @param form - * @param request - * @param response - * @return - */ - public ActionForward deleteOfflineFile(ActionMapping mapping, ActionForm form, HttpServletRequest request, - HttpServletResponse response) { - return deleteFile(mapping, request, response, form, IToolContentHandler.TYPE_OFFLINE); - } - - /** - * Delete online instruction file from current Assessment authoring page. - * - * @param mapping - * @param form - * @param request - * @param response - * @return - */ - public ActionForward deleteOnlineFile(ActionMapping mapping, ActionForm form, HttpServletRequest request, - HttpServletResponse response) { - return deleteFile(mapping, request, response, form, IToolContentHandler.TYPE_ONLINE); - } - - /** - * General method to delete file (online or offline) - * - * @param mapping - * @param request - * @param response - * @param form - * @param type - * @return - */ - private ActionForward deleteFile(ActionMapping mapping, HttpServletRequest request, HttpServletResponse response, - ActionForm form, String type) { - Long versionID = new Long(WebUtil.readLongParam(request, AssessmentConstants.PARAM_FILE_VERSION_ID)); - Long uuID = new Long(WebUtil.readLongParam(request, AssessmentConstants.PARAM_FILE_UUID)); - - // get back sessionMAP - String sessionMapID = WebUtil.readStrParam(request, AssessmentConstants.ATTR_SESSION_MAP_ID); - SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID); - - // 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(); - AssessmentAttachment existAtt; - while (iter.hasNext()) { - existAtt = (AssessmentAttachment) iter.next(); - if (existAtt.getFileUuid().equals(uuID) && existAtt.getFileVersionId().equals(versionID)) { - // if there is same name attachment, delete old one - deleteAttachmentList.add(existAtt); - iter.remove(); - } - } - - request.setAttribute(AssessmentConstants.ATTR_FILE_TYPE_FLAG, type); - request.setAttribute(AssessmentConstants.ATTR_SESSION_MAP_ID, sessionMapID); - return mapping.findForward(AssessmentConstants.SUCCESS); - } - - /** * Display empty page for new assessment question. * * @param mapping @@ -1601,22 +1371,6 @@ } /** - * @param request - * @return - */ - private List getAttachmentList(SessionMap sessionMap) { - return getListFromSession(sessionMap, AssessmentConstants.ATT_ATTACHMENT_LIST); - } - - /** - * @param request - * @return - */ - private List getDeletedAttachmentList(SessionMap sessionMap) { - return getListFromSession(sessionMap, AssessmentConstants.ATTR_DELETED_ATTACHMENT_LIST); - } - - /** * List save current assessment questions. * * @param request @@ -1669,18 +1423,6 @@ } /** - * If a assessment question has attahment file, and the user edit this question and change the attachment to new - * file, then the old file need be deleted when submitting the whole authoring page. Save the file uuid and version - * id into Assessmentquestion object for temporarily use. - * - * @param request - * @return - */ - private List getDeletedQuestionAttachmentList(SessionMap sessionMap) { - return getListFromSession(sessionMap, AssessmentConstants.ATTR_DELETED_QUESTION_ATTACHMENT_LIST); - } - - /** * Get java.util.List from HttpSession by given name. * * @param request Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/LearningAction.java =================================================================== diff -u -r6c5d0c6b8ff17d661580df2c265f2dcabfe7d76c -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/LearningAction.java (.../LearningAction.java) (revision 6c5d0c6b8ff17d661580df2c265f2dcabfe7d76c) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/LearningAction.java (.../LearningAction.java) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -265,7 +265,6 @@ sessionMap.put(AssessmentConstants.ATTR_IS_RESUBMIT_ALLOWED, isResubmitAllowed); sessionMap.put(AssessmentConstants.ATTR_FINISHED_LOCK, finishedLock); sessionMap.put(AssessmentConstants.ATTR_USER_FINISHED, assessmentUser.isSessionFinished()); - sessionMap.put(AssessmentConstants.PARAM_RUN_OFFLINE, assessment.getRunOffline()); sessionMap.put(AttributeNames.ATTR_LEARNER_CONTENT_FOLDER, service.getLearnerContentFolder(toolSessionId, assessmentUser.getUserId())); sessionMap.put(AttributeNames.PARAM_TOOL_SESSION_ID, toolSessionId); @@ -290,11 +289,6 @@ assessment.setDefineLater(false); service.saveOrUpdateAssessment(assessment); - // run offline support - if (assessment.getRunOffline()) { - return mapping.findForward("runOffline"); - } - //check if there is submission deadline Date submissionDeadline = assessment.getSubmissionDeadline(); if (submissionDeadline != null) { @@ -307,9 +301,9 @@ Date tzSubmissionDeadline = DateUtil.convertToTimeZoneFromDefault(learnerTimeZone, submissionDeadline); Date currentLearnerDate = DateUtil.convertToTimeZoneFromDefault(learnerTimeZone, new Date()); - //calculate whether submission deadline has passed, and if so forward to "runOffline" + //calculate whether submission deadline has passed, and if so forward to "submissionDeadline" if (currentLearnerDate.after(tzSubmissionDeadline)) { - return mapping.findForward("runOffline"); + return mapping.findForward("submissionDeadline"); } } Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/MonitoringAction.java =================================================================== diff -u -r3b16781d090e7c95b4d3eef99f82b8793430dd73 -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision 3b16781d090e7c95b4d3eef99f82b8793430dd73) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/action/MonitoringAction.java (.../MonitoringAction.java) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -123,7 +123,6 @@ List summaryList = service.getSummaryList(contentId); Assessment assessment = service.getAssessmentByContentId(contentId); - assessment.toDTO(); //set SubmissionDeadline, if any if (assessment.getSubmissionDeadline() != null) { Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/form/AssessmentForm.java =================================================================== diff -u -rd89dfbd4b29efec465fba9bb517dea1d173c3844 -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/form/AssessmentForm.java (.../AssessmentForm.java) (revision d89dfbd4b29efec465fba9bb517dea1d173c3844) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/form/AssessmentForm.java (.../AssessmentForm.java) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -81,7 +81,6 @@ assessment.setDefineLater(false); assessment.setShuffled(false); assessment.setNumbered(false); - assessment.setRunOffline(false); assessment.setDisplaySummary(false); assessment.setReflectOnActivity(false); } Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/servlet/ExportServlet.java =================================================================== diff -u -rb33e717f9a734d318eefab07a17234f07c770c92 -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/servlet/ExportServlet.java (.../ExportServlet.java) (revision b33e717f9a734d318eefab07a17234f07c770c92) +++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/web/servlet/ExportServlet.java (.../ExportServlet.java) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -30,7 +30,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import java.util.TreeSet; import javax.servlet.ServletException; import javax.servlet.http.Cookie; @@ -40,7 +39,6 @@ import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.lamsfoundation.lams.notebook.model.NotebookEntry; -import org.lamsfoundation.lams.notebook.service.CoreNotebookConstants; import org.lamsfoundation.lams.tool.ToolAccessMode; import org.lamsfoundation.lams.tool.assessment.AssessmentConstants; import org.lamsfoundation.lams.tool.assessment.dto.QuestionSummary; @@ -56,13 +54,10 @@ import org.lamsfoundation.lams.tool.assessment.service.IAssessmentService; import org.lamsfoundation.lams.tool.assessment.util.AssessmentBundler; import org.lamsfoundation.lams.tool.assessment.util.AssessmentToolContentHandler; -import org.lamsfoundation.lams.tool.assessment.util.ReflectDTOComparator; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.servlet.AbstractExportPortfolioServlet; import org.lamsfoundation.lams.web.util.AttributeNames; import org.lamsfoundation.lams.web.util.SessionMap; -import org.springframework.web.context.WebApplicationContext; -import org.springframework.web.context.support.WebApplicationContextUtils; /** * Export portfolio servlet to export all assessment questions into offline HTML package. @@ -122,27 +117,6 @@ return FILENAME; } - protected String doOfflineExport(HttpServletRequest request, HttpServletResponse response, String directoryName, - Cookie[] cookies) { - if (toolContentID == null && toolSessionID == null) { - logger.error("Tool content Id or and session Id are null. Unable to activity title"); - } else { - - Assessment content = null; - if (toolContentID != null) { - content = service.getAssessmentByContentId(toolContentID); - } else { - AssessmentSession session = service.getAssessmentSessionBySessionId(toolSessionID); - if (session != null) - content = session.getAssessment(); - } - if (content != null) { - activityTitle = content.getTitle(); - } - } - return super.doOfflineExport(request, response, directoryName, cookies); - } - public void learner(HttpServletRequest request, HttpServletResponse response, String directoryName, Cookie[] cookies, HashMap sessionMap) throws AssessmentApplicationException { Index: lams_tool_assessment/web/pages/authoring/authoring.jsp =================================================================== diff -u -r6c5d0c6b8ff17d661580df2c265f2dcabfe7d76c -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_assessment/web/pages/authoring/authoring.jsp (.../authoring.jsp) (revision 6c5d0c6b8ff17d661580df2c265f2dcabfe7d76c) +++ lams_tool_assessment/web/pages/authoring/authoring.jsp (.../authoring.jsp) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -1,10 +1,8 @@ - + <%@ include file="/common/taglibs.jsp"%> <%@ page import="org.lamsfoundation.lams.tool.assessment.AssessmentConstants"%> - <fmt:message key="label.author.title" /> @@ -29,20 +27,8 @@ tag.value = tabId; // end optional tab controller stuff selectTab(tabId); - } - - function doUploadOnline() { - var myForm = $("#authoringForm"); - myForm.attr("action", ""); - myForm.submit(); } - function doUploadOffline() { - var myForm = $("#authoringForm"); - myForm.attr("action", ""); - myForm.submit(); - } - function serializeOverallFeedbackForm() { $("#overallFeedbackList").val($('#advancedInputArea').contents().find('#overallFeedbackForm').serialize(true)); @@ -61,7 +47,6 @@ - @@ -87,11 +72,6 @@ - - - - - <%-- Default value cancelButtonLabelKey="label.authoring.cancel.button" Fisheye: Tag ef851974c4dc3f5468b188fab9997a37b73c0e50 refers to a dead (removed) revision in file `lams_tool_assessment/web/pages/authoring/instructions.jsp'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag ef851974c4dc3f5468b188fab9997a37b73c0e50 refers to a dead (removed) revision in file `lams_tool_assessment/web/pages/authoring/parts/instructionfilelist.jsp'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_assessment/web/pages/learning/learning.jsp =================================================================== diff -u -r6c5d0c6b8ff17d661580df2c265f2dcabfe7d76c -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_assessment/web/pages/learning/learning.jsp (.../learning.jsp) (revision 6c5d0c6b8ff17d661580df2c265f2dcabfe7d76c) +++ lams_tool_assessment/web/pages/learning/learning.jsp (.../learning.jsp) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -344,6 +344,69 @@ + + + <%@ page import="org.lamsfoundation.lams.util.HashUtil" %> + <%@ page import="org.lamsfoundation.lams.web.util.AttributeNames" %> + <%@ page import="org.lamsfoundation.lams.web.session.SessionManager" %> + <%@ page import="org.lamsfoundation.lams.usermanagement.dto.UserDTO" %> + <%@ page import="java.text.SimpleDateFormat" %> + <%@ page import="java.util.Date" %> + <%@ page import="org.springframework.web.context.WebApplicationContext" %> + <%@ page import="org.springframework.web.context.support.WebApplicationContextUtils" %> + <%@ page import="org.lamsfoundation.lams.tool.assessment.service.IAssessmentService" %> + <%@ page import="org.lamsfoundation.lams.util.WebUtil" %> + <%@ page import="org.lamsfoundation.lams.tool.assessment.AssessmentConstants" %> + <%@ page import="org.lamsfoundation.lams.web.util.SessionMap" %> + <%@ page import="org.lamsfoundation.lams.lesson.dto.LessonDetailsDTO" %> + <%@ page import="org.lamsfoundation.lams.lesson.service.ILessonService" %> + <%@ page import="java.net.URLEncoder" %> + <% + //specify serverId + String serverId = "aupwvi"; + //specify serverKey + String serverKey = "255PF776rned"; + + HttpSession ss = SessionManager.getSession(); + UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); + String userLogin = user.getLogin(); + SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHH:mm:ss"); + String trxdate = format.format(new Date()); + + String hashValue = HashUtil.sha1(userLogin.toLowerCase() + serverId.toLowerCase() + serverKey.toLowerCase() + trxdate.toLowerCase()); + + //get lessonId and lessonName + String sessionMapID = request.getParameter(AssessmentConstants.ATTR_SESSION_MAP_ID); + String lessonId = "n/a"; + String lessonName = "n/a"; + if (sessionMapID != null) { + SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID); + Long toolSessionId = (Long) sessionMap.get(AttributeNames.PARAM_TOOL_SESSION_ID); + WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(this.getServletContext()); + ILessonService lessonService = (ILessonService) wac.getBean("lessonService"); + + LessonDetailsDTO lessonDetailsDTO = lessonService.getLessonDetailsFromSessionID(toolSessionId); + lessonId = lessonDetailsDTO.getLessonID().toString(); + lessonName = URLEncoder.encode(lessonDetailsDTO.getLessonName(), "UTF-8"); + } + %> + + + + + F + + + P + + + + https://up.wvstepwise.org/swaupws/swaupservices.asmx/ReceiveExamResult?ServerID=<%=serverId%>&HashValue=<%=hashValue%>&UserID=<%=userLogin%>&Result=${result}&activityName=${assessment.title}[${assessment.uid}]&TrxDateTime=<%=trxdate%>&LessonId=<%=lessonId%>&LessonName=<%=lessonName%> + + + + + Fisheye: Tag ef851974c4dc3f5468b188fab9997a37b73c0e50 refers to a dead (removed) revision in file `lams_tool_assessment/web/pages/learning/runoffline.jsp'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_assessment/web/pages/learning/submissionDeadline.jsp =================================================================== diff -u --- lams_tool_assessment/web/pages/learning/submissionDeadline.jsp (revision 0) +++ lams_tool_assessment/web/pages/learning/submissionDeadline.jsp (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -0,0 +1,54 @@ + + +<%@include file="/common/taglibs.jsp"%> + + + + <%@ include file="/common/header.jsp"%> + + + + + +
+

+ ${sessionMap.title} +

+ +
+ + + +
+ +
+ + + + + + + + + + + + +
+
+ + + + +
Fisheye: Tag ef851974c4dc3f5468b188fab9997a37b73c0e50 refers to a dead (removed) revision in file `lams_tool_assessment/web/pages/monitoring/instructions.jsp'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_assessment/web/pages/monitoring/monitoring.jsp =================================================================== diff -u -re61834875a93b3f72e0fc73ab384017c45d795fb -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_assessment/web/pages/monitoring/monitoring.jsp (.../monitoring.jsp) (revision e61834875a93b3f72e0fc73ab384017c45d795fb) +++ lams_tool_assessment/web/pages/monitoring/monitoring.jsp (.../monitoring.jsp) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -56,18 +56,16 @@
- - - + +
Index: lams_tool_bbb/conf/middlegen/lams_tool_labbb11-prefs.properties =================================================================== diff -u -rdf5534fd49894e3369fc98f8273d9e2fefbb4817 -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_bbb/conf/middlegen/lams_tool_labbb11-prefs.properties (.../lams_tool_labbb11-prefs.properties) (revision df5534fd49894e3369fc98f8273d9e2fefbb4817) +++ lams_tool_bbb/conf/middlegen/lams_tool_labbb11-prefs.properties (.../lams_tool_labbb11-prefs.properties) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -1,31 +1,4 @@ # Middlegen Preferences -hibernate.tables.tl_labbb10_attachment.base-class-name=BbbAttachment -hibernate.tables.tl_labbb10_attachment.columns.create_date.columnspecialty=property -hibernate.tables.tl_labbb10_attachment.columns.create_date.java-name=createDate -hibernate.tables.tl_labbb10_attachment.columns.create_date.java-type=java.sql.Timestamp -hibernate.tables.tl_labbb10_attachment.columns.bbb_uid.columnspecialty=foreign key -hibernate.tables.tl_labbb10_attachment.columns.bbb_uid.java-name=bbbUid -hibernate.tables.tl_labbb10_attachment.columns.bbb_uid.java-type=java.lang.Long -hibernate.tables.tl_labbb10_attachment.columns.file_name.inctostring=true -hibernate.tables.tl_labbb10_attachment.columns.file_name.java-name=fileName -hibernate.tables.tl_labbb10_attachment.columns.file_name.java-type=java.lang.String -hibernate.tables.tl_labbb10_attachment.columns.file_type.java-name=fileType -hibernate.tables.tl_labbb10_attachment.columns.file_type.java-type=java.lang.String -hibernate.tables.tl_labbb10_attachment.columns.file_uuid.columnspecialty=property -hibernate.tables.tl_labbb10_attachment.columns.file_uuid.incequals=false -hibernate.tables.tl_labbb10_attachment.columns.file_uuid.inctostring=true -hibernate.tables.tl_labbb10_attachment.columns.file_uuid.java-name=fileUuid -hibernate.tables.tl_labbb10_attachment.columns.file_uuid.java-type=java.lang.Long -hibernate.tables.tl_labbb10_attachment.columns.file_version_id.inctostring=true -hibernate.tables.tl_labbb10_attachment.columns.file_version_id.java-name=fileVersionId -hibernate.tables.tl_labbb10_attachment.columns.file_version_id.java-type=java.lang.Long -hibernate.tables.tl_labbb10_attachment.columns.uid.columnspecialty=key -hibernate.tables.tl_labbb10_attachment.columns.uid.incequals=true -hibernate.tables.tl_labbb10_attachment.columns.uid.inctostring=true -hibernate.tables.tl_labbb10_attachment.columns.uid.java-name=uid -hibernate.tables.tl_labbb10_attachment.columns.uid.java-type=java.lang.Long -hibernate.tables.tl_labbb10_attachment.equalshashcode=true -hibernate.tables.tl_labbb10_attachment.keygenerator=native hibernate.tables.tl_labbb10_bbb.base-class-name=Bbb hibernate.tables.tl_labbb10_bbb.columns.content_in_use.java-name=contentInUse hibernate.tables.tl_labbb10_bbb.columns.content_in_use.java-type=java.lang.Boolean @@ -40,12 +13,6 @@ hibernate.tables.tl_labbb10_bbb.columns.instructions.java-type=java.lang.String hibernate.tables.tl_labbb10_bbb.columns.lock_on_finished.java-name=lockOnFinished hibernate.tables.tl_labbb10_bbb.columns.lock_on_finished.java-type=java.lang.Boolean -hibernate.tables.tl_labbb10_bbb.columns.offline_instructions.java-name=offlineInstructions -hibernate.tables.tl_labbb10_bbb.columns.offline_instructions.java-type=java.lang.String -hibernate.tables.tl_labbb10_bbb.columns.online_instructions.java-name=onlineInstructions -hibernate.tables.tl_labbb10_bbb.columns.online_instructions.java-type=java.lang.String -hibernate.tables.tl_labbb10_bbb.columns.run_offline.java-name=runOffline -hibernate.tables.tl_labbb10_bbb.columns.run_offline.java-type=java.lang.Boolean hibernate.tables.tl_labbb10_bbb.columns.title.inctostring=true hibernate.tables.tl_labbb10_bbb.columns.title.java-name=title hibernate.tables.tl_labbb10_bbb.columns.title.java-type=java.lang.String @@ -106,10 +73,6 @@ hibernate.tables.tl_labbb10_user.columns.user_id.java-type=java.lang.Long hibernate.tables.tl_labbb10_user.equalshashcode=true hibernate.tables.tl_labbb10_user.keygenerator=sequence -relations.tl_labbb10_bbb-tl_labbb10_attachment.tl_labbb10_attachment-has-tl_labbb10_bbb.enabled=true -relations.tl_labbb10_bbb-tl_labbb10_attachment.tl_labbb10_attachment-has-tl_labbb10_bbb.target-many=false -relations.tl_labbb10_bbb-tl_labbb10_attachment.tl_labbb10_bbb-has-tl_labbb10_attachment.enabled=true -relations.tl_labbb10_bbb-tl_labbb10_attachment.tl_labbb10_bbb-has-tl_labbb10_attachment.target-many=true relations.tl_labbb10_bbb-tl_labbb10_session.tl_labbb10_bbb-has-tl_labbb10_session.enabled=true relations.tl_labbb10_bbb-tl_labbb10_session.tl_labbb10_bbb-has-tl_labbb10_session.target-many=true relations.tl_labbb10_bbb-tl_labbb10_session.tl_labbb10_session-has-tl_labbb10_bbb.enabled=true Index: lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/bbbApplicationContext.xml =================================================================== diff -u -rdf5534fd49894e3369fc98f8273d9e2fefbb4817 -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/bbbApplicationContext.xml (.../bbbApplicationContext.xml) (revision df5534fd49894e3369fc98f8273d9e2fefbb4817) +++ lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/bbbApplicationContext.xml (.../bbbApplicationContext.xml) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -16,18 +16,15 @@ - - - @@ -41,8 +38,6 @@ PROPAGATION_REQUIRED PROPAGATION_REQUIRED PROPAGATION_REQUIRED - PROPAGATION_REQUIRED - PROPAGATION_REQUIRED PROPAGATION_REQUIRED PROPAGATION_REQUIRED @@ -66,10 +61,6 @@ - - - - Fisheye: Tag ef851974c4dc3f5468b188fab9997a37b73c0e50 refers to a dead (removed) revision in file `lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/dao/IBbbAttachmentDAO.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag ef851974c4dc3f5468b188fab9997a37b73c0e50 refers to a dead (removed) revision in file `lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/dao/hibernate/BbbAttachmentDAO.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/dbupdates/patch20140102.sql =================================================================== diff -u --- lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/dbupdates/patch20140102.sql (revision 0) +++ lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/dbupdates/patch20140102.sql (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -0,0 +1,19 @@ +-- Turn off autocommit, so nothing is committed if there is an error +SET AUTOCOMMIT = 0; +SET FOREIGN_KEY_CHECKS=0; +----------------------Put all sql statements below here------------------------- + +-- LDEV-3147 Simplify tools: get rid of instructions tab, define in monitor and offline activity options +ALTER TABLE tl_labbb10_bbb DROP COLUMN online_instructions; +ALTER TABLE tl_labbb10_bbb DROP COLUMN offline_instructions; +ALTER TABLE tl_labbb10_bbb DROP COLUMN run_offline; +DROP TABLE IF EXISTS tl_labbb10_attachment; + +UPDATE lams_tool SET tool_version='20140102' WHERE tool_signature='labbb10'; + +----------------------Put all sql statements above here------------------------- + +-- If there were no errors, commit and restore autocommit to on +COMMIT; +SET AUTOCOMMIT = 1; +SET FOREIGN_KEY_CHECKS=1; \ No newline at end of file Fisheye: Tag ef851974c4dc3f5468b188fab9997a37b73c0e50 refers to a dead (removed) revision in file `lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/dto/AttachmentDTO.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/dto/ContentDTO.java =================================================================== diff -u -rdf5534fd49894e3369fc98f8273d9e2fefbb4817 -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/dto/ContentDTO.java (.../ContentDTO.java) (revision df5534fd49894e3369fc98f8273d9e2fefbb4817) +++ lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/dto/ContentDTO.java (.../ContentDTO.java) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -30,7 +30,6 @@ import org.apache.log4j.Logger; import org.lamsfoundation.lams.contentrepository.client.IToolContentHandler; import org.lamsfoundation.lams.tool.bbb.model.Bbb; -import org.lamsfoundation.lams.tool.bbb.model.BbbAttachment; import org.lamsfoundation.lams.tool.bbb.model.BbbSession; public class ContentDTO { @@ -43,10 +42,6 @@ String instructions; - String onlineInstructions; - - String offlineInstructions; - boolean reflectOnActivity; String reflectInstructions; @@ -57,10 +52,6 @@ boolean lockOnFinish; - Set onlineInstructionsFiles; - - Set offlineInstructionsFiles; - Set sessionDTOs = new TreeSet(); Long currentTab; @@ -73,31 +64,11 @@ this.toolContentId = bbb.getToolContentId(); this.title = bbb.getTitle(); this.instructions = bbb.getInstructions(); - this.onlineInstructions = bbb.getOnlineInstructions(); - this.offlineInstructions = bbb.getOfflineInstructions(); this.contentInUse = bbb.isContentInUse(); this.reflectInstructions = bbb.getReflectInstructions(); this.reflectOnActivity = bbb.isReflectOnActivity(); this.lockOnFinish = bbb.isLockOnFinished(); - this.onlineInstructionsFiles = new TreeSet(); - this.offlineInstructionsFiles = new TreeSet(); - - for (BbbAttachment att : bbb.getBbbAttachments()) { - Set attSet = null; - if (att.getFileType().equals(IToolContentHandler.TYPE_OFFLINE)) { - attSet = offlineInstructionsFiles; - } else if (att.getFileType().equals(IToolContentHandler.TYPE_ONLINE)) { - attSet = onlineInstructionsFiles; - } else { - // something is wrong. Ignore file, log error - logger.error("File with uid " + att.getFileUuid() + " contains invalid fileType: " + att.getFileType()); - } - - if (attSet != null) - attSet.add(new AttachmentDTO(att)); - } - for (BbbSession bbbSession : bbb.getBbbSessions()) { sessionDTOs.add(new SessionDTO(bbbSession)); } @@ -120,38 +91,6 @@ this.instructions = instructions; } - public String getOfflineInstructions() { - return offlineInstructions; - } - - public void setOfflineInstructions(String offlineInstructions) { - this.offlineInstructions = offlineInstructions; - } - - public Set getOfflineInstructionsFiles() { - return offlineInstructionsFiles; - } - - public void setOfflineInstructionsFiles(Set offlineInstructionsFiles) { - this.offlineInstructionsFiles = offlineInstructionsFiles; - } - - public String getOnlineInstructions() { - return onlineInstructions; - } - - public void setOnlineInstructions(String onlineInstructions) { - this.onlineInstructions = onlineInstructions; - } - - public Set getOnlineInstructionsFiles() { - return onlineInstructionsFiles; - } - - public void setOnlineInstructionsFiles(Set onlineInstructionsFiles) { - this.onlineInstructionsFiles = onlineInstructionsFiles; - } - public boolean isReflectOnActivity() { return reflectOnActivity; } Index: lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/model/Bbb.java =================================================================== diff -u -rdf5534fd49894e3369fc98f8273d9e2fefbb4817 -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/model/Bbb.java (.../Bbb.java) (revision df5534fd49894e3369fc98f8273d9e2fefbb4817) +++ lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/model/Bbb.java (.../Bbb.java) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -59,26 +59,18 @@ private String instructions; - private boolean runOffline; - private boolean lockOnFinished; private boolean reflectOnActivity; private String reflectInstructions; - private String onlineInstructions; - - private String offlineInstructions; - private boolean contentInUse; private boolean defineLater; private Long toolContentId; - private Set bbbAttachments; - private Set bbbSessions; // Property accessors @@ -161,19 +153,6 @@ } /** - * @hibernate.property column="run_offline" length="1" - * - */ - - public boolean isRunOffline() { - return this.runOffline; - } - - public void setRunOffline(boolean runOffline) { - this.runOffline = runOffline; - } - - /** * @hibernate.property column="lock_on_finished" length="1" * */ @@ -209,32 +188,6 @@ } /** - * @hibernate.property column="online_instructions" length="65535" - * - */ - - public String getOnlineInstructions() { - return this.onlineInstructions; - } - - public void setOnlineInstructions(String onlineInstructions) { - this.onlineInstructions = onlineInstructions; - } - - /** - * @hibernate.property column="offline_instructions" length="65535" - * - */ - - public String getOfflineInstructions() { - return this.offlineInstructions; - } - - public void setOfflineInstructions(String offlineInstructions) { - this.offlineInstructions = offlineInstructions; - } - - /** * @hibernate.property column="content_in_use" length="1" * */ @@ -274,21 +227,6 @@ } /** - * @hibernate.set lazy="true" inverse="false" cascade="all-delete-orphan" - * @hibernate.collection-key column="bbb_uid" - * @hibernate.collection-one-to-many class="org.lamsfoundation.lams.tool.bbb.model.BbbAttachment" - * - */ - - public Set getBbbAttachments() { - return this.bbbAttachments; - } - - public void setBbbAttachments(Set bbbAttachments) { - this.bbbAttachments = bbbAttachments; - } - - /** * @hibernate.set lazy="true" inverse="true" cascade="none" * @hibernate.collection-key column="bbb_uid" * @hibernate.collection-one-to-many class="org.lamsfoundation.lams.tool.bbb.model.BbbSession" @@ -355,14 +293,6 @@ bbb = (Bbb) super.clone(); bbb.setUid(null); - if (bbbAttachments != null) { - // create a copy of the attachments - Set set = new HashSet(); - for (BbbAttachment att : bbbAttachments) { - set.add((BbbAttachment) att.clone()); - } - bbb.bbbAttachments = set; - } // create an empty set for the bbbSession bbb.bbbSessions = new HashSet(); Fisheye: Tag ef851974c4dc3f5468b188fab9997a37b73c0e50 refers to a dead (removed) revision in file `lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/model/BbbAttachment.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/service/BbbImportContentVersionFilter.java =================================================================== diff -u --- lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/service/BbbImportContentVersionFilter.java (revision 0) +++ lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/service/BbbImportContentVersionFilter.java (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -0,0 +1,43 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ +package org.lamsfoundation.lams.tool.bbb.service; + +import org.lamsfoundation.lams.learningdesign.service.ToolContentVersionFilter; +import org.lamsfoundation.lams.tool.bbb.model.Bbb; + +/** + * Import filter class for different version of Bbb content. + */ +public class BbbImportContentVersionFilter extends ToolContentVersionFilter { + + /** + * Import 20110511 version content to 20140102 version tool server. + */ + public void up20110511To20140102() { + this.removeField(Bbb.class, "runOffline"); + this.removeField(Bbb.class, "onlineInstructions"); + this.removeField(Bbb.class, "offlineInstructions"); + this.removeField(Bbb.class, "bbbAttachments"); + } +} Index: lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/service/BbbService.java =================================================================== diff -u -r33da76d05725a84e191a5f6dca50b394cca3c1ee -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/service/BbbService.java (.../BbbService.java) (revision 33da76d05725a84e191a5f6dca50b394cca3c1ee) +++ lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/service/BbbService.java (.../BbbService.java) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -65,13 +65,11 @@ import org.lamsfoundation.lams.tool.ToolOutputDefinition; import org.lamsfoundation.lams.tool.ToolSessionExportOutputData; import org.lamsfoundation.lams.tool.ToolSessionManager; -import org.lamsfoundation.lams.tool.bbb.dao.IBbbAttachmentDAO; import org.lamsfoundation.lams.tool.bbb.dao.IBbbConfigDAO; import org.lamsfoundation.lams.tool.bbb.dao.IBbbDAO; import org.lamsfoundation.lams.tool.bbb.dao.IBbbSessionDAO; import org.lamsfoundation.lams.tool.bbb.dao.IBbbUserDAO; import org.lamsfoundation.lams.tool.bbb.model.Bbb; -import org.lamsfoundation.lams.tool.bbb.model.BbbAttachment; import org.lamsfoundation.lams.tool.bbb.model.BbbConfig; import org.lamsfoundation.lams.tool.bbb.model.BbbSession; import org.lamsfoundation.lams.tool.bbb.model.BbbUser; @@ -102,8 +100,6 @@ private IBbbUserDAO bbbUserDAO = null; - private IBbbAttachmentDAO bbbAttachmentDAO = null; - private IBbbConfigDAO bbbConfigDAO = null; private ILearnerService learnerService; @@ -112,10 +108,6 @@ private IToolContentHandler bbbToolContentHandler = null; - private IRepositoryService repositoryService = null; - - private IAuditService auditService = null; - private IExportToolContentService exportContentService; private ICoreNotebookService coreNotebookService; @@ -208,24 +200,6 @@ saveOrUpdateBbb(toContent); } - public void setAsDefineLater(Long toolContentId, boolean value) throws DataMissingException, ToolException { - Bbb bbb = getBbbByContentId(toolContentId); - if (bbb == null) { - throw new ToolException("Could not find tool with toolContentID: " + toolContentId); - } - bbb.setDefineLater(value); - saveOrUpdateBbb(bbb); - } - - public void setAsRunOffline(Long toolContentId, boolean value) throws DataMissingException, ToolException { - Bbb bbb = getBbbByContentId(toolContentId); - if (bbb == null) { - throw new ToolException("Could not find tool with toolContentID: " + toolContentId); - } - bbb.setRunOffline(value); - saveOrUpdateBbb(bbb); - } - public void removeToolContent(Long toolContentId, boolean removeSessionData) throws SessionDataExistsException, ToolException { // TODO Auto-generated method stub @@ -253,13 +227,7 @@ bbb = Bbb.newInstance(bbb, toolContentId, null); bbb.setToolContentHandler(null); bbb.setBbbSessions(null); - Set atts = bbb.getBbbAttachments(); - for (BbbAttachment att : atts) { - att.setBbb(null); - } try { - exportContentService.registerFileClassForExport(BbbAttachment.class.getName(), "fileUuid", - "fileVersionId"); exportContentService.exportToolContent(toolContentId, bbb, bbbToolContentHandler, rootPath); } catch (ExportToolContentException e) { throw new ToolException(e); @@ -275,9 +243,9 @@ public void importToolContent(Long toolContentId, Integer newUserUid, String toolContentPath, String fromVersion, String toVersion) throws ToolException { try { - exportContentService.registerFileClassForImport(BbbAttachment.class.getName(), "fileUuid", - "fileVersionId", "fileName", "fileType", null, null); - + // register version filter class + exportContentService.registerImportVersionFilterClass(BbbImportContentVersionFilter.class); + Object toolPOJO = exportContentService.importToolContent(toolContentPath, bbbToolContentHandler, fromVersion, toVersion); if (!(toolPOJO instanceof Bbb)) @@ -425,27 +393,6 @@ } } - public BbbAttachment uploadFileToContent(Long toolContentId, FormFile file, String type) { - if (file == null || StringUtils.isEmpty(file.getFileName())) - throw new BbbException("Could not find upload file: " + file); - - NodeKey nodeKey = processFile(file, type); - - BbbAttachment attachment = new BbbAttachment(nodeKey.getVersion(), type, file.getFileName(), nodeKey - .getUuid(), new Date()); - return attachment; - } - - public void deleteFromRepository(Long uuid, Long versionID) throws BbbException { - ITicket ticket = getRepositoryLoginTicket(); - try { - repositoryService.deleteVersion(ticket, uuid, versionID); - } catch (Exception e) { - throw new BbbException("Exception occured while deleting files from" + " the repository " - + e.getMessage()); - } - } - public String getJoinMeetingURL(UserDTO userDTO, String meetingKey, String password) throws Exception { // Get Bbb details @@ -595,14 +542,6 @@ bbbConfigDAO.insertOrUpdate(bbbConfig); } - public IAuditService getAuditService() { - return auditService; - } - - public void setAuditService(IAuditService auditService) { - this.auditService = auditService; - } - private String sendRequest(URL url) throws IOException { if (logger.isDebugEnabled()) { @@ -626,54 +565,7 @@ return response; } - private NodeKey processFile(FormFile file, String type) { - NodeKey node = null; - if (file != null && !StringUtils.isEmpty(file.getFileName())) { - String fileName = file.getFileName(); - try { - node = getBbbToolContentHandler().uploadFile(file.getInputStream(), fileName, file.getContentType(), - type); - } catch (InvalidParameterException e) { - throw new BbbException("InvalidParameterException occured while trying to upload File" - + e.getMessage()); - } catch (FileNotFoundException e) { - throw new BbbException("FileNotFoundException occured while trying to upload File" + e.getMessage()); - } catch (RepositoryCheckedException e) { - throw new BbbException("RepositoryCheckedException occured while trying to upload File" - + e.getMessage()); - } catch (IOException e) { - throw new BbbException("IOException occured while trying to upload File" + e.getMessage()); - } - } - return node; - } - /** - * This method verifies the credentials of the Tool and gives it the Ticket to login and - * access the Content Repository. - * - * A valid ticket is needed in order to access the content from the repository. This method would be called every time - * the tool needs to upload/download files from the content repository. - * - * @return ITicket The ticket for repository access - * @throws SubmitFilesException - */ - private ITicket getRepositoryLoginTicket() throws BbbException { - ICredentials credentials = new SimpleCredentials(BbbToolContentHandler.repositoryUser, - BbbToolContentHandler.repositoryId); - try { - ITicket ticket = repositoryService.login(credentials, BbbToolContentHandler.repositoryWorkspaceName); - return ticket; - } catch (AccessDeniedException ae) { - throw new BbbException("Access Denied to repository." + ae.getMessage()); - } catch (WorkspaceNotFoundException we) { - throw new BbbException("Workspace not found." + we.getMessage()); - } catch (LoginException e) { - throw new BbbException("Login failed." + e.getMessage()); - } - } - - /** * Set the description, throws away the title value as this is not supported in 2.0 */ public void setReflectiveData(Long toolContentId, String title, String description) throws ToolException, @@ -694,14 +586,6 @@ // ========================================================================================= /* Used by Spring to "inject" the linked objects */ - public IBbbAttachmentDAO getBbbAttachmentDAO() { - return bbbAttachmentDAO; - } - - public void setBbbAttachmentDAO(IBbbAttachmentDAO attachmentDAO) { - this.bbbAttachmentDAO = attachmentDAO; - } - public IBbbDAO getBbbDAO() { return bbbDAO; } @@ -773,14 +657,5 @@ public void setCoreNotebookService(ICoreNotebookService coreNotebookService) { this.coreNotebookService = coreNotebookService; } - - public IRepositoryService getRepositoryService() { - return repositoryService; - } - public void setRepositoryService(IRepositoryService repositoryService) { - this.repositoryService = repositoryService; - } - - } Index: lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/service/IBbbService.java =================================================================== diff -u -rdf5534fd49894e3369fc98f8273d9e2fefbb4817 -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/service/IBbbService.java (.../IBbbService.java) (revision df5534fd49894e3369fc98f8273d9e2fefbb4817) +++ lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/service/IBbbService.java (.../IBbbService.java) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -27,7 +27,6 @@ import org.apache.struts.upload.FormFile; import org.lamsfoundation.lams.notebook.model.NotebookEntry; import org.lamsfoundation.lams.tool.bbb.model.Bbb; -import org.lamsfoundation.lams.tool.bbb.model.BbbAttachment; import org.lamsfoundation.lams.tool.bbb.model.BbbConfig; import org.lamsfoundation.lams.tool.bbb.model.BbbSession; import org.lamsfoundation.lams.tool.bbb.model.BbbUser; @@ -66,20 +65,6 @@ public Bbb getBbbByContentId(Long toolContentID); /** - * @param toolContentId - * @param file - * @param type - * @return - */ - public BbbAttachment uploadFileToContent(Long toolContentId, FormFile file, String type); - - /** - * @param uuid - * @param versionID - */ - public void deleteFromRepository(Long uuid, Long versionID) throws BbbException; - - /** * @param bbb */ public void saveOrUpdateBbb(Bbb bbb); Index: lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/util/Constants.java =================================================================== diff -u -rdf5534fd49894e3369fc98f8273d9e2fefbb4817 -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/util/Constants.java (.../Constants.java) (revision df5534fd49894e3369fc98f8273d9e2fefbb4817) +++ lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/util/Constants.java (.../Constants.java) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -45,13 +45,8 @@ // Authoring SessionMap key names public static final String KEY_CONTENT_FOLDER_ID = "contentFolderID"; - public static final String KEY_DELETED_FILES = "deletedFiles"; public static final String KEY_MODE = "mode"; - public static final String KEY_OFFLINE_FILES = "offlineFiles"; - public static final String KEY_ONLINE_FILES = "onlineFiles"; public static final String KEY_TOOL_CONTENT_ID = "toolContentID"; - public static final String KEY_UNSAVED_OFFLINE_FILES = "unsavedOfflineFiles"; - public static final String KEY_UNSAVED_ONLINE_FILES = "unsavedOnlineFiles"; // Big Blue Button parameters public static final String BBB_CREATE_PARAM = "bigbluebutton/api/create?"; Index: lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/web/actions/AuthoringAction.java =================================================================== diff -u -rdf5534fd49894e3369fc98f8273d9e2fefbb4817 -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/web/actions/AuthoringAction.java (.../AuthoringAction.java) (revision df5534fd49894e3369fc98f8273d9e2fefbb4817) +++ lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/web/actions/AuthoringAction.java (.../AuthoringAction.java) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -48,7 +48,6 @@ import org.lamsfoundation.lams.contentrepository.client.IToolContentHandler; import org.lamsfoundation.lams.tool.ToolAccessMode; import org.lamsfoundation.lams.tool.bbb.model.Bbb; -import org.lamsfoundation.lams.tool.bbb.model.BbbAttachment; import org.lamsfoundation.lams.tool.bbb.service.BbbServiceProxy; import org.lamsfoundation.lams.tool.bbb.service.IBbbService; import org.lamsfoundation.lams.tool.bbb.util.Constants; @@ -68,8 +67,7 @@ */ public class AuthoringAction extends DispatchAction { - // private static final Logger logger = - // Logger.getLogger(AuthoringAction.class); + // private static final Logger logger = Logger.getLogger(AuthoringAction.class); private IBbbService bbbService; @@ -147,24 +145,6 @@ ToolAccessMode mode = (ToolAccessMode) map.get(Constants.KEY_MODE); copyProperties(bbb, authForm, mode); - // remove attachments marked for deletion. - Set attachments = bbb.getBbbAttachments(); - if (attachments == null) { - attachments = new HashSet(); - } - - for (BbbAttachment att : getAttList(Constants.KEY_DELETED_FILES, map)) { - // remove from db, leave in repository - attachments.remove(att); - } - - // add unsaved attachments - attachments.addAll(getAttList(Constants.KEY_UNSAVED_ONLINE_FILES, map)); - attachments.addAll(getAttList(Constants.KEY_UNSAVED_OFFLINE_FILES, map)); - - // set attachments in case it didn't exist - bbb.setBbbAttachments(attachments); - // set the update date bbb.setUpdateDate(new Date()); @@ -183,153 +163,8 @@ return mapping.findForward("success"); } - public ActionForward uploadOnline(ActionMapping mapping, ActionForm form, HttpServletRequest request, - HttpServletResponse response) { - return uploadFile(mapping, (AuthoringForm) form, IToolContentHandler.TYPE_ONLINE, request); - } - - public ActionForward uploadOffline(ActionMapping mapping, ActionForm form, HttpServletRequest request, - HttpServletResponse response) { - return uploadFile(mapping, (AuthoringForm) form, IToolContentHandler.TYPE_OFFLINE, request); - } - - public ActionForward deleteOnline(ActionMapping mapping, ActionForm form, HttpServletRequest request, - HttpServletResponse response) { - return deleteFile(mapping, (AuthoringForm) form, IToolContentHandler.TYPE_ONLINE, request); - } - - public ActionForward deleteOffline(ActionMapping mapping, ActionForm form, HttpServletRequest request, - HttpServletResponse response) { - return deleteFile(mapping, (AuthoringForm) form, IToolContentHandler.TYPE_OFFLINE, request); - } - - public ActionForward removeUnsavedOnline(ActionMapping mapping, ActionForm form, HttpServletRequest request, - HttpServletResponse response) { - return removeUnsaved(mapping, (AuthoringForm) form, IToolContentHandler.TYPE_ONLINE, request); - } - - public ActionForward removeUnsavedOffline(ActionMapping mapping, ActionForm form, HttpServletRequest request, - HttpServletResponse response) { - return removeUnsaved(mapping, (AuthoringForm) form, IToolContentHandler.TYPE_OFFLINE, request); - } - /* ========== Private Methods */ - private ActionForward uploadFile(ActionMapping mapping, AuthoringForm authForm, String type, - HttpServletRequest request) { - SessionMap map = getSessionMap(request, authForm); - - FormFile file; - List unsavedFiles; - List savedFiles; - if (StringUtils.equals(IToolContentHandler.TYPE_OFFLINE, type)) { - file = (FormFile) authForm.getOfflineFile(); - unsavedFiles = getAttList(Constants.KEY_UNSAVED_OFFLINE_FILES, map); - - savedFiles = getAttList(Constants.KEY_OFFLINE_FILES, map); - } else { - file = (FormFile) authForm.getOnlineFile(); - unsavedFiles = getAttList(Constants.KEY_UNSAVED_ONLINE_FILES, map); - - savedFiles = getAttList(Constants.KEY_ONLINE_FILES, map); - } - - // validate file max size - ActionMessages errors = new ActionMessages(); - FileValidatorUtil.validateFileSize(file, true, errors); - if (!errors.isEmpty()) { - request.setAttribute(Constants.ATTR_SESSION_MAP, map); - this.saveErrors(request, errors); - return mapping.findForward("success"); - } - - if (file.getFileName().length() != 0) { - - // upload file to repository - BbbAttachment newAtt = bbbService.uploadFileToContent((Long) map.get(Constants.KEY_TOOL_CONTENT_ID), - file, type); - - // Add attachment to unsavedFiles - // check to see if file with same name exists - BbbAttachment currAtt; - Iterator iter = savedFiles.iterator(); - while (iter.hasNext()) { - currAtt = (BbbAttachment) iter.next(); - if (StringUtils.equals(currAtt.getFileName(), newAtt.getFileName()) - && StringUtils.equals(currAtt.getFileType(), newAtt.getFileType())) { - // move from this this list to deleted list. - getAttList(Constants.KEY_DELETED_FILES, map).add(currAtt); - iter.remove(); - break; - } - } - unsavedFiles.add(newAtt); - - request.setAttribute(Constants.ATTR_SESSION_MAP, map); - } - return mapping.findForward("success"); - } - - private ActionForward deleteFile(ActionMapping mapping, AuthoringForm authForm, String type, - HttpServletRequest request) { - SessionMap map = getSessionMap(request, authForm); - - List fileList; - if (StringUtils.equals(IToolContentHandler.TYPE_OFFLINE, type)) { - fileList = getAttList(Constants.KEY_OFFLINE_FILES, map); - } else { - fileList = getAttList(Constants.KEY_ONLINE_FILES, map); - } - - Iterator iter = fileList.iterator(); - - while (iter.hasNext()) { - BbbAttachment att = (BbbAttachment) iter.next(); - - if (att.getFileUuid().equals(authForm.getDeleteFileUuid())) { - // move to delete file list, deleted at next updateContent - getAttList(Constants.KEY_DELETED_FILES, map).add(att); - - // remove from this list - iter.remove(); - break; - } - } - - request.setAttribute(Constants.ATTR_SESSION_MAP, map); - - return mapping.findForward("success"); - } - - private ActionForward removeUnsaved(ActionMapping mapping, AuthoringForm authForm, String type, - HttpServletRequest request) { - SessionMap map = getSessionMap(request, authForm); - - List unsavedFiles; - - if (StringUtils.equals(IToolContentHandler.TYPE_OFFLINE, type)) { - unsavedFiles = getAttList(Constants.KEY_UNSAVED_OFFLINE_FILES, map); - } else { - unsavedFiles = getAttList(Constants.KEY_UNSAVED_ONLINE_FILES, map); - } - - Iterator iter = unsavedFiles.iterator(); - while (iter.hasNext()) { - BbbAttachment att = (BbbAttachment) iter.next(); - - if (att.getFileUuid().equals(authForm.getDeleteFileUuid())) { - // delete from repository and list - bbbService.deleteFromRepository(att.getFileUuid(), att.getFileVersionId()); - iter.remove(); - break; - } - } - - request.setAttribute(Constants.ATTR_SESSION_MAP, map); - - return mapping.findForward("success"); - } - /** * Updates Bbb content using AuthoringForm inputs. * @@ -341,8 +176,6 @@ bbb.setTitle(authForm.getTitle()); bbb.setInstructions(authForm.getInstructions()); if (mode.isAuthor()) { // Teacher cannot modify following - bbb.setOfflineInstructions(authForm.getOfflineInstructions()); - bbb.setOnlineInstructions(authForm.getOnlineInstructions()); bbb.setReflectOnActivity(authForm.isReflectOnActivity()); bbb.setReflectInstructions(authForm.getReflectInstructions()); bbb.setLockOnFinished(authForm.isLockOnFinished()); @@ -382,22 +215,7 @@ map.put(Constants.KEY_MODE, mode); map.put(Constants.KEY_CONTENT_FOLDER_ID, contentFolderID); map.put(Constants.KEY_TOOL_CONTENT_ID, toolContentID); - map.put(Constants.KEY_ONLINE_FILES, new LinkedList()); - map.put(Constants.KEY_OFFLINE_FILES, new LinkedList()); - map.put(Constants.KEY_UNSAVED_ONLINE_FILES, new LinkedList()); - map.put(Constants.KEY_UNSAVED_OFFLINE_FILES, new LinkedList()); - map.put(Constants.KEY_DELETED_FILES, new LinkedList()); - for (BbbAttachment attachment : bbb.getBbbAttachments()) { - String type = attachment.getFileType(); - if (type.equals(IToolContentHandler.TYPE_OFFLINE)) { - getAttList(Constants.KEY_OFFLINE_FILES, map).add(attachment); - } - if (type.equals(IToolContentHandler.TYPE_ONLINE)) { - getAttList(Constants.KEY_ONLINE_FILES, map).add(attachment); - } - } - return map; } @@ -419,19 +237,6 @@ } /** - * Retrieves a List of attachments from the map using the key. - * - * @param key - * @param map - * @return - */ - @SuppressWarnings("unchecked") - private List getAttList(String key, SessionMap map) { - List list = (List) map.get(key); - return list; - } - - /** * Retrieve the SessionMap from the HttpSession. * * @param request Index: lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/web/actions/LearningAction.java =================================================================== diff -u -r8aded0b18a5a7712622ae56f38923fa297449977 -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/web/actions/LearningAction.java (.../LearningAction.java) (revision 8aded0b18a5a7712622ae56f38923fa297449977) +++ lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/web/actions/LearningAction.java (.../LearningAction.java) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -68,7 +68,6 @@ * @struts.action path="/learning" parameter="dispatch" scope="request" name="learningForm" * @struts.action-forward name="bbb" path="tiles:/learning/main" * @struts.action-forward name="notebook" path="tiles:/learning/notebook" - * @struts.action-forward name="runOffline" path="tiles:/learning/runOffline" * @struts.action-forward name="defineLater" path="tiles:/learning/defineLater" * @struts.action-forward name="generalMessage" path="tiles:/general/message" */ @@ -310,11 +309,6 @@ LearningWebUtil.putActivityPositionInRequestByToolSessionId(toolSessionID, request, getServlet() .getServletContext()); - - // check runOffline - if (bbb.isRunOffline()) { - return mapping.findForward("runOffline"); - } BbbUser user; if (mode.equals(ToolAccessMode.TEACHER)) { Index: lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/web/servlets/ExportServlet.java =================================================================== diff -u -rb33e717f9a734d318eefab07a17234f07c770c92 -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/web/servlets/ExportServlet.java (.../ExportServlet.java) (revision b33e717f9a734d318eefab07a17234f07c770c92) +++ lams_tool_bbb/src/java/org/lamsfoundation/lams/tool/bbb/web/servlets/ExportServlet.java (.../ExportServlet.java) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -74,28 +74,6 @@ return FILENAME; } - protected String doOfflineExport(HttpServletRequest request, HttpServletResponse response, String directoryName, - Cookie[] cookies) { - if (toolContentID == null && toolSessionID == null) { - logger.error("Tool content Id or and session Id are null. Unable to activity title"); - } else { - setupService(); - - Bbb content = null; - if (toolContentID != null) { - content = bbbService.getBbbByContentId(toolContentID); - } else { - BbbSession session = bbbService.getSessionBySessionId(toolSessionID); - if (session != null) - content = session.getBbb(); - } - if (content != null) { - activityTitle = content.getTitle(); - } - } - return super.doOfflineExport(request, response, directoryName, cookies); - } - private void doLearnerExport(HttpServletRequest request, HttpServletResponse response, String directoryName, Cookie[] cookies) throws BbbException { Index: lams_tool_bbb/web/WEB-INF/tiles-defs.xml =================================================================== diff -u -rd56929f06ad90a63082d514e6521adc175f3de27 -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_bbb/web/WEB-INF/tiles-defs.xml (.../tiles-defs.xml) (revision d56929f06ad90a63082d514e6521adc175f3de27) +++ lams_tool_bbb/web/WEB-INF/tiles-defs.xml (.../tiles-defs.xml) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -58,9 +58,6 @@ - - - Index: lams_tool_bbb/web/includes/javascript/authoring.js =================================================================== diff -u -rdf5534fd49894e3369fc98f8273d9e2fefbb4817 -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_bbb/web/includes/javascript/authoring.js (.../authoring.js) (revision df5534fd49894e3369fc98f8273d9e2fefbb4817) +++ lams_tool_bbb/web/includes/javascript/authoring.js (.../authoring.js) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -17,8 +17,3 @@ document.authoringForm.dispatch.value = method; document.authoringForm.submit(); } -function deleteAttachment(dispatch, uuid) { - document.authoringForm.dispatch.value = dispatch; - document.authoringForm.deleteFileUuid.value = uuid; - document.authoringForm.submit(); -} Index: lams_tool_bbb/web/pages/authoring/authoring.jsp =================================================================== diff -u -rdf5534fd49894e3369fc98f8273d9e2fefbb4817 -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_bbb/web/pages/authoring/authoring.jsp (.../authoring.jsp) (revision df5534fd49894e3369fc98f8273d9e2fefbb4817) +++ lams_tool_bbb/web/pages/authoring/authoring.jsp (.../authoring.jsp) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -2,12 +2,9 @@ <%@ page import="org.lamsfoundation.lams.tool.bbb.util.Constants"%> - + - + @@ -22,7 +19,6 @@ - @@ -35,9 +31,6 @@
- - -

@@ -55,8 +48,6 @@ - - - - + +

- + - - - + +
Index: lams_tool_chat/conf/middlegen/lams_tool_lachat11-prefs.properties =================================================================== diff -u -red16d5f8991580c9160628f30a49e947a0b154bb -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_chat/conf/middlegen/lams_tool_lachat11-prefs.properties (.../lams_tool_lachat11-prefs.properties) (revision ed16d5f8991580c9160628f30a49e947a0b154bb) +++ lams_tool_chat/conf/middlegen/lams_tool_lachat11-prefs.properties (.../lams_tool_lachat11-prefs.properties) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -44,8 +44,6 @@ hibernate.tables.tl_lachat11_chat.columns.offline_instructions.java-type=java.lang.String hibernate.tables.tl_lachat11_chat.columns.online_instructions.java-name=onlineInstructions hibernate.tables.tl_lachat11_chat.columns.online_instructions.java-type=java.lang.String -hibernate.tables.tl_lachat11_chat.columns.run_offline.java-name=runOffline -hibernate.tables.tl_lachat11_chat.columns.run_offline.java-type=java.lang.Boolean hibernate.tables.tl_lachat11_chat.columns.title.inctostring=true hibernate.tables.tl_lachat11_chat.columns.title.java-name=title hibernate.tables.tl_lachat11_chat.columns.title.java-type=java.lang.String Index: lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/chatApplicationContext.xml =================================================================== diff -u -r126d84999e520648cb187e465cb4aaa3baad222e -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/chatApplicationContext.xml (.../chatApplicationContext.xml) (revision 126d84999e520648cb187e465cb4aaa3baad222e) +++ lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/chatApplicationContext.xml (.../chatApplicationContext.xml) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -17,7 +17,6 @@
- @@ -27,7 +26,6 @@ - @@ -39,7 +37,6 @@ - @@ -53,8 +50,6 @@ PROPAGATION_REQUIRED PROPAGATION_REQUIRED PROPAGATION_REQUIRED - PROPAGATION_REQUIRED - PROPAGATION_REQUIRED PROPAGATION_REQUIRED PROPAGATION_REQUIRED PROPAGATION_REQUIRED @@ -81,10 +76,6 @@ - - - - Fisheye: Tag ef851974c4dc3f5468b188fab9997a37b73c0e50 refers to a dead (removed) revision in file `lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/dao/IChatAttachmentDAO.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/dao/IChatDAO.java =================================================================== diff -u -rcd0d0b28a7c27711a74ce2b41821f3ccf5c80df9 -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/dao/IChatDAO.java (.../IChatDAO.java) (revision cd0d0b28a7c27711a74ce2b41821f3ccf5c80df9) +++ lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/dao/IChatDAO.java (.../IChatDAO.java) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -37,7 +37,5 @@ void saveOrUpdate(Chat toContent); - void deleteInstructionFile(Long toolContentId, Long uuid, Long versionId, String type); - void releaseFromCache(Object o); } \ No newline at end of file Fisheye: Tag ef851974c4dc3f5468b188fab9997a37b73c0e50 refers to a dead (removed) revision in file `lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/dao/hibernate/ChatAttachmentDAO.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/dao/hibernate/ChatDAO.java =================================================================== diff -u -rcd0d0b28a7c27711a74ce2b41821f3ccf5c80df9 -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/dao/hibernate/ChatDAO.java (.../ChatDAO.java) (revision cd0d0b28a7c27711a74ce2b41821f3ccf5c80df9) +++ lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/dao/hibernate/ChatDAO.java (.../ChatDAO.java) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -26,12 +26,9 @@ import java.util.List; -import org.hibernate.FlushMode; import org.lamsfoundation.lams.dao.hibernate.BaseDAO; import org.lamsfoundation.lams.tool.chat.dao.IChatDAO; import org.lamsfoundation.lams.tool.chat.model.Chat; -import org.lamsfoundation.lams.tool.chat.model.ChatAttachment; -import org.springframework.orm.hibernate3.HibernateTemplate; /** * DAO for accessing the Chat objects - Hibernate specific code. @@ -40,9 +37,6 @@ private static final String FIND_FORUM_BY_CONTENTID = "from Chat chat where chat.toolContentId=?"; - private static final String FIND_INSTRUCTION_FILE = "from " + ChatAttachment.class.getName() - + " as i where tool_content_id=? and i.file_uuid=? and i.file_version_id=? and i.file_type=?"; - public Chat getByContentId(Long toolContentId) { List list = getHibernateTemplate().find(ChatDAO.FIND_FORUM_BY_CONTENTID, toolContentId); if (list != null && list.size() > 0) { @@ -57,21 +51,6 @@ this.getHibernateTemplate().flush(); } - public void deleteInstructionFile(Long toolContentId, Long uuid, Long versionId, String type) { - HibernateTemplate templ = this.getHibernateTemplate(); - if (toolContentId != null && uuid != null && versionId != null) { - List list = getSession().createQuery(ChatDAO.FIND_INSTRUCTION_FILE).setLong(0, toolContentId.longValue()) - .setLong(1, uuid.longValue()).setLong(2, versionId.longValue()).setString(3, type).list(); - if (list != null && list.size() > 0) { - ChatAttachment file = (ChatAttachment) list.get(0); - this.getSession().setFlushMode(FlushMode.AUTO); - templ.delete(file); - templ.flush(); - } - } - - } - public void releaseFromCache(Object o) { getSession().evict(o); Index: lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/dbupdates/patch20140102.sql =================================================================== diff -u --- lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/dbupdates/patch20140102.sql (revision 0) +++ lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/dbupdates/patch20140102.sql (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -0,0 +1,19 @@ +-- Turn off autocommit, so nothing is committed if there is an error +SET AUTOCOMMIT = 0; +SET FOREIGN_KEY_CHECKS=0; +----------------------Put all sql statements below here------------------------- + +-- LDEV-3147 Simplify tools: get rid of instructions tab, define in monitor and offline activity options +ALTER TABLE tl_lachat11_chat DROP COLUMN online_instructions; +ALTER TABLE tl_lachat11_chat DROP COLUMN offline_instructions; +ALTER TABLE tl_lachat11_chat DROP COLUMN run_offline; +DROP TABLE IF EXISTS tl_lachat11_attachment; + +UPDATE lams_tool SET tool_version='20140102' WHERE tool_signature='lachat11'; + +----------------------Put all sql statements above here------------------------- + +-- If there were no errors, commit and restore autocommit to on +COMMIT; +SET AUTOCOMMIT = 1; +SET FOREIGN_KEY_CHECKS=1; \ No newline at end of file Fisheye: Tag ef851974c4dc3f5468b188fab9997a37b73c0e50 refers to a dead (removed) revision in file `lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/dto/ChatAttachmentDTO.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/dto/ChatDTO.java =================================================================== diff -u -r9f7df51118e418eead64378c028572b0baf39196 -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/dto/ChatDTO.java (.../ChatDTO.java) (revision 9f7df51118e418eead64378c028572b0baf39196) +++ lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/dto/ChatDTO.java (.../ChatDTO.java) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -25,15 +25,12 @@ package org.lamsfoundation.lams.tool.chat.dto; -import java.util.Iterator; +import java.util.Date; import java.util.Set; import java.util.TreeSet; -import java.util.Date; import org.apache.log4j.Logger; -import org.lamsfoundation.lams.contentrepository.client.IToolContentHandler; import org.lamsfoundation.lams.tool.chat.model.Chat; -import org.lamsfoundation.lams.tool.chat.model.ChatAttachment; public class ChatDTO { @@ -44,10 +41,6 @@ public String title; public String instructions; - - public String onlineInstructions; - - public String offlineInstructions; public boolean defineLater; @@ -64,11 +57,7 @@ public String reflectInstructions; public Date submissionDeadline; - - public Set onlineInstructionsFiles = new TreeSet(); - public Set offlineInstructionsFiles = new TreeSet(); - public Set sessionDTOs = new TreeSet();; public Long currentTab; @@ -77,31 +66,13 @@ toolContentId = chat.getToolContentId(); title = chat.getTitle(); instructions = chat.getInstructions(); - onlineInstructions = chat.getOnlineInstructions(); - offlineInstructions = chat.getOfflineInstructions(); contentInUse = chat.isContentInUse(); reflectInstructions = chat.getReflectInstructions(); reflectOnActivity = chat.isReflectOnActivity(); lockOnFinish = chat.isLockOnFinished(); filteringEnabled = chat.isFilteringEnabled(); filteredKeyWords = chat.getFilterKeywords(); submissionDeadline = chat.getSubmissionDeadline(); - - for (Iterator i = chat.getChatAttachments().iterator(); i.hasNext();) { - ChatAttachment att = (ChatAttachment) i.next(); - if (att.getFileType().equals(IToolContentHandler.TYPE_OFFLINE)) { - ChatAttachmentDTO attDTO = new ChatAttachmentDTO(att); - offlineInstructionsFiles.add(attDTO); - } else if (att.getFileType() - .equals(IToolContentHandler.TYPE_ONLINE)) { - ChatAttachmentDTO attDTO = new ChatAttachmentDTO(att); - onlineInstructionsFiles.add(attDTO); - } else { - // something is wrong. Ignore file, log error - logger.error("File with uid " + att.getFileUuid() - + " contains invalid fileType: " + att.getFileType()); - } - } } public Set getSessionDTOs() { @@ -120,40 +91,6 @@ this.instructions = instructions; } - public String getOfflineInstructions() { - return offlineInstructions; - } - - public void setOfflineInstructions(String offlineInstructions) { - this.offlineInstructions = offlineInstructions; - } - - public Set getOfflineInstructionsFiles() { - return offlineInstructionsFiles; - } - - public void setOfflineInstructionsFiles( - Set offlineInstructionsFiles) { - this.offlineInstructionsFiles = offlineInstructionsFiles; - } - - public String getOnlineInstructions() { - return onlineInstructions; - } - - public void setOnlineInstructions(String onlineInstructions) { - this.onlineInstructions = onlineInstructions; - } - - public Set getOnlineInstructionsFiles() { - return onlineInstructionsFiles; - } - - public void setOnlineInstructionsFiles( - Set onlineInstructionsFiles) { - this.onlineInstructionsFiles = onlineInstructionsFiles; - } - public String getTitle() { return title; } Index: lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/model/Chat.java =================================================================== diff -u -r9f7df51118e418eead64378c028572b0baf39196 -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/model/Chat.java (.../Chat.java) (revision 9f7df51118e418eead64378c028572b0baf39196) +++ lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/model/Chat.java (.../Chat.java) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -64,8 +64,6 @@ private String instructions; - private boolean runOffline; - private boolean lockOnFinished; private boolean reflectOnActivity; @@ -76,10 +74,6 @@ private String filterKeywords; - private String onlineInstructions; - - private String offlineInstructions; - private boolean contentInUse; private boolean defineLater; @@ -88,40 +82,30 @@ private Date submissionDeadline; - private Set chatAttachments; - private Set chatSessions; private Set conditions = new TreeSet(new TextSearchConditionComparator()); - // *********** NON Persisit fields - private IToolContentHandler toolContentHandler; - // Constructors /** default constructor */ public Chat() { } /** full constructor */ - public Chat(Date createDate, Date updateDate, Long createBy, String title, String instructions, boolean runOffline, - boolean lockOnFinished, boolean filteringEnabled, String filterKeywords, String onlineInstructions, - String offlineInstructions, boolean contentInUse, boolean defineLater, Long toolContentId, - Set chatAttachments, Set chatSessions) { + public Chat(Date createDate, Date updateDate, Long createBy, String title, String instructions, + boolean lockOnFinished, boolean filteringEnabled, String filterKeywords, boolean contentInUse, boolean defineLater, Long toolContentId, + Set chatSessions) { this.createDate = createDate; this.updateDate = updateDate; this.createBy = createBy; this.title = title; this.instructions = instructions; - this.runOffline = runOffline; this.lockOnFinished = lockOnFinished; this.filteringEnabled = filteringEnabled; this.filterKeywords = filterKeywords; - this.onlineInstructions = onlineInstructions; - this.offlineInstructions = offlineInstructions; this.contentInUse = contentInUse; this.defineLater = defineLater; this.toolContentId = toolContentId; - this.chatAttachments = chatAttachments; this.chatSessions = chatSessions; } @@ -205,19 +189,6 @@ } /** - * @hibernate.property column="run_offline" length="1" - * - */ - - public boolean isRunOffline() { - return runOffline; - } - - public void setRunOffline(boolean runOffline) { - this.runOffline = runOffline; - } - - /** * @hibernate.property column="lock_on_finished" length="1" * */ @@ -253,32 +224,6 @@ } /** - * @hibernate.property column="online_instructions" length="65535" - * - */ - - public String getOnlineInstructions() { - return onlineInstructions; - } - - public void setOnlineInstructions(String onlineInstructions) { - this.onlineInstructions = onlineInstructions; - } - - /** - * @hibernate.property column="offline_instructions" length="65535" - * - */ - - public String getOfflineInstructions() { - return offlineInstructions; - } - - public void setOfflineInstructions(String offlineInstructions) { - this.offlineInstructions = offlineInstructions; - } - - /** * @hibernate.property column="content_in_use" length="1" * */ @@ -318,21 +263,6 @@ } /** - * @hibernate.set lazy="false" inverse="false" cascade="all-delete-orphan" - * @hibernate.collection-key column="chat_uid" - * @hibernate.collection-one-to-many class="org.lamsfoundation.lams.tool.chat.model.ChatAttachment" - * - */ - - public Set getChatAttachments() { - return chatAttachments; - } - - public void setChatAttachments(Set chatAttachments) { - this.chatAttachments = chatAttachments; - } - - /** * @hibernate.set lazy="true" inverse="true" cascade="none" * @hibernate.collection-key column="chat_uid" * @hibernate.collection-one-to-many class="org.lamsfoundation.lams.tool.chat.model.ChatSession" @@ -424,9 +354,8 @@ return result; } - public static Chat newInstance(Chat fromContent, Long toContentId, IToolContentHandler chatToolContentHandler) { + public static Chat newInstance(Chat fromContent, Long toContentId) { Chat toContent = new Chat(); - fromContent.toolContentHandler = chatToolContentHandler; toContent = (Chat) fromContent.clone(); toContent.setToolContentId(toContentId); toContent.setCreateDate(new Date()); @@ -441,18 +370,6 @@ chat = (Chat) super.clone(); chat.setUid(null); - if (chatAttachments != null) { - // create a copy of the attachments but do not duplicate node in repository - Iterator iter = chatAttachments.iterator(); - Set set = new HashSet(); - while (iter.hasNext()) { - ChatAttachment originalFile = (ChatAttachment) iter.next(); - ChatAttachment newFile = (ChatAttachment) originalFile.clone(); - - set.add(newFile); - } - chat.chatAttachments = set; - } // create an empty set for the chatSession chat.chatSessions = new HashSet(); @@ -470,14 +387,6 @@ return chat; } - public IToolContentHandler getToolContentHandler() { - return toolContentHandler; - } - - public void setToolContentHandler(IToolContentHandler toolContentHandler) { - this.toolContentHandler = toolContentHandler; - } - /** * @hibernate.set lazy="true" cascade="all" * sort="org.lamsfoundation.lams.learningdesign.TextSearchConditionComparator" Fisheye: Tag ef851974c4dc3f5468b188fab9997a37b73c0e50 refers to a dead (removed) revision in file `lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/model/ChatAttachment.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/service/ChatImportContentVersionFilter.java =================================================================== diff -u --- lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/service/ChatImportContentVersionFilter.java (revision 0) +++ lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/service/ChatImportContentVersionFilter.java (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -0,0 +1,43 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ +package org.lamsfoundation.lams.tool.chat.service; + +import org.lamsfoundation.lams.learningdesign.service.ToolContentVersionFilter; +import org.lamsfoundation.lams.tool.chat.model.Chat; + +/** + * Import filter class for different version of Chat content. + */ +public class ChatImportContentVersionFilter extends ToolContentVersionFilter { + + /** + * Import 20121024 version content to 20140102 version tool server. + */ + public void up20121024To20140102() { + this.removeField(Chat.class, "runOffline"); + this.removeField(Chat.class, "onlineInstructions"); + this.removeField(Chat.class, "offlineInstructions"); + this.removeField(Chat.class, "chatAttachments"); + } +} Index: lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/service/ChatService.java =================================================================== diff -u -r33da76d05725a84e191a5f6dca50b394cca3c1ee -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/service/ChatService.java (.../ChatService.java) (revision 33da76d05725a84e191a5f6dca50b394cca3c1ee) +++ lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/service/ChatService.java (.../ChatService.java) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -24,34 +24,19 @@ package org.lamsfoundation.lams.tool.chat.service; -import java.io.FileNotFoundException; -import java.io.IOException; import java.util.Collection; import java.util.Date; import java.util.Hashtable; import java.util.List; import java.util.Map; import java.util.Random; -import java.util.Set; import java.util.SortedMap; import java.util.concurrent.ConcurrentHashMap; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; -import org.apache.struts.upload.FormFile; -import org.lamsfoundation.lams.contentrepository.AccessDeniedException; -import org.lamsfoundation.lams.contentrepository.ICredentials; -import org.lamsfoundation.lams.contentrepository.ITicket; -import org.lamsfoundation.lams.contentrepository.InvalidParameterException; -import org.lamsfoundation.lams.contentrepository.LoginException; -import org.lamsfoundation.lams.contentrepository.NodeKey; -import org.lamsfoundation.lams.contentrepository.RepositoryCheckedException; -import org.lamsfoundation.lams.contentrepository.WorkspaceNotFoundException; import org.lamsfoundation.lams.contentrepository.client.IToolContentHandler; -import org.lamsfoundation.lams.contentrepository.service.IRepositoryService; -import org.lamsfoundation.lams.contentrepository.service.SimpleCredentials; import org.lamsfoundation.lams.learning.service.ILearnerService; import org.lamsfoundation.lams.learningdesign.service.ExportToolContentException; import org.lamsfoundation.lams.learningdesign.service.IExportToolContentService; @@ -64,21 +49,18 @@ import org.lamsfoundation.lams.tool.ToolOutputDefinition; import org.lamsfoundation.lams.tool.ToolSessionExportOutputData; import org.lamsfoundation.lams.tool.ToolSessionManager; -import org.lamsfoundation.lams.tool.chat.dao.IChatAttachmentDAO; import org.lamsfoundation.lams.tool.chat.dao.IChatDAO; import org.lamsfoundation.lams.tool.chat.dao.IChatMessageDAO; import org.lamsfoundation.lams.tool.chat.dao.IChatSessionDAO; import org.lamsfoundation.lams.tool.chat.dao.IChatUserDAO; import org.lamsfoundation.lams.tool.chat.model.Chat; -import org.lamsfoundation.lams.tool.chat.model.ChatAttachment; import org.lamsfoundation.lams.tool.chat.model.ChatCondition; import org.lamsfoundation.lams.tool.chat.model.ChatMessage; import org.lamsfoundation.lams.tool.chat.model.ChatSession; import org.lamsfoundation.lams.tool.chat.model.ChatUser; import org.lamsfoundation.lams.tool.chat.util.ChatConstants; import org.lamsfoundation.lams.tool.chat.util.ChatException; import org.lamsfoundation.lams.tool.chat.util.ChatMessageFilter; -import org.lamsfoundation.lams.tool.chat.util.ChatToolContentHandler; import org.lamsfoundation.lams.tool.exception.DataMissingException; import org.lamsfoundation.lams.tool.exception.SessionDataExistsException; import org.lamsfoundation.lams.tool.exception.ToolException; @@ -107,16 +89,12 @@ private IChatMessageDAO chatMessageDAO = null; - private IChatAttachmentDAO chatAttachmentDAO = null; - private ILearnerService learnerService; private ILamsToolService toolService; private IToolContentHandler chatToolContentHandler = null; - private IRepositoryService repositoryService = null; - private IAuditService auditService = null; private IExportToolContentService exportContentService; @@ -240,28 +218,10 @@ // create the fromContent using the default tool content fromContent = getDefaultContent(); } - Chat toContent = Chat.newInstance(fromContent, toContentId, chatToolContentHandler); + Chat toContent = Chat.newInstance(fromContent, toContentId); chatDAO.saveOrUpdate(toContent); } - public void setAsDefineLater(Long toolContentId, boolean value) throws DataMissingException, ToolException { - Chat chat = chatDAO.getByContentId(toolContentId); - if (chat == null) { - throw new ToolException("Could not find tool with toolContentID: " + toolContentId); - } - chat.setDefineLater(value); - chatDAO.saveOrUpdate(chat); - } - - public void setAsRunOffline(Long toolContentId, boolean value) throws DataMissingException, ToolException { - Chat chat = chatDAO.getByContentId(toolContentId); - if (chat == null) { - throw new ToolException("Could not find tool with toolContentID: " + toolContentId); - } - chat.setRunOffline(value); - chatDAO.saveOrUpdate(chat); - } - public void removeToolContent(Long toolContentId, boolean removeSessionData) throws SessionDataExistsException, ToolException { // TODO Auto-generated method stub @@ -287,16 +247,9 @@ // set ResourceToolContentHandler as null to avoid copy file node in // repository again. - chat = Chat.newInstance(chat, toolContentId, null); - chat.setToolContentHandler(null); + chat = Chat.newInstance(chat, toolContentId); chat.setChatSessions(null); - Set atts = chat.getChatAttachments(); - for (ChatAttachment att : atts) { - att.setChat(null); - } try { - exportContentService - .registerFileClassForExport(ChatAttachment.class.getName(), "fileUuid", "fileVersionId"); exportContentService.exportToolContent(toolContentId, chat, chatToolContentHandler, rootPath); } catch (ExportToolContentException e) { throw new ToolException(e); @@ -312,9 +265,9 @@ public void importToolContent(Long toolContentId, Integer newUserUid, String toolContentPath, String fromVersion, String toVersion) throws ToolException { try { - exportContentService.registerFileClassForImport(ChatAttachment.class.getName(), "fileUuid", - "fileVersionId", "fileName", "fileType", null, null); - + // register version filter class + exportContentService.registerImportVersionFilterClass(ChatImportContentVersionFilter.class); + Object toolPOJO = exportContentService.importToolContent(toolContentPath, chatToolContentHandler, fromVersion, toVersion); if (!(toolPOJO instanceof Chat)) { @@ -394,7 +347,7 @@ Chat defaultContent = getDefaultContent(); // create new chat using the newContentID Chat newContent = new Chat(); - newContent = Chat.newInstance(defaultContent, newContentID, chatToolContentHandler); + newContent = Chat.newInstance(defaultContent, newContentID); chatDAO.saveOrUpdate(newContent); return newContent; } @@ -458,37 +411,6 @@ return chatMessageDAO.getSentByUser(userUid); } - public ChatAttachment uploadFileToContent(Long toolContentId, FormFile file, String type) { - if ((file == null) || StringUtils.isEmpty(file.getFileName())) { - throw new ChatException("Could not find upload file: " + file); - } - - NodeKey nodeKey = processFile(file, type); - - ChatAttachment attachment = new ChatAttachment(); - attachment.setFileType(type); - attachment.setFileUuid(nodeKey.getUuid()); - attachment.setFileVersionId(nodeKey.getVersion()); - attachment.setFileName(file.getFileName()); - attachment.setCreateDate(new Date()); - - return attachment; - } - - public void deleteFromRepository(Long uuid, Long versionID) throws ChatException { - ITicket ticket = getRepositoryLoginTicket(); - try { - repositoryService.deleteVersion(ticket, uuid, versionID); - } catch (Exception e) { - throw new ChatException("Exception occured while deleting files from" + " the repository " + e.getMessage()); - } - } - - public void deleteInstructionFile(Long contentID, Long uuid, Long versionID, String type) { - chatDAO.deleteInstructionFile(contentID, uuid, versionID, type); - - } - public void saveOrUpdateChat(Chat chat) { updateMessageFilters(chat); chatDAO.saveOrUpdate(chat); @@ -583,14 +505,6 @@ return chatMessageDAO.getLatest(chatSession, max); } - public IRepositoryService getRepositoryService() { - return repositoryService; - } - - public void setRepositoryService(IRepositoryService repositoryService) { - this.repositoryService = repositoryService; - } - public IAuditService getAuditService() { return auditService; } @@ -621,63 +535,6 @@ /* Private methods */ private Map messageFilters = new ConcurrentHashMap(); - private NodeKey processFile(FormFile file, String type) { - NodeKey node = null; - if ((file != null) && !StringUtils.isEmpty(file.getFileName())) { - String fileName = file.getFileName(); - try { - node = getChatToolContentHandler().uploadFile(file.getInputStream(), fileName, file.getContentType(), - type); - } catch (InvalidParameterException e) { - throw new ChatException("InvalidParameterException occured while trying to upload File" - + e.getMessage()); - } catch (FileNotFoundException e) { - throw new ChatException("FileNotFoundException occured while trying to upload File" + e.getMessage()); - } catch (RepositoryCheckedException e) { - throw new ChatException("RepositoryCheckedException occured while trying to upload File" - + e.getMessage()); - } catch (IOException e) { - throw new ChatException("IOException occured while trying to upload File" + e.getMessage()); - } - } - return node; - } - - /** - * This method verifies the credentials of the SubmitFiles Tool and gives it the Ticket to login and - * access the Content Repository. - * - * A valid ticket is needed in order to access the content from the repository. This method would be called evertime - * the tool needs to upload/download files from the content repository. - * - * @return ITicket The ticket for repostory access - * @throws SubmitFilesException - */ - private ITicket getRepositoryLoginTicket() throws ChatException { - ICredentials credentials = new SimpleCredentials(ChatToolContentHandler.repositoryUser, - ChatToolContentHandler.repositoryId); - try { - ITicket ticket = repositoryService.login(credentials, ChatToolContentHandler.repositoryWorkspaceName); - return ticket; - } catch (AccessDeniedException ae) { - throw new ChatException("Access Denied to repository." + ae.getMessage()); - } catch (WorkspaceNotFoundException we) { - throw new ChatException("Workspace not found." + we.getMessage()); - } catch (LoginException e) { - throw new ChatException("Login failed." + e.getMessage()); - } - } - - /* Used by Spring to "inject" the linked objects */ - - public IChatAttachmentDAO getChatAttachmentDAO() { - return chatAttachmentDAO; - } - - public void setChatAttachmentDAO(IChatAttachmentDAO attachmentDAO) { - chatAttachmentDAO = attachmentDAO; - } - public IChatDAO getChatDAO() { return chatDAO; } @@ -798,11 +655,8 @@ chat.setInstructions(WebUtil.convertNewlines((String) importValues .get(ToolContentImport102Manager.CONTENT_BODY))); chat.setLockOnFinished(Boolean.FALSE); - chat.setOfflineInstructions(null); - chat.setOnlineInstructions(null); chat.setReflectInstructions(null); chat.setReflectOnActivity(Boolean.FALSE); - chat.setRunOffline(Boolean.FALSE); chat.setTitle((String) importValues.get(ToolContentImport102Manager.CONTENT_TITLE)); chat.setToolContentId(toolContentId); chat.setUpdateDate(now); @@ -820,9 +674,6 @@ + "- WDDX caused an exception. Some data from the design will have been lost. See log for more details."); } - // leave as empty, no need to set them to anything. - // setChatAttachments(Set chatAttachments); - // setChatSessions(Set chatSessions); chatDAO.saveOrUpdate(chat); } Index: lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/service/IChatService.java =================================================================== diff -u -r4a3d1ca484773efa5f184bcdbd374a53378f8e6f -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/service/IChatService.java (.../IChatService.java) (revision 4a3d1ca484773efa5f184bcdbd374a53378f8e6f) +++ lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/service/IChatService.java (.../IChatService.java) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -32,7 +32,6 @@ import org.apache.struts.upload.FormFile; import org.lamsfoundation.lams.notebook.model.NotebookEntry; import org.lamsfoundation.lams.tool.chat.model.Chat; -import org.lamsfoundation.lams.tool.chat.model.ChatAttachment; import org.lamsfoundation.lams.tool.chat.model.ChatCondition; import org.lamsfoundation.lams.tool.chat.model.ChatMessage; import org.lamsfoundation.lams.tool.chat.model.ChatSession; @@ -73,28 +72,6 @@ public Chat getChatByContentId(Long toolContentID); /** - * @param toolContentId - * @param file - * @param type - * @return - */ - public ChatAttachment uploadFileToContent(Long toolContentId, FormFile file, String type); - - /** - * @param uuid - * @param versionID - */ - public void deleteFromRepository(Long uuid, Long versionID) throws ChatException; - - /** - * @param contentID - * @param uuid - * @param versionID - * @param type - */ - public void deleteInstructionFile(Long contentID, Long uuid, Long versionID, String type); - - /** * @param chat */ public void saveOrUpdateChat(Chat chat); Index: lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/util/ChatConstants.java =================================================================== diff -u -r4a3d1ca484773efa5f184bcdbd374a53378f8e6f -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/util/ChatConstants.java (.../ChatConstants.java) (revision 4a3d1ca484773efa5f184bcdbd374a53378f8e6f) +++ lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/util/ChatConstants.java (.../ChatConstants.java) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -33,8 +33,6 @@ public static final Integer SESSION_COMPLETED = new Integer(2); public static final String AUTHORING_DEFAULT_TAB = "1"; - public static final String ATTACHMENT_LIST = "attachmentList"; - public static final String DELETED_ATTACHMENT_LIST = "deletedAttachmentList"; public static final String AUTH_SESSION_ID_COUNTER = "authoringSessionIdCounter"; public static final String AUTH_SESSION_ID = "authoringSessionId"; @@ -68,7 +66,7 @@ public static final String ERROR_MSG_NAME_DUPLICATED = "error.condition.duplicated.name"; public static final String MESSAGE_SEPARATOR = " "; - /* Date time restriction LDEV-2657 */ + /* Date time restriction */ public static final String ATTR_SUBMISSION_DEADLINE = "submissionDeadline"; public static final String ATTR_IS_SUBMISSION_DEADLINE_PASSED = "isSubmissionDeadlinePassed"; Index: lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/web/actions/AuthoringAction.java =================================================================== diff -u -r08c8692f524c39ab604743ce30e48c685bbf2005 -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/web/actions/AuthoringAction.java (.../AuthoringAction.java) (revision 08c8692f524c39ab604743ce30e48c685bbf2005) +++ lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/web/actions/AuthoringAction.java (.../AuthoringAction.java) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -33,7 +33,6 @@ import java.util.Set; import java.util.SortedSet; import java.util.TreeSet; -import java.util.Map.Entry; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -50,7 +49,6 @@ import org.lamsfoundation.lams.learningdesign.TextSearchConditionComparator; import org.lamsfoundation.lams.tool.ToolAccessMode; import org.lamsfoundation.lams.tool.chat.model.Chat; -import org.lamsfoundation.lams.tool.chat.model.ChatAttachment; import org.lamsfoundation.lams.tool.chat.model.ChatCondition; import org.lamsfoundation.lams.tool.chat.service.ChatServiceProxy; import org.lamsfoundation.lams.tool.chat.service.IChatService; @@ -84,16 +82,6 @@ private static final String KEY_MODE = "mode"; - private static final String KEY_ONLINE_FILES = "onlineFiles"; - - private static final String KEY_OFFLINE_FILES = "offlineFiles"; - - private static final String KEY_UNSAVED_ONLINE_FILES = "unsavedOnlineFiles"; - - private static final String KEY_UNSAVED_OFFLINE_FILES = "unsavedOfflineFiles"; - - private static final String KEY_DELETED_FILES = "deletedFiles"; - /** * Default method when no dispatch parameter is specified. It is expected that the parameter * toolContentID will be passed in. This will be used to retrieve content for this tool. @@ -161,23 +149,6 @@ ToolAccessMode mode = (ToolAccessMode) map.get(AuthoringAction.KEY_MODE); updateChat(chat, authForm, mode); - // remove attachments marked for deletion. - Set attachments = chat.getChatAttachments(); - if (attachments == null) { - attachments = new HashSet(); - } - - for (ChatAttachment att : getAttList(AuthoringAction.KEY_DELETED_FILES, map)) { - // leave in repository but remove from db - attachments.remove(att); - } - - // add unsaved attachments - attachments.addAll(getAttList(AuthoringAction.KEY_UNSAVED_ONLINE_FILES, map)); - attachments.addAll(getAttList(AuthoringAction.KEY_UNSAVED_OFFLINE_FILES, map)); - - // set attachments in case it didn't exist - chat.setChatAttachments(attachments); chatService.releaseConditionsFromCache(chat); Set conditions = chat.getConditions(); @@ -197,7 +168,7 @@ } } - // set attachments in case it didn't exist + // set conditions in case it didn't exist chat.setConditions(conditionSet); // set the update date chat.setUpdateDate(new Date()); @@ -217,154 +188,9 @@ return mapping.findForward("success"); } - public ActionForward uploadOnline(ActionMapping mapping, ActionForm form, HttpServletRequest request, - HttpServletResponse response) { - return uploadFile(mapping, (AuthoringForm) form, IToolContentHandler.TYPE_ONLINE, request); - } - - public ActionForward uploadOffline(ActionMapping mapping, ActionForm form, HttpServletRequest request, - HttpServletResponse response) { - return uploadFile(mapping, (AuthoringForm) form, IToolContentHandler.TYPE_OFFLINE, request); - } - - public ActionForward deleteOnline(ActionMapping mapping, ActionForm form, HttpServletRequest request, - HttpServletResponse response) { - return deleteFile(mapping, (AuthoringForm) form, IToolContentHandler.TYPE_ONLINE, request); - } - - public ActionForward deleteOffline(ActionMapping mapping, ActionForm form, HttpServletRequest request, - HttpServletResponse response) { - return deleteFile(mapping, (AuthoringForm) form, IToolContentHandler.TYPE_OFFLINE, request); - } - - public ActionForward removeUnsavedOnline(ActionMapping mapping, ActionForm form, HttpServletRequest request, - HttpServletResponse response) { - return removeUnsaved(mapping, (AuthoringForm) form, IToolContentHandler.TYPE_ONLINE, request); - } - - public ActionForward removeUnsavedOffline(ActionMapping mapping, ActionForm form, HttpServletRequest request, - HttpServletResponse response) { - return removeUnsaved(mapping, (AuthoringForm) form, IToolContentHandler.TYPE_OFFLINE, request); - } - /* ========== Private Methods ********** */ - private ActionForward uploadFile(ActionMapping mapping, AuthoringForm authForm, String type, - HttpServletRequest request) { - SessionMap map = getSessionMap(request, authForm); - FormFile file; - List unsavedFiles; - List savedFiles; - if (StringUtils.equals(IToolContentHandler.TYPE_OFFLINE, type)) { - file = authForm.getOfflineFile(); - unsavedFiles = getAttList(AuthoringAction.KEY_UNSAVED_OFFLINE_FILES, map); - - savedFiles = getAttList(AuthoringAction.KEY_OFFLINE_FILES, map); - } else { - file = authForm.getOnlineFile(); - unsavedFiles = getAttList(AuthoringAction.KEY_UNSAVED_ONLINE_FILES, map); - - savedFiles = getAttList(AuthoringAction.KEY_ONLINE_FILES, map); - } - - ActionMessages errors = new ActionMessages(); - FileValidatorUtil.validateFileSize(file, true, errors); - if (!errors.isEmpty()) { - request.setAttribute(ChatConstants.ATTR_SESSION_MAP, map); - this.saveErrors(request, errors); - return mapping.findForward("success"); - } - - if (file.getFileName().length() != 0) { - // upload file to repository - ChatAttachment newAtt = chatService.uploadFileToContent( - (Long) map.get(AuthoringAction.KEY_TOOL_CONTENT_ID), file, type); - - // Add attachment to unsavedFiles - // check to see if file with same name exists - ChatAttachment currAtt; - Iterator iter = savedFiles.iterator(); - while (iter.hasNext()) { - currAtt = (ChatAttachment) iter.next(); - if (StringUtils.equals(currAtt.getFileName(), newAtt.getFileName()) - && StringUtils.equals(currAtt.getFileType(), newAtt.getFileType())) { - // move from this this list to deleted list. - getAttList(AuthoringAction.KEY_DELETED_FILES, map).add(currAtt); - iter.remove(); - break; - } - } - unsavedFiles.add(newAtt); - - request.setAttribute(ChatConstants.ATTR_SESSION_MAP, map); - request.setAttribute("unsavedChanges", new Boolean(true)); - } - return mapping.findForward("success"); - } - - private ActionForward deleteFile(ActionMapping mapping, AuthoringForm authForm, String type, - HttpServletRequest request) { - SessionMap map = getSessionMap(request, authForm); - - List fileList; - if (StringUtils.equals(IToolContentHandler.TYPE_OFFLINE, type)) { - fileList = getAttList(AuthoringAction.KEY_OFFLINE_FILES, map); - } else { - fileList = getAttList(AuthoringAction.KEY_ONLINE_FILES, map); - } - - Iterator iter = fileList.iterator(); - - while (iter.hasNext()) { - ChatAttachment att = (ChatAttachment) iter.next(); - - if (att.getFileUuid().equals(authForm.getDeleteFileUuid())) { - // move to delete file list, deleted at next updateContent - getAttList(AuthoringAction.KEY_DELETED_FILES, map).add(att); - - // remove from this list - iter.remove(); - break; - } - } - - request.setAttribute(ChatConstants.ATTR_SESSION_MAP, map); - request.setAttribute("unsavedChanges", new Boolean(true)); - - return mapping.findForward("success"); - } - - private ActionForward removeUnsaved(ActionMapping mapping, AuthoringForm authForm, String type, - HttpServletRequest request) { - SessionMap map = getSessionMap(request, authForm); - - List unsavedFiles; - - if (StringUtils.equals(IToolContentHandler.TYPE_OFFLINE, type)) { - unsavedFiles = getAttList(AuthoringAction.KEY_UNSAVED_OFFLINE_FILES, map); - } else { - unsavedFiles = getAttList(AuthoringAction.KEY_UNSAVED_ONLINE_FILES, map); - } - - Iterator iter = unsavedFiles.iterator(); - while (iter.hasNext()) { - ChatAttachment att = (ChatAttachment) iter.next(); - - if (att.getFileUuid().equals(authForm.getDeleteFileUuid())) { - // delete from repository and list - chatService.deleteFromRepository(att.getFileUuid(), att.getFileVersionId()); - iter.remove(); - break; - } - } - - request.setAttribute(ChatConstants.ATTR_SESSION_MAP, map); - request.setAttribute("unsavedChanges", new Boolean(true)); - - return mapping.findForward("success"); - } - /** * Updates Chat content using AuthoringForm inputs. * @@ -376,8 +202,6 @@ chat.setTitle(authForm.getTitle()); chat.setInstructions(authForm.getInstructions()); if (mode.isAuthor()) { // Teacher cannot modify following - chat.setOfflineInstructions(authForm.getOfflineInstruction()); - chat.setOnlineInstructions(authForm.getOnlineInstruction()); chat.setLockOnFinished(authForm.isLockOnFinished()); chat.setReflectOnActivity(authForm.isReflectOnActivity()); chat.setReflectInstructions(authForm.getReflectInstructions()); @@ -396,8 +220,6 @@ private void updateAuthForm(AuthoringForm authForm, Chat chat) { authForm.setTitle(chat.getTitle()); authForm.setInstructions(chat.getInstructions()); - authForm.setOnlineInstruction(chat.getOnlineInstructions()); - authForm.setOfflineInstruction(chat.getOfflineInstructions()); authForm.setLockOnFinished(chat.isLockOnFinished()); authForm.setReflectOnActivity(chat.isReflectOnActivity()); authForm.setReflectInstructions(chat.getReflectInstructions()); @@ -419,23 +241,6 @@ map.put(AuthoringAction.KEY_MODE, mode); map.put(AuthoringAction.KEY_CONTENT_FOLDER_ID, contentFolderID); map.put(AuthoringAction.KEY_TOOL_CONTENT_ID, toolContentID); - map.put(AuthoringAction.KEY_ONLINE_FILES, new LinkedList()); - map.put(AuthoringAction.KEY_OFFLINE_FILES, new LinkedList()); - map.put(AuthoringAction.KEY_UNSAVED_ONLINE_FILES, new LinkedList()); - map.put(AuthoringAction.KEY_UNSAVED_OFFLINE_FILES, new LinkedList()); - map.put(AuthoringAction.KEY_DELETED_FILES, new LinkedList()); - - Iterator iter = chat.getChatAttachments().iterator(); - while (iter.hasNext()) { - ChatAttachment attachment = (ChatAttachment) iter.next(); - String type = attachment.getFileType(); - if (type.equals(IToolContentHandler.TYPE_OFFLINE)) { - getAttList(AuthoringAction.KEY_OFFLINE_FILES, map).add(attachment); - } - if (type.equals(IToolContentHandler.TYPE_ONLINE)) { - getAttList(AuthoringAction.KEY_ONLINE_FILES, map).add(attachment); - } - } SortedSet set = new TreeSet(new TextSearchConditionComparator()); if (chat.getConditions() != null) { @@ -463,18 +268,6 @@ } /** - * Retrieves a List of attachments from the map using the key. - * - * @param key - * @param map - * @return - */ - private List getAttList(String key, SessionMap map) { - List list = (List) map.get(key); - return list; - } - - /** * Retrieve the SessionMap from the HttpSession. * * @param request @@ -484,20 +277,4 @@ private SessionMap getSessionMap(HttpServletRequest request, AuthoringForm authForm) { return (SessionMap) request.getSession().getAttribute(authForm.getSessionMapID()); } - - /** - * List save deleted taskList items, which could be persisted or non-persisted items. - * - * @param request - * @return - */ - private List getDeletedChatConditionList(SessionMap sessionMap) { - List list = (List) sessionMap.get(ChatConstants.ATTR_DELETED_CONDITION_LIST); - if (list == null) { - list = new ArrayList(); - sessionMap.put(ChatConstants.ATTR_DELETED_CONDITION_LIST, list); - } - return list; - - } } \ No newline at end of file Index: lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/web/actions/LearningAction.java =================================================================== diff -u -r8aded0b18a5a7712622ae56f38923fa297449977 -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/web/actions/LearningAction.java (.../LearningAction.java) (revision 8aded0b18a5a7712622ae56f38923fa297449977) +++ lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/web/actions/LearningAction.java (.../LearningAction.java) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -77,7 +77,7 @@ * * @struts.action path="/learning" parameter="dispatch" scope="request" name="learningForm" * @struts.action-forward name="learning" path="tiles:/learning/main" - * @struts.action-forward name="runOffline" path="tiles:/learning/runOffline" + * @struts.action-forward name="submissionDeadline" path="tiles:/learning/submissionDeadline" * @struts.action-forward name="defineLater" path="tiles:/learning/defineLater" * @struts.action-forward name="notebook" path="tiles:/learning/notebook" */ @@ -178,11 +178,6 @@ LearningWebUtil.putActivityPositionInRequestByToolSessionId(toolSessionID, request, getServlet() .getServletContext()); - - // check runOffline - if (chat.isRunOffline()) { - return mapping.findForward("runOffline"); - } /* Check if submission deadline is null */ @@ -198,10 +193,9 @@ Date currentLearnerDate = DateUtil.convertToTimeZoneFromDefault(learnerTimeZone, new Date()); request.setAttribute("submissionDeadline", submissionDeadline); - // calculate whether submission deadline has passed, and if so forward to "runOffline" + // calculate whether submission deadline has passed, and if so forward to "submissionDeadline" if (currentLearnerDate.after(tzSubmissionDeadline)) { - return mapping.findForward("runOffline"); - + return mapping.findForward("submissionDeadline"); } } Index: lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/web/forms/AuthoringForm.java =================================================================== diff -u -r5e2d4a2d74479d27d024a7f32994f35bad5c68f1 -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/web/forms/AuthoringForm.java (.../AuthoringForm.java) (revision 5e2d4a2d74479d27d024a7f32994f35bad5c68f1) +++ lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/web/forms/AuthoringForm.java (.../AuthoringForm.java) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -48,10 +48,6 @@ String instructions; - String offlineInstruction; - - String onlineInstruction; - boolean lockOnFinished; boolean reflectOnActivity; @@ -62,10 +58,6 @@ String filterKeywords; - FormFile onlineFile; - - FormFile offlineFile; - String currentTab; String dispatch; @@ -123,39 +115,7 @@ public void setLockOnFinished(boolean lockOnFinished) { this.lockOnFinished = lockOnFinished; } - - public FormFile getOfflineFile() { - return offlineFile; - } - - public void setOfflineFile(FormFile offlineFile) { - this.offlineFile = offlineFile; - } - - public String getOfflineInstruction() { - return offlineInstruction; - } - - public void setOfflineInstruction(String offlineInstruction) { - this.offlineInstruction = offlineInstruction; - } - - public FormFile getOnlineFile() { - return onlineFile; - } - - public void setOnlineFile(FormFile onlineFile) { - this.onlineFile = onlineFile; - } - public String getOnlineInstruction() { - return onlineInstruction; - } - - public void setOnlineInstruction(String onlineInstruction) { - this.onlineInstruction = onlineInstruction; - } - public String getTitle() { return title; } Index: lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/web/servlets/ExportServlet.java =================================================================== diff -u -rb33e717f9a734d318eefab07a17234f07c770c92 -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/web/servlets/ExportServlet.java (.../ExportServlet.java) (revision b33e717f9a734d318eefab07a17234f07c770c92) +++ lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/web/servlets/ExportServlet.java (.../ExportServlet.java) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -93,26 +93,6 @@ return FILENAME; } - protected String doOfflineExport(HttpServletRequest request, HttpServletResponse response, String directoryName, Cookie[] cookies) { - if (toolContentID == null && toolSessionID == null) { - logger.error("Tool content Id or and session Id are null. Unable to activity title"); - } else { - IChatService service = ChatServiceProxy.getChatService(getServletContext()); - Chat chat = null; - if ( toolContentID != null ) { - chat = service.getChatByContentId(toolContentID); - } else { - ChatSession session = chatService.getSessionBySessionId(toolSessionID); - if ( session != null ) - chat = session.getChat(); - } - if ( chat != null ) { - activityTitle = chat.getTitle(); - } - } - return super.doOfflineExport(request, response, directoryName, cookies); - } - private void doLearnerExport(HttpServletRequest request, HttpServletResponse response, String directoryName, Cookie[] cookies) throws ChatException { Index: lams_tool_chat/web/WEB-INF/tiles-defs.xml =================================================================== diff -u -rd56929f06ad90a63082d514e6521adc175f3de27 -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_chat/web/WEB-INF/tiles-defs.xml (.../tiles-defs.xml) (revision d56929f06ad90a63082d514e6521adc175f3de27) +++ lams_tool_chat/web/WEB-INF/tiles-defs.xml (.../tiles-defs.xml) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -88,8 +88,8 @@ - - + + Index: lams_tool_chat/web/includes/javascript/authoring.js =================================================================== diff -u -race8b408295af831e2715b2013d64a000aa09549 -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_chat/web/includes/javascript/authoring.js (.../authoring.js) (revision ace8b408295af831e2715b2013d64a000aa09549) +++ lams_tool_chat/web/includes/javascript/authoring.js (.../authoring.js) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -17,9 +17,4 @@ document.authoringForm.dispatch.value = method; document.authoringForm.submit(); } -function deleteAttachment(dispatch, uuid) { - document.authoringForm.dispatch.value = dispatch; - document.authoringForm.deleteFileUuid.value = uuid; - document.authoringForm.submit(); -} Index: lams_tool_chat/web/includes/javascript/learning.js =================================================================== diff -u -rf0dc7fd29632cc38328454473574f71ce7911be1 -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_chat/web/includes/javascript/learning.js (.../learning.js) (revision f0dc7fd29632cc38328454473574f71ce7911be1) +++ lams_tool_chat/web/includes/javascript/learning.js (.../learning.js) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -1,5 +1,5 @@ // for chat users to be indetified by different colours -var PALETTE = ["#0000FF", "#006699", "#0066FF", "#6633FF", "#00CCFF", "#009900", "#00CC33", "#339900", "#008080", "#66FF66", "#CC6600", "#FF6600", "#FF9900", "#CC6633", "#FF9933", "#990000", "#A50021", "#990033", "#CC3300", "#FF6666", "#330033", "#663399", "#6633CC", "#660099", "#FF00FF", "#999900", "#808000", "#FF9FF2", "#666633", "#292929", "#666666"]; +var PALETTE = ["#008CD2", "#DF7C08", "#83B532", "#E0BE40", "#AE8124", "#5F0704", "#004272", "#CD322B", "#254806"]; // only Monitor can send a personal message var selectedUser = null; // last message in chat window @@ -35,11 +35,11 @@ jQuery.each(result.messages, function(){ var container = $('
',{ 'class' : 'message ' + (this.type == 'chat' ? 'private_message' : '') - }).css('color' , getColour(this.from)); + }); $('
',{ 'class' : 'messageFrom', 'text' : this.from - }).appendTo(container); + }).css('color' , getColour(this.from)).appendTo(container); $('',{ 'text' : this.body }).appendTo(container); Index: lams_tool_chat/web/pages/authoring/authoring.jsp =================================================================== diff -u -rcd0d0b28a7c27711a74ce2b41821f3ccf5c80df9 -ref851974c4dc3f5468b188fab9997a37b73c0e50 --- lams_tool_chat/web/pages/authoring/authoring.jsp (.../authoring.jsp) (revision cd0d0b28a7c27711a74ce2b41821f3ccf5c80df9) +++ lams_tool_chat/web/pages/authoring/authoring.jsp (.../authoring.jsp) (revision ef851974c4dc3f5468b188fab9997a37b73c0e50) @@ -1,12 +1,9 @@ <%@ include file="/common/taglibs.jsp"%> <%@ page import="org.lamsfoundation.lams.tool.chat.util.ChatConstants"%> - + - + @@ -19,8 +16,7 @@ - - +
@@ -35,9 +31,6 @@
- - -

@@ -54,10 +47,7 @@ - - + + +

+

+ +

+ +
+ + + +
+ + + <%@ include file="parts/finishButton.jsp"%> + +
+ Fisheye: Tag ef851974c4dc3f5468b188fab9997a37b73c0e50 refers to a dead (removed) revision in file `lams_tool_chat/web/pages/monitoring/instructions.jsp'. Fisheye: No comparison available. Pass `N' to diff?