Index: lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java =================================================================== diff -u -rdcbd160a14b4bee7d729345e19fec3ee4621d5c1 -r31d33b45cc7df639518fe939cd8b39b0af4c77bd --- lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java (.../AuthoringService.java) (revision dcbd160a14b4bee7d729345e19fec3ee4621d5c1) +++ lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java (.../AuthoringService.java) (revision 31d33b45cc7df639518fe939cd8b39b0af4c77bd) @@ -131,6 +131,8 @@ protected Logger log = Logger.getLogger(AuthoringService.class); + private static final String[] LD_IMAGE_EXTENSIONS = new String[] { "png", "svg" }; + /** Required DAO's */ protected LearningDesignDAO learningDesignDAO; @@ -919,10 +921,8 @@ updateEvaluations(newActivities); try { - AuthoringService.copyLearningDesignImage(originalLearningDesign.getLearningDesignId(), - newLearningDesign.getLearningDesignId(), "svg"); - AuthoringService.copyLearningDesignImage(originalLearningDesign.getLearningDesignId(), - newLearningDesign.getLearningDesignId(), "png"); + AuthoringService.copyLearningDesignImages(originalLearningDesign.getLearningDesignId(), + newLearningDesign.getLearningDesignId()); } catch (IOException e) { log.error("Error while copying Learning Design " + originalLearningDesign.getLearningDesignId() + " image", e); @@ -1602,7 +1602,10 @@ } copyLearningDesignToolContent(design, design, design.getCopyTypeID(), customCSV); + } + if (existingLearningDesign != null) { + AuthoringService.deleteLearningDesignImages(existingLearningDesign.getLearningDesignId()); } logEventService.logEvent(LogEvent.TYPE_TEACHER_LEARNING_DESIGN_CREATE, userID, design.getLearningDesignId(), @@ -2055,17 +2058,30 @@ } /** - * Copies LD thumbnail, SVG or PNG. + * Copies LD thumbnails, SVG and PNG. */ - private static void copyLearningDesignImage(long originalLearningDesignID, long newLearningDesignID, - String extension) throws IOException { - String fullExtension = "." + extension; - File image = new File(IAuthoringService.LEARNING_DESIGN_IMAGES_FOLDER, - originalLearningDesignID + fullExtension); - if (image.canRead()) { - FileUtils.copyFile(image, - new File(IAuthoringService.LEARNING_DESIGN_IMAGES_FOLDER, newLearningDesignID + fullExtension), - true); + private static void copyLearningDesignImages(long originalLearningDesignID, long newLearningDesignID) + throws IOException { + for (String extension : AuthoringService.LD_IMAGE_EXTENSIONS) { + String fullExtension = "." + extension; + File image = new File(IAuthoringService.LEARNING_DESIGN_IMAGES_FOLDER, + originalLearningDesignID + fullExtension); + if (image.canRead()) { + FileUtils.copyFile(image, + new File(IAuthoringService.LEARNING_DESIGN_IMAGES_FOLDER, newLearningDesignID + fullExtension), + false); + } } } + + /** + * Deletes LD thumbnails, SVG and PNG. + */ + private static void deleteLearningDesignImages(long learningDesignID) throws IOException { + for (String extension : AuthoringService.LD_IMAGE_EXTENSIONS) { + String fullExtension = "." + extension; + File image = new File(IAuthoringService.LEARNING_DESIGN_IMAGES_FOLDER, learningDesignID + fullExtension); + FileUtils.deleteQuietly(image); + } + } } \ No newline at end of file