Index: lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java,v diff -u -r1.111 -r1.112 --- lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java 6 Jul 2015 09:56:21 -0000 1.111 +++ lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java 23 Jul 2015 00:52:13 -0000 1.112 @@ -378,14 +378,6 @@ } /** - * @see org.lamsfoundation.lams.authoring.service.IAuthoringService#getAllLearningDesigns() - */ - @Override - public List getAllLearningDesigns() { - return learningDesignDAO.getAllLearningDesigns(); - } - - /** * @see org.lamsfoundation.lams.authoring.service.IAuthoringService#getAllLearningLibraries() */ @Override @@ -1719,19 +1711,6 @@ } /** - * (non-Javadoc) - * - * @see org.lamsfoundation.lams.authoring.service.IAuthoringService#getAllLearningDesignDetails() - */ - @Override - public String getAllLearningDesignDetails() throws IOException { - Iterator iterator = getAllLearningDesigns().iterator(); - ArrayList arrayList = createDesignDetailsPacket(iterator); - FlashMessage flashMessage = new FlashMessage("getAllLearningDesignDetails", arrayList); - return flashMessage.serializeMessage(); - } - - /** * This is a utility method used by the method getAllLearningDesignDetails to pack the required * information in a data transfer object. * @@ -1751,19 +1730,6 @@ /** * (non-Javadoc) * - * @see org.lamsfoundation.lams.authoring.service.IAuthoringService#getLearningDesignsForUser(java.lang.Long) - */ - @Override - public String getLearningDesignsForUser(Long userID) throws IOException { - List list = learningDesignDAO.getLearningDesignByUserId(userID); - ArrayList arrayList = createDesignDetailsPacket(list.iterator()); - FlashMessage flashMessage = new FlashMessage("getLearningDesignsForUser", arrayList); - return flashMessage.serializeMessage(); - } - - /** - * (non-Javadoc) - * * @see org.lamsfoundation.lams.authoring.service.IAuthoringService#getAllLearningLibraryDetails() */ @Override Index: lams_central/src/java/org/lamsfoundation/lams/authoring/service/IAuthoringService.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/authoring/service/IAuthoringService.java,v diff -u -r1.45 -r1.46 --- lams_central/src/java/org/lamsfoundation/lams/authoring/service/IAuthoringService.java 23 Oct 2014 13:16:43 -0000 1.45 +++ lams_central/src/java/org/lamsfoundation/lams/authoring/service/IAuthoringService.java 23 Jul 2015 00:52:13 -0000 1.46 @@ -153,11 +153,6 @@ throws UserException, LearningDesignException, WorkspaceFolderException, IOException; /** - * @return List Returns the list of all the available LearningDesign's - */ - public List getAllLearningDesigns(); - - /** * @return List Returns a list of all available Learning Libraries */ public List getAllLearningLibraries(); @@ -222,14 +217,6 @@ throws IOException; /** - * This method returns a list of all available Learning Designs in WDDX format. - * - * @return String The required list in WDDX format - * @throws IOException - */ - public String getAllLearningDesignDetails() throws IOException; - - /** * Saves the LearningDesign to the database. Will update if already saved. Used when a design is run. * * @param learningDesign @@ -238,16 +225,6 @@ public void saveLearningDesign(LearningDesign learningDesign); /** - * Returns a list of LearningDesign's in WDDX format, belonging to the given user - * - * @param user - * The user_id of the User for whom the designs are to be fetched - * @return The requested list of LearningDesign's in WDDX format - * @throws IOException - */ - public String getLearningDesignsForUser(Long userID) throws IOException; - - /** * This method returns a list of all available system libraries in WDDX format. * * @return String The required information in WDDX format Index: lams_central/src/java/org/lamsfoundation/lams/authoring/web/AuthoringAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/authoring/web/AuthoringAction.java,v diff -u -r1.57 -r1.58 --- lams_central/src/java/org/lamsfoundation/lams/authoring/web/AuthoringAction.java 3 Nov 2014 13:39:58 -0000 1.57 +++ lams_central/src/java/org/lamsfoundation/lams/authoring/web/AuthoringAction.java 23 Jul 2015 00:52:13 -0000 1.58 @@ -276,33 +276,6 @@ } - public ActionForward getLearningDesignsForUser(ActionMapping mapping, ActionForm form, HttpServletRequest request, - HttpServletResponse response) throws ServletException, IOException { - String wddxPacket; - IAuthoringService authoringService = getAuthoringService(); - try { - Long userID = new Long(getUserId()); - - wddxPacket = authoringService.getLearningDesignsForUser(userID); - } catch (Exception e) { - wddxPacket = handleException(e, "getLearningDesignsForUser", authoringService, true).serializeMessage(); - } - return outputPacket(mapping, request, response, wddxPacket, "details"); - } - - public ActionForward getAllLearningDesignDetails(ActionMapping mapping, ActionForm form, - HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - String wddxPacket; - IAuthoringService authoringService = getAuthoringService(); - try { - wddxPacket = authoringService.getAllLearningDesignDetails(); - } catch (Exception e) { - wddxPacket = handleException(e, "getAllLearningDesignDetails", authoringService, true).serializeMessage(); - } - AuthoringAction.log.debug("getAllLearningDesignDetails: returning " + wddxPacket); - return outputPacket(mapping, request, response, wddxPacket, "details"); - } - public ActionForward getAllLearningLibraryDetails(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String wddxPacket; Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/LearningDesign.hbm.xml =================================================================== RCS file: /usr/local/cvsroot/lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/LearningDesign.hbm.xml,v diff -u -r1.24 -r1.25 --- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/LearningDesign.hbm.xml 27 Aug 2014 12:26:33 -0000 1.24 +++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/LearningDesign.hbm.xml 23 Jul 2015 00:52:58 -0000 1.25 @@ -151,6 +151,14 @@ + + @hibernate.property column ="duration" Index: lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch02040042.sql =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch02040042.sql,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch02040042.sql 23 Jul 2015 00:52:47 -0000 1.1 @@ -0,0 +1,12 @@ +-- Turn off autocommit, so nothing is committed if there is an error + +SET AUTOCOMMIT = 0; +SET FOREIGN_KEY_CHECKS=0; + +-- LDEV-3491 Mark designs as removed without deleting the record +ALTER TABLE lams_learning_design ADD COLUMN removed TINYINT(1) NOT NULL DEFAULT 0; + +-- If there were no errors, commit and restore autocommit to on +SET FOREIGN_KEY_CHECKS=0; +COMMIT; +SET AUTOCOMMIT = 1; Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/LearningDesign.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/LearningDesign.java,v diff -u -r1.40 -r1.41 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/LearningDesign.java 4 Apr 2014 12:34:43 -0000 1.40 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/LearningDesign.java 23 Jul 2015 00:52:47 -0000 1.41 @@ -156,7 +156,10 @@ /** persistent field*/ private Date lastModifiedDateTime; - + + /** persistent field*/ + private Boolean removed; + /* If the values for createDateTime and/or lastModifiedDateTime * are null, then it will default to the current datetime. */ @@ -219,6 +222,7 @@ this.editOverrideLock = editOverrideLock; this.editOverrideUser = editOverrideUser; this.designVersion = designVersion; + this.removed = Boolean.FALSE; } /** default constructor */ @@ -228,6 +232,7 @@ this.lastModifiedDateTime = new Date(); this.editOverrideLock = false; this.designVersion = new Integer(1); + this.removed = Boolean.FALSE; } /** minimal constructor */ @@ -259,6 +264,7 @@ this.lastModifiedDateTime = new Date(); this.editOverrideLock = false; this.designVersion = new Integer(1); + this.removed = Boolean.FALSE; } /** Create a new learning design based on an existing learning design. If setOriginalDesign is true, then set the input design * as the original design in the copied design - this is used when runtime copies of a design are created. It is not used @@ -297,6 +303,7 @@ newDesign.setEditOverrideLock(design.getEditOverrideLock()); newDesign.setEditOverrideUser(design.getEditOverrideUser()); newDesign.setOriginalUser(design.getOriginalUser()); + newDesign.setRemoved(design.getRemoved()); return newDesign; } @@ -593,4 +600,11 @@ public FloatingActivity getFloatingActivity() { return floatingActivity; } + public Boolean getRemoved() { + return removed; + } + public void setRemoved(Boolean removed) { + this.removed = removed; + } + } \ No newline at end of file Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/ILearningDesignDAO.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/ILearningDesignDAO.java,v diff -u -r1.15 -r1.16 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/ILearningDesignDAO.java 16 Jul 2015 23:31:38 -0000 1.15 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/ILearningDesignDAO.java 23 Jul 2015 00:52:47 -0000 1.16 @@ -28,7 +28,7 @@ import org.lamsfoundation.lams.dao.IBaseDAO; import org.lamsfoundation.lams.learningdesign.LearningDesign; import org.lamsfoundation.lams.learningdesign.LearningDesignAccess; -; + /** * @author Manpreet Minhas */ @@ -39,24 +39,8 @@ * @return LearningDesign populated LearningDesign object */ public LearningDesign getLearningDesignById(Long learningDesignId); - /** - * @param title - * @return LearningDesign populated LearningDesign object - */ - public LearningDesign getLearningDesignByTitle(String title); /** - * @return List of all Learning designs - */ - public List getAllLearningDesigns(); - - /** - * @param userID - * @return List of learning designs with given userID - */ - public List getLearningDesignByUserId(Long userID); - - /** * This method returns a list of all designs that are valid in * the given workspaceFolder. * @@ -77,16 +61,6 @@ public List getAllLearningDesignsInFolder(Integer workspaceFolderID); /** - * This method returns a List of Learning Designs with given - * original_learning_design_id - * - * @param originalDesignID The original_learning_design_id - * @return List The List of all corresponding Learning designs with - * given original_learning_design_id - */ - public List getLearningDesignsByOriginalDesign(Long originalDesignID); - - /** * Get the titles of all the learning designs with the given prefix in the given folder. */ public List getLearningDesignTitlesByWorkspaceFolder(Integer workspaceFolderID, String prefix); @@ -111,4 +85,5 @@ * Count how many learning designs exist in a given folder. */ public long countAllLearningDesigns(Integer workspaceFolderID, boolean validDesignsOnly); + } \ No newline at end of file Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/hibernate/LearningDesignDAO.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/hibernate/LearningDesignDAO.java,v diff -u -r1.16 -r1.17 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/hibernate/LearningDesignDAO.java 16 Jul 2015 23:31:38 -0000 1.16 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/hibernate/LearningDesignDAO.java 23 Jul 2015 00:52:47 -0000 1.17 @@ -27,8 +27,10 @@ import java.util.List; import java.util.Map; +import org.apache.log4j.Logger; import org.hibernate.HibernateException; import org.hibernate.Query; +import org.lamsfoundation.lams.authoring.web.AuthoringAction; import org.lamsfoundation.lams.dao.hibernate.BaseDAO; import org.lamsfoundation.lams.learningdesign.LearningDesign; import org.lamsfoundation.lams.learningdesign.LearningDesignAccess; @@ -38,26 +40,19 @@ * @author Manpreet Minhas */ public class LearningDesignDAO extends BaseDAO implements ILearningDesignDAO { - + private static Logger log = Logger.getLogger(AuthoringAction.class); + private static final String TABLENAME ="lams_learning_design"; - private static final String FIND_BY_USERID = "from " + TABLENAME +" in class " + LearningDesign.class.getName()+ " where user_id =?"; - private static final String VALID_IN_FOLDER ="from " + TABLENAME +" in class " + LearningDesign.class.getName()+ - " where valid_design_flag=true AND workspace_folder_id=?"; + " where valid_design_flag=true AND workspace_folder_id=? AND removed=0"; private static final String ALL_IN_FOLDER ="from " + TABLENAME +" in class " + LearningDesign.class.getName()+ - " where workspace_folder_id=?"; + " where workspace_folder_id=? AND removed=0"; - private static final String COUNT_VALID_IN_FOLDER = "SELECT COUNT(*) from " + TABLENAME - + " where valid_design_flag=true AND workspace_folder_id=?"; - - private static final String COUNT_ALL_IN_FOLDER = "SELECT COUNT(*) from " + TABLENAME + " where workspace_folder_id=?"; - - private static final String FIND_BY_ORIGINAL ="from " + TABLENAME +" in class " + LearningDesign.class.getName()+ - " where original_learning_design_id=?"; + " where original_learning_design_id=? AND removed=0"; private static final String FIND_LD_NAMES_IN_FOLDER = "select title from " + LearningDesign.class.getName()+ - " where workspace_folder_id=? and title like ?"; + " where workspace_folder_id=? AND title like ? AND removed=0"; private static final String ACCESS_BY_USER = "from " + LearningDesignAccess.class.getName() + " as a where a.userId = ? order by a.accessDate desc"; @@ -66,35 +61,10 @@ * @see org.lamsfoundation.lams.learningdesign.dao.interfaces.ILearningDesignDAO#getLearningDesignById(java.lang.Long) */ public LearningDesign getLearningDesignById(Long learningDesignId) { - return (LearningDesign)super.find(LearningDesign.class,learningDesignId); + LearningDesign design = (LearningDesign) super.find(LearningDesign.class,learningDesignId); + return design != null && ! design.getRemoved() ? design : null; } - - /* - * @see org.lamsfoundation.lams.learningdesign.dao.interfaces.ILearningDesignDAO#getLearningDesignByTitle(java.lang.String) - */ - public LearningDesign getLearningDesignByTitle(String title) { - return (LearningDesign) super.find(LearningDesign.class,title); - } - - /* - * @see org.lamsfoundation.lams.learningdesign.dao.interfaces.ILearningDesignDAO#getAllLearningDesigns() - */ - public List getAllLearningDesigns() { - return super.findAll(LearningDesign.class); - } - public List getLearningDesignByUserId(Long userID){ - if ( userID != null ) { - try{ - Query query = this.getSession().createQuery(FIND_BY_USERID); - query.setLong(0,userID.longValue()); - return query.list(); - }catch(HibernateException he){ - } - } - return null; - } - /** * (non-Javadoc) * @see org.lamsfoundation.lams.learningdesign.dao.ILearningDesignDAO#getAllValidLearningDesignsInFolder(java.lang.Integer) @@ -115,6 +85,7 @@ * @see getLearningDesignsByOriginalDesign#getLearningDesignsByParent(java.lang.Long) */ public List getLearningDesignsByOriginalDesign(Long originalDesignID){ + log.error("getLearningDesignsByOriginalDesign called"); List list = this.getHibernateTemplate().find(FIND_BY_ORIGINAL,originalDesignID); return list; } @@ -131,7 +102,7 @@ @SuppressWarnings("unchecked") @Override public List getAccessByUser(Integer userId) { - return this.getHibernateTemplate().find(ACCESS_BY_USER, userId); + return this.getHibernateTemplate().find(ACCESS_BY_USER, userId); } @SuppressWarnings("unchecked") @@ -170,9 +141,19 @@ public long countAllLearningDesigns(Integer workspaceFolderID, boolean validDesignsOnly) { Map properties = new HashMap(); properties.put("workspaceFolder.workspaceFolderId", workspaceFolderID); + properties.put("removed", Boolean.FALSE); if ( validDesignsOnly ) properties.put("validDesign", Boolean.valueOf(validDesignsOnly)); return countByProperties(LearningDesign.class, properties); } + /** Overrides the standard delete to merely mark as removed in the database. */ + public void delete(Object object) { + LearningDesign design = (LearningDesign) object; + log.debug("Removing learning design "+design); + if ( design != null && ! design.getRemoved() ) { + design.setRemoved(Boolean.TRUE); + update(design); + } + } } \ No newline at end of file